<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cdevroe.com &#187; 404</title>
	<atom:link href="http://cdevroe.com/tag/404/feed/" rel="self" type="application/rss+xml" />
	<link>http://cdevroe.com</link>
	<description>by Colin Devroe</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:49:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>	<atom:link rel='hub' href='http://cdevroe.com/?pushpress=hub'/>
<cloud domain='cdevroe.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>These aren&#8217;t the droids you&#8217;re looking for URLs</title>
		<link>http://cdevroe.com/notes/no-droids-here/</link>
		<comments>http://cdevroe.com/notes/no-droids-here/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 14:45:29 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[best-practices]]></category>
		<category><![CDATA[error pages]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[urls]]></category>
		<category><![CDATA[web site]]></category>
		<category><![CDATA[web-development]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=2668</guid>
		<description><![CDATA[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&#8217;t plan on is fairly important to the user&#8217;s experience on your site. However, many 404 pages could be done better. [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;t plan on is fairly important to the user&#8217;s experience on your site. However, many 404 pages could be done better. Today we&#8217;re going to focus on one use case &#8211; the uses when you know what the user is actually looking for Â you just know you don&#8217;t have it.</p>
<p>Fellow Viddler and friend <a href="http://kyleslattery.com">Kyle Slattery</a> is reworking his tag search pages. He&#8217;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 href="http://kyleslattery.com/notebook/tags/colindevroe">a tag search for my name</a> will result in a few photos and a few links that he tagged with my name. You can then filter those results to <a href="http://kyleslattery.com/notebook/photos/tags/colindevroe">only show you the photos</a> or <a href="http://kyleslattery.com/notebook/links/tags/colindevroe">only the links</a>.</p>
<p>But what if you hack the URL and <a href="http://kyleslattery.com/notebook/links/tags/asdf">search for a tag that shows no results</a>? At current Kyle shows an error page. However, there was no error. His Web site should never link you to a page that doesn&#8217;t return any results (<a href="http://kyleslattery.com/notebook/entries/tags/colindevroe">though it does right now</a>). 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 &#8211; there is still no reason to show an error.</p>
<p>This brings me to why I call these types of URLs &#8220;These aren&#8217;t the droids you&#8217;re looking for URLs&#8221;. These are URLs where you know what the person is looking for (droids) you just don&#8217;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&#8217;t an error. There is just no content on his site that is tagged with &#8216;asdf&#8217;.</p>
<p>One of the suggestions I gave to him was to do a search through his own tags and try to see if, perhaps, they&#8217;ve mistyped the tag. I&#8217;m not sure what &#8216;asdf&#8217; could have been, maybe sad? Or, what if someone spells my name with two Ls? This isn&#8217;t easy to program against &#8211; 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 &#8220;Sorry, but I have nothing tagged with &#8216;asdf&#8217;. Maybe you misspelled what you&#8217;re looking for?&#8221;</p>
<p>My site isn&#8217;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&#8217;ve since upgraded WordPress too many times for those old hacks to work. However, if you&#8217;re looking for good examples &#8211; I&#8217;m sure Kyle&#8217;s site will end up being a pretty good example soon enough.</p>
<p>Have you seen any really good examples of this?</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/no-droids-here/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Brightkite&#8217;s smart &#8220;profile not found&#8221; pages</title>
		<link>http://cdevroe.com/notes/brightkite-404/</link>
		<comments>http://cdevroe.com/notes/brightkite-404/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:21:33 +0000</pubDate>
		<dc:creator>Colin Devroe</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[best-practices]]></category>
		<category><![CDATA[brightkite]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[kyle slattery]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://cdevroe.com/?p=933</guid>
		<description><![CDATA[Brightkite has a smart "profile not found" page.]]></description>
			<content:encoded><![CDATA[<p>For the unaware, a 404 page is a page you typically see when the page you&#8217;re trying to reach simply does not exist. Â In geek speak, 404 literally means &#8220;Page Not Found&#8221;. Â Here is <a href="http://cdevroe.com/not-a-page/">an example 404 page on my site</a>.</p>
<p>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 &#8220;Page Not Found&#8221; message, and today we&#8217;re going to look at <a href="http://brightkite.com/">Brightkite</a>&#8216;s &#8220;smart&#8221; &#8220;profile not found&#8221; pages.</p>
<p>Brightkite knows how their user&#8217;s are using the system. Â An example of this was brought to my attention by my coworker <a href="http://kyleslattery.com/">Kyle Slattery</a>. Â He told me about Brightkite&#8217;s ability to detect when a user does not exist on Brightkite, but may exist on <a href="http://twitter.com/">Twitter</a>.</p>
<p>Brightkite and Twitter share the same prefix for username detection, the @ symbol ((Other services, like <a href="http://pownce.com/">Pownce</a>, use the ! exclamation point.)). Â Since Brightkite knows that some people use their system as a geo-enabled Twitter client, like <a href="http://cdevroe.com/notes/fitting-brightkite/">I explained the other day</a>, sometimes you&#8217;ll find people &#8220;talking&#8221; to or about people that do not yet have a Brightkite account. Kyle gave me the example of the username <a href="http://brightkite.com/people/mikemangino">@mikemangino</a>. Â That username does not exist on Brightkite but <a href="http://twitter.com/mikemangino">it does on Twitter</a>.</p>
<p>Here is what the profile page looks like on Brightkite for this user.</p>
<p><img title="Brightkite - Not Found" src="http://cdevroe.com/wp-content/mobile/photos/2008/07/person-not-found.jpg" alt="" width="540" /></p>
<p>Rather than show <a href="http://brightkite.com/not-a-page">their typical 404 error page</a>, 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 &#8220;brilliant&#8221;, and I do too. Â Kyle was wrong about one thing though; Brightkite&#8217;s &#8220;profile not found&#8221; page isn&#8217;t as smart as he might have thought. Â Here is <a href="http://brightkite.com/objects/30895ee97e2aad51f2ce01bd59bdaa4972b8e12c">what Kyle said</a>:</p>
<blockquote><p>&#8220;Brilliant, if you go to a user on BrightKite that exists on Twitter, but not on BK, there&#8217;s a link to invite them, not a 404.&#8221;</p></blockquote>
<p>I don&#8217;t think Kyle actually meant to say that Brightkite <em>detects</em> the user on Twitter, because <a href="http://brightkite.com/people/notaperson">they definitely do not</a>. Â But I just wanted to be sure it was clearly stated.</p>
<p>Brightkite&#8217;s &#8220;profile not found&#8221; 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 &#8220;in touch&#8221; with how people use their system which makes Brightkite a joy to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://cdevroe.com/notes/brightkite-404/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

