Tag Archives: best-practices

These aren’t the droids you’re looking for URLs

August 10th, 2009

Page not found. Error 404. Those of us that build Web sites for a living have all had to deal with creating these pages. Planning for people to stumble across a URL that we don’t plan on is fairly important to the user’s experience on your site. However, many 404 pages could be done better. Today we’re going to focus on one use case – the uses when you know what the user is actually looking for  you just know you don’t have it.

Fellow Viddler and friend Kyle Slattery is reworking his tag search pages. He’s created a really nice way to filter through the various types of content on his site based on tag search results. For instance, going to a tag search for my name will result in a few photos and a few links that he tagged with my name. You can then filter those results to only show you the photos or only the links.

But what if you hack the URL and search for a tag that shows no results? At current Kyle shows an error page. However, there was no error. His Web site should never link you to a page that doesn’t return any results (though it does right now). So how did the person end up here? They may have done a search, they may have hacked the URL, or someone else linked them to this page. Which ever way they ended up on that URL – there is still no reason to show an error.

This brings me to why I call these types of URLs “These aren’t the droids you’re looking for URLs”. These are URLs where you know what the person is looking for (droids) you just don’t have any. In the example URL I use above, a tag search for my name filtered by entries, Kyle does a good job of stating that there are no entries tagged with my name. This is much better than showing an error. In the other example, of a tag search that ultimately returns no results, he should do something very similar. This isn’t an error. There is just no content on his site that is tagged with ‘asdf’.

One of the suggestions I gave to him was to do a search through his own tags and try to see if, perhaps, they’ve mistyped the tag. I’m not sure what ‘asdf’ could have been, maybe sad? Or, what if someone spells my name with two Ls? This isn’t easy to program against – but there is an easier option that he could set up. Offer a search box with the tag that they entered already filled in and show a message of “Sorry, but I have nothing tagged with ‘asdf’. Maybe you misspelled what you’re looking for?”

My site isn’t a good example of best practices here. It used to be. But I had to hack WordPress to bits to get it to work last time and I’ve since upgraded WordPress too many times for those old hacks to work. However, if you’re looking for good examples – I’m sure Kyle’s site will end up being a pretty good example soon enough.

Have you seen any really good examples of this?

Brightkite’s smart “profile not found” pages

July 25th, 2008

For the unaware, a 404 page is a page you typically see when the page you’re trying to reach simply does not exist.  In geek speak, 404 literally means “Page Not Found”.  Here is an example 404 page on my site.

My 404 page consists of a simple message asking you to contact me to let me know that something went wrong.  There are a lot of services that do much more than simply display a typical “Page Not Found” message, and today we’re going to look at Brightkite‘s “smart” “profile not found” pages.

Brightkite knows how their user’s are using the system.  An example of this was brought to my attention by my coworker Kyle Slattery.  He told me about Brightkite’s ability to detect when a user does not exist on Brightkite, but may exist on Twitter.

Brightkite and Twitter share the same prefix for username detection, the @ symbol ((Other services, like Pownce, use the ! exclamation point.)).  Since Brightkite knows that some people use their system as a geo-enabled Twitter client, like I explained the other day, sometimes you’ll find people “talking” to or about people that do not yet have a Brightkite account. Kyle gave me the example of the username @mikemangino.  That username does not exist on Brightkite but it does on Twitter.

Here is what the profile page looks like on Brightkite for this user.

Rather than show their typical 404 error page, Brightkite asks if you are looking for the same username on Twitter, and even gives you the option to invite that person over to Brightkite.  Kyle thought this was “brilliant”, and I do too.  Kyle was wrong about one thing though; Brightkite’s “profile not found” page isn’t as smart as he might have thought.  Here is what Kyle said:

“Brilliant, if you go to a user on BrightKite that exists on Twitter, but not on BK, there’s a link to invite them, not a 404.”

I don’t think Kyle actually meant to say that Brightkite detects the user on Twitter, because they definitely do not.  But I just wanted to be sure it was clearly stated.

Brightkite’s “profile not found” page is smart enough to know that people are probably on that page because they clicked an @username to a Twitter account and not a Brightkite account. And that is indeed brilliant.  It is a great example of how Brightkite is continuously showing themselves to be “in touch” with how people use their system which makes Brightkite a joy to use.

The misuse of buzzwords

October 29th, 2006

I have decided to start collecting all of my better posts from various other sources and putting them all on my personal blog. More for the search-ability than anything.

This article was first posted to Business Logs, almost exactly as you see it below, and was also featured in a magazine.

Speaking from experience, using buzzwords can actually do you more harm than good, especially when you have no idea what you’re talking about.

This topic has been documented before and I’m probably reiterating the feelings of many with this article but I was recently pushed over the edge on this whole “I used Ajax to build this product so it must be good” attitude that we’re seeing so much.

To use an analogy, let’s look at the automobile. An automobile, for most is a “device” which carries yourself and your family from point A to point B. Unless you’re an enthusiast, or a grease-monkey ( I use this term with the utmost respect because I used to be one ), your vehicle is just something you use for this service. Typically when buying a new vehicle, you’ll check consumer reports and various other resources to be sure that the car you’re buying is stable, safe, and will do well for the area you live in or the purposes you need it for. I’d say that most consumers rarely “look under the hood” and buy automobiles specifically because it uses a specific motor spec, or transmission technology. In other words, most people do not care what is in the car, just that the car performs well.

The same should be for Web applications or services. The fact that the product or service was built using Ajax, Ruby on Rails, or any other popular buzz-worthy technology should be of little consequence if your product or service is useful, usable, feature-rich, and stable.

When using a service like eBay, which millions of people use each and every day, do you think that people care what technologies eBay is using to bring its service to their customers? Not at all. On the contrary, the only thing that customers of eBay care about is uptime and stability. As long as the service works for the duration of their usage, and is always available, they could care less what is going on behind-the-scenes. I believe the same applies to my automobile analogy. Unless your car fails to start in the morning, chances are you’ll never care about what is going on under the hood.

The buzzword trap

Misusing buzzwords can also trap you. Stepping away from product-marketing using buzzwords for a moment, let’s suppose that you’ve added all of the most recent buzz words to your resume and turned it in to several companies. You could be trapped the very moment that you’re called to task on any one of those technologies.

When I said “speaking from experience” I was not talking about myself. There was a time I had a job where my boss was put in his position based solely on his use of buzzwords. Every person under him knew it, as did he. Several times he was called out on not knowing what he claimed to, and each time that happened his credibility and value was eaten away. It was not long before those that were under him, were moved into position higher than he – including me.

Market your product to those that need it

Using buzzwords to market your product is not a bad idea. It just narrows your audience so much that you’re probably missing out on the big picture. By defining your product in simple, easy-to-understand terms, you’ll capture the entire audience. You won’t leave anyone out in the cold, wondering what your service does. By marketing in this manner you will end up marketing your product to those that need it not just to those that think its “cool” that you’ve used a specific technology to pull it off.

This isn’t to say that some products are specifically built for programmers and the best bit of marketing you might have for your product is to drop buzzwords. For those situations I suppose its fitting. However, if the only thing your product has going for it is the fact that you’ve used Ajax, don’t expect it to get much attention after the initial buzz-burst.