Archive for July, 2008

W3C mobile best practices

“Best practices” documents must always make some judgment calls, but this new summary from the W3C is a good checklist for evaluating a project before it goes public.

The emphasis is on HTML development (“do not use tables”, “do not use frames” etc), but lots of the recommendations are good for any runtime engine: strike a balance between similar experience across devices and using device-specific capabiloities… use emulators early but be sure to test on the varied devices themselves before release… minimize auto-refresh without audience disclosure and control… doublecheck contrast and color use under various viewing conditions… my favorite: “Use clear and simple language” (which implies acceptance of language-neutral imagery and appropriate animation).

There’s a longer version available too, but it’s good to keep the summary bookmarked, both for personal checking and as ammunition in internal workgroup discussions.

What do I know about Search?

Not much. But I do know a little:

  1. Website owners want a return on investment. They want traffic. Search engines are one way to pass along lots of hits. That’s why site owners want to “be on the first page of results”. But which results, to which search queries? This they rarely say.
  2. That under-defined business goal causes problems for web development crews. You can’t satisfy “be on the first page of search results” without knowing the search query. Web teams can’t fulfill the goal, because it has not been defined by the client. But the team knows they’re judged by overall traffic results. This is a stressful situation for website developers. They seek relief.
  3. Meanwhile, search engines do need to keep most details closed and proprietary. An opensource search-engine business, if sufficiently popular, would attract spammers. The co-evolution of engines and spammers means perpetual security-by-obscurity and confusion. Truth is necessarily proprietary.
  4. Put these three conflicting desires together, and there’s incentive for consultants and speakers to to promote their own services in search engine optimization. The more complex it all seems, the more business opportunity… if SEO is mysterious, then the beleaguered web team can fulfill its discoverability requirements by hiring an SEO specialist. And being in the public eye helps raise the employment possibilities for an SEO firm….

The core driver beneath all this is the business need of website owners to attract sufficient qualified traffic. (The meaning of “qualified” would vary with the site and its purpose.) If a manager is charged with responsibility for the website, they need to be able to prove that it’s worth the corporate investment. Site traffic is the easiest metric to use.

“How can I attract enough qualified visitors to my site?” That’s the reality. This need of site-owners is what puts the whole Search Engine Optimization business in motion.

But much of the weblog conversation on SEO is about relative trivialities, such as whether every word in a database is “exposed to the spiders”. Who cares? There would be too much competition for such incidental search terms anyway. If your personal Ajax or Flash apps can draw dynamic data from remote databases, then so can other Ajax or Flash apps. Who is going to get on that first page of Google results?

Attracting visitors is only partially solved by search. We websurfers do sometimes discover new sites through keyword-matching on a search engine. But we more often discover new sites through the recommendations of friends or trusted strangers. And if enough other websites link to a site with anchor text of “best insurance website” or whatever, then that site will naturally do better when people type that phrase into a search engine.

If emphasizing the search engines in the overall pursuit of traffic goals, then the best approach I’ve seen is to first consider how your potential audience might actually try searching for you. What terms will they likely enter in a search engine? What’s the current competition for those terms? On which search terms can you realistically compete, to get that desired top listing on the first page of results?

Start by looking at the searching process itself… look at things from the visitor’s point of view. Think of how they’ll try to find that site. Then make it easier for the search engines to find it under those terms, with the classic bodytext, metadata, and sitemap info.

But don’t forget that search is only one ingredient in attracting an audience… the site will still have to be useful enough for others to advertise with informative text.

So what do I know about search? Not much.

I do know that the SEO marketplace has been remarkably resistant to inconvenient questions, and suspect that much of the conversation isn’t really about search at all.

And I’m not convinced that search engines are the best discoverability engine we should be considering anyway. Even for keyword-matching, they’re already pretty much overwhelmed by noise.

I do know that trusted recommendations are still the key way to attract traffic directly, and authoritative inbound links incidentally have a beneficial effect on search results.

But I do know that there are enormous social drivers for the creation of all types of SEO beliefs… the rewards are great, the details few, the promises many. We’ll likely see confusion for a good long time to come.

Storefront, catalog, or technology platform?

Adobe Media Player had a new release yesterday, with performance, interface, and publishing improvements. Pundits covered the press release. Most of them focused on which shows to watch. Some spoke of “competitors like Apple’s iTunes and Windows Media Player.” Seems to me like they’re only seeing one small part of the picture.

