Declaring Canonical URLs in HTTP Headers

Google recently posted about its new support for recognizing canonical URLs for page content.

A canonical URL is simply the “official” URL for accessing the item in question. Google explains it thus:

If your site has identical or vastly similar content that’s accessible through multiple URLs, [specifying a canonical URL] provides you with more control over the URL returned in search results. It also helps to make sure that properties such as link popularity are consolidated to your preferred version.

Canonical URLs become useful in sites like Amazon or YouTube, where the same product or video page may be accessed by a number of different URLs.

Consider, for example, the following two Amazon URLs:

Both point to the same Acer laptop product page on Amazon. I found the second URL from Amazon’s Acer laptops page, and you can bet that the URL contains information about where the user found the link, and more.

Thanks to canonical URLs, however, every link Google (as well as Ask, Microsoft Live Search, and Yahoo!) finds around the web that winds up landing on this page will all consolidate under a single URL, which will—as post linked above explains—bolster the page’s ranking in search results placement.

Using our example above, all Amazon would need to do to take advantage of this is to add the following special tag in the <head> of the product page:


So canonical URLs super simple to implement are clearly useful for SEO.

Another context in which I believe they’d be useful is the URLs of asset files (images, videos, PDFs, etc) and RESTful web services. Unfortunately, these are all cases in which server’s response data will not be HTML, in which case the solution shown above simply cannot be used.

I believe, however, that I have stumbled upon a solution worth borrowing to solve this problem.

Earlier today I was reading Robert Spychala’s proposals for URL auto-discovery, which proposes a means to include URL auto-discovery information in HTTP response headers. It struck me immediately as a great idea which can directly translate to a solution for allowing non-HTML data to specify a canonical URL.

Specifically, the canonical URL header data for the Acer laptop example from above would look like this:

Link: ; rel=canonical

And the canonical URL of its primary photo:

Link: ; rel=canonical

Since Google, Yahoo!, and the rest all index images, videos, and other non-HTML resources, I believe that supporting canonical URL declaration in the HTTP response headers is an idea worth seriously considering for all the same reasons it makes brilliant sense for HTML documents.

Complex

Another painfully insightful piece by John Gruber.

If there’s a formula to Apple’s success over the past 10 years, that’s it. Start with something simple and build it, grow it, improve it, steadily over time. Evolve it.

I wish this were something I wrote for Uncarved.

Stop Installing Windows

My brother and I had been suffering from a chronic affliction for roughly the last decade. You see, every year or so, we’d have to reinstall Windows on the PCs in our father’s office. The reasons for the re-installation ranged from viruses, to a hosed registry, and even hard drive failures; the poor man’s PCs have seen it all.

It was a cycle that looked something like this:

01. the computer starts behaving strangely (random crashes of applications or the system, mysterious prolonged lock-ups, etc)
02. my brother or I get called in to diagnose
03. we discover the problem
04. we attempt to fix
05. sometimes the problem is resolved, but other times it’s necessary to reinstall
06. we attempt to backup the most recent data (if it’s not somehow corrupted), or use the latest weekly backup
07. boot the Windows installation disk
08. clear the hard drive
09. install Windows
10. activate our copy of Windows
11. install anti-virus software
12. install the latest Windows Service Packs, as well as any other security updates
13. install the necessary software
14. restore the backed up data files
15. wait for the cycle to start again

Some folks reading this far might argue that we should have moved him off Windows a long time ago, and saved ourselves the trouble. Why not just give him a Mac or install Linux and put the worries aside?

Unfortunately, it’s not that simple.

He needs to run Windows because he runs his business on an accounting software package called PeachTree. The fact that alternatives exist is immaterial; all the business data is already stored in there, Dad and his book keepers know how to use it, and nobody involved feels like learning some other convoluted accounting software.

Windows simply cannot be removed from the equation.

Unfortunately, we were trapped in what seemed like an interminable cycle. It had practically reached the point where my brother and I developed the capability to do the job drawing purely on muscle memory to lead us through.

But muscle-memory or not, installation demands time.

Even after the Windows installer itself would do its job, we would then have to download and apply the most recent Service Packs, install his software, and reconfigure his desktop so that everything is “in the right place.”

In our case, the reinstallation process would typically consume about a full 8-hour workday, and occasionally more if there are network connectivity issues or other mishaps. Naturally, since both my brother and I have day to day responsibilities of our own, the effort would always wind up consuming one of our weekend or holiday days.

It happened again in February of 2009… specifically, on my brother’s birthday weekend. My father took the family out for a birthday brunch, after which my brother and I accompanied him to his office to do the dirty work.

But this time, a new strategy occurred to me: surrender.

I decided to accept the eventuality that Windows will, in time, shit the bed on us. This has all happened before, and it will all happen again. It may be some sort of malware, or just a badly-written (but perfectly legitimate) installer that hoses your registry.

