<?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>Everything In Between &#187; Usability</title>
	<atom:link href="http://maymay.net/blog/category/web-design/usability/feed/" rel="self" type="application/rss+xml" />
	<link>http://maymay.net/blog</link>
	<description>The brutally honest, first-person account of Meitar Moscovitz&#039;s life.</description>
	<lastBuildDate>Thu, 19 Jan 2012 08:54:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How web designers can do their own HTML/CSS: Read Foundation Website Creation</title>
		<link>http://maymay.net/blog/2008/07/21/how-web-designers-can-do-their-own-htmlcss/</link>
		<comments>http://maymay.net/blog/2008/07/21/how-web-designers-can-do-their-own-htmlcss/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 14:22:19 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Crosspost]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hypertext Copywriting]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Maymay Media]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech/Computing]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Accessibility]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Writing and blogging]]></category>

		<guid isPermaLink="false">http://maymay.net/blog/?p=476</guid>
		<description><![CDATA[Last month, 37signals published a short but sweet post about why web designers should do the HTML/CSS implementations for their own designs. The bottom line is, as we&#8217;ve all been saying for a long time now, that the Web is not the same kind of medium as other mediums like print. It is a fundamentally [...]]]></description>
			<content:encoded><![CDATA[<p>Last month, 37signals published a short but sweet post about why <a href="//www.37signals.com/svn/posts/1066-web-designers-should-do-their-own-htmlcss">web designers should do the <acronym title="HyperText Markup Language">HTML</acronym>/CSS implementations for their own designs</a>. The bottom line is, as we&#8217;ve all been saying for a long time now, that the Web is not the same kind of medium as other mediums like print. It is a fundamentally different kind of canvas than most web designers are used to using. As a result, if you as a web designer are not intimately familiar with it, you&#8217;re not going to do great work.</p>
<blockquote cite="//www.37signals.com/svn/posts/1066-web-designers-should-do-their-own-htmlcss"><p>designing for the web is a lot less about making something dazzle and a lot more about making it work. The design decisions that matter pertain directly to the constraints of the materials. What form elements to use. What font sizes. What composition. What flow. Those decisions are poorly made at an arm’s length.</p>
<p>I’ve worked with many web designers in the past who only did abstractions and then handed over pictures to be chopped and implemented by “<acronym title="HyperText Markup Language">HTML</acronym> monkeys”. It never really gelled well. The things that got strong attention were all the things that Photoshop did well. Imagery, curvy lines, and the frame. All the <em>around</em> stuff, never the <em>it</em> stuff.</p></blockquote>
<p>In other words, to do great web design you have to design <em>in</em> the Web, not in some other medium <em>for</em> the Web. I mean, serious magazine firm employs designers who don&#8217;t understand how to work with page layout programs like InDesign. Why, then, do so many web design agencies employ designers who don&#8217;t know how to work with web technologies, or even how to use programs like Dreamweaver? It doesn&#8217;t really make any sense, and it&#8217;s no wonder that the resulting implementation is rarely top-notch work.</p>
<p>But if you&#8217;re a graphic designer who doesn&#8217;t know much about Web technologies, what are you to do? Well, as a first step, I think you should pick up my new book, <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FFoundation-Website-Creation-XHTML-JavaScript%2Fdp%2F1430209917%2F&#038;tag=maymaydotnet-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325">Foundation Website Creation</a><img src="http://www.assoc-amazon.com/e/ir?t=maymaydotnet-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. It&#8217;s available from all good booksellers (and probably some crappy ones) as of today. The book is targeted towards all manner of web professionals, including graphic designers and website producers, who want to learn more about what it takes to actually implement a site.</p>
<p>If I do say so myself, the chapters on <acronym title="eXtensible HyperText Markup Language; HTML reformulated as XML">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym> are exceptionally thorough. The book <em>doesn&#8217;t</em> try to turn you into an exceptional programmer. Instead, it will explain the foundational concepts you need to know to <em>understand how <acronym title="eXtensible HyperText Markup Language; HTML reformulated as XML">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym> actually work</em>, and in so doing will enable you to use the tools you already know to solve problems and get things done.</p>
<p>I think this book will be an excellent starting point for lots of designers and other web professionals. However, it is not going to take you from zero to hero—no book can. That&#8217;s why I recommend that, after you read <cite>Foundation Website Creation</cite> and have a solid grasp of what the technology can do for you and how it actually does it, you next take a look at these excellent books:</p>
<ul>
<li><a href="http://domscripting.com/book/"><acronym title="Document Object Model">DOM</acronym> Scripting by Jeremy Keith</a> — if you&#8217;re a designer that needs to add a behavioral layer with JavaScript and Ajax to your pages, you need to read this book next.</li>
<li><a href="http://www.amazon.com/Mastering-Dreamweaver-Voices-That-Matter/dp/0321508971">Mastering <acronym title="Cascading Style Sheets">CSS</acronym> with Dreamweaver CS3</a> &#8211; if you&#8217;re familiar with Dreamweaver and want to keep using it to create standards-based web sites, then I recommend you follow <cite>Foundation Website Creation</cite> with this book by <a href="//w3conversions.com/">Stephanie Sullivan</a> and Greg Rewis to take your Dreamweaver skills to the next level.</li>
</ul>
<p>As always, most of all, have fun. Because if you&#8217;re not having fun, you&#8217;re not going to make good web sites no matter what you know.</p>
<p><strong>Note:</strong> As of this writing, the book listing on Amazon still publishes the wrong author list, which is very frustrating but out of my hands. At least the image of our book&#8217;s front cover lists the correct authors.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2008/07/21/how-web-designers-can-do-their-own-htmlcss/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>I&#8217;m getting a book published and it&#8217;s called Foundation Website Creation</title>
		<link>http://maymay.net/blog/2008/05/19/im-getting-a-book-published-and-its-called-foundation-web-standards/</link>
		<comments>http://maymay.net/blog/2008/05/19/im-getting-a-book-published-and-its-called-foundation-web-standards/#comments</comments>
		<pubDate>Mon, 19 May 2008 13:50:36 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Crosspost]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Maybe Maimed]]></category>
		<category><![CDATA[Maymay Media]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech/Computing]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Accessibility]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Writing and blogging]]></category>

		<guid isPermaLink="false">http://maymay.net/blog/?p=436</guid>
		<description><![CDATA[For those who have been wondering what is keeping me so busy these days, the answer is that I&#8217;m working on the final stages of a book that is getting published as one of three co-authors. Not only am contributing three chapters (the technical chapters on (X)HTML and CSS, specifically), but I am also technically [...]]]></description>
			<content:encoded><![CDATA[<p>For those who have been wondering what is keeping me so busy these days, the answer is that I&#8217;m working on the final stages of a book that is getting published as one of three co-authors. Not only am contributing three chapters (the technical chapters on (X)<acronym title="HyperText Markup Language">HTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym>, specifically), but I am also technically reviewing the entire book.</p>
<p>My co-authors on the book, called <a href="//www.friendsofed.com/book.html?isbn=9781430209911"><cite><del datetime="2008-06-15T10:43:08+00:00">Foundation Web Standards</del> <ins datetime="2008-06-15T10:43:08+00:00">Foundation Website Creation</ins></cite></a> (you can <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FFoundation-Website-Creation-XHTML-JavaScript%2Fdp%2F1430209917%2F&#038;tag=maymaydotnet-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" title="Buy on Amazon.com.">pre-order now</a>) and published by <a href="//friendsofed.com/">Friends of ED</a>, an <a href="//apress.com/">Apress</a> company, are <a href="//industryinteractive.net/">Jonathan Lane of Industry Interactive, Inc.</a> and <a href="//www.sanbeiji.com/">Joe Lewis, who blogs at Sanbeiji.com</a>. I&#8217;m not going to say much more until after the book is released in late July.</p>
<p>For the eager, here&#8217;s the description of the book posted on the Friends of ED website:</p>
<blockquote cite="//www.friendsofed.com/book.html?isbn=9781430209911"><p>Foundation Website Creation explores the process of constructing a web site from start to finish. There is more to the process than just knowing <acronym title="HyperText Markup Language">HTML</acronym>! Designers and developers must follow a proper process to flush out goals and objectives and determine requirements both prior to, and during project development.</p>
<p>Large Web projects are rarely completed by a single person. Producers, project managers, designers, developers, writers, and editors all play critical parts in a project&#8217;s evolution. This book provides an overview of the entire process, and also shows project development from the perspective of these different roles. It introduces the key concepts and duties performed by every member of such a team, and gives you the skills necessary to tackle projects like a professional.</p></blockquote>
<p>It&#8217;s quite exciting getting a book out, and it&#8217;s quite a bit more work than I&#8217;d have ever originally thought. That being said, it&#8217;s extremely rewarding. There&#8217;s a lot more work I need to do on it between now and the time it gets released to publishing, so, well…back to work I go.</p>
<p>Now you all know where I&#8217;ve been spending my time writing.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2008/05/19/im-getting-a-book-published-and-its-called-foundation-web-standards/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>TEDTalks: Inspirational, incredible, and moving ideas</title>
		<link>http://maymay.net/blog/2006/08/17/tedtalks-inspirational-incredible-and-moving-ideas/</link>
		<comments>http://maymay.net/blog/2006/08/17/tedtalks-inspirational-incredible-and-moving-ideas/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 07:52:39 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Apple/Macintosh]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Human-Computer Interaction]]></category>
		<category><![CDATA[Information & Communication]]></category>
		<category><![CDATA[Tech/Computing]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://maymay.net/blog/archives/2006/08/17/tedtalks-inspirational-incredible-and-moving-ideas/</guid>
		<description><![CDATA[For those not yet familiar with it, TED is an invitation-only annual conference of some of the brightest and most talented individuals in all fields of Technology, Entertainment, and Design. For the first time (in February 2006), the presentations were recorded and broadcast to the world once per week at the TED.com web site. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>For those not yet familiar with it, TED is an invitation-only annual conference of some of the brightest and most talented individuals in all fields of Technology, Entertainment, and Design. For the first time (in February 2006), the presentations were recorded and broadcast to the world once per week at the <a href="//ted.com/tedtalks/">TED.com web site</a>.</p>
<p>I&#8217;ve just spent the past three and a half hours at the site watching the presentations and I&#8217;ll have to blame them for making me sleepy at work tomorrow. Nevertheless, they are some of the most compelling and fascinating presentations I have ever seen in my life. I highly, highly recommend that you spend a few moments to check them out.</p>
<p>For those interested in Human-Computer Interface design, you absolutely must view Jeff Han&#8217;s talk on <a href="http://www.ted.com/tedtalks/tedtalksplayer.cfm?key=j_han">an &ldquo;interface-less&rdquo; touch-screen-like display</a> which will very likely obsolete the traditional mouse and keyboard.</p>
<p>For those interested in global health and economics, you absolutely must view Hans Rosling&#8217;s talk on the <a href="http://www.ted.com/tedtalks/tedtalksplayer.cfm?key=hans_rosling">myths of the third world</a>.</p>
<p>And for those who just want more proof how much Apple Computer rocks our socks, you must view David Pogue&#8217;s excellent <a href="http://ted.com/tedtalks/tedtalksplayer.cfm?key=david_pogue">presentation on the woes caused by software frustration</a> (and it&#8217;s partially set to music).</p>
<p>My personal favorite (so far) was Sir Ken Robinson&#8217;s almost stand-up comedy approach to <a href="http://ted.com/tedtalks/tedtalksplayer.cfm?key=ken_robinson">explaining to us why the current state of the world&#8217;d public education systems will not serve us</a> for our future.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2006/08/17/tedtalks-inspirational-incredible-and-moving-ideas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Amazon Guide: So You&#8217;d Like To Become a Front-End Web Design Guru</title>
		<link>http://maymay.net/blog/2005/12/23/amazon-guide-become-a-web-design-guru/</link>
		<comments>http://maymay.net/blog/2005/12/23/amazon-guide-become-a-web-design-guru/#comments</comments>
		<pubDate>Fri, 23 Dec 2005 16:13:34 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Business & E-Commerce]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Accessibility]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://maymay.net/blog/?p=291</guid>
		<description><![CDATA[I've made what I think is a rather nice Amazon Guide. Laugh if you must, but I wanted to see what creating one would be like. Naturally, I decided to write a brief guide to becoming a front-end web design guru.]]></description>
			<content:encoded><![CDATA[<p>With a bit of free time over breakfast, I was fiddling with my personal site and looking over my bookshelf. I decided to make an Amazon guide to &ldquo;becoming a front-end web design guru&rdquo; based on many of the books in my ever-expanding collection. So without further ado, here it is, my guide to becoming a front-end web-design guru, featuring the most varied and useful set of 20 books I have ever read:</p>
<h3 style="clear:left;">The Grim Truth</h3>
<p>Let&#8217;s face it. These days, any Joe-shmo with Microsoft FrontPage can call himself a web developer or designer. But web surfers can tell the difference between a professionally designed site and a site designed by your dentist&#8217;s brother&#8217;s roommate&#8217;s best friend&#8217;s boyfriend. To be professional, you have to design with web standards in mind, focusing on usability and accessibility. And it has to look good &mdash; really good.</p>
<h3 style="clear:left;">The Tools You&#8217;ll Use</h3>
<p>First, you&#8217;re going to need to stock your toolbox. Start with the basics. Learn how to manipulate page layouts with (X)<acronym title="HyperText Markup Language">HTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym> by reading <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=073571245X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/073571245X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Eric Meyer on CSS: Mastering the Language of Web Design</a>. Occasionally, you&#8217;ll need a dash of <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0735711674%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0735711674%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">JavaScript Design</a>. Finally, learn what works best by <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=156205810X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/156205810X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Designing Web Usability : The Practice of Simplicity</a>.</p>
<ul>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=073571245X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/073571245X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/073571245X.01._SCMZZZZZZZ_.jpg" alt="Eric Meyer on CSS: Mastering the Language of Web Design" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=156205810X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/156205810X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/156205810X.01.IN07._SCMZZZZZZZ_.jpg" alt="Designing Web Usability : The Practice of Simplicity" /></a></li>
</ul>
<h3 style="clear:left;">Building It Right</h3>
<p><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321303474%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321303474%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">The Zen of <acronym title="Cascading Style Sheets">CSS</acronym> Design : Visual Enlightenment for the Web (Voices That Matter)</a> is possible for you! Building professional web sites means <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=073571150X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/073571150X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Building Accessible Websites (With <acronym title="Compact Disc">CD</acronym>-<acronym title="Read Only Memory">ROM</acronym>)</a>. No matter how good your design may be, it won&#8217;t mean anything if it doesn&#8217;t load quickly, so don&#8217;t forget to always <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0735713243%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0735713243%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Speed Up Your Site: Web Site Optimization</a>. Then put it all together to create <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321346939%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321346939%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Bulletproof Web Design : Improving flexibility and protecting against worst-case scenarios with <acronym title="eXtensible HyperText Markup Language; HTML reformulated as XML">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym></a>. But you&#8217;re not done yet! Help people find your site by giving it <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0735712565%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0735712565%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Search Engine Visibility</a>.</p>
<ul>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=073571150X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/073571150X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/073571150X.01._SCMZZZZZZZ_.jpg" alt="Building Accessible Websites (With CD-ROM)" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0735713243%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0735713243%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/0735713243.01._SCMZZZZZZZ_.jpg" alt="Speed Up Your Site: Web Site Optimization" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321303474%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321303474%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/0321303474.01._SCMZZZZZZZ_.jpg" alt="The Zen of CSS Design : Visual Enlightenment for the Web (Voices That Matter)" /></a></li>
</ul>
<h3 style="clear:left;">Really Good References</h3>
<p>While you&#8217;re doing all these things, don&#8217;t be afraid to let curiosity get the better of you. Expand upon the projects in the previous books by doing things differently, doing things your own way. As you tinker, you&#8217;ll come across situations in which you don&#8217;t know how to do something. For those situations, use the following must-have references to quickly look up information about a particular technology.</p>
<p>For (X)HTML: <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=059600382X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/059600382X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><acronym title="HyperText Markup Language">HTML</acronym> &#038; XHTML: The Definitive Guide, Fifth Edition</a><br />
For CSS: <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0596005253%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0596005253%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Cascading Style Sheets: The Definitive Guide, 2nd Edition</a> and <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0596005768%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0596005768%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><acronym title="Cascading Style Sheets">CSS</acronym> Cookbook</a><br />
For JavaScript: <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1565923928%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1565923928%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">JavaScript Definitive Guide</a></p>
<ul>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=059600382X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/059600382X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/059600382X.01._SCMZZZZZZZ_.jpg" alt="HTML &#038; XHTML: The Definitive Guide, Fifth Edition" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0596005253%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0596005253%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/0596005253.01._SCMZZZZZZZ_.jpg" alt="Cascading Style Sheets: The Definitive Guide, 2nd Edition" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0596005768%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0596005768%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/0596005768.01._SCMZZZZZZZ_.jpg" alt="CSS Cookbook" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1565923928%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1565923928%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/1565923928.01._SCMZZZZZZZ_.jpg" alt="JavaScript Definitive Guide" /></a></li>
</ul>
<h3 style="clear:left;">Helpful Bonus Books</h3>
<p>Read <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0975240269%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0975240269%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">The JavaScript Anthology : 101 Essential Tips, Tricks &#038; Hacks</a> to learn even more about what you can do with JavaScript and how to solve real-world problems with DHTML. Get more usability insight from <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=073571102X%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/073571102X%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Homepage Usability: 50 Websites Deconstructed</a> and <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321344758%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321344758%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Don&#8217;t Make Me Think : A Common Sense Approach to Web Usability (2nd Edition)</a>. Arm yourself with an arsenal of <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1590593812%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1590593812%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Web Standards Solutions: The Markup and Style Handbook (Pioneering Series)</a> to take on <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1581153163%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1581153163%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">The Real Business of Web Design</a>.</p>
<ul>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1590593812%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1590593812%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://ec1.images-amazon.com/images/P/1590593812.01._SCMZZZZZZZ_.jpg" alt="Web Standards Solutions: The Markup and Style Handbook (Pioneering Series)" /></a></li>
<li style="list-style:none;float:left;margin: .5em;padding:.5em;border:1px solid silver;"><a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0321344758%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0321344758%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon"><img src="http://images.amazon.com/images/P/0321344758.01._SCMZZZZZZZ_.jpg" alt="Don\'t Make Me Think : A Common Sense Approach to Web Usability (2nd Edition)" /></a></li>
</ul>
<p>Learn all the <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=1568303823%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/1568303823%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">Secrets of Successful Web Sites</a> if you&#8217;re involved with larger-scale project management, or if you&#8217;re of the entrepeneurial bent, find out <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0762727896%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0762727896%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">How to Start a Home-Based Web Design Business, 2nd (Home-Based Business Series)</a> or <a href="http://www.amazon.com/exec/obidos/redirect?tag=maymaydotnet-20%26link_code=xm2%26camp=2025%26creative=165953%26path=http://www.amazon.com/gp/redirect.html%253fASIN=0814471390%2526tag=maymaydotnet-20%2526lcode=xm2%2526cID=2025%2526ccmID=165953%2526location=/o/ASIN/0814471390%25253FSubscriptionId=0EMV44A9A5YT1RVDGZ82" title="View product details at Amazon">How to Be a Successful Internet Consultant</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/12/23/amazon-guide-become-a-web-design-guru/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Relevancy Messages Catching On?</title>
		<link>http://maymay.net/blog/2005/05/11/relevancy-messages-catching-on/</link>
		<comments>http://maymay.net/blog/2005/05/11/relevancy-messages-catching-on/#comments</comments>
		<pubDate>Wed, 11 May 2005 21:53:14 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">/?p=241</guid>
		<description><![CDATA[Are relevancy messages catching on? A quick ego-Google has turned up encouraging results, but I've still never seen this technique used anywhere except on my own sites.]]></description>
			<content:encoded><![CDATA[<div class="goalentry">
<p>I wonder if my <a href="http://www.maymay.net/maymaymedia/blog/archives/2005/03/11/css-target-relevance/" title="How to enhance usability by using relevancy messages on your pages.">relevancy message</a> tests will ever catch on. I already use them to great effect on my own sites, but I&#8217;ve yet to see them anywhere else on the web.</p>
<p>That said, I just ran <a href="http://www.google.com/search?q=relevancy+messages" title="Run the search for 'relevancy messages'">a google search for &ldquo;relevancy messages&rdquo;</a> and <a href="http://www.maymay.net/tests/php/dynamic-target-relevance/index.php" title="Tests for embedding relevant content on landing pages dynamically.">my <span class="caps"><acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym></span> test page for dynamic relevancy messages</a> came up in the first page as the ninth result. That&#8217;s pretty encouraging, considering there were 315,000 results.</p>
<p>I&#8217;d be very interested to hear from others who are using this technique, similar techniques, or are interested in implementing such usability enhancements on their own sites.</p>
</div>
<div class="goalprogresslink">
<p>See more progress on: <a href="http://43things.com/people/progress/maymay?on=183991">make my mark in web development</a></p>
</div>
<p><ins datetime="2005-05-20T21:17:40-0500">
<p><strong>Update:</strong> Turns out, if you <a href="http://www.google.com/search?q=relevancy+messages+-ad" title="Search Google for 'relevancy messages -ad'">remove mentions of the word &#8216;ad&#8217;</a> from the <a href="http://www.google.com/search?q=relevancy+messages" title="Search Google for 'relevancy messages'">previous search</a>, my <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> test page jumps up to the sixth spot. Makes sense, since it&#8217;s mostly marketing folks who are interested in &ldquo;increasing ad relevancy&rdquo; and the like. Come to think of it, why can&#8217;t my technique be used to place ads? Now <em>there&#8217;s</em> a thought&hellip;.</p>
<p></ins></p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/05/11/relevancy-messages-catching-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Good URL Design to Create a Breadcrumb Navigation System In PHP</title>
		<link>http://maymay.net/blog/2005/03/21/php-breadcrumb-navigation-using-url-design/</link>
		<comments>http://maymay.net/blog/2005/03/21/php-breadcrumb-navigation-using-url-design/#comments</comments>
		<pubDate>Mon, 21 Mar 2005 11:38:52 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">/?p=212</guid>
		<description><![CDATA[By designing and using a meaningful, cruft-free URL scheme you can easily implement a dynamic, scalable, breadcrumb navigation trail on your entire site with minimal fuss, all in about 30 lines of PHP. I kid you not!]]></description>
			<content:encoded><![CDATA[<p>One fundamental aspect of any good navigation system is a mechanism to let users know where they are in relation to the rest of the content. On the Web, one of the <a href="http://www.webdesignpractices.com/navigation/breadcrumb.html" title="Simple survey of sites on breadcrumb navigation.">most popular</a> and <a href="http://psychology.wichita.edu/surl/usabilitynews/51/breadcrumb.htm" title="Usability study on breadcrumb navigation.">thoroughly studied</a> ways to reflect this information is in a so-called breadcrumb navigation trail or bar. This navigation bar lists the categories and subcategories (or sections and subsections) of the page which the user is browsing.</p>
<p>(Quick-minded readers will be quick to point out that the term <em>breadcrumb</em> navigation trail, which originates from the Hansel and Gretel story, is not entirely accurate. In the story, Hansel and Gretel left a trail of breadcrumbs as they wandered through the forest so they could retrace their steps back home. On a web site, the breadcrumb navigation trail reflects the current page&#8217;s position in the site hierarchy, <em>not</em> the path the user has taken through the site.)</p>
<h3>Defining the Requirements of Breadcrumb Navigation</h3>
<p>When I started looking for ways to easily implement a breadcrumb navigation trail on my web site, I immediately saw the potential complexity of the project. The hierarchical navigation system needed to:</p>
<ul>
<li>Accurately reflect a page&#8217;s position in the hierarchical information architecture of <em>the site</em> and not the physical location of the page in my web server. (This is important for me because I&#8217;m constantly moving things around.)</li>
<li>Present a nicely formatted label for each level of depth.</li>
<li>Automatically adjust itself for new pages, so I would never have to deal with it when adding new sections to my site.</li>
<li>Not require any &ldquo;heavy&rdquo; database or large application to use <em>and scale</em>.</li>
</ul>
<p>Additionally, the module should:</p>
<ul>
<li>Produce semantic, valid <acronym title="HyperText Markup Language">HTML</acronym> marked up <em>as a list</em>.</li>
<li>Link all elements in the list to their appropriate page level.</li>
<li>Not link the last level, which should display the current location of the user in the site. (We don&#8217;t need a link back to the same page we&#8217;re already on.)</li>
</ul>
<h3>Searching for Inspiration</h3>
<p>The first thing I, like any good programmer, went to do was search for existing code. Unfortunately, there is an appallingly small amount of <a href="http://www.google.com/search?q=dynamic+breadcrumb+navigation" title="Search google.">information on implementing breadcrumb navigation</a> out there. Sure, they&#8217;ll tell you what it is and what it&#8217;s good for, even convince you why you should have it, but as for actually implementing it goes&hellip;sorry, you&#8217;re on your own.</p>
<p>Every tutorial I found on the matter was decidely sub-par or completely failed to meet my requirements, listed above. Most sites stated the need for databases to create truly scalable and customizeable breadcrumb trails. Of course, nothing can compete with a fully integrated <acronym title="Relational DataBase Management System">RDBMS</acronym> solution, but with intelligent information architecture you can come pretty darn close.</p>
<h3>Using the <acronym title="Uniform Resource Locator">URL</acronym> to Our Advantage</h3>
<p>Thankfully, there is already a system of hierarchical navigation readily available to us. In fact, there are two!</p>
<ol>
<li><strong>Directory trees on your web server.</strong> The folders in which your files are stored are probably already sorted somewhat logically and categorically.</li>
<li><strong>The <acronym title="Uniform Resource Locator">URL</acronym> of the requested page.</strong> The address bar in your browser drills down through these categories to get to the final page.</li>
</ol>
<p>Both of these systems provide a basis from which we can draw upon to create a simple, self-organizing breadcrumb navigation system on a web site of almost any size. However, there are a few problems with the first method. (If you want to implement that method anyway, here&#8217;s a <a href="http://www.zend.com/zend/spotlight/breadcrumb28.php" title="Zend's Code Gallery Spotlight on breadcrumb navigation based on directory trees.">tutorial</a> based around using a directory tree.)</p>
<ul>
<li><strong>It doesn&#8217;t scale.</strong> If you&#8217;ve got a huge web site, you&#8217;re not going to keep all that data on static files on your web server. It would also be a full-time job to categorize and sort that content on said server! Oi, vey!</li>
<li><strong>It&#8217;s dependant on your organization system.</strong> If you&#8217;re anything like me, you don&#8217;t necessarily have folders within folders within folders just to store files, and if you do, you probably change them around pretty often to suit your needs. Unfortunately, basing breadcrumb navigation on <em>your</em> view of your information as opposed to <em>your visitor&#8217;s view</em> of the same information is a recipe for disaster in all but the smallest web sites.</li>
</ul>
<p>Thus, the only remaining solution was to rope the <acronym title="Uniform Resource Locator">URL</acronym> of the page into service to serve as the basis for a breadcrumb navigation system. Even so, there is one huge obstacle to overcome with this method. <strong>The <acronym title="Uniform Resource Locator">URL</acronym> itself must not be attached to a physical filesystem on the web server.</strong></p>
<p>Otherwise, we&#8217;re just basically using the filesystem hierarchy, which we&#8217;ve already seen is not adequete for our needs. So we need a way to abstract, or detach, the <acronym title="Uniform Resource Locator">URL</acronym> from the filesystem itself. Enter <code>mod_rewrite</code>, stage left.</p>
<h3>Abstracting the <acronym title="Uniform Resource Locator">URL</acronym> from the Filesystem</h3>
<p>Abstracting the <acronym title="Uniform Resource Locator">URL</acronym> from the filesystem is the critical step to enabling truly scalable, self-organizing breadcrumb navigation using such a simple foundation. This is essential because the <acronym title="Uniform Resource Locator">URL</acronym> of your page is the thing that will always be live; if the <acronym title="Uniform Resource Locator">URL</acronym> changes, so has your page! This change will then be reflected automatically in the breadcrumb navigation trail.</p>
<p>There are a number of other benefits to abstracting the <acronym title="Uniform Resource Locator">URL</acronym> of a page away from the physical filesystem it represents. I&#8217;ve even talked about some of them before when I blogged about <a href="http://www.maymay.net/blog/archives/2004/12/13/fun-with-apache-redirects/?r-msg=Abstracting+URLs+away+from+the+filesystem+enables+seamless%2c+invisible+behind-the-scenes+reorganization%3A#seamless-reorganization" title="Reorganize at will, and don't break links!">playing with Apache</a> and when <a href="http://www.maymay.net/blog/archives/2004/11/14/tips-to-improve-search-engine-rankings-of-cms-generated-content/?r-msg=Search+engines+and+site+visitors+alike+both+want+and+need+friendly+URLs%3A#friendly-urls-for-spiders" title="What you can do to help your dynamic pages rank better in search engines.">I suggested tips</a> for improving search engine rankings of <acronym title="Content Management System">CMS</acronym>-generated content.</p>
<p>The basic prerequisite for a good <acronym title="Uniform Resource Locator">URL</acronym> schema, however, is solid information architecture. This means having a well-defined and clear structure to your site so information is easily findable and properly labelled, categorized, and placed within the system you use. Only after you create a sound <acronym title="Uniform Resource Locator">URL</acronym> design schema free of any unsightly cruft which succinctly encodes the hierarchy of your site will you be able to leverage them to their fullest potential. (Phew, that was a mouthful!)</p>
<p>So, since this is not a post about <acronym title="Uniform Resource Identifier">URI</acronym> design (see <a href="#uri-design-resources" title="The end of this entry has additional resources on designing meaninful web addresses.">these resources</a> for articles on that), let&#8217;s assume you&#8217;ve done all that and are ready to implement your schema. The tools you&#8217;ll need are:</p>
<ul>
<li>The <a href="http://httpd.apache.org/" title="Don't worry, it's free!">Apache web server</a>.</li>
<li>Its <code><a href="http://httpd.apache.org/docs/mod/mod_rewrite.html" title="Comes standard with most Apache installations.">mod_rewrite</a></code> module.</li>
<li>Access to the server configuration file or the ability to use <code>.htaccess</code> files.</li>
<li>Later on, you&#8217;ll also need <a href="http://php.net/" title="Also free-of-charge!"><acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym></a>, for the coding thing.</li>
</ul>
<p>To make things simple, I&#8217;ll use <a href="http://maymaymedia.com/" title="The site I actually implemented this whole thing on.">my site</a> as an example.</p>
<p>For my own site, I have several sections (&ldquo;About,&rdquo; &ldquo;Services,&rdquo; &ldquo;News &amp; Weblog,&rdquo; etc.) and several top level pages that stand on their own (&ldquo;Home,&rdquo; &ldquo;Contact&rdquo;). Additionally, each section has an index page to ensure that no hierarchical level of my site is without its corresponding landing page.</p>
<p>This was going to be represented with straight-forward URLs that looked like this:</p>
<ul>
<li>The &ldquo;Home&rdquo; page would have this URL: <code>http://www.maymay.net/maymaymedia/</code></li>
<li>So-called &ldquo;top-level&rdquo; pages would look like this:
<ul>
<li>For the &ldquo;Contact&rdquo; page: <code>http://www.maymay.net/maymaymedia/contact/</code></li>
<li>For the &ldquo;About Us&rdquo; page: <code>http://www.maymay.net/maymaymedia/about/</code></li>
<li>For the &ldquo;Services&rdquo; page: <code>http://www.maymay.net/maymaymedia/services/</code></li>
</ul>
</li>
<li>Second-level pages would have URLs such as these:
<ul>
<li>For each service:
<ul>
<li>http://www.maymay.net/maymaymedia/services/web-programming/</li>
<li>http://www.maymay.net/maymaymedia/services/web-accessibility/</li>
<li>http://www.maymay.net/maymaymedia/services/web-site-optimization/</li>
</ul>
<li>For each &ldquo;About&rdquo; page, for instance:
<ul>
<li>http://www.maymay.net/maymaymedia/about/accessibility/</li>
<li>http://www.maymay.net/maymaymedia/about/philosophy/</li>
<li>http://www.maymay.net/maymaymedia/about/technology/</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>My files are stored pretty simply on my web server. Some pages, like the &ldquo;Contact&rdquo; page are stored in the <code>maymaymedia</code> directory but not in their own sub-directory. Other pages, like the &ldquo;Services&rdquo; and &ldquo;About&rdquo; pages, are stored in the <code>services</code> and <code>about</code> directories, respectively</p>
<p>This created filenames like <code>maymaymedia/contact.php</code> and <code>maymaymedia/about/index.php</code>. That <code>.php</code> stuff had to go!</p>
<h4>Writing Your <code>.htaccess</code> File</h4>
<p>Using the magic of <code>mod_rewrite</code>, a few relatively simple lines added to your <code>.htaccess</code> file is all it takes to turn these filenames into these beautiful cruft-free URLs.</p>
<p>Creating the sections was easy enough. Some of the work was already done by keeping the pages in their own directory (such as &ldquo;Services,&rdquo; for me) so I didn&#8217;t even <em>have</em> to do anything. Of course, to be safe, I could future-proof my site to abstract these directory trees using additional lines in my <code>.htaccess</code> file, but for the sake of simplicty we&#8217;ll leave it as is.</p>
<p>Here are a few relevant snippets from my <code>.htaccess</code> file:</p>
<pre>RewriteEngine On
RewriteBase /maymaymedia/
[&hellip;]
RewriteRule ^about/technology/?$ /maymaymedia/about/tech.php
RewriteRule ^about/philosophy/?$ /maymaymedia/about/philosophy.php
RewriteRule ^about/accessibility/?$ /maymaymedia/about/access.php
[&hellip;]
RewriteRule ^services?/web-site-optimization/?$ /maymaymedia/services/wso.php
RewriteRule ^services?/web-programming/?$ /maymaymedia/services/webprogramming.php
RewriteRule ^services?/web-accessibility/?$ /maymaymedia/services/accessconsult.php
[&hellip;]
RewriteRule ^contact/?$ /maymaymedia/contact.php</pre>
<p>These merely map simple <acronym title="Uniform Resource Locator">URL</acronym>&#8216;s onto the appropriate files for the specific page on my server, creating the nice breadcrumb-like <acronym title="Uniform Resource Identifier">URI</acronym> structure we can now use to automate the process of generating our hierarchical navigation bar.</p>
<p>There are two main points to keep in mind when creating such <acronym title="Uniform Resource Locator">URL</acronym> schemes.</p>
<ul>
<li><strong>Use a standardized syntax.</strong>
<p>Don&#8217;t mix and match symbols. Choose one syntax and stick with it. I used a hyphen (-) to simulate spaces, since spaces are not allowed in URIs. You could also use the underscore (_) if you wanted, but hyphens don&#8217;t require users to press the <kbd>shift</kbd> key.</p>
</li>
<li><strong>Make the <acronym title="Uniform Resource Locator">URL</acronym> descriptive.</strong>
<p>Since we&#8217;re going to be using these URLs as our breadcrumb navigation labels, they need to be as descriptive as possible. Keep them short enough to easily type but long enough to provide context. For instance, I could have used <code>wso</code> instead of <code>web-site-optimization</code> but how many people know that that&#8217;s what <acronym title="Web Site Optimization">WSO</acronym> stands for?</p>
<p>Besides, including the whole phrase boosts our search engine rankings by embedding our keywords into the <acronym title="Uniform Resource Locator">URL</acronym> itself! A nice bonus which also enhances usability.</p>
<p>If you&#8217;re really worried about optimizations (for instance, because you&#8217;ll have to write all your links like <code>href="/services/web-site-optimization/"</code>) then you can use a redirection script and point your links at something like <code>href="/r/wso/"</code> which would then automatically redirect to the expanded <acronym title="Uniform Resource Locator">URL</acronym>.</p>
</li>
</ul>
<h3>Coding the <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> Breadcrumb Navigation Bar</h3>
<p>Now we&#8217;re ready to leverage the inherent advantages of good <acronym title="Uniform Resource Locator">URL</acronym> design to create our scalable <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> breadcrumb navigation script. I use a special <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> script called <code>navbar.php</code> to dynamically generate all of my navigation, so that&#8217;s where the code will go. <code>navbar.php</code> can then be <acronym title="Server Side Include">SSI</acronym>&#8216;ed or <code>include()</code>&#8216;ed on our page template so it will be present in all the pages we create from here on out.</p>
<p>The breadcrumb navigation script needs to do a few things. The code flow looks like this:</p>
<ul>
<li>Grab the requested <acronym title="Uniform Resource Identifier">URI</acronym> and break it into its path components.</li>
<li>Initialize (or remove) the first (&ldquo;top&rdquo;) element.</li>
<li>Count the remaining elements.</li>
<li>Check for trailing slashes on the last element, and remove it if necessary (such as if its empty or it&#8217;s just a query string).</li>
<li>Loop through all the elements, placing them within <code>&lt;li&gt;&lt;/li&gt;</code> <acronym title="HyperText Markup Language">HTML</acronym> elements as well as <code>&lt;a&gt;&lt;/a&gt;</code> if we are not at the last level.</li>
</ul>
<h4>Stepping Through the Code</h4>
<p>First, we start our <acronym title="HyperText Markup Language">HTML</acronym> by providing a header (which we can later set to <code>display:none;</code> in our <acronym title="Cascading Style Sheets">CSS</acronym>) and starting the list element. Due to the specific nature of my site structure (the site starts in a sub-directory of my main site), I also chose to always print the main &ldquo;Maymay Media Home&rdquo; link. You don&#8217;t have to do this.</p>
<pre>&lt;h3&gt;Hierarchical Navigation&lt;/h3&gt;
&lt;ul id="hier-nav"&gt;
&lt;li id="hier-homeLnk"&gt;&lt;a href="/maymaymedia/" title="Maymay Media Home"&gt;Maymay Media&lt;/a&gt;&lt;/li&gt;</pre>
<p>Next, we start the <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> magic, grab the <acronym title="Uniform Resource Identifier">URI</acronym> the browser requested and break it on the slashes with <code><a href="http://php.net/explode" title="Documentation for the explode() function.">explode()</a></code>.</p>
<pre>&lt;?php
<var>$url_parts</var> = explode('/', <var>$_SERVER</var>['REQUEST_URI']);</pre>
<p>Now the <code><var>$url_parts</var></code> variable contains an array, each element of which is a segment of the path from the requested <acronym title="Uniform Resource Identifier">URI</acronym>. Since a <acronym title="Uniform Resource Identifier">URI</acronym> request always starts with a leading <code>/</code>, the first element of our <code><var>$url_parts</var></code> variable is an empty string. That&#8217;s somewhat useless for us, so we&#8217;ll get rid of it.</p>
<pre>array_shift(<var>$url_parts</var>); // first item always empty in URLs</pre>
<p><strong>In my particular case</strong>, the second element will always correspond to the <code>maymaymedia</code> sub-directory I have my site in. Thus, the second element of this array is also useless to me, since I chose to always print this &ldquo;top level&rdquo; link before we even started the conditional code. Thus, I get rid of the second element, too. (You may not want to do this in your script!)</p>
<pre>array_shift(<var>$url_parts</var>); // second item unneeded since always contains "maymaymedia" due to my site structure</pre>
<p>Now we need to count how many elements are left in our array which will tell us how many list items we need to make and where to find the end of our array so we can identify the last element. Remember, we&#8217;re going to need to check if the last element is empty or not because we don&#8217;t know if the visitor entered a trailing slash in the address bar.</p>
<p>If the last element is empty like the first one then we don&#8217;t need it. We also don&#8217;t need it if all it contains is a query string, so in either case we can pop it off the end of our array and decrement the variable we use to store the size of our array.</p>
<pre><var>$num_parts</var> = count(<var>$url_parts</var>);
// remove last element if empty or if a query string
if (empty(<var>$url_parts</var>[<var>$num_parts</var>-1]) || <var>$url_parts</var>[<var>$num_parts</var>-1] == '?'.<var>$_SERVER</var>['QUERY_STRING'])
{
    array_pop(<var>$url_parts</var>);
    <var>$num_parts</var>&#45;&#45;; // decrement to keep track
}</pre>
<p>Now we have all the data we need to construct our breadcrumb navigation list. The first step is to start the second list item and insert a separator (I chose a &ldquo;&gt;&rdquo; character), and then to format our <acronym title="Uniform Resource Locator">URL</acronym> strings into a more human-readable format. Basically, that just means replacing all of the &ldquo;<code>-</code>&rdquo; characters with spaces, and then capitalizing the first character of all the resulting words.</p>
<pre>for (<var>$i</var>=0; <var>$i</var>&lt;<var>$num_parts</var>; <var>$i</var>++)
{
    echo '&lt;li&gt; &amp;gt; ';
    <var>$p</var> = ucwords(str_replace('-', ' ', <var>$url_parts</var>[<var>$i</var>])); // format 'things-like-this' to 'Things Like This'</pre>
<p>(Of course, advanced <acronym title="Cascading Style Sheets">CSS</acronym> coders will note that inserting a physical character in the <acronym title="HyperText Markup Language">HTML</acronym> markup is unnecessary since we can use a <acronym title="Cascading Style Sheets">CSS</acronym> rule such as <code>#hier-nav li:before { content: ">"; }</code> to create this presentational separator instead. Unfortunately, Internet Explorer does not support this level of <acronym title="Cascading Style Sheets">CSS</acronym> yet, so we must resign ourselves to use a physical character in the markup for now.)</p>
<p>Then we make a quick check to ensure we&#8217;re not at the end of the trail. If indeed we&#8217;re not, then we need to turn our text into a link and point it to go to the appropriate level. Otherwise, since we&#8217;re at the end of the trail, we just print the text and end our list item.</p>
<p>Creating the link looks complicated, but it&#8217;s really not. Our array stores all the path components for us, so all we need to do is slice off the end of it so all that remains is the first elements we&#8217;ve already looped through.</p>
<p>Once we&#8217;ve done that, we merely reassemble our <acronym title="Uniform Resource Locator">URL</acronym> by reversing the formatting process we used before. Namely, we <code><a href="http://php.net/implode" title="Documentation on the implode() function.">implode()</a></code> our array to turn it into a single string connected with the slashes, replace all spaces with dashes (<code>-</code>), and then turn the whole thing lowercase. We can do all of it on one line.</p>
<p>Also note that <strong>due to my particular site structure</strong> I&#8217;ve hard-coded the links to point to the root directory of <em>this</em> site. You&#8217;ll probably want to remove that on your own script.</p>
<pre>    // only link if not last time through loop
    if (<var>$i</var> != (<var>$num_parts</var>-1) )
    {
        echo "&lt;a href=&#92;"/maymaymedia/".strtolower(str_replace(' ', '-', implode('/', array_slice(<var>$url_parts</var>, 0, <var>$i</var>+1))))."/&#92;" title=&#92;"Go up to <var>$p</var>&#92;"&gt;<var>$p</var>&lt;/a&gt;&lt;/li&gt;";
    }
    else // last time through loop, so don't do the link
    {
        echo "<var>$p</var>&lt;/li&gt;";
    }
}
?>
&lt;/ul&gt;</pre>
<p>That&#8217;s it! After closing our list element, we&#8217;re <em>done</em>, and we now have scalable breadcrumb navigation based on an intelligent <acronym title="Uniform Resource Identifier">URI</acronym> schema <em>on every single page</em>. Was it good for you too?</p>
<h3 id="uri-design-resources">Additional <acronym title="Uniform Resource Identifier">URI</acronym> Design Resources</h3>
<p>(Some segments shamelessly swiped for my own easy reference from <a href="http://www.pixelcharmer.com/fieldnotes/archives/process_designing/2003/000285.html" title="Where I got all this cool stuff.">Pixelcharmer</a>.)</p>
<p>A list of resources that argue for and suggest best practices in <acronym title="Uniform Resource Identifier">URI</acronym> construction.</p>
<ul>
<li><a href="http://www.isoc.org/HMP/PAPER/016/html/paper.html">The User Interface of URLs</a> (Paul E. Hoffman, 1995)</li>
<li><a href="http://www.w3.org/Provider/Style/URI.html">Cool <acronym title="Uniform Resource Identifier">URI</acronym>’s Don’t Change</a> (Tim Berners-Lee, 1998)</li>
<li><a href="http://www.useit.com/alertbox/990321.html"><acronym title="Uniform Resource Locator">URL</acronym>’s as <acronym title="User Interface">UI</acronym></a> (Jakob Nielsen, 1999)</li>
<li><a href="http://www.alistapart.com/stories/urls/"><acronym title="Uniform Resource Locator">URL</acronym>’s <acronym title="Uniform Resource Locator">URL</acronym>’s <acronym title="Uniform Resource Locator">URL</acronym>’s</a> (Bill Humphries, 2000)</li>
<li><a href="http://www.alistapart.com/stories/succeed/">How to Succeed with <acronym title="Uniform Resource Locator">URL</acronym>’s</a> (Till Quack, 2001)</li>
<li>
<a href="http://www-106.ibm.com/developerworks/library/us-cranky8.html?dwzone=usability">Making URLs accessible</a> (Peter Seebach, 2001)</li>
<li><a href="http://www.adaptivepath.com/publications/essays/archives/000058.php">User-Centered <acronym title="Uniform Resource Locator">URL</acronym> Design</a> (Jesse James Garrett, 2002)</li>
<li><a title="Common HTTP Implementation Problems" href="http://www.w3.org/TR/2003/NOTE-chips-20030128/#gl1">Designing URIs</a> (2003)</li>
<li>In German: <a href="http://www.web-blog.net/comments/P122_0_1_0/">Usability Inside | <acronym title="Uniform Resource Locator">URL</acronym>-Design</a> (January, 2004)</li>
</ul>
<p>By the way, here&#8217;s the difference between the two: <a href="http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?Uniform+Resource+Locator">What is a <acronym title="Uniform Resource Locator">URL</acronym></a>? <a href="http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?Universal+Resource+Identifier">What is a <acronym title="Uniform Resource Identifier">URI</acronym></a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/03/21/php-breadcrumb-navigation-using-url-design/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Targetting Relevance in Long Web Pages with the CSS :target Pseudo-Class</title>
		<link>http://maymay.net/blog/2005/03/11/css-target-relevance/</link>
		<comments>http://maymay.net/blog/2005/03/11/css-target-relevance/#comments</comments>
		<pubDate>Fri, 11 Mar 2005 20:24:47 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hypertext Copywriting]]></category>
		<category><![CDATA[Information & Communication]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">/?p=199</guid>
		<description><![CDATA[Context and relevance are sometimes lost when linking to pages on the web. Basic HTML and good hypertext copywriting habits (like using <code>title</code> attributes) can help, but not always enough. Here's a totally new method (I think) to embed what I call <dfn>relevancy messages</dfn> into the <em>destination page</em> of a site.]]></description>
			<content:encoded><![CDATA[<h3>The Importance of Context and Relevance</h3>
<p>Context and relevance are two of the most important aspects of effective communication. If the context of a message is not understood then the commuication will likely be disregarded, or worse&mdash;misinterpreted. If the message isn&#8217;t relevant to the topic at hand then it will be useless to everybody involved.</p>
<p>In order to ensure that a message is successfully received and has the desired effect, one must first ensure that the context for that message is properly set up and that the message itself is relevant to the subject matter.</p>
<p>An excellent example of a scenario where a loss of context and/or relevance can easily cause communication problems is receiving email messages. Surely everyone has recieved an email that they simply don&#8217;t know what to do with or why they&#8217;ve gotten it. (By the way, for some unbelievably insightful tips on composing effective email messages, read <a href="http://hbswk.hbs.edu/item.jhtml?id=4438&#038;t=srobbins" title="Tips for Mastering E-Mail Overload">this article</a> [via <a href="http://www.43folders.com/2005/03/stever_robbins_.html" title="43 Folders: Stever Robbins on email overload">43 Folders</a>].)</p>
<p>The same thing can&mdash;and does&mdash;happen on the web. For example, let&#8217;s say you&#8217;re reading a page which has a link in its text to another page. You decide to follow the link but once you&#8217;ve arrived at the new page you find yourself  staring at an enormous amount of other text that doesn&#8217;t have anything to do with why you followed the link in the first place. Suddenly you&#8217;re confused, you feel lost, and you quickly push the &ldquo;Back&rdquo; button of your browser.</p>
<p>What went wrong here? Context was lost; the destination page had no relevance to the source page. If it did, you couldn&#8217;t find it because it wasn&#8217;t clearly identified. This is a confusing and frustrating situation, and one that I&#8217;m willing to bet happens way too often on the web.</p>
<p>On my own blog, I frequently link to entries I&#8217;ve previously written. Sometimes these entries can be quite long, and I&#8217;m not always referencing the entire entry in my link. But by pointing the link to a specific &ldquo;intra-page&rdquo; anchor by using a <a href="http://www.w3.org/DesignIssues/Fragment.html" title="What it is and how to make one.">fragment identifier</a> and clearly marking the relevance of this information in both the link itself (with a descriptive <code>title</code>) <em>and in the landing page</em> (with what I&#8217;ve come to call a <dfn>relevancy message</dfn>), context is preserved and confusion is eliminated.</p>
<p>To see what I&#8217;m talking about in practice, check out <a href="/tests/css/relevant-anchors/1.html" title="An example to show what I'm talking about.">my experiment pages</a>. It&#8217;s a demo of the problem and relevancy messages in action.</p>
<h3><acronym title="Cascading Style Sheets level 2">CSS2</acronym> The Rescue</h3>
<p>There&#8217;s only one problem left. How does one insert text into the landing page which will be viewable when someone follows a <em>specially-crafted</em> link to it, but <em>not</em> when they arrive at the page via any other link? Though it is possible to program this into your pages using <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym> or another web scripting language, <acronym title="Cascading Style Sheets">CSS</acronym> level 2 offers a much simpler and maintainable solution: the <code>:target</code> and <code>:before</code> pseudo-classes.</p>
<p>When used in combination, the <code>:target</code> and <code>:before</code> pseudo-classes can be used to generate text on a page at a specific point in the document when your page is linked to in a certain way. By using an additional <acronym title="Cascading Style Sheets level 2">CSS2</acronym> function, <code>attr()</code>, we can also generate customized text for each landing spot within the document. Let&#8217;s take a look at each component separately.</p>
<h4>The <acronym title="HyperText Markup Language">HTML</acronym> You&#8217;ll Need</h4>
<p>Let&#8217;s say you&#8217;re writing about apples. In your text, you link to a previous article you wrote about oranges. Your link in the article on apples might look like this:</p>
<pre>&lt;a href="oranges.html" title="Oranges have a thick, white pith beneath their skin." &gt;oranges&lt;/a&gt;</pre>
<p>And your text in the article on oranges might look like this:</p>
<pre>&lt;p&gt;[&hellip;] The skin of an orange is thick, porous, and varies in color from deep to light orange. There is a bitter-tasting white pith underneath the outter-most layer of the fruit's skin. [&hellip;]&lt;/p&gt;</pre>
<p>In order to link directly to the paragraph mentioning the orange&#8217;s pith you need to insert a named anchor just after the opening paragraph tag where that content was written. You also need to append this name to the <acronym title="Uniform Resource Identifier">URI</acronym> of the link, as a fragment identifier. The resulting <acronym title="HyperText Markup Language">HTML</acronym> for the link might look like this:</p>
<pre>&lt;a href="oranges.html#skin" title="Oranges have a thick, white pith beneath their skin." &gt;oranges&lt;/a&gt;</pre>
<p>The resulting <acronym title="HyperText Markup Language">HTML</acronym> for the paragraph about oranges might look like this:</p>
<pre>&lt;p&gt;&lt;a id="skin"&gt;&lt;/a&gt;The skin of an orange is thick, porous, and varies in color from deep to light orange. There is a bitter-tasting pith underneath the outter-most layer of the fruit's skin.&lt;/p&gt;</pre>
<h4>The <acronym title="Cascading Style Sheets">CSS</acronym> You&#8217;ll Need</h4>
<p>Once the <acronym title="HyperText Markup Language">HTML</acronym> is in place, you need to create a style rule to generate the text you&#8217;ll want to display before the paragraph. Your style sheet might look like this:</p>
<pre>a:target::before { content: "Here's what I referenced with my link on the last page: "; font-size: larger; font-weight: bold; }</pre>
<p>You can even take it one step further. By adding a <code>title</code> attribute with some helpful text in your named anchor, you can actually display that text (specific to the reference you&#8217;re making) instead of the generic &ldquo;Here&#8217;s what I referenced&hellip;&rdquo; text. The <acronym title="Cascading Style Sheets">CSS</acronym> for that would look like this, and it would display whatever you write as the <code>title</code> for <em>each</em> named anchor you use:</p>
<pre>a:target::before { content: attr(title); }</pre>
<h3>Limitations</h3>
<p>The major drawback to this technique is that you need to change the code of the destination document for it to work. Specifically, you need to insert named anchors (though you can also target <em>any</em> element by giving it an unique <code>id</code>), and you need to insert a style rule. (However, see below for another experiment that will let site owners allow people to get around this limitation.)</p>
<p>Another major drawback is that it requires a fully <acronym title="Cascading Style Sheets level 2">CSS2</acronym>-compliant browser. That means Internet Explorer 5 and 6 (both Macintosh and Windows versions) will not show the special content on the destination page. They will, however, move focus to the point in the document at which the anchor resides.</p>
<h3>Looking to the Future</h3>
<p>I have been playing with this technique recently on my blog (can you find the links I&#8217;ve used this on? ;). The obvious benefit is creating a far more seamless transition from one page to another and maintaining the same context across web pages. This is invaluable for me and my readers in particular, since I tend to enjoy writing and end up writing far longer entries than I probably should. (Even though I use headings to divide my entries into logical chunks, it&#8217;s still good to have another trick up my sleeve to help usability!)</p>
<p>However, this technique is ripe for expansion. For instance, I have created <a href="/tests/php/dynamic-target-relevance/?r-msg=How+you+can+let+anyone+embed+a+relevancy+message%3A%20#concept" title="A proof-of-concept for dynamic relevancy messages in action.">another experiment</a> to dynamically generate the content of the <acronym title="Cascading Style Sheets">CSS</acronym> rule based upon a variable in a <code>GET</code> querystring. (It uses three lines of <acronym title="PHP Hypertext Preprocessor; an HTML-embedded scripting language">PHP</acronym>, and that link itself is a proof-of-concept.) This will allow people to write links that point to my documents and <em>insert their own special relevance-describing blurbs</em> in front of the fragment they&#8217;ve linked to. (Yes, I realize this may pose <acronym title="Cross Site Scripting">XSS</acronym> security problems, I&#8217;m still just playing with the concept.)</p>
<p>Exploring all of this is a lot of fun. The crux of this technique relies upon  accessible and clever hypertext copywriting to enhance usability when linking to web pages and referencing information across pages or, one day, sites. As is the case with most things Web, simple is better.</p>
<p>I&#8217;m very eager to hear about comments on this technique. Are there dangers I haven&#8217;t seen yet? Can you think of another way to use it that I haven&#8217;t mentioned here? Are you already using it on your own site? All feedback welcome. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/03/11/css-target-relevance/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Who Actually Clicks Click Here?</title>
		<link>http://maymay.net/blog/2005/02/26/who-actually-clicks-click-here/</link>
		<comments>http://maymay.net/blog/2005/02/26/who-actually-clicks-click-here/#comments</comments>
		<pubDate>Sun, 27 Feb 2005 00:27:30 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Hypertext Copywriting]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">/?p=194</guid>
		<description><![CDATA[Writing &#8220;click here&#8221; for just about anything is always bad. Here's an especially interesting example of bad hypertext copywriting.]]></description>
			<content:encoded><![CDATA[<div class="flickr-photo-frame">
 <a class="flickr-img-link" href="http://www.flickr.com/photos/maymay/5485765/"><img class="flickr-img" src="http://photos5.flickr.com/5485765_6f52e00c88_m.jpg" alt="Using the nondescript &ldquo;click here&rdquo; anchor text to link to a shopping page is a bad idea." /></a></p>
<ul class="flickr-photo-details">
<li class="title"><a href="http://www.flickr.com/photos/maymay/5485765/" title="Go to this photo's Flickr page.">Remove Product Confirmation Web Dialogue</a></li>
<li class="uploader">Originally uploaded by <a href="http://www.flickr.com/people/maymay/" title="Go to this uploader's Flickr profile.">maymaym</a>.</li>
<li class="upload-datetime">Added to the photostream on 26 Feb &#8217;05, 3.29pm PST.</li>
</ul>
</div>
<p><!-- Flickr blog content --></p>
<p>I have been experimenting with my coffee purchases as of late and found myself changing some of my <a href="http://gevalia.com/" title="Online or mail-order coffee specialists.">Gevalia</a> shipments around. After removing a product from my delivery list, I was asked to confirm the action. I was also given the choice to restore the product or add a new product.</p>
<p>Curiously, they used the hypertext copy <q>&hellip;to add a new product click click here</q>, with the last two words made into a link to the product-adding page. This is the epitomy of the so-called &ldquo;click here&rdquo; mentality, where the very phrase &ldquo;click here&rdquo; has been so objectified that it is used as a noun unto itself.</p>
<p>To make matters worse, there was no <code>title</code> attribute for the link which may have served to mitigate the uselessness of the instructions. Adding to the confusion is the fact that the clearer instruction on how to restore the product was <em>not</em> a link. Instead, that button is way over on the other side of the page.</p>
<p>So, the morale of the story is that nobody&#8217;s actually going to click a &ldquo;click here&rdquo; link the first time around. They first have to decipher what it will actually do and sometimes that&#8217;s even more confusing than it was in this example.</p>
<p>Instead of such meaningless anchor text, it is always better to turn the verbs of a sentence into a link. In this case, I would have said something like &ldquo;The product will no longer be sent with your future shipments. You can still <em>restore this product</em> if you&#8217;d like to continue receiving it, or you can <em>add a new product</em> instead,&rdquo; with the emphasized text being the links for the respective actions. For extra credit, change &ldquo;The product&rdquo; into the actual name of the product I&#8217;ve just removed.</p>
<p>Clear, unambiguous, and personable text that&#8217;s easy to read with just a quick glance. That&#8217;s what hypertext copywriting is all about. More to the point, I gaurantee you that more folks would actually order additional products that way, too.</p>
<p><!-- end Flickr blog content --></p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/02/26/who-actually-clicks-click-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attention-Starvation Economy</title>
		<link>http://maymay.net/blog/2005/01/18/attention-starvation-economy/</link>
		<comments>http://maymay.net/blog/2005/01/18/attention-starvation-economy/#comments</comments>
		<pubDate>Wed, 19 Jan 2005 00:44:21 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Tech/Computing]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">/?p=166</guid>
		<description><![CDATA[Browsing web content is not like browsing a printed magazine or catalogue. If the quality of a site is not up to sniff, there are numerous reasons for leaving instantly. And those reasons are multiplying.]]></description>
			<content:encoded><![CDATA[<p>It is a shame that there is only 24 hours in the day. I figure I need at least 8 hours of sleep per night (on average, anyway) and that leaves only 16 left for web-surfing if I did nothing else at all. Of course, that&#8217;s unrealistic, so the real estimate I give it is more like 6 hours a day&mdash;and I&#8217;m a web-aholic!</p>
<p>Most of the time I spend surfing the web is actually done within my newsreader. My subscription list contains several hundred news sources of interest from around the web, and so it&#8217;s no wonder that I&#8217;ve been having <a href="http://www.maymay.net/blog/archives/2004/10/28/2817-unread-items/" title="2817 unread items, one day!">trouble</a> keeping it up with it all. The other day I finally got around to reclassifying that gargantuan list into a more palpatable format, very reminiscent of <a href="http://www.veen.com/jeff/archives/000657.html" title="This is what I did to my news feeds, too.">Jeffrey Veen&#8217;s &ldquo;happy little folders&rdquo;</a> with categories ranging from &ldquo;Must Read&rdquo; to &ldquo;Missable.&rdquo; Now I don&#8217;t feel so bad if I can&#8217;t get to 90% of the items on my reading list this century.</p>
<p>Today, as I was reading Joe Clark&#8217;s <a href="http://www.alistapart.com/articles/lowvision/" title="How to use style sheets to help low-vision users.">Zoom-Layout article</a> on <a href="http://www.alistapart.com/" title="For People Who Make Websites&trade;">A List Apart</a>, a notification of new posted items in some of my feeds took my attention away from Joe&#8217;s article and momentarily had me contemplating whether or not I should abandon it in favor of the new item.</p>
<p>Now, Joe, you&#8217;ll be glad to know that I resisted the temptation and finished reading your article (as well as some of the discussion), but that moment of hesitation has really got me thinking. There are all sorts of various notifications popping up on screen at any given time, and there are simply so <em>many</em> bits of information that one can be alerted to. It&#8217;s no wonder the webbed world has gotten as impatient as it has.</p>
<p>If the content of Joe&#8217;s article had not been as engaging and interesting as it was, I may have clicked on the notification and never returned to finish it. The implications of this attention-starvation economy for a business site is quite frightening. Moreover, business folk are doubtlessly unfamiliar with this form of competition.</p>
<p>If A List Apart had been a printed magazine, I would have been flipping through pages as I read Joe&#8217;s article on my sofa, instead of at my computer desk on my laptop&#8217;s screen. The motivation for getting up&mdash;whether for another magazine or a cup of coffee&mdash;is relatively small, at least until I had finished the article. But on the web, competing content is so utterly easy to access that the motivation for going to it increases exponentially as the quality of the current content the user is exposed to decreases.</p>
<p>Or in other words, this is why usability is getting to be big business, or at least should if e-commerce companies know what&#8217;s good for them. Not that this is any form of groundbreaking discovery, but it has never hit me so plainly as it has today. And I&#8217;m a big advocate of experiencial learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2005/01/18/attention-starvation-economy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with Apache Redirects</title>
		<link>http://maymay.net/blog/2004/12/13/fun-with-apache-redirects/</link>
		<comments>http://maymay.net/blog/2004/12/13/fun-with-apache-redirects/#comments</comments>
		<pubDate>Mon, 13 Dec 2004 15:01:48 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Unix/Linux]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">/?p=26</guid>
		<description><![CDATA[Using proper HTTP redirects has several important advantages over other forms of redirection that directly affect the usability of your web site. More importantly, they become invaluable during a period of site maintenance or reorganization.]]></description>
			<content:encoded><![CDATA[<p>I absolutely love <a title="Apache is the main webserver powering the Internet today. And it's free!" href="http://httpd.apache.org/">Apache.</a> A while ago I ranted about the <a href="http://www.maymay.net/blog/archives/2004/09/11/redirects-an-8th-grader-could-do-better/">annoying prevalence of uneccessary redirects</a> some sites make you click through. This topic comes up pretty often even today, although the issue of annoying <acronym title="HyperText Transfer Protocol">HTTP</acronym> &ldquo;404 Not Found&rdquo; errors has been mitigated somewhat by people wising up and creating <a href="http://www.404-error-page.com/what-should-be-on-a-404-error-page.shtml" title="Tips for how to improve the usability of your site's error pages."><em>helpful</em> error pages.</a> (Which I&#8217;ve been meaning to revise and improve on this site.)</p>
<p>Usually, the existene of broken links and the like is brushed off by saying something like, &ldquo;We are undergoing a re-organization period,&rdquo; usually followed by a request to &ldquo;please bear with us&rdquo; for the duration of said period.</p>
<p>Well, I know a thing or two about organization. In fact, I probably know more than most because I re-organize my my desk, my computer, my Web site, and even my refridgerator fairly frequently. As <a href="http://filmandfishnets.com/">Danica</a> will no doubt tell you, I like to <em>make sure</em> I am keeping things as effecient as possible.</p>
<p id="seamless-reorganization">In terms of serving up web pages to visitors, it means that I can reorganize and restructure my site as much as I&#8217;d like and you wouldn&#8217;t even know that I did it. The main tools I use for this are Apache&#8217;s <code>Redirect</code> directive (implemented via <code>mod_alias</code>) and the various, insanely powerful features offered by <code>mod_rewrite</code> (<a href="http://httpd.apache.org/docs/mod/mod_rewrite.html">documentation</a>). I&#8217;ve used these tools several times while working on this site but none of these examples even scratch the surface of what is possible.</p>
<ul>
<li>
<p>While moving the site from Blogger to WordPress, I also decided to change the blog&#8217;s address so that I had a shorter <acronym title="Uniform Resource Locator">URL</acronym>, devoid of any hint of the old site. Naturally, since I didn&#8217;t want to break incoming links, I used a <code>Redirect</code> to bounce visitors to the right address. Additionally, I tagged the redirect with the keyword <code>permanent</code> which emits a &ldquo;301 Moved Permanently&rdquo; <acronym title="HyperText Transfer Protocol">HTTP</acronym> response header so that decent clients will no longer request the old resource&#8217;s address. The full line in my <code>.htaccess</code> file looks like this</p>
<pre>Redirect permanent /bpd/blog/ http://www.maymay.net/blog/</pre>
<p>although I could have written it with the status code instead of the keyword like this:</p>
<pre>Redirect 301 /bpd/blog/ http://www.maymay.net/blog/</pre>
</li>
<li>
<p>At the same time, I also decided to give some common aliases to the <code>/bpd</code> subdirectory, so I started redirecting requests for things like <code>/bipolardisorder</code> to <code>/bpd</code> as well.</p>
</li>
<li>
<p>I wanted to make a few &ldquo;static pages&rdquo; such as the <a href="http://www.maymay.net/bpd/meitar/">About Meitar</a> page, but I wanted a cruft-free <acronym title="Uniform Resource Locator">URL</acronym> for them as well. The simple solution was to start Apache&#8217;s mod_rewrite and map a nice-looking <acronym title="Uniform Resource Locator">URL</acronym> to the file I wanted to serve.</p>
<pre># turn mod_rewrite on
RewriteEngine on
# restrict the following rule to /bpd/
RewriteBase /bpd/
# set /meitar or /meitar/ to meitar.php (or similar)
RewriteRule ^/meitar/?$ meitar.php
</pre>
</li>
</ul>
<p>Most recently, I was asked if there is some way Apache could automatically &ldquo;redirect <acronym title="HyperText Transfer Protocol">HTTP</acronym> to <acronym title="HyperText Transfer Protocol Secured; HTTP over SSL">HTTPS</acronym>&rdquo; transparently. Sure enough, this is a piece of cake:</p>
<pre>RewriteEngine on
# is request not on <acronym title="HyperText Transfer Protocol Secured; HTTP over SSL">HTTPS</acronym>?
RewriteCond %{<acronym title="HyperText Transfer Protocol Secured; HTTP over SSL">HTTPS</acronym>} !=on
# if so, redirect it (the [R] flag) and stop processing (the [L] flag)
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]</pre>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2004/12/13/fun-with-apache-redirects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To Shopping Cart or not to Shopping Cart?</title>
		<link>http://maymay.net/blog/2004/10/10/to-shopping-cart-or-not-to-shopping-cart/</link>
		<comments>http://maymay.net/blog/2004/10/10/to-shopping-cart-or-not-to-shopping-cart/#comments</comments>
		<pubDate>Mon, 11 Oct 2004 00:16:57 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Business & E-Commerce]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">/?p=69</guid>
		<description><![CDATA[Shopping carts have become a ubiquitos concept on the Web. It seems that everyone from mom and pop stores to huge corporations have shopping carts on their web sites. Everywhere you shop online, each site has its own little handbasket for you to drop its products off in. The other day a new start-up company [...]]]></description>
			<content:encoded><![CDATA[<p>Shopping carts have become a ubiquitos concept on the Web. It seems that everyone from mom and pop stores to huge corporations have shopping carts on their web sites. Everywhere you shop online, each site has its own little handbasket for you to drop its products off in.</p>
<p>The other day <a href="http://www.dressyourcurves.com/">a new start-up company</a> asked me for advice on their Web site. Specifically, they wanted to know if they needed to install a shopping cart, and if it would help with their sales.</p>
<p>This brings up a really interesting point that many sites should look into. Are shopping carts really necessary? In what situations do they help, and in which do they hinder? Most importantly, do they really increase sales?</p>
<p>To answer this question appropriately, I had to take a close and careful look at what their site was selling, who the target audience is, and why they are browsing the Web site. Contrary to popular belief, it is <em>not</em> a given fact that every online store needs a shopping cart, and the misapplication of <a href="http://www.clickz.com/experts/design/traffic/article.php/2245891">shopping carts can actually have a disastrous effect on sales.</a></p>
<p>Too often <em>sales are lost because of shopping carts</em> and the online check-out procedure. According to some statistics, up to 75% of customers who shop online regularly abandon their purchases when confronted with complicated check-out forms. This phenomenon is known as <dfn>shopping cart abandonment</dfn>. Though well-intentioned, shopping carts can add a lot of confusion and hassle to a process Web users are already potentially uncomfortable with. To use the marketing terminology, they muck up your sales path! Consider the following flaws in most shopping carts:</p>
<ol>
<li>Design; shopping carts are confusing! They have lots of different components, lots of forms, and it&#8217;s not always clear what does what, no matter how boldly you&#8217;ve labeled something.</li>
<li>Hassle; online e-commerce check-out procedures are getting longer and longer. Sometimes it&#8217;s just easier, quicker, and less of a hassle to get an item elsewhere.</li>
<li>Too personal; when was the last time you were asked for your home address when buying something from a real-world store? Well, you give out a lot more than that every time you fill in a check-out form online. That scares people, and rightfully so!</li>
</ol>
<p>On the other hand, there are legitimate arguments for why you would want to install a shopping cart in your store.</p>
<ol>
<li>It&#8217;s familiar. Some visitors are so used to online shopping carts that they feel strange placing an order from a site without one. In short, a shopping cart can add legitimacy to your online business, ironically by making it seem like a bigger or more sophisticated corporation than it really is.</li>
<li>It encourages browsing. By placing an item &ldquo;in your shopping cart&rdquo; you can return to it later.</li>
</ol>
<p>There are both pros and cons to using a shopping cart. In order to use a cart effectively, and certainly before you spend the time and money installing one, you must make an informed decision as to why you think you need it in the first place.</p>
<p>Shopping carts typically work best in situations where a site is offering lots of varied items for sale and where these items are products rather than services. This is why sites like <a href="http://www.amazon.com/">Amazon</a>, <a href="http://www.bn.com/">Barnes and Noble Booksellers</a>, and <a href="http://www.sony.com/">Sony</a> use shopping carts. They benefit because the shopping cart offers a means for customers to &ldquo;bookmark&rdquo; items they are interested yet still continue searching for other products that might be better suited to their personal needs.</p>
<p>There are two major cases where shopping carts typically hinder a visitor rather than help them, however. The first is in the case where a site is offering a very specialized or specific niche service and/or product. The second is when there is only a very small number of services and/or products available for sale.</p>
<p>Take, for example, the case of <a title="Fasion advice from your virtual personal stylist!" href="http://www.dressyourcurves.com/">DressYourCurves.com</a>, nice folks who offer personalized fasion advice. Each of their services is extremely specific. If I&#8217;m at their site, there can only be a few things I&#8217;m looking for and each of those involve getting fasion advice (something I probably need, though they only offer advice for women). Since they offer a small number of very specific services, there&#8217;s no need for a shopping cart, and indeed it would only slow down the process by which I pay and get my advice! <a href="http://www.dressyourcurves.com/">DressYourCurves.com</a> thus meets the criteria of both of these cases where a shopping cart is unnecessary.</p>
<p>The bottom line is, shopping carts can be an obstacle rather than a convenience if you use them improperly or in the wrong places. Before you go installing one think carefully about how your average visitor will feel about using it and what using it will mean to the overall shopping experience you are trying to convey.</p>
<p>Whether or not it is a good idea to install a shop in your online store will ultimately be a judgement call. Sometimes it&#8217;s really a far better option to devise your own purchase pages so that you can keep them as simple and direct as you can. If you do decide to install a cart, make sure it&#8217;s one that you can easily customize in order to fit it as innocuosly as possible into your site&#8217;s sales path. Many carts offer the ability to customize their look and feel, but this is often not as simple as they make it seem. To date, the best shopping cart and e-commerce solution available (in my humble opinion) is <a href="http://www.oscommerce.com/">osCommerce</a>.</p>
<p>And while I&#8217;m on the subject, I&#8217;d be very interested to hear about both good and bad experiences you may have had with shopping carts.</p>
<p>May all your visitors be customers and may all your customers be repeat visitors! Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2004/10/10/to-shopping-cart-or-not-to-shopping-cart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redirects: An 8th Grader Could do Better!</title>
		<link>http://maymay.net/blog/2004/09/11/redirects-an-8th-grader-could-do-better/</link>
		<comments>http://maymay.net/blog/2004/09/11/redirects-an-8th-grader-could-do-better/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">/?p=77</guid>
		<description><![CDATA[How hard do you think it should be to find some information on the Internet? Not very. Google makes it easy to find information, but they don&#8217;t host any of it. That means that when Google tells me that it found something I might be interested in, I have to go the source to find [...]]]></description>
			<content:encoded><![CDATA[<p>How hard do you think it should be to find some information on the Internet? Not very. Google makes it easy to find information, but they don&#8217;t host any of it. That means that when Google tells me that it found something I might be interested in, I have to go the source to find it.</p>
<p>While Google does its job very well, the source of the information doesn&#8217;t always give it up so easily. For instance, earlier today I wanted to find a brief summary statement of Vincent van Gough&#8217;s life. Just a little blurb, nothing fancy like images or some kind of wow-me-silly presentation. Just a line that looked something like &ldquo;Vincent van Gough was born in &#8230; he painted this many paintings in this style. Etc, etc&#8230;.&rdquo;</p>
<p>Naturally, I <a href="http://www.google.com/search?q=van+gough">googled the term</a>. Among others, that brought me to the <a href="http://www.artcyclopedia.com/artists/vincent-van-gough.html">ArtCyclopedia page on Vincent van Gough</a>. But wait, <strong>don&#8217;t click on that link!</strong> Why? Because it&#8217;s <em>a redirect page!</em></p>
<p>After searching for nearly 20 minutes, getting a redirect page was more than just frustrating, it was painful. First of all, there&#8217;s no reason at all why a redirect page can&#8217;t be automatic. Even a simple <code>http-equiv=&quot;refresh&quot;</code> would have been better than making me click the link. I actually spent some time looking for link to the page I was supposed to go to because their link wasn&#8217;t clear enough.</p>
<p>Which leads me to point number one about redirects:</p>
<p><strong>Always put the link at the top of the page, and make it as prominent as possible!</strong></p>
<p>To get more technical, there&#8217;s actually no reason why a redirect <em>page</em> should be necessary at all! Using sever-side scripting one could easily output a <code>Location</code> <acronym title="HyperText Transfer Protocol or HyperText Transport Protocol"><acronym title="HyperText Transfer Protocol">HTTP</acronym></acronym> header and be done with it. Alternatively, you could simply put a <code>Redirect permanent</code> line in a <code>.htaccess</code> file. And if you needed anything fancier, Apache&#8217;s <code>mod_rewrite</code> can turn any <acronym title="Uniform Resource Identifier"><acronym title="Uniform Resource Identifier">URI</acronym></acronym> into any filename request imagineable!</p>
<p>So in the end, <strong>this redirect page wasn&#8217;t even necessary!</strong></p>
<p>The real blow hit me when I actually got <a href="http://www.artcyclopedia.com/artists/van_gogh_vincent.html">the right page</a>. The problem here is two-fold.</p>
<ol>
<li>No information about Vincent van Gough is directly on the page. You need to click on hyperlinks to find anything out.</li>
<li>The page is divided into two sections; a navbar sits on the left side of the site. But that navbar is frozen on the screen somehow and <em>doesn&#8217;t scroll with the rest of the site!</em> This wouldn&#8217;t be a problem if I had a monitor the length of a city block, but as it stands it presents a major navigational problem: I can&#8217;t get to the rest of the links, presumably where my desired information is, because the links aren&#8217;t accessible!</li>
</ol>
<p>I wish this were a rare problem, but bad web sites like these exist in abundance all over the place. In the end, I got my information from <a href="http://www.rcs.k12.va.us/csjh/8th_03/jordan/jordan1.htm">Jordan, an 8th grader</a> with better design skills than whoever did that blasted ArtCyclopedia design. Thank you Jordan!</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2004/09/11/redirects-an-8th-grader-could-do-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Love for Web Developers</title>
		<link>http://maymay.net/blog/2004/07/25/love-for-web-developers/</link>
		<comments>http://maymay.net/blog/2004/07/25/love-for-web-developers/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Meitar</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">/?p=55</guid>
		<description><![CDATA[It occured to me today that the prevalence of badly-designed computer programs is depressingly common. More depressing, however, is the fact that this badly-designed technology is considered normal, espoused as right on par. Even worse, regardless of quality, almost any upgrade or advance to the next version number is seen as an &#34;improvement&#34; for the [...]]]></description>
			<content:encoded><![CDATA[<p class="intro">
It occured to me today that the prevalence of badly-designed computer programs is depressingly common. More depressing, however, is the fact that this badly-designed technology is considered normal, espoused as right on par. Even worse, regardless of quality, almost any upgrade or advance to the next version number is seen as an &quot;improvement&quot; for the mere fact that some annoyances have been fixed or improved upon.
</p>
<p>
This begs the question, why wasn&#8217;t the original version as good as this one? Yes, I tried my hand at developing some programs, and I completely understand the development cycle but it does seem rather silly that many programs which truly suck in terms of usability and user-friendliness are released as final products. Not until version 3 or 4 do such programs actually become useable by the majority of computer users out there.
</p>
<p>
This was all sparked by my discovery of Firefox&#8217;s (or, really, the Mozilla code-base&#8217;s) development of extensions. While working on the <a href="http://www.sandorszenassy.com/">SandorSzenassy.com</a> web gallery redesign, I was rather disappointed when I couldn&#8217;t find the option to show the site navigation toolbar in Firefox, a feauture present in the Mozilla and Netscape browsers as well as some others.
</p>
<p>
This prompted me to head on over to <a href="http://forums.mozillazine.org/">MozillaZine</a> and suggest that the feature be added to Firefox, or how I could get it if it already existed. Sure enough, the <a href="http://extensionroom.mozdev.org/more-info/linktoolbar">link toolbar extension</a> was available and I immediately downloaded it.
</p>
<p>
After that, I started exploring other extensions, and came across the <a href="http://www.chrispederick.com/work/firefox/webdeveloper/download/">Web Developer Toolbar</a>. I&#8217;ve just been playing with it for a few moments already, but I am so impressed that I already have that &quot;How did I get along with this for so long?&quot; feeling. Five minutes with this baby, and you will too!
</p>
<p>
Hoorah for making my life easier! Moral of the story: if there&#8217;s an easier way to do something, go look for the way. You&#8217;ll be glad you did.</p>
]]></content:encoded>
			<wfw:commentRss>http://maymay.net/blog/2004/07/25/love-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