I’m not putting down the pundits… they’re entitled to view anything anyway they see fit, and it’s likely that Adobe hasn’t done the strongest job in insisting on understanding of its goals.

But this isn’t a story like competing cable or satellite providers, and which company secures the rights to a given title in a given region. It’s not one of those earlier zero-sum games about which movie theatre chains can show the fancy MGM films, and which chains shows the quicker RKO titles. It’s more like designing the first cathode-ray tubes, or discovering the business models for the first TV stations. We know we have to achieve something, but still have to figure out its final form.

Off the top of my head, Adobe Media Player 1.0 delivered three significant things: a local Rich Internet Application for viewing video from diverse sources, replacing the page-refresh video experience where your viewing history is stored on some company’s server and then data-mined… a subscription-based, “video comes to you” experience, laying the groundwork for future decentralized social viewing recommendations… and a policy-file system which lets content creators determine where they grant viewing rights, to whom, and when.

There’s a whole lot more technology understructure yet to test and develop. We need better creation, integration, and analysis of video metadata, a coherent pipeline for including information along with the visuals. More work needs to be done on the overall production workflow, from planning to asset tracking to editing to compression to distribution to analytics. We need to analyze and expose video content (speech-to-text, object recognition) and social metadata (recommendations and tagging from friends), so that advertising (the main revenue generator) can be more tuned to the viewing audience’s current needs. We need to make the video experience more customizable to the content producer’s experiential design, and more responsive to the enduser’s desires. AMP 1.x did accomplish a lot, but there’s much more work yet to done.

Within Adobe I don’t hear people talk of competing with particular video sites and distributors… such initiatives are uniformly seen as partners, or as potential partners, who have technology needs which are not yet met, perhaps not yet even recognized.

Everything I see points towards Adobe Media Player as being a technology platform, where new publishing capabilities can be explored and refined. “How will the viewing public want to experience video in 2010, 2015, 2020?” seems more the spirit than “What’s the marketshare for the catalog this month?” That’s the reality I see within Adobe, from the product team to the Dynamic Media organization to the top executive level. We need to bring about the next generation of internet video publishing.

Back when Adobe PostScript first provided a more predictable digital printing capability than the maze of competing printer drivers and application exporters, Adobe Systems did not open a publishing house or try to monopolize book distribution. Adobe achieved its financial goals by opening up the publishing process to universal access, earning money on sales of enabling technology.

To confirm this cultural DNA, see this recent interview with Charles Geschke, co-founder of Adobe. He was a math professor who found computers personally interesting, found great satisfaction in making the written word more accessible to more people than anyone since Gutenberg, and now stresses the importance of the new integrated runtime for networked application development. It’s a longterm view, not about controlling content, but about profiting by helping others sustainably create and use content. This cultural orientation was one of the most striking things I learned about Adobe, coming in from the cowboy/interactivity/shrinkwrap culture at Macromedia.

Other companies have different business models, whether it’s to sell a range of consumer electronic devices, or to develop an advertising network, or to increase the range of proprietary personalization databases. But Adobe makes its money selling neutral publishing technology. The more people who find video useful, the better. These core orientations determine the different paths each group will take.

The AMP marketing materials do emphasize significant partners, but there seem to be two main reasons for that: (a) we need a goodsized audience to provide reliable feedback on how people will really want things to work; and (b) creators are actively seeking ways to maintain a connection with their big-budget work, beyond just letting an .MPG run wild throughout the Web in hope that money will somehow flow in. Sony, CBS, Showtime, MTV and all the rest are validating that they find potential within AMP, and those big titles help draw useful audiences during development.

(There’s an interesting angle on big-budget video… YouTube became famous during the Web 2.0 age for “User Generated Content” (UGC). That’s great, I love it, it’s valuable, we need it. But audiences tend to obsess on professional, big-budget entertainment… that’s they stuff they hunt for. And to afford those professional budgets, creators need a real return-on-investment. Finding ways to support video-creation businesses is the real way to support video-viewing audiences.)

Anyway, when I see the daily commentary focus on Ghostbusters or The Love Boat, I can understand how someone fresh to it may just see what’s personally relevant for them. But I see bigger goals within Adobe, focused far more on new technology than commercial properties.