Once I’d accepted this, and the denial had melted away, my goals changed from protecting Windows from malware to working out how to make the restore suck less.

Since we’d managed to get them in the weekly practice of making weekly backups of their business data, the worst part about restoring their computers was simply investing the time it takes wait out all the damned progress bars of the process. Installer after installer would run, many needing an attentive human present to click “OK” or to accept license agreements.

The faster we could get from empty hard drive to functional Windows system, and the less attentive effort it required of anyone, the better everyone’s life would become ever more.

The goal was to reduce the restore process to a simple file copy.

And with this thought, I suddenly knew what had to be done: all we needed was a bunch of free software (and a RAM upgrade for one of the computers), and we could install and configure Windows—and all of his software—for the last time, ever.

We erased the hard drives of his PCs and installed Ubuntu Linux on all of them. We then installed Sun’s free and open source virtualization software, called VirtualBox, and carried out our routine installation and configuration of Windows — and all the necessary software — into a virtual machine.

We added free DropBox account service to the picture, just to bulletproof the backup strategy for his business data.

Once everything was installed and properly configured, we stopped the VirtualBox virtual machine and created a master backup copy of the new virtual machine’s hard drive image file. This master copy of the hard drive image now contained a fully-configured, pristine version of Windows.

Moving forward, a full Windows restoration process for the accounting PC can be conducted over a lunch, instead of the course of a full workday.

And because Windows is running in a virtual machine, we’ve even managed to reduce the amount of time that would be required to replace the entire machine: simply wipe its hard drive, install Linux on it, copy over the Windows virtual machine’s hard drive image, and we’re up and running with all of our user settings and latest business data in place. And because Windows only ever “sees” the virtualized “hardware” presented by VirtualBox, it won’t require a reactivation.

I should finally note that the accounting machine is used as a fulltime Windows machine. That is, from the moment of startup, VirtualBox is launched, and the Windows desktop is used in full-screen mode, with nary a though given to the Linux environment, until they’re ready to shut the machine down.

So from now on, when Windows does eventually punk out in one of its many—and, at times, even innovative—ways, we’ll be ready.

Synergy Excitement Addendum

In a Palm press release dated 8 January 2009, the company’s president and CEO, Ed Colligan, said:

webOS and Pre bring game-changing simplicity to an increasingly mobile world by dissolving the barriers that surround your information […] to bring you what you care about most - your people, your time, and your information - in the easiest and most seamless way.

Now there’s a user experience target.

Every time a design decision of some sort needs to be made, the product team can ask themselves if a particular solution helps (or hinders) the cause.

Synergy will directly bear the burden of this mission statement.

It’s very exciting, but the stakes are high for this technology. This depth of integration is very tricky to accomplish, and even more difficult to make seamless. I don’t envy the folks leading the Synergy team; almost everything is riding on the quality of their delivery.

Good luck, gang.

Synergy: Pre's Ace in the Hole

I’ve been eagerly following news about Palm’s upcoming Pre smartphone. Even though I am not presently planning to pick one up for myself (for starters, there’s no way in hell I’m signing up for Sprint service), I’m quite excited about this new contender in the smartphone market.

This is the first product coming to market that will be competing with the design of the iPhone.

The rest—including the T-Mobile G1, featuring Google’s Android platform, the BlackBerry Storm, and any number of other handsets from Nokia to LG—are merely “Hey, I’ve got a touch-screen, too! Buy me!” products.

I’ve frankly chosen to look past the argument the Android platform represents something much larger, and with deeper and brighter promise than anything merely available in the G1. The future promises of a technology or platform is not a matter I’m going to mind when considering what the current incarnations of the technology offer. Frankly, the only people even looking at that platform are developers and gadget geeks. By and large, consumer reception to the G1 has been luke-warm, driven by consumers that don’t like the iPhone or love Google.

The Pre, on the other hand, demonstrates an effort to replicate implementation details that work from the iPhone, and a thoughtful attempt to improve upon those things in a smart way.

The three things that have me most excited are:

1. the extensions and enhancements to the gestural UI implemented for the device,
2. the “deck” multitasking metaphor, and
2. Synergy, the Pre’s framework for interconnecting the all your data.

Synergy is the most exciting part. In fact, I believe that it’s the one feature that should most concern Apple, provided—of course—that Palm actually pulls it off properly.

But what exactly is Synergy?

Ars Technica published an article describing it back in January. From the article:

Users just make changes to their data (contacts, calendar, mail, etc.), and Palm’s webOS handles committing those changes to whatever canonical data source it is accessing in the cloud. And herein lies the most important difference between the webOS and Apple’s iPhone OS: the iPhone was originally designed under the assumption that the canonical source of a user’s data (contacts, calendar, music, tasks, etc.) is [their computer]. Palms webOS, in contrast, presumes that cloud-based services are the canonical source for your data…

Looking at someone’s contact information in the address book, you might see their phone number, three email addresses, an AIM screen name, Facebook profile URL.