The Adobe video pipeline is undergoing startling rapid evolution. I’m betting the Techmeme stories from Summer 2009 will likely be quite a bit different…. 😉

Occasional connectivity works both ways

Amazon S3 went down this weekend. It isn’t alone… Twitter and other services have outages too. If you’re trying to build on the cloud, then sometimes the cloud just isn’t there.

Om Malik observed: “The S3 outage points to a bigger (and a larger) issue: the cloud has many points of failure – routers crashing, cable getting accidentally cut, load balancers getting misconfigured, or simply bad code.”

The 2002 definition of “Rich Internet Application” explicitly mentioned support for occasional connectivity. Most of us have assumed this means that the app works whether or not your pocket device can connect to the net. But it’s just as valid whether a remote service is down. The app should just work, regardless of whether its connectivity requests can be fulfilled.

Support for occasionally-connected applications is available in the Adobe Integrated Runtime (AIR). But it isn’t automatic. We still need well-accepted design patterns, interface conventions to handle varying freshness levels of remote data. We’ve got the basics down at the platform level, but there’s a lot of work left to do at the application level.

The cloud concept isn’t dead just because S3 went down. Arguing whether Amazon or Google or Microsoft or a startup has best connectivity is irrelevant — all services are occasionally unavailable. Simple always-live apps are vulnerable to surprises. Every application that relies on the network really needs to figure out how to still work, when it cannot connect across the cloud.

Scope creep, and the failure of experts

Does W3C-blaming risk bringing about what it deplores?

There were big debates last week about “blaming the W3C for a proprietary web” (Slashdot, Paul Ellis, Molly Holzschlag, Alex Russell, Shelley Powers, OSNews, John Carroll, Steven Clark, more). There was a subthread of “Don’t blame the W3C; blame the browser vendors instead”, but that still assumes that there is blame for something to be doled about.

My bottom line: When people ask “Should we blame the W3C for being so incredibly slow on RIA specifications (or video specifications or two-way communication specifications or whatever) that proprietary corporations end up doing things on their scurrilous own?” I hear a tower of assumptions which could end up damaging the consortium’s ability to do the things it actually needs to do.

Here are some of the underlying, unquestioned assumptions I read in comments to the essays above:

  • Assumption #1: Real life can be divided into “The Open Web” and “The Proprietary Unweb“.

    To understand the question “Is the World Wide Web Consortium to blame for the rise of The Proprietary Unweb?”, you’d have to first understand real life as being composed of the same duality in the same way, then to agree that they’re pitted against each other, and then to think that action is required to save one by attacking the other.

    When people toss around “The Open Web vs The Proprietary Unweb”, it’s an open assumption that each person understands life and technology’s social effects in the same way. Such labeling tends to encourage arguments.

    Asserting an assumption does not make it so. It does make the rest of us suspect that you believe it is so, but it’s not really the basis for good communication.

    There is no need for such a kill-or-be-killed, oppositional style of technology development. Assumptions to the contrary would first need to be substantiated.

  • Assumption #2: The W3C is capable, and is solely capable, of bringing about whatever we decide our eventual networked technology choices will be.

    We humans finally achieved personal electronics just a generation ago, and we’ve had only a decade for freely networking them together. We’re still striving to move this network to the pocket, so that the computer goes with you instead of you going to the computer. I don’t even have a pair of WiFi projective sunglasses yet, for goshsake. We don’t know much yet. It’s early.

    The World Wide Web and its eventual consortium definitely weren’t created to predict all new uses of the network. They might be able to help in many of these goals, but the World Wide Web is only one part of the larger Internet: “A key concept of the Internet is that it was not designed for just one application, but as a general infrastructure on which new applications could be conceived, as illustrated later by the emergence of the World Wide Web.” The Net is bigger than the Web.

    The work of the World Wide Web Consortium is not easy work. We’ve had a hard time getting newer specifications for HTML/XHTML/HTML5, CSS, agreement on things like JavaScript 2. What’s worse, considering that it’s much easier to standardize on such simpler, well-known things first, it’s potentially destructive to attempt to standardize everything all at once, particularly in advance of any practical realworld knowledge. Asking too much of the W3C risks getting not much of anything at all.

    We can see this already in just HTML itself. What was once “so simple that anyone could learn to publish in an afternoon” has become a hulking monster of complexity, where you are judged by how little you are out of compliance. HTML creation has become much less accessible to real people with each increase in the specification’s complexity and scope. VRML and SVG are two other processes which folded under the weight of the increased expectations placed upon them. It’s hard to be simple.

    Assuming W3C primacy over all new Internet uses assumes too much of the group, its mandate, and its abilities. Assuming the consortium is “too slow to solve the video problem” or “too slow to solve the mobile problem” overburdens them, and distracts from the task of solving the hypertext problem.

  • Assumption #3: All decisions must be centralized. The proper experts should tell us what to do.

    This is more a general lifestyle assumption, but one which seems to be the basis of the two assumptions above. You hear a lot of the word “should” in these conversations.

    Committees of experts are good at noticing what works, slowly grinding away differences, making a predictable recipe for future success. The top-down process is efficient at distillation, but the bottom-up process tends to work better for discovery. Corporate marketing didn’t create a YouTube, a Flickr, a Twitter, a Techmeme. It’s small groups which usually discover new niches, and large groups which later colonize. The Five Year Plan doesn’t uncover novelty. Centralism doesn’t do as well in unknown territory.

    The liangyi is made up of both Yin and Yang, moon and sun, order and chaos, centralism and decentralism. One grows from the other, both interdependent. The standardization process works better for negotiation on the known than for discovery of the unknown.

    I think we need both centralism and decentralism to succeed. The edges are nowhere without the center, and vice versa.

I don’t see the need for setting up oppositions in internet technology… we should look at all options objectively, and not just characterize tech by who developed it. I also don’t think that the World Wide Web Consortium can be realistically tasked with the expectations to solve all the new problems of The Internet.

I fear that asking more of the W3C than it is capable of accomplishing will make their actual work more difficult, endangering the basic browser technologies upon which we’re slowly continuing to agree. Such unwarranted assumptions add risk to our future hyperlinking abilities, to our future networking abilities, to our future personal publishing abilities.

The question in this discussion is itself part of the problem. It assumes the W3C must change course to slay giants. It is not a neutral question, and asking it often enough makes it harder for the W3C to slowly accomplish what it must do.

Simple standards work best. If we agree on voluntary standards, we want everyone to be able to meet them. If the specifications are too complex to implement or follow, then these specifications won’t attract as much voluntary compliance. The simpler the rules, the better.


  • This is me talking. I work at Adobe, but it’s not the group speaking. Bloggers who clip a quote prefaced with “Adobe says” are hereby requested in advance to donate that page’s ad revenue to charity.
  • Sorry this is so lengthy. I’ve written four previous drafts, distilling and shortening each time, but it’s still too long. Next month I’ll probably be able to say it better. 😉
  • Comments are very welcome. But this discussion breeds tangents. I’d like to focus on the core question of “Does assuming too much of the W3C risk damaging it?” If you’d like to tell me how stupid I am for not understanding how evil and proprietary things are, then one hundred words maximum, please, or a quick link/summary to your longer essay elsewhere. (And, as always, anonymous comments are less persuasive.)

Crowdsourcing ALT tags

IBM had a news article yesterday about a project to increase screenreader accessibility for HTML sites by a third-party metadata overlay… if someone notices the screenreader representation of an HTML page is inadequate, they can request that a sighted participant add appropriate tags to a centralized database, and this data is then pulled and added to the site the next time a program participant visits that site.

Simple idea, but hard to talk about… Jacqui Cheng has another article at Ars Technica: “The Social Accessibility Project hopes to circumvent the entire problem of dealing with developers by allowing users with screen readers to automatically report problems with various web pages back to IBM. Volunteers can then sort through IBM’s database of accessibility issues and create their own metadata for each element. When users with screen readers return to that site, or go to other sites visited by project participants, they will simply load the latest information from the database and be able to navigate the web with greater ease.”

Neat idea, but I wonder what the social repercussions will be. Website owners have typically rebelled against third-party annotation networks, whether Third Voice or Smart Tags or any of various other efforts. One hot issue is when people see their work mashed-up without their explicit consent… another hot issue is the confirmation of metadata accuracy within such a voluntary network… I guess a third hot issue could be when trying to determine whether the HTML page you experience on one machine is the same as the same address on another machine. Lots of issues to iron out when the canonical page representation becomes mutable.