Although you might largely be able to see this information on someone’s contact info on your iPhone, the information in the Pre’s address book has likely been pulled together from a number of different sources on the network. Your contacts were loaded from your GMail address book, Facebook friends list, and AIM buddy list. The key is that Synergy needs to be smart enough about figuring out who’s who, in order to properly merge the details of your friend, Kevin Smith, who appears both in your GMail adress book and Facebook friends list into a single entry in your address book.

But the idea behind Synergy is that it’s access to this data is meant to be bidirectional. That is, once you update Kevin’s email address on your Pre’s address book, Synergy would then update his address on GMail, etc.

But Synergy isn’t just for contacts.

It can manage events, too. Check out the demo in this video from Mobile Crunch, wherein the presenter is showing off and talking about the Fandango app in development. Like the website, the app’s purpose is to allow people to buy movie tickets to movies they’d like to see.

The statement that floors me occurs at 00:47:

One of the things they did interesting on it is: once you purchase a ticket, it’ll actually make a meeting request for you. So, it’ll go into [the] calendar that I have a ticket to go to the show at this time, and I can actually invite other people with that…

And you can bet that if Synergy is pulling your calendar data from your Google Calendar, the new event will show up your Google Calendar next time you login from your computer. Can you picture how this could work for concert tickets? OpenTable reservations? Travel itineraries?

Now that’s some serious wu wei.

If Palm gets Synergy right (and assuming they don’t bomb on the hardware or battery life), their Pre is going to give Apple’s iPhone a serious run for its money.

The Cram

In contrast with the spirit of yesterday’s link to Designing Convertbots application comes news of the confirmed continuation of effort to bring Microsoft Office to the iPhone.

Absent an iPhone OS device with a significantly larger screen, I can’t imagine any purpose to cramming the UI of Word (or Excel!) into as space with the iPhone’s screen real estate. If Microsoft had any track record for pulling off surprisingly excellent (or even simple and focused) UI solutions, I’d leave room for a verdict.

Who knows? Maybe they’ll actually impress this time.

Design to Foster Wu Wei

Wu Wei is a Taoist concept that means “act without doing,” or “action without effort.” It is an ideal towards which the Taoist aims in life.

One of the hallmarks of great design—whether in a newspaper layout, the construction of a utility knife, or a human-computer interface (HCI)—is its ability to recede, or “get out of the way.” The kernel of this idea is born from the notion that the layperson is typically most likely to take prolonged specific notice of design when it becomes an impediment; when the newspaper’s layout is too cluttered to follow the flow of an article, or using the utility knife’s scissors requires its serrated blade to awkwardly dangle out at 90º.

When a design presents no such distractions, its end-consumer is able to go about his task smoothly. In these circumstances, when the end-consumer becomes immersed in his task, the design of the item they are using is said to “recede.”

The more its design recedes, the more efficient it can be understood to be.

Successful design allows its end-consumer to take action with minimal effort, or—as Kathy Sierra said on the Creating Passionate Users blog back in 2006—to “help [its] users kick ass.”

And so I’ll say now that the official goal of any design should be to foster wu wei.

The Macheist Controversy

There has recently been quite a bit of controversy over Macheist, arguing that it’s unfair to the participating developers, largely due to the “steep discount“ at which these (largely great) apps are being sold. Some other arguments are simply in the sensationalist vein.

Agreed Benefits

Even the critics of Macheist will concede to a number of upsides to participation, including:

0. Macheist is clearly a great marketing opportunity for each developer’s product,
0. any opportunity at growing their product’s user base builds upon its chances of retaining customers (and thereby capitalizing on upgrade fees for major versions later), and
0. participation with one product stands to produce sales gains on other products made by that developer

Naturally, these potential upsides are by no means guaranteed; if a product doesn’t compete well on its own merits, then its developer(s) will likely not capitalize on upgrade sales. But then Macheist can’t offer to make anyone’s products automagically good; this remains the responsibility of the developers, themselves.

Argued Problems

The basic arguments the critics have boil down to:

0. Macheist sells their apps at a [very] steep discount to their normal sale price,
0. this stands to undermine their perceived market value, and
0. general participation in Macheist may work to undermine the generally perceived value of shareware apps

As such, the critics argue that the developers may well be sacrificing more than they stand to gain in return for their participation.

These arguments, however, are missing a critically important point.

Read More

50 Years of Strunk & White

Arguably the best linguistic “style guide” ever written for contemporary English. Doubly-relevant to Uncarved, since it both informs the way I aim to write, and serves as a canon for how sentences and paragraphs can most optimally be constructed.

Vigorous writing is concise. A sentence should contain no unnecessary words, a paragraph no unnecessary sentences, for the same reason that a drawing should have no unnecessary lines and a machine no unnecessary parts.
William Strunk Jr., The Elements of Style, 1918

There is a new hardcover edition to commemorate the anniversary. [via Daring Fireball]