Still, this is intrinsic to the HTML model… when you can’t predict the user-agent, you’re never quite sure how others will experience the media you create. Greasemonkey is likely the posterboy example of not knowing how your HTML will be rendered. Third Voice was ultimately rejected by the webdev arbiters, but I think it will be harder to argue against this Social Accessibility Project.

No conclusion on my part… this collaboration on improving the webpages of others seems like a very delicate problem, and I can’t predict how it will be received by website designers and website owners in general. Interesting.

Handling Mozilla

If you read blogs heavily, you’ve probably seen some alarming talk come out of some (but not all!) Mozilla staffers… yesterday Slashdot picked up a blogpost with quotes about “subverting the web” and such, and that “most downloaded software” campaign still rankles. There’s some needlessly confrontational speech coming out of sections of Mozilla.

Is there an official Adobe position on this? Not that I’ve been able to determine… I’ve asked many leaders here within Adobe, and the best advice I’ve received has been “don’t roll around the muck with that, we’d rather stand up for what we believe in”.

I’m concerned because of the risk that people friendly to Adobe might respond in kind, and actually bring about a real opposition where none needs to exist.

Here’s my best understanding of the important stuff:

  • Adobe is committed to increasing digital enfranchisement, worldwide, regardless of economic status, language, culture, or position in life. The people I work with strive to provide universal publishing capability for text, media or applications. That’s the key driving factor among the people I see here, day in and day out. Adobe’s goal is to make it easier for others to speak.
  • Adobe needs to work with partners to achieve this. While one product group within Adobe may see competition in some other company’s products, at the platform level those small differences iron out. We need to work within the current digital ecology, and keep friendly relations with everyone who contributes to that ecology. Even if another group is difficult, we still want to work with them, to realize the larger longterm good.
  • Antagonistic behavior tends to get corrected eventually. There’s a very tricky question about our individual responsibility for the antisocial behavior of others, but longterm, acting-out tends to bring about its own punishment. (That’s philosophical, but a concrete example is a cardriver who stops in the middle of an intersection, ambiguously… a blast of a car horn might provide some short-term feedback, but over time someone else’s roadrage, or a police citation, will provide a better longterm solution.) Bottom line is that we as individuals don’t necessarily need to correct all bad behavior in others.

So, if you’re perturbed by some of the things you hear, there’s two things I’d ask you to do:

  1. Evaluate what they’re saying yourself… there’s always something to learn from. Don’t take it at face value, but don’t dismiss it either. If they can make a case, please do listen to it and try to understand it. (This is easier when they make their case clearly, completely yet concisely, of course. 😉
  2. Follow your own understanding. With weblogs it’s easy to get pulled offcourse into trivia, into reactionary stances. Think of what you’d like to accomplish, how you might be able to accomplish it. Go for the important stuff, and don’t get dragged down into the daily soap-opera. Do what’s important.

Why might some of the Mozilla staffers speak so antagonistically? I suspect a lot of it is to unify their base… we’ve already seen many examples where the Mozilla community rises up against Mozilla staff (Thunderbird issue, Google and privacy, XUL continuance, etc). Pointing to an enemy “out there” is an age-old unification method. Dysfunctional, true, but there’s historical precedent for diverting internal opposition this way. That’s just supposition on my part, though.

Debating these issues is hard, because so many in these discussions don’t seem to recognize their own use of mental shortcuts and labels. Attempts to define “The Open Web” have had about as much success as those for “Web 2.0”. The semantic use of assertion, multi-valued labels, and lengthy text all obscure resolution.

(By the way, I’d like to thank Mozilla staffers Gervase Markham and Robert O’Callahan for holding open dialog in the comment sections of their weblogs… it’s okay if we disagree, just so long as we can continue talking with each other. Many within Mozilla do hold open dialog, and I respect that greatly.)

Summary: The guidance I’m getting within Adobe is to let intemperate speech burn itself out. Adobe’s overall goal is to work with Mozilla, to accomplish larger goods. Don’t let little things get in the way… don’t let such a stance become a self-fulfilling prophecy. We’ve got big things yet to attain.

(Disclaimer: The above is my own personal understanding, not an official company document or group statement. I did ask my cube-neighbor Rachel Luxemburg to read it over, and she noted some text which might have been pulled out of context elsewhere, but the above is just my own point of view.)