<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Trevor Davis</title>
	
	<link>http://trevordavis.net</link>
	<description>Doing That Web Standards Thing</description>
	<lastBuildDate>Tue, 07 Jul 2009 21:12:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TrevorDavisFullBlog" type="application/rss+xml" /><feedburner:emailServiceId>TrevorDavisFullBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Misunderstanding markup</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/mj49P64Yu-k/</link>
		<comments>http://trevordavis.net/asides/misunderstanding-markup/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 21:11:58 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1998</guid>
		<description><![CDATA[Everyone is freaking out about the XHTML 2 Working Group disbanding at the end of the year. Relax people! Jeremy Keith helps to explain why nobody should worry.
]]></description>
			<content:encoded><![CDATA[<p>Everyone is freaking out about the XHTML 2 Working Group disbanding at the end of the year. Relax people! Jeremy Keith <a href="http://adactio.com/journal/1595/">helps to explain why nobody should worry</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=mj49P64Yu-k:nkhOADgTei4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=mj49P64Yu-k:nkhOADgTei4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=mj49P64Yu-k:nkhOADgTei4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=mj49P64Yu-k:nkhOADgTei4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=mj49P64Yu-k:nkhOADgTei4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=mj49P64Yu-k:nkhOADgTei4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=mj49P64Yu-k:nkhOADgTei4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/mj49P64Yu-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/misunderstanding-markup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/misunderstanding-markup/</feedburner:origLink></item>
		<item>
		<title>Enough with the IE6 Whining</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/I4mlkyxxa6w/</link>
		<comments>http://trevordavis.net/blog/web/enough-with-the-ie6-whining/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 04:25:04 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1979</guid>
		<description><![CDATA[Seriously, I can&#8217;t go a day without reading about someone complaining about IE6. Yes, we all know it&#8217;s support is terrible. Yes, we know that Microsoft sat around and did nothing for 5 years. But look, they have stepped their game up, they have released 2 browser versions in 3 years. Yes, they are not [...]]]></description>
			<content:encoded><![CDATA[<p>Seriously, I can&rsquo;t go a day without reading about someone complaining about IE6. Yes, we all know it&rsquo;s support is terrible. Yes, we know that Microsoft sat around and did nothing for 5 years. But look, they have stepped their game up, they have released 2 browser versions in 3 years. Yes, they are not up to par with more standards compliant browsers, but they are a major improvement over IE6.</p>
<p><span id="more-1979"></span></p>
<p>So I ask you: <strong>what is Microsoft supposed to do</strong>?</p>
<p>It isn&rsquo;t their fault that users won&rsquo;t upgrade their browser.</p>
<h2>Suck It Up</h2>
<p>If you call yourself a web developer, you should be able to make things presentable in IE6. If you can&rsquo;t, then you probably shouldn&rsquo;t call yourself one. So suck it up and deal with it. <strong>Doesn&rsquo;t the challenge make our jobs more interesting?</strong></p>
<p>I&rsquo;m not saying that your site has to look exactly the same in all browsers. <a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">We already know the answer to that question</a>. Just make it presentable. Make sure a user can access all content on the site. Remember, it&rsquo;s <strong>still</strong> all about the content.</p>
<h3>Better Yet</h3>
<p>Take a look at the traffic to the site and determine to what degree you even need to support it. If IE6 visitors only compromise a very small percentage, maybe consider using <a href="http://forabeautifulweb.com/blog/about/universal_internet_explorer_6_css/">Andy Clarke&rsquo;s Universal Internet Explorer 6 CSS</a>. That will put the content front and center in IE6, and you won&rsquo;t even have to worry about it.</p>
<p>Just please, stop complaining.</p>
<p><strong>&lt;/rant></strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=I4mlkyxxa6w:KV-piCi_QV8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=I4mlkyxxa6w:KV-piCi_QV8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=I4mlkyxxa6w:KV-piCi_QV8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=I4mlkyxxa6w:KV-piCi_QV8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=I4mlkyxxa6w:KV-piCi_QV8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=I4mlkyxxa6w:KV-piCi_QV8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=I4mlkyxxa6w:KV-piCi_QV8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/I4mlkyxxa6w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/web/enough-with-the-ie6-whining/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/web/enough-with-the-ie6-whining/</feedburner:origLink></item>
		<item>
		<title>Walls Come Tumbling Down</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/qt0hTv-Ox4U/</link>
		<comments>http://trevordavis.net/asides/walls-come-tumbling-down/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 15:00:59 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1981</guid>
		<description><![CDATA[Andy Clarke has posted the slides and transcript from his presentation at @media2009. It&#8217;s a long one, so I scanned it, but it looked like a fantastic presentation.
]]></description>
			<content:encoded><![CDATA[<p>Andy Clarke has posted the <a href="http://forabeautifulweb.com/blog/about/walls_come_tumbling_down_presentation_slides_and_transcript/">slides and transcript</a> from his presentation at @media2009. It&rsquo;s a long one, so I scanned it, but it looked like a fantastic presentation.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=qt0hTv-Ox4U:gyRqTqajRGc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=qt0hTv-Ox4U:gyRqTqajRGc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=qt0hTv-Ox4U:gyRqTqajRGc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=qt0hTv-Ox4U:gyRqTqajRGc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=qt0hTv-Ox4U:gyRqTqajRGc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=qt0hTv-Ox4U:gyRqTqajRGc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=qt0hTv-Ox4U:gyRqTqajRGc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/qt0hTv-Ox4U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/walls-come-tumbling-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/walls-come-tumbling-down/</feedburner:origLink></item>
		<item>
		<title>jQuery Inline Form Labels</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/cMBkef2oLeo/</link>
		<comments>http://trevordavis.net/blog/tutorial/jquery-inline-form-labels/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 05:25:27 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1938</guid>
		<description><![CDATA[I&#8217;ve been seeing the trend of applying inline labels on form elements more and more these days. So I definitely needed to come up with a solid solution that would help me easily apply this effect.

Maybe I need to explain a little better what I am referring to. Instead of using a label that is [...]]]></description>
			<content:encoded><![CDATA[<p>I&rsquo;ve been seeing the trend of applying inline labels on form elements more and more these days. So I definitely needed to come up with a solid solution that would help me easily apply this effect.</p>
<p><span id="more-1938"></span></p>
<p><a href="http://trevordavis.net/play/jquery-inline-form-labels/"><img src="http://trevordavis.net/wp-content/uploads/2009/06/jquery-inline-labels.png" alt="jQuery Inline Form Labels" width="280" height="169" class="leftSide pullLeft" /></a>Maybe I need to explain a little better what I am referring to. Instead of using a label that is next to or above the input element, the label is actually within the input. Then, when the input is focused, the label goes away and you can enter your value into it. Finally, when the input is no longer focused, if there is no value entered, the inline label is then added back in.</p>
<p><a href="http://trevordavis.net/play/jquery-inline-form-labels/" class="more-link">See Demo</a></p>
<h2>My Solution</h2>
<p>The title attribute.</p>
<p>It&rsquo;s so simple, but perfect. A great benefit of using the title attribute, is that when you hover over the input, you get a little tooltip displaying the inline label. So all I need to do is add a title attribute with the text that we want to have show up as the inline label. Then, we just use a little jQuery to make it all happen.</p>
<h3>The jQuery</h3>
<p>First, we want to select each input that has a title attribute, once the document is loaded:</p>
<pre><code>$(document).ready(function() {
	$('input[title]').each(function() {
	&hellip;
	});
});</code></pre>
<p>Next, if the value of the input element is empty, we want to take the title attribute and add it as the value of the input.</p>
<pre><code>$(document).ready(function() {
	$('input[title]').each(function() {
		<strong>if($(this).val() === '') {
			$(this).val($(this).attr('title'));
		}</strong>
	});
});</code></pre>
<p>After that, we want to setup a function that will fire once the input is focused. When it is focused, if the value is equal to the title attribute, we want to set the value to nothing and add a class of focused:</p>
<pre><code>$(document).ready(function() {
	$('input[title]').each(function() {
		if($(this).val() === '') {
			$(this).val($(this).attr('title'));
		}

		<strong>$(this).focus(function() {
			if($(this).val() === $(this).attr('title')) {
				$(this).val('').addClass('focused');
			}
		});</strong>
	});
});</code></pre>
<p>The reason why we add the class of focused is so that we can change the text color, border or anything to make it noticeable that the input is being focused. You can see this effect in the <a href="http://trevordavis.net/play/jquery-inline-form-labels/">demo</a>.</p>
<p>Finally, we want to add a function that will fire when the input loses focus. When it does, if the input value is empty, we want to set the value back to the title attribute and remove the class of focused:</p>
<pre><code>$(document).ready(function() {
	$('input[title]').each(function() {
		if($(this).val() === '') {
			$(this).val($(this).attr('title'));
		}

		$(this).focus(function() {
			if($(this).val() === $(this).attr('title')) {
				$(this).val('').addClass('focused');
			}
		});

		<strong>$(this).blur(function() {
			if($(this).val() === '') {
				$(this).val($(this).attr('title')).removeClass('focused');
			}
		});</strong>
	});
});</code></pre>
<p><a href="http://trevordavis.net/play/jquery-inline-form-labels/" class="more-link">See Demo</a></p>
<p>And that&rsquo;s it. It&rsquo;s just a little bit of code, but it can go a long way. So take it and build on it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cMBkef2oLeo:2EGlsANg9Sw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=cMBkef2oLeo:2EGlsANg9Sw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cMBkef2oLeo:2EGlsANg9Sw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cMBkef2oLeo:2EGlsANg9Sw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cMBkef2oLeo:2EGlsANg9Sw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=cMBkef2oLeo:2EGlsANg9Sw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cMBkef2oLeo:2EGlsANg9Sw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/cMBkef2oLeo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/jquery-inline-form-labels/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/jquery-inline-form-labels/</feedburner:origLink></item>
		<item>
		<title>Dog and Pony Show Design</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/-fycVfTaLIk/</link>
		<comments>http://trevordavis.net/asides/dog-and-pony-show-design/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 15:07:52 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1940</guid>
		<description><![CDATA[Andy Rutledge continues to blow my mind with his fantastic articles. &#8220;Multiple design options are what you visit in your design process on your way toward a solution. What you present to your client must be the most effective result of your exhaustive efforts. Nothing less.&#8221;
]]></description>
			<content:encoded><![CDATA[<p>Andy Rutledge continues to blow my mind with his <a href="http://www.andyrutledge.com/dog-and-pony-show-design.php">fantastic articles</a>. &ldquo;Multiple design options are what you visit in your design process on your way toward a solution. What you present to your client must be the most effective result of your exhaustive efforts. Nothing less.&rdquo;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-fycVfTaLIk:pvvuf6xEA-E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=-fycVfTaLIk:pvvuf6xEA-E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-fycVfTaLIk:pvvuf6xEA-E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-fycVfTaLIk:pvvuf6xEA-E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-fycVfTaLIk:pvvuf6xEA-E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=-fycVfTaLIk:pvvuf6xEA-E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-fycVfTaLIk:pvvuf6xEA-E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/-fycVfTaLIk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/dog-and-pony-show-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/dog-and-pony-show-design/</feedburner:origLink></item>
		<item>
		<title>Remember, You are the Expert</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/UDwyOs-WKl0/</link>
		<comments>http://trevordavis.net/blog/thoughts/remember-you-are-the-expert/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 05:18:16 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1914</guid>
		<description><![CDATA[I&#8217;ve been realizing lately that there is a big problem in the web design/development field: we aren&#8217;t thought of as experts. Ok maybe that&#8217;s not completely true, but I&#8217;ve seen a lot of clients &#8220;guiding&#8221; the process. But actually, maybe this is our own fault, so how can we fix it?

Be the Expert
We have to [...]]]></description>
			<content:encoded><![CDATA[<p>I&rsquo;ve been realizing lately that there is a big problem in the web design/development field: we aren&rsquo;t thought of as experts. Ok maybe that&rsquo;s not completely true, but I&rsquo;ve seen a lot of clients &ldquo;guiding&rdquo; the process. But actually, maybe this is our own fault, so how can we fix it?</p>
<p><span id="more-1914"></span></p>
<h2>Be the Expert</h2>
<p>We have to remember that we are the web experts in this relationship. We need to show confidence when talking with clients. Talk authoritatively about the details of the project and show them that we know what we are talking about. Just like we wouldn&rsquo;t go tell an architect how to design a house, our clients need to trust us to build their website.</p>
<h2>Stick to Your Guns</h2>
<p>So let&rsquo;s say a client suggests something that you know would work better if you did it a different way; don&rsquo;t just say yes to the client, make your suggestion and build a case for it. Reference other examples. Site statistics. Fight for the best solution. Remember, <strong>you</strong> are the expert.</p>
<h2>Read, Browse, and Read Some More</h2>
<p>The web is full of great articles, bad examples of web sites, good examples of web sites, and much more. So by just spending time browsing the web, you can amass a huge amount of knowledge about what works and what doesn&rsquo;t. This will provide you with loads of ammunition to use when clients need your guidance.</p>
<h2>It&rsquo;s Hard</h2>
<p>I struggle with it all the time. It&rsquo;s hard to say no to a client when they are the ones paying you. But the best thing to do is to make your suggestions, back it up with statistics &amp; examples, and hope that the client trusts your judgment.</p>
<p>Remember, <strong>you</strong> are the expert.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=UDwyOs-WKl0:Dhj06FTo_vE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=UDwyOs-WKl0:Dhj06FTo_vE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=UDwyOs-WKl0:Dhj06FTo_vE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=UDwyOs-WKl0:Dhj06FTo_vE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=UDwyOs-WKl0:Dhj06FTo_vE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=UDwyOs-WKl0:Dhj06FTo_vE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=UDwyOs-WKl0:Dhj06FTo_vE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/UDwyOs-WKl0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/thoughts/remember-you-are-the-expert/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/thoughts/remember-you-are-the-expert/</feedburner:origLink></item>
		<item>
		<title>Of Brands and Commodities</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/FRIaqIHW1P4/</link>
		<comments>http://trevordavis.net/asides/of-brands-and-commodities/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 17:10:04 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1916</guid>
		<description><![CDATA[Genius: &#8220;Turning down money to make money; sounds like a dodgy strategy, but it&#8217;s more powerful than you might think. And it&#8217;s required if you want to build a brand.&#8221;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andyrutledge.com/of-brands-and-commodities.php">Genius</a>: &ldquo;Turning down money to make money; sounds like a dodgy strategy, but it&rsquo;s more powerful than you might think. And it&rsquo;s required if you want to build a brand.&rdquo;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=FRIaqIHW1P4:GfgLtDujLBQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=FRIaqIHW1P4:GfgLtDujLBQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=FRIaqIHW1P4:GfgLtDujLBQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=FRIaqIHW1P4:GfgLtDujLBQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=FRIaqIHW1P4:GfgLtDujLBQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=FRIaqIHW1P4:GfgLtDujLBQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=FRIaqIHW1P4:GfgLtDujLBQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/FRIaqIHW1P4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/of-brands-and-commodities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/of-brands-and-commodities/</feedburner:origLink></item>
		<item>
		<title>10 Cost Effective Web Development Techniques</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/HX09to55RSY/</link>
		<comments>http://trevordavis.net/asides/10-cost-effective-web-development-techniques/#comments</comments>
		<pubDate>Fri, 22 May 2009 18:27:35 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1912</guid>
		<description><![CDATA[Excellent, excellent, excellent presentation from Drew McLellan. Wish I could have seen it in person.
]]></description>
			<content:encoded><![CDATA[<p>Excellent, excellent, excellent <a href="http://allinthehead.com/retro/340/10-cost-effective-web-development-techniques">presentation from Drew McLellan</a>. Wish I could have seen it in person.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=HX09to55RSY:XhQApeTRnO4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=HX09to55RSY:XhQApeTRnO4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=HX09to55RSY:XhQApeTRnO4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=HX09to55RSY:XhQApeTRnO4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=HX09to55RSY:XhQApeTRnO4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=HX09to55RSY:XhQApeTRnO4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=HX09to55RSY:XhQApeTRnO4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/HX09to55RSY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/10-cost-effective-web-development-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/10-cost-effective-web-development-techniques/</feedburner:origLink></item>
		<item>
		<title>Creating a Google Map with ExpressionEngine</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/PlO15dMg7d4/</link>
		<comments>http://trevordavis.net/asides/creating-a-google-map-with-expressionengine/#comments</comments>
		<pubDate>Wed, 13 May 2009 13:24:36 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1908</guid>
		<description><![CDATA[Since I have a newfound love of ExpressionEngine, I wrote my most recent article for NETTUTS about creating a Google Map with it.
]]></description>
			<content:encoded><![CDATA[<p>Since I have a newfound love of ExpressionEngine, I wrote my most recent article for NETTUTS about <a href="http://net.tutsplus.com/tutorials/other/creating-a-google-map-with-expressionengine/">creating a Google Map</a> with it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=PlO15dMg7d4:cJr94lF_TWw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=PlO15dMg7d4:cJr94lF_TWw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=PlO15dMg7d4:cJr94lF_TWw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=PlO15dMg7d4:cJr94lF_TWw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=PlO15dMg7d4:cJr94lF_TWw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=PlO15dMg7d4:cJr94lF_TWw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=PlO15dMg7d4:cJr94lF_TWw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/PlO15dMg7d4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/creating-a-google-map-with-expressionengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/creating-a-google-map-with-expressionengine/</feedburner:origLink></item>
		<item>
		<title>User Experience Beyond the Web</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/Z8Lo8z5VFBU/</link>
		<comments>http://trevordavis.net/blog/web/user-experience-beyond-the-web/#comments</comments>
		<pubDate>Tue, 12 May 2009 04:10:24 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1865</guid>
		<description><![CDATA[I had the &#8220;pleasure&#8221; of having jury duty last week. This was the first time I had ever been called for it before, and I must say that the experience definitely left a lot to be desired. It is definitely clear that all of the time spent on user experience on the web ends up [...]]]></description>
			<content:encoded><![CDATA[<p>I had the &ldquo;pleasure&rdquo; of having jury duty last week. This was the first time I had ever been called for it before, and I must say that the experience definitely left a lot to be desired. It is definitely clear that all of the time spent on user experience on the web ends up providing a better experience for the end user. But my question now is: <strong>why isn&rsquo;t that kind of effort put in outside of the web?</strong></p>
<p><span id="more-1865"></span></p>
<p>There was basically no part of my jury duty experience that was pleasurable. Let me walk you through how my day went.</p>
<h2>Getting Up Early</h2>
<p>First off, I had to get up super early in order to get there on time. If I am just going to be waiting around most of the day, <strong>why do I have to be there at 8:15am?</strong></p>
<h2>Parking</h2>
<p>So I pulled into the parking lot that they told me to park in, and started to walk to the court house. But wait, I had no clue where to go. There were <strong>no</strong> signs at all. Luckily I guessed right, or I would have been late.</p>
<h2>Security</h2>
<p>Since I was going into a court house, I totally expected to have to go through security. I was told that jury duty would probably end up being a lot of waiting around, and I saw that they had wireless internet access there, so I figured I would bring my laptop and get some work done.</p>
<p>First, I had to check my cellphone since it had a camera on it. I&rsquo;m not really sure what I would want to take pictures with, but whatever, I checked it. I did feel a little lost without my phone though.</p>
<p>Next, I had to go through the metal detectors and put my bag on the x-ray machine. The security officer asked me to take out my laptop and turn it on. I was confused as to why I would need to turn it on, but I hit the button and waited for it to power up. Then, he sees that my laptop has a built-in camera, and tells me that I can&rsquo;t bring it in.</p>
<p>I looked at him befuddled because I couldn&rsquo;t imagine sitting with my laptop facing out in the courtroom, taking pictures, and not having someone say something to me. The security officer tells me that I have to take it back to my car. So, I had to walk the quarter of a mile back to my car, put the laptop in there, then walk back and go through security.</p>
<p><strong>Seems a little ridiculous, right?</strong> I must give them credit for actually having wireless internet, but not being able to bring in my laptop really pissed me off.</p>
<h2>The Waiting Room</h2>
<p>Once I got through security and checked in, I was directed to a big room with a bunch of tables and chairs where we would wait for the next hour or so. Of course, the chairs were jammed in together, and there were not enough seats in the room for everyone.</p>
<p>We watched a 15 minute training video, and then the courthouse employees tried to get us to donate money to the court system. Yeah, after you put me in a bad mood because I couldn&rsquo;t bring in my laptop, I&rsquo;m sure I&rsquo;ll jump at the opportunity to give you money.</p>
<p>What a great start to the morning.</p>
<h2>The Next Waiting Room</h2>
<p>Finally, my group got called to the courtroom, and we stood around and waited for about two hours until we finally got called into the court room to go through the jury selection process.</p>
<p>So again, more waiting, that&rsquo;s basically what I did all day.</p>
<h2>Does anyone think about the experience?</h2>
<p>Here we are in a situation where we are supposed to be impartial and have no biases, and I was in a piss poor mood. Why don&rsquo;t they make these kind of situations as painless as possible? Why isn&rsquo;t there someone making sure that the experience of having jury duty is not awful?</p>
<p>Just like we devote time thinking about users&rsquo; experiences on the websites we are creating; organizations need to consider what those experiences outside of the web are like.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=Z8Lo8z5VFBU:4JDH_PcmI_o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=Z8Lo8z5VFBU:4JDH_PcmI_o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=Z8Lo8z5VFBU:4JDH_PcmI_o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=Z8Lo8z5VFBU:4JDH_PcmI_o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=Z8Lo8z5VFBU:4JDH_PcmI_o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=Z8Lo8z5VFBU:4JDH_PcmI_o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=Z8Lo8z5VFBU:4JDH_PcmI_o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/Z8Lo8z5VFBU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/web/user-experience-beyond-the-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/web/user-experience-beyond-the-web/</feedburner:origLink></item>
		<item>
		<title>Designer, Owner, Manager – 1: Hiring the Right People</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/zBTOxxTtJkA/</link>
		<comments>http://trevordavis.net/asides/designer-owner-manager-1-hiring-the-right-people/#comments</comments>
		<pubDate>Wed, 06 May 2009 02:12:22 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1858</guid>
		<description><![CDATA[Andy Rutledge&#8217;s latest article seems like it will come in handy when I eventually start my own business. Some great tips here; especially numbers 6 &#38; 8.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andyrutledge.com/hiring-the-right-people.php">Andy Rutledge&rsquo;s latest article</a> seems like it will come in handy when I eventually start my own business. Some great tips here; especially numbers 6 &amp; 8.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=zBTOxxTtJkA:WnTwLM6siRc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=zBTOxxTtJkA:WnTwLM6siRc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=zBTOxxTtJkA:WnTwLM6siRc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=zBTOxxTtJkA:WnTwLM6siRc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=zBTOxxTtJkA:WnTwLM6siRc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=zBTOxxTtJkA:WnTwLM6siRc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=zBTOxxTtJkA:WnTwLM6siRc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/zBTOxxTtJkA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/designer-owner-manager-1-hiring-the-right-people/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/designer-owner-manager-1-hiring-the-right-people/</feedburner:origLink></item>
		<item>
		<title>Let your links look like links</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/-0hjdC7DoGU/</link>
		<comments>http://trevordavis.net/asides/let-your-links-look-like-links/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 05:46:05 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1851</guid>
		<description><![CDATA[Roger Johansson discusses one of my big pet peeves: links need to look like links. Links are the most important part of the web. Make them stand out.
]]></description>
			<content:encoded><![CDATA[<p>Roger Johansson discusses one of my big pet peeves: <a href="http://www.456bereastreet.com/archive/200904/let_your_links_look_like_links/">links need to look like links</a>. Links are the most important part of the web. Make them stand out.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-0hjdC7DoGU:_SifKUZiA3Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=-0hjdC7DoGU:_SifKUZiA3Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-0hjdC7DoGU:_SifKUZiA3Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-0hjdC7DoGU:_SifKUZiA3Q:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-0hjdC7DoGU:_SifKUZiA3Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=-0hjdC7DoGU:_SifKUZiA3Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=-0hjdC7DoGU:_SifKUZiA3Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/-0hjdC7DoGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/let-your-links-look-like-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/let-your-links-look-like-links/</feedburner:origLink></item>
		<item>
		<title>Review: Building Websites with ExpressionEngine 1.6</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/aYyjQxj9wbI/</link>
		<comments>http://trevordavis.net/blog/web/review-building-websites-with-expression-engine/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:00:26 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1756</guid>
		<description><![CDATA[I was lucky enough to be contacted by Packt Publishing to review the book Building Websites with ExpressionEngine 1.6 by Leonard Murphy. I have recently become very infatuated with ExpressionEngine, and I have devoted a lot of time to learning how to use it. This book was a great opportunity to see where my skill [...]]]></description>
			<content:encoded><![CDATA[<p>I was lucky enough to be contacted by <a href="http://www.packtpub.com/">Packt Publishing</a> to review the book <a href="http://www.packtpub.com/building-websites-with-expressionengine-1.6/book/mid/200409srne2o">Building Websites with ExpressionEngine 1.6</a> by Leonard Murphy. I have recently become very infatuated with <a href="http://expressionengine.com/">ExpressionEngine</a>, and I have devoted a lot of time to learning how to use it. This book was a great opportunity to see where my skill set was at.</p>
<span id="more-1756"></span>
<a href="http://www.packtpub.com/building-websites-with-expressionengine-1.6/book/mid/200409srne2o"><img src="http://trevordavis.net/wp-content/uploads/2009/04/building-site-ee.jpg" alt="Building Websites with ExpressionEngine 1.6" class="rightSide frame" height="259" width="210" /></a>
<h2>Who is it for?</h2>
<p>This book is definitely aimed toward beginning users of <abbr title="ExpressionEngine">EE</abbr> who have some knowledge of HTML. There is no knowledge of EE needed in order to read this book. So basically anyone who wants to learn how to use EE would benefit from reading this. While I have had some experience with EE, I found many parts of this book that were more of a review for me.</p>

<h2>What I liked</h2>
<p>I really liked that Leonard uses a lot of screenshots and code snippets to help walk through how he is doing something. They definitely would have helped me to comprehend some of the EE concepts that I did not understand until devoting a lot of time online doing research.</p>

<p>This book does a great job of covering a variety of topics, from installing EE and creating a calendar to using other modules and plugins. Even though I have prior experience with EE and this book is geared toward beginners, I did learn a few things about EE from reading this book.</p>

<h2>What I could do without</h2>
<p>There seemed to be a large chunk of the book devoted to applying CSS to the examples to make them presentable. I don&rsquo;t think there is any need to go through and explain the CSS; people are buying the book for information about EE.</p>

<p>I also wish that the example site that is used in the book were a bit more realistic. I really learned a lot from Mike Boyink&rsquo;s <a href="http://www.train-ee.com/courseware/free-tutorials/category/building-a-church-site/">Building a Church Site</a> and <a href="http://www.train-ee.com/courseware/free-tutorials/category/building-a-small-business-site/">Building a Small Business Site</a> tutorials because the content and functionality of the sites were <strong>real</strong>.</p>

<h2>Conclusion</h2>
<p>This book is really the only EE book out there. So if you are one of those people who has trouble learning from online tutorials and needs a book, this is definitely a solid choice to get started with EE. You can get a preview of it by <a href="http://trevordavis.net/wp-content/uploads/2009/04/expressionengine-sample-chapter-3-start-posting.pdf">downloading a sample chapter</a>.</p>

<h3>Update</h3>
<p>I actually wasn&rsquo;t aware of this, but Mike Boyink also has his <a href="http://www.train-ee.com/courseware/books/">tutorials available as books</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=aYyjQxj9wbI:nsw2O4XZjh8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=aYyjQxj9wbI:nsw2O4XZjh8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=aYyjQxj9wbI:nsw2O4XZjh8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=aYyjQxj9wbI:nsw2O4XZjh8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=aYyjQxj9wbI:nsw2O4XZjh8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=aYyjQxj9wbI:nsw2O4XZjh8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=aYyjQxj9wbI:nsw2O4XZjh8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/aYyjQxj9wbI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/web/review-building-websites-with-expression-engine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/web/review-building-websites-with-expression-engine/</feedburner:origLink></item>
		<item>
		<title>Dear Designer, You Suck</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/n6pV5MeqSLc/</link>
		<comments>http://trevordavis.net/asides/dear-designer-you-suck/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 03:02:32 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1795</guid>
		<description><![CDATA[As usual, another well thought out post from Khoi Vinh. I agree completely: I thrive on criticism. Even though I&#8217;m not a designer, I&#8217;m always looking to improve by hearing the thoughts of others.
]]></description>
			<content:encoded><![CDATA[<p>As usual, <a href="http://www.subtraction.com/2009/04/09/dear-designer-you-suck">another well thought out post</a> from Khoi Vinh. I agree completely: I thrive on criticism. Even though I&rsquo;m not a designer, I&rsquo;m always looking to improve by hearing the thoughts of others.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=n6pV5MeqSLc:pcWnqDSl9vQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=n6pV5MeqSLc:pcWnqDSl9vQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=n6pV5MeqSLc:pcWnqDSl9vQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=n6pV5MeqSLc:pcWnqDSl9vQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=n6pV5MeqSLc:pcWnqDSl9vQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=n6pV5MeqSLc:pcWnqDSl9vQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=n6pV5MeqSLc:pcWnqDSl9vQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/n6pV5MeqSLc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/dear-designer-you-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/dear-designer-you-suck/</feedburner:origLink></item>
		<item>
		<title>CSS Naked Day 2009</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/low6Tv2YQX0/</link>
		<comments>http://trevordavis.net/blog/news/css-naked-day-2009/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 12:48:29 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1790</guid>
		<description><![CDATA[Yep, today, April 9, 2009, is the annual CSS Naked Day. Some people may think it is a huge risk to completely strip the design from my site for a day, but I think otherwise.

If anything, it gives visitors a chance to see my ability to code with web standards. I take the time and [...]]]></description>
			<content:encoded><![CDATA[<p>Yep, today, April 9, 2009, is <a href="http://naked.dustindiaz.com/">the annual CSS Naked Day</a>. Some people may think it is a huge risk to completely strip the design from my site for a day, but I think otherwise.</p>
<p><span id="more-1790"></span></p>
<p>If anything, it gives visitors a chance to see my ability to code with web standards. I take the time and effort to write well structured XHTML, so it is still readable without any style applied.</p>
<p>I am striping my design with the <a href="http://wordpress.org/extend/plugins/css-naked-day-noscript/">CSS Naked Day WordPress Plugin</a>. I encourage everyone else to <strong>strip down and show off your <code>body</code></strong>.</p>
<p>Is anyone else going naked today?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=low6Tv2YQX0:6KXteMr4ZTA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=low6Tv2YQX0:6KXteMr4ZTA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=low6Tv2YQX0:6KXteMr4ZTA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=low6Tv2YQX0:6KXteMr4ZTA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=low6Tv2YQX0:6KXteMr4ZTA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=low6Tv2YQX0:6KXteMr4ZTA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=low6Tv2YQX0:6KXteMr4ZTA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/low6Tv2YQX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/news/css-naked-day-2009/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/news/css-naked-day-2009/</feedburner:origLink></item>
		<item>
		<title>Creating a jQuery Word Counter</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/1jsEGFNhv18/</link>
		<comments>http://trevordavis.net/asides/creating-a-jquery-word-counter/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 21:24:05 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1787</guid>
		<description><![CDATA[I had to code a form at work that required word limitations on each textarea. The article describing how I created a jQuery word counter was published on the ThemeForest blog.
]]></description>
			<content:encoded><![CDATA[<p>I had to code a form at work that required word limitations on each textarea. The article describing <a href="http://blog.themeforest.net/tutorials/creating-a-jquery-word-counter/">how I created a jQuery word counter</a> was published on the ThemeForest blog.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=1jsEGFNhv18:h3RkYh1jqpM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=1jsEGFNhv18:h3RkYh1jqpM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=1jsEGFNhv18:h3RkYh1jqpM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=1jsEGFNhv18:h3RkYh1jqpM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=1jsEGFNhv18:h3RkYh1jqpM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=1jsEGFNhv18:h3RkYh1jqpM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=1jsEGFNhv18:h3RkYh1jqpM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/1jsEGFNhv18" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/creating-a-jquery-word-counter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/creating-a-jquery-word-counter/</feedburner:origLink></item>
		<item>
		<title>Presentation to Damscus High School Students</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/f9htkBdTciQ/</link>
		<comments>http://trevordavis.net/blog/presentations/presentation-to-damscus-high-school-students/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 03:17:51 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1758</guid>
		<description><![CDATA[I have been noticeably absent from my blog recently, but for good reason. I was honored when Jeff Brown, a teacher at Damascus High School, asked if I wanted to speak to the students in his advanced web class. I have always been interested in speaking about web development, so this seemed like a great [...]]]></description>
			<content:encoded><![CDATA[<p>I have been noticeably absent from my blog recently, but for good reason. I was honored when <a href="http://teachmetheweb.org/">Jeff Brown</a>, a teacher at Damascus High School, asked if I wanted to speak to the students in his advanced web class. I have always been interested in speaking about web development, so this seemed like a great first opportunity.</p>
<p><span id="more-1758"></span></p>
<p>So basically, Mr. Brown has people in the industry come in and speak to his students every Friday. After looking at the <a href="http://teachmetheweb.org/index.php/tmtw/blog-article/spring_2009_guest_speaker_line_up/">list of other speakers</a>, I sure was nervous. I mean; I go to conferences to see some of these guys speak.</p>
<p>Mr. Brown has a great program going, and I was glad to be a part of it. He is one of the few teachers that actually teach about web standards and is a member of the <a href="http://www.webstandards.org/action/edutf">WaSP Education Task Force</a>. He also gave a presentation at <a href="http://refresh-dc.org/">RefreshDC</a> about web education the night before my presentation, that I unfortunately missed.</p>
<h2>My Presentation</h2>
<p>I decided to focus my presentation on my path through web development, some tips to become successful as a front-end developer, and then how to maintain that success.</p>
<p>I was pretty nervous, and I felt like I raced at times, but I think it turned out well. Mr. Brown has posted the <a href="http://teachmetheweb.org/index.php/tmtw/blog-article/guest_speaker_reactions_trevor_davis/">audio from the presentation</a> on his site.</p>
<div id="presentation" class="leftSide">
	<a href="http://www.slideshare.net/davist11/become-a-productive-frontend-developer-continue-to-be-one?type=powerpoint">View Presentation: Become a Productive Front-End Developer &amp; Continue to be one</a><br />
<script type="text/javascript">
$(document).ready(function(){
    $('#presentation').flash(
        { 
          src: 'http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=fed-090327210216-phpapp01&amp;rel=0&amp;stripped_title=become-a-productive-frontend-developer-continue-to-be-one',
          width: 425,
          height: 277
        });
});
</script>
</div>
<p class="clearing">I would love to hear any feedback on the presentation, so let me know what you all think.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=f9htkBdTciQ:yZUMAJnJH1U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=f9htkBdTciQ:yZUMAJnJH1U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=f9htkBdTciQ:yZUMAJnJH1U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=f9htkBdTciQ:yZUMAJnJH1U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=f9htkBdTciQ:yZUMAJnJH1U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=f9htkBdTciQ:yZUMAJnJH1U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=f9htkBdTciQ:yZUMAJnJH1U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/f9htkBdTciQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/presentations/presentation-to-damscus-high-school-students/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/presentations/presentation-to-damscus-high-school-students/</feedburner:origLink></item>
		<item>
		<title>Browser Compatibility Master Tables</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/6vXhymBGpnc/</link>
		<comments>http://trevordavis.net/asides/browser-compatibility-master-tables/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 01:40:05 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1764</guid>
		<description><![CDATA[PPK has updated his browser compatibility tables to include more CSS3 testing, new browsers, and more. This is a great resource to determine which browsers support what.
]]></description>
			<content:encoded><![CDATA[<p>PPK has updated his <a href="http://www.quirksmode.org/compatibility.html">browser compatibility tables</a> to include more CSS3 testing, new browsers, and more. This is a great resource to determine which browsers support what.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=6vXhymBGpnc:wYk6ChfvkzU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=6vXhymBGpnc:wYk6ChfvkzU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=6vXhymBGpnc:wYk6ChfvkzU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=6vXhymBGpnc:wYk6ChfvkzU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=6vXhymBGpnc:wYk6ChfvkzU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=6vXhymBGpnc:wYk6ChfvkzU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=6vXhymBGpnc:wYk6ChfvkzU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/6vXhymBGpnc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/browser-compatibility-master-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/browser-compatibility-master-tables/</feedburner:origLink></item>
		<item>
		<title>The 13 Most Essential Plugins for WordPress</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/M7LG97GqBwY/</link>
		<comments>http://trevordavis.net/asides/the-13-most-essential-plugins-for-wordpress/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 15:26:16 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1750</guid>
		<description><![CDATA[I feel like right after I install WordPress; I immediately install the same set of plugins. I figured this would be a good topic for a post, so I chose that for my most recent article at NETTUTS.
]]></description>
			<content:encoded><![CDATA[<p>I feel like right after I install WordPress; I immediately install the same set of plugins. I figured this would be a good topic for a post, so I chose that for my <a href="http://net.tutsplus.com/articles/web-roundups/the-13-most-essential-plugins-for-wordpress/">most recent article at NETTUTS</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=M7LG97GqBwY:0qL3QFt60wQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=M7LG97GqBwY:0qL3QFt60wQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=M7LG97GqBwY:0qL3QFt60wQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=M7LG97GqBwY:0qL3QFt60wQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=M7LG97GqBwY:0qL3QFt60wQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=M7LG97GqBwY:0qL3QFt60wQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=M7LG97GqBwY:0qL3QFt60wQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/M7LG97GqBwY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/the-13-most-essential-plugins-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/the-13-most-essential-plugins-for-wordpress/</feedburner:origLink></item>
		<item>
		<title>Dynamically Set a Body Id in PHP</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/fEGgCbtlMDw/</link>
		<comments>http://trevordavis.net/blog/tutorial/dynamically-set-a-body-id/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 05:38:26 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1736</guid>
		<description><![CDATA[I have already written a couple of articles about body ids: 
Set a Body Id Using PHP and Setting Body Ids in Expression Engine, but in a recent project, I was looking for a more dynamic way to do it in PHP and WordPress.

I don&#8217;t think it&#8217;s necessary to discuss the benefits of body ids [...]]]></description>
			<content:encoded><![CDATA[<p>I have already written a couple of articles about body ids: <a href="http://trevordavis.net/blog/tutorial/set-a-body-id/"><br />
Set a Body Id Using PHP</a> and <a href="http://trevordavis.net/blog/tutorial/setting-body-ids-in-expression-engine/">Setting Body Ids in Expression Engine</a>, but in a recent project, I was looking for a more dynamic way to do it in PHP and WordPress.</p>
<p><span id="more-1736"></span></p>
<p>I don&rsquo;t think it&rsquo;s necessary to discuss the benefits of body ids because I have already discussed them in the other posts. So if you still aren&rsquo;t using body ids/classes, go read the articles, and start using them.</p>
<h2>The Plan</h2>
<p>This seems so straightforward that I&rsquo;m not sure why I didn&rsquo;t start with this method. So basically, I look at the URI, and if it is equal to <strong>/</strong> then I give it a <strong>body id of home</strong>. Otherwise, I grab the <strong>first &ldquo;folder&rdquo; and set that as the body id</strong>.</p>
<h3>Example</h3>
<p>Let&rsquo;s say that the URI is: <strong>/about/team/leadership/</strong>. The body id would be <strong>about</strong>. Ok, the seems easy, let&rsquo;s get to the code.</p>
<h2>The Code</h2>
<p>Here is our setBodyId function:</p>
<pre><code>function setBodyId() {
	$path = $_SERVER['REQUEST_URI'];

	if($path === '/') {
		$bodyId = 'home';
	} else {
		$bodyId = substr($path, 1, (strpos($path,'/',1)-1));
	}

	return $bodyId;
}</code></pre>
<p class="note"><em>If you are using this in WordPress, put this function in your theme function.php file.</em></p>
<p>Then, you want to call the function and assign it to a variable:</p>
<pre><code>$bodyId = setBodyId();</code></pre>
<p>Finally, if the $bodyId variable is not empty, add the id attribute on the body tag:</p>
<pre><code>&lt;body&lt;?php if(!empty($bodyId)) echo ' id="'.$bodyId.'"';?>></code></pre>
<h2>Conclusion</h2>
<p>It&rsquo;s so simple, yet powerful. This could also easily be recoded in other programming languages. What do you think? Any ideas for improvement?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=fEGgCbtlMDw:-gTXf6ZS5FY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=fEGgCbtlMDw:-gTXf6ZS5FY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=fEGgCbtlMDw:-gTXf6ZS5FY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=fEGgCbtlMDw:-gTXf6ZS5FY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=fEGgCbtlMDw:-gTXf6ZS5FY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=fEGgCbtlMDw:-gTXf6ZS5FY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=fEGgCbtlMDw:-gTXf6ZS5FY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/fEGgCbtlMDw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/dynamically-set-a-body-id/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/dynamically-set-a-body-id/</feedburner:origLink></item>
		<item>
		<title>We Refuse</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/EMPJN1RdcmU/</link>
		<comments>http://trevordavis.net/asides/we-refuse/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 16:07:05 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1731</guid>
		<description><![CDATA[You know what, I refuse too. Just because someone tells you that you shouldn&#8217;t do something, that doesn&#8217;t mean you have to listen. Would you have gotten to where you are today by only listening to other people?
]]></description>
			<content:encoded><![CDATA[<p>You know what, <a href="http://unitinteractive.com/blog/2009/03/07/we-refuse/">I refuse too</a>. Just because someone tells you that you shouldn&rsquo;t do something, that doesn&rsquo;t mean you have to listen. Would you have gotten to where you are today by only listening to other people?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=EMPJN1RdcmU:djvPHP81nMU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=EMPJN1RdcmU:djvPHP81nMU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=EMPJN1RdcmU:djvPHP81nMU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=EMPJN1RdcmU:djvPHP81nMU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=EMPJN1RdcmU:djvPHP81nMU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=EMPJN1RdcmU:djvPHP81nMU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=EMPJN1RdcmU:djvPHP81nMU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/EMPJN1RdcmU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/we-refuse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/we-refuse/</feedburner:origLink></item>
		<item>
		<title>There’s always time to launch your dream</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/cxh-MVqCeiw/</link>
		<comments>http://trevordavis.net/asides/theres-always-time-to-launch-your-dream/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:31:18 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1726</guid>
		<description><![CDATA[I agree completely, stop with the excuses. I don&#8217;t think I tried that hard in school either. Definitely the quote of the article: &#8220;Never let your schooling interfere with your education&#8221;.
]]></description>
			<content:encoded><![CDATA[<p>I agree completely, <a href="http://www.37signals.com/svn/posts/1619-theres-always-time-to-launch-your-dream">stop with the excuses</a>. I don&rsquo;t think I tried that hard in school either. Definitely the quote of the article: &ldquo;Never let your schooling interfere with your education&rdquo;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cxh-MVqCeiw:PQlrzXsGV1w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=cxh-MVqCeiw:PQlrzXsGV1w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cxh-MVqCeiw:PQlrzXsGV1w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cxh-MVqCeiw:PQlrzXsGV1w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cxh-MVqCeiw:PQlrzXsGV1w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=cxh-MVqCeiw:PQlrzXsGV1w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=cxh-MVqCeiw:PQlrzXsGV1w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/cxh-MVqCeiw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/theres-always-time-to-launch-your-dream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/theres-always-time-to-launch-your-dream/</feedburner:origLink></item>
		<item>
		<title>WordPress &amp; jQuery Contact Form without a Plugin</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/bAFEk7GBzpA/</link>
		<comments>http://trevordavis.net/blog/tutorial/wordpress-jquery-contact-form-without-a-plugin/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 06:07:39 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1647</guid>
		<description><![CDATA[There are lots of WordPress plugins for contact forms, but wouldn&#8217;t it be nice to have more control over the markup? In this tutorial, I am going to show how to use a custom page template to create a contact form in WordPress without a plugin.

Some people may want to skip the post and get [...]]]></description>
			<content:encoded><![CDATA[<p>There are <a href="http://wordpress.org/extend/plugins/search.php?q=contact">lots of WordPress plugins for contact forms</a>, but wouldn&rsquo;t it be nice to have more control over the markup? In this tutorial, I am going to show how to use a custom page template to create a contact form in WordPress without a plugin.</p>
<p><span id="more-1647"></span></p>
<p>Some people may want to skip the post and get to the demo and source files:</p>
<p class="clearfix last"><a href="http://trevordavis.net/contact-form/" class="leftSide more-link">View Demo</a> <a href="http://trevordavis.net/wp-content/uploads/2009/02/contact-form.zip" class="leftSide more-link">Download Source Files</a></p>
<h2>So, why not use a plugin?</h2>
<p>Well, I think that a contact form is so simple that a WordPress plugin that doesn&rsquo;t provide exactly what I want is pretty lame. Plus, I don&rsquo;t need all those fancy interfaces for building the form; I just need the code.</p>
<h2>The Plan</h2>
<p>Our plan is to create a custom <a href="http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates">WordPress Page Template</a>, then create a page that uses that template. Finally, we will add in a little <strong>jQuery</strong> to improve the form. Let&rsquo;s write a little pseudo code to help determine how our page template will be structured.</p>
<h3>Pseudo Code</h3>
<pre><code>If form was submitted validate it
	If the form was submitted successfully
		Send email(s)
	Else
		Set variables to show errors

If the form was submitted successfully
	Show thank you message
Else
	Show form (with errors if there are any)</code></pre>
<h3>Creating the WordPress Page Template</h3>
<p>Alright, so first, we are going to start with some basic stuff: define the template name, include the header/sidebar/footer, and setup the basic structure of our pseudo code.</p>
<pre><code>&lt;?php
/*
Template Name: Contact Form
*/
?>

&lt;?php
//If the form is submitted
if(isset($_POST['submitted'])) {
	//If there is no error, send the email
	if(!isset($hasError)) {

	}
} ?>

&lt;?php get_header(); ?>

&lt;?php
//If the email was sent, show a thank you message
//Otherwise show form
if(isset($emailSent) &#038;&#038; $emailSent == true) {
?>

&lt;?php } else { ?>

&lt;?php } ?>

&lt;?php get_sidebar(); ?>

&lt;?php get_footer(); ?></code></pre>
<h3>The Form</h3>
<p>Next, let&rsquo;s code the actual form. I also want to provide the ability for the user to enter some text to go above the form, so we are going to use the regular loop:</p>
<pre><code>&lt;?php if(isset($emailSent) &#038;&#038; $emailSent == true) { ?>

	&lt;div class="thanks">
		&lt;h1>Thanks, &lt;?=$name;?>&lt;/h1>
		&lt;p>Your email was successfully sent. I will be in touch soon.&lt;/p>
	&lt;/div>

&lt;?php } else { ?>

	&lt;?php if (have_posts()) : ?>

		&lt;?php while (have_posts()) : the_post(); ?>
			&lt;h1>&lt;?php the_title(); ?>&lt;/h1>
			&lt;?php the_content(); ?>

			&lt;?php if(isset($hasError) || isset($captchaError)) { ?>
				&lt;p class="error">
					There was an error submitting the form.
				&lt;p>
			&lt;?php } ?>

			&lt;form action="&lt;?php the_permalink(); ?>" id="contactForm" method="post">

			&lt;/form>

		&lt;?php endwhile; ?>
	&lt;?php endif; ?>
&lt; } ?></code></pre>
<p>If the <strong>emailSent</strong> variable is set to true, we display the thank you message. Otherwise, we show the form. So we are outputting the title of the page, and any content that was entered. Then, we are checking to see if there was an error. Finally, we display the form:</p>
<pre><code>&lt;ol class="forms">
	&lt;li>
		&lt;label for="contactName">Name&lt;/label>
		&lt;input type="text" name="contactName" id="contactName" value="
		&lt;?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>"
		 class="requiredField" />
		&lt;?php if($nameError != '') { ?>
			&lt;span class="error">&lt;?=$nameError;?>&lt;/span>
		&lt;?php } ?>
	&lt;/li>

	&lt;li>
		&lt;label for="email">Email&lt;/label>
		&lt;input type="text" name="email" id="email" value="
		&lt;?php if(isset($_POST['email']))  echo $_POST['email'];?>"
		class="requiredField email" />
		&lt;?php if($emailError != '') { ?>
			&lt;span class="error">&lt;?=$emailError;?>&lt;/span>
		&lt;?php } ?>
	&lt;/li>

	&lt;li class="textarea">
		&lt;label for="commentsText">Comments&lt;/label>
		&lt;textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField">
		&lt;?php if(isset($_POST['comments'])) {
			if(function_exists('stripslashes')) {
				echo stripslashes($_POST['comments']);
			} else {
				echo $_POST['comments'];
			}
		 } ?>&lt;/textarea>
		&lt;?php if($commentError != '') { ?>
			&lt;span class="error">&lt;?=$commentError;?>&lt;/span>
		&lt;?php } ?>
	&lt;/li>
	&lt;li class="inline">
		&lt;input type="checkbox" name="sendCopy" id="sendCopy" value="true"
		&lt;?php if(isset($_POST['sendCopy']) &#038;&#038; $_POST['sendCopy'] == true)
			echo ' checked="checked"'; ?>
		/>
		&lt;label for="sendCopy">Send a copy of this email to yourself&lt;/label>
	&lt;/li>
	&lt;li class="screenReader">
		&lt;label for="checking" class="screenReader">If you want to submit this form, do not enter anything in this field&lt;/label>
		&lt;input type="text" name="checking" id="checking" class="screenReader" value="
		&lt;?php if(isset($_POST['checking']))  echo $_POST['checking'];?>"
		/>
	&lt;/li>
	&lt;li class="buttons">
		&lt;input type="hidden" name="submitted" id="submitted" value="true" />
		&lt;button type="submit">Email me &raquo;&lt;/button>
	&lt;/li>
&lt;/ol></code></pre>
<p class="note"><em>Note: Line wrapping added for readability.</em></p>
<p>Ok, wow, that may seem like a lot. So let&rsquo;s break down the name field to see what this code is actually doing:</p>
<pre><code>&lt;li>&lt;label for="contactName">Name&lt;/label>
	&lt;input type="text" name="contactName" id="contactName" value="&lt;?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
	&lt;?php if($nameError != '') { ?>
		&lt;span class="error">&lt;?=$nameError;?>&lt;/span>
	&lt;?php } ?>
&lt;/li></code></pre>
<p>We are displaying each form field in a list item, displaying the label, input field, and then showing an error message if there is one. We are also displaying the value in the form field if it was already submitted.</p>
<p>So in essence, we are just doing that for each field of the form. You could easily go into the code to add more fields.</p>
<p>We are also using honeypot captcha to see if a bot was trying to submit the form:</p>
<pre><code>&lt;li class="screenReader">
	&lt;label for="checking" class="screenReader">If you want to submit this form, do not enter anything in this field&lt;/label>
	&lt;input type="text" name="checking" id="checking" class="screenReader" value="&lt;?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" />
&lt;/li></code></pre>
<p>That list item is pushed off the page with CSS, and if there is a value in that field, we can assume that it is not a human trying to submit the form:</p>
<pre><code>.screenReader {
	left: -9999px;
	position: absolute;
	top: -9999px;
}</code></pre>
<h3>The Validation</h3>
<p>Next, we are going to have a conditional statement to determine if the form was submitted or not:</p>
<pre><code>&lt;?php
//If the form is submitted
if(isset($_POST['submitted'])) {

} ?></code></pre>
<p>Within that conditional, is where we are going to do all of our validation of the required fields. First, let&rsquo;s check to see if our honeypot captcha form field is filled in. If it is, then we will display an error and not check anymore of the form:</p>
<pre><code>//Check to see if the honeypot captcha field was filled in
if(trim($_POST['checking']) !== '') {
	$captchaError = true;
} else {

} </code></pre>
<p>So if the captcha field was left blank, we will continue to validate the required fields:</p>
<pre><code>//Check to make sure that the name field is not empty
if(trim($_POST['contactName']) === '') {
	$nameError = 'You forgot to enter your name.';
	$hasError = true;
} else {
	$name = trim($_POST['contactName']);
}

//Check to make sure sure that a valid email address is submitted
if(trim($_POST['email']) === '')  {
	$emailError = 'You forgot to enter your email address.';
	$hasError = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
	$emailError = 'You entered an invalid email address.';
	$hasError = true;
} else {
	$email = trim($_POST['email']);
}

//Check to make sure comments were entered
if(trim($_POST['comments']) === '') {
	$commentError = 'You forgot to enter your comments.';
	$hasError = true;
} else {
	if(function_exists('stripslashes')) {
		$comments = stripslashes(trim($_POST['comments']));
	} else {
		$comments = trim($_POST['comments']);
	}
}</code></pre>
<p>Again, that may seem like a little much, so let&rsquo;s just take a look at the validation on the name field:</p>
<pre><code>if(trim($_POST['contactName']) === '') {
	$nameError = 'You forgot to enter your name.';
	$hasError = true;
} else {
	$name = trim($_POST['contactName']);
}</code></pre>
<p>If the name field if empty, set a variable that will display the name error and set a flag saying that there was an error on the form. Otherwise, set a variable that will contain the name value from the form.</p>
<h3>Sending the Email</h3>
<p>Now, we want to send the email if there are no errors:</p>
<pre><code>//If there is no error, send the email
if(!isset($hasError)) {

	$emailTo = '<strong>me@somedomain.com</strong>';
	$subject = 'Contact Form Submission from '.$name;
	$sendCopy = trim($_POST['sendCopy']);
	$body = "Name: $name \n\nEmail: $email \n\nComments: $comments";
	$headers = 'From: My Site &lt;'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

	mail($emailTo, $subject, $body, $headers);

	if($sendCopy == true) {
		$subject = 'You emailed <strong>Your Name</strong>';
		$headers = 'From: <strong>Your Name</strong> &lt;<strong>noreply@somedomain.com</strong>>';
		mail($email, $subject, $body, $headers);
	}

	$emailSent = true;

}</code></pre>
<p class="note"><em>Note: Items bolded are values that you will want to change before implementing.</em></p>
<p>I personally like to have the contact form submission come from myself. That way, I just setup a filter in Gmail, and I can guarantee that it won&rsquo;t get caught in my spam filter. The second email is only sent if the user checks the checkbox to send a copy to themselves.</p>
<p><a href="http://trevordavis.net/wp-content/uploads/2009/02/contact-form.txt" class="more-link">View Entire Custom Page Template</a></p>
<h3>Creating the Page in WordPress</h3>
<p>First, you want to upload the <a href="http://trevordavis.net/wp-content/uploads/2009/02/contact-form.zip">contact-form.php</a> page template to your themes folder. Next, you will create the page in WordPress and select <strong>Contact Form</strong> as the page template.</p>
<p class="pullLeft"><img src="http://trevordavis.net/wp-content/uploads/2009/02/wordpress-page-template.png" alt="Adding WordPress page template" class="frame" height="341" width="570" /></p>
<p>Then, just publish your page and you will have your contact form. Well, the form will be usable, but we are going to add in some CSS and jQuery to finish it off.</p>
<h3>Styling the Form</h3>
<p>I recently wrote <a href="http://trevordavis.net/blog/tutorial/flexible-and-semantic-forms-with-a-little-jquery/">an article about styling forms</a>, so we are just going to stick with some basic styles:</p>
<pre><code>.screenReader { left: -9999px; position: absolute; top: -9999px; }
.thanks { background: #F2F3F6; border: 1px solid #7E8AA2; padding: 10px; }

/*****Forms*****/
ol.forms { float: left; list-style: none; margin: 0; width: 100%; }
ol.forms li {
	clear: both;
	float: left;
	margin-bottom: 18px;
	position: relative;
	width: 100%;
}
ol.forms label {
	cursor: pointer;
	display: block;
	float: left;
	font-weight: bold;
	padding-right: 20px;
	width: 100px;
}
ol.forms input, ol.forms textarea {
	border: 1px solid #7E8AA2;
	border-radius: 3px;
	font: inherit;
	-moz-border-radius: 3px;
	padding: 2px;
	-webkit-border-radius: 3px;
	width: 214px;
}
ol.forms textarea { height: 300px; width: 334px; }
ol.forms input:focus, ol.forms textarea:focus { background-color: #f2f3f6; border-color: #ff9800; }
.error { color: #f00; }
ol.forms li .error { font-size: 12px; margin-left: 20px; }
ol.forms li.textarea .error {
	display: block;
	position: absolute;
	right: 0;
	top: 0;
	width: 100px;
}
ol.forms li.screenReader { margin-bottom: 0; }
ol.forms li.buttons button {
	background: #ff9800;
	border: none;
	color: #000;
	cursor: pointer;
	font: 16px/16px "Avenir LT Std", Helvetica, Arial, sans-serif;
	overflow: hidden;
	padding: 6px 3px 3px 3px;
	text-transform: uppercase;
	width: auto;
}
ol.forms li.buttons button:hover { color: #222; }
ol.forms li.buttons button:active { left: -1px; position: relative; top: -1px; }
ol.forms li.buttons, ol.forms li.inline { float: right; width: 460px; }
ol.forms li.inline input { width: auto; }
ol.forms li.inline label { display: inline; float: none; width: auto; }</code></pre>
<p>So drop that CSS in your theme stylesheet and you will see the form start to look much better.</p>
<h3>Enhancing the form with some jQuery</h3>
<p>I have also already written about creating <a href="http://trevordavis.net/blog/tutorials/ajax-forms-with-jquery/">AJAX forms with jQuery</a>, but I thought I would specifically talk about an AJAX script for a contact form.</p>
<p>First, we want to execute our jQuery when the document is ready and the form was submitted:</p>
<pre><code>$(document).ready(function() {
	$('form#contactForm').submit(function() {

		return false;
	});
});</code></pre>
<p>Next, we want to hide any error messages if there are any and validate any required fields which are denoted with a class of <strong>requiredField</strong>:</p>
<pre><code>$('form#contactForm .error').remove();
var hasError = false;
$('.requiredField').each(function() {

});</code></pre>
<p>After that, we want to validate that the field is not empty and append an error message if it is:</p>
<pre><code>if(jQuery.trim($(this).val()) == '') {
	var labelText = $(this).prev('label').text();
	$(this).parent().append('&lt;span class="error">You forgot to enter your '+labelText+'.&lt;/span>');
	hasError = true;
}</code></pre>
<p>If the field is not empty and also has a class of <strong>email</strong>, we want to validate that the email address is valid:</p>
<pre><code> else if($(this).hasClass('email')) {
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	if(!emailReg.test(jQuery.trim($(this).val()))) {
		var labelText = $(this).prev('label').text();
		$(this).parent().append('&lt;span class="error">You entered an invalid '+labelText+'.&lt;/span>');
		hasError = true;
	}
}</code></pre>
<p>If there are no errors, then we want to replace the submit button with a loading image:</p>
<pre><code>if(!hasError) {
$('form#contactForm li.buttons button').fadeOut('normal', function() {
	$(this).parent().append('&lt;img src="/wp-content/themes/td-v3/images/template/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
});</code></pre>
<p class="note"><em>Note: You will need to update the source of the image to wherever you upload it in your theme.</em></p>
<p>Finally, let&rsquo;s submit the form via an AJAX request, slide the form up, and show a thank you message:</p>
<pre><code>var formInput = $(this).serialize();
$.post($(this).attr('action'),formInput, function(data){
	$('form#contactForm').slideUp("fast", function() {
		$(this).before('&lt;p class="thanks">&lt;strong>Thanks!&lt;/strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.&lt;/p>');
	});
});</code></pre>
<p>Take a look at the entire script:</p>
<pre><code>$(document).ready(function() {
	$('form#contactForm').submit(function() {
		$('form#contactForm .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text();
				$(this).parent().append('&lt;span class="error">You forgot to enter your '+labelText+'.&lt;/span>');
				hasError = true;
			} else if($(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim($(this).val()))) {
					var labelText = $(this).prev('label').text();
					$(this).parent().append('&lt;span class="error">You entered an invalid '+labelText+'.&lt;/span>');
					hasError = true;
				}
			}
		});
		if(!hasError) {
			$('form#contactForm li.buttons button').fadeOut('normal', function() {
				$(this).parent().append('&lt;img src="/wp-content/themes/td-v3/images/template/loading.gif" alt="Loading&hellip;" height="31" width="31" />');
			});
			var formInput = $(this).serialize();
			$.post($(this).attr('action'),formInput, function(data){
				$('form#contactForm').slideUp("fast", function() {
					$(this).before('&lt;p class="thanks">&lt;strong>Thanks!&lt;/strong> Your email was successfully sent. I check my email all the time, so I should be in touch soon.&lt;/p>');
				});
			});
		}

		return false;

	});
});</code></pre>
<p>Just include it in the head of your document after jQuery, and you are good to go:</p>
<pre><code>&lt;script type="text/javascript" src="&lt;?php bloginfo('template_directory'); ?>/scripts/jquery.js">&lt;/script>
&lt;script type="text/javascript" src="&lt;?php bloginfo('template_directory'); ?>/scripts/contact-form.js">&lt;/script></code></pre>
<p class="note"><em>Note: You may need to change the source depending upon where you upload the files in your theme.</em></p>
<h2>Conclusion</h2>
<p class="clearfix last"><a href="http://trevordavis.net/contact-form/" class="leftSide more-link">View Demo</a> <a href="http://trevordavis.net/wp-content/uploads/2009/02/contact-form.zip" class="leftSide more-link">Download Source Files</a></p>
<p>That&rsquo;s it! Just upload the files and you&rsquo;ve got your form. Since you&rsquo;ve got the code right in front of you, it should be very easy to tweak and add on to. Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=bAFEk7GBzpA:OEyCWgTN-X0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=bAFEk7GBzpA:OEyCWgTN-X0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=bAFEk7GBzpA:OEyCWgTN-X0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=bAFEk7GBzpA:OEyCWgTN-X0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=bAFEk7GBzpA:OEyCWgTN-X0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?i=bAFEk7GBzpA:OEyCWgTN-X0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?a=bAFEk7GBzpA:OEyCWgTN-X0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TrevorDavisFullBlog?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/bAFEk7GBzpA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/wordpress-jquery-contact-form-without-a-plugin/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/wordpress-jquery-contact-form-without-a-plugin/</feedburner:origLink></item>
		<item>
		<title>Orange You Sorry About Tropicana?</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/dSf6eBSv6hM/</link>
		<comments>http://trevordavis.net/asides/orange-you-sorry-about-tropicana/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 02:07:57 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1666</guid>
		<description><![CDATA[Khoi Vinh discusses the disastrous Tropicana redesign and wonders if the branding agency behind it, Arnell, did it just for the press. I certainly agree that it was a disaster, as I felt like I was trying to find my orange juice for 5 minutes.
]]></description>
			<content:encoded><![CDATA[<p>Khoi Vinh discusses <a href="http://www.subtraction.com/2009/02/24/orange-you-sorry-about-tropicana">the disastrous Tropicana redesign</a> and wonders if the branding agency behind it, Arnell, did it just for the press. I certainly agree that it was a disaster, as I felt like I was trying to find my orange juice for 5 minutes.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=RrbcCzaF"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=RrbcCzaF" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wUC2FN5Z"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=MK4OhjYp"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=5bI8rdLT"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=5bI8rdLT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=kQaYagOY"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/dSf6eBSv6hM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/orange-you-sorry-about-tropicana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/orange-you-sorry-about-tropicana/</feedburner:origLink></item>
		<item>
		<title>Achieve Your Big Goals With Incremental Persistence</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/kusXBb0NsWQ/</link>
		<comments>http://trevordavis.net/asides/achieve-big-goals-incremental-persistence/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 22:43:16 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1662</guid>
		<description><![CDATA[Incremental success really helps in working toward your larger goals. I&#8217;ve been trying to improve something on my site every day. Recent examples: tooltips on my portfolio &#38; better pagination on my blog.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devlounge.net/strategy/achieve-your-big-goals-with-incremental-persistence">Incremental success</a> really helps in working toward your larger goals. I&rsquo;ve been trying to improve something on my site every day. Recent examples: <a href="http://trevordavis.net/work/">tooltips on my portfolio</a> &amp; <a href="http://trevordavis.net/blog/">better pagination on my blog</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=NXG1sVXu"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=NXG1sVXu" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xzXRrh1C"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=kpOkur87"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=yT2odPCc"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=yT2odPCc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=5AqOC0uw"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/kusXBb0NsWQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/achieve-big-goals-incremental-persistence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/achieve-big-goals-incremental-persistence/</feedburner:origLink></item>
		<item>
		<title>10 tips for efficient design</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/JjyW_OR-bDk/</link>
		<comments>http://trevordavis.net/asides/10-tips-for-efficient-design/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 15:47:34 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1537</guid>
		<description><![CDATA[Paul Boag says that &#8220;being a good designer is not always enough to survive hard economic times. You need to be efficient too.&#8221; With that, he gives us 10 tips for efficient design. I think #10 should be emphasized and then emphasized again; it&#8217;s so important!
]]></description>
			<content:encoded><![CDATA[<p>Paul Boag says that &ldquo;being a good designer is not always enough to survive hard economic times. You need to be efficient too.&rdquo; With that, he gives us <a href="http://boagworld.com/design/10_tips_for_efficient_design/">10 tips for efficient design</a>. I think #10 should be <em>emphasized</em> and then <strong>emphasized again</strong>; it&rsquo;s so important!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=fov1oT1g"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=fov1oT1g" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=8RLa84GT"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=URIIHRee"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=EWvJHBo1"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=EWvJHBo1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=GmcoGmNt"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/JjyW_OR-bDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/10-tips-for-efficient-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/10-tips-for-efficient-design/</feedburner:origLink></item>
		<item>
		<title>5 Ways to Instantly Write Better CSS</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/i2kmE4ifSZQ/</link>
		<comments>http://trevordavis.net/blog/tutorial/5-ways-to-instantly-write-better-css/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 14:04:42 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1529</guid>
		<description><![CDATA[In my most recent article at NETTUTS: 5 Ways to Instantly Write Better CSS, I share some tips that have helped me to write better CSS.

This is definitely not me trying to tell you to code in a certain way; they are just some tips that I have found to become very useful for myself. [...]]]></description>
			<content:encoded><![CDATA[<p>In my most recent article at NETTUTS: <a href="http://nettuts.com/tutorials/html-css-techniques/5-tips-to-writing-better-css/">5 Ways to Instantly Write Better CSS</a>, I share some tips that have helped me to write better CSS.</p>
<p><span id="more-1529"></span></p>
<p>This is definitely not me trying to tell you to code in a certain way; they are just some tips that I have found to become very useful for myself. I hope you enjoy, and feel free to <a href="http://nettuts.com/tutorials/html-css-techniques/5-tips-to-writing-better-css/#add">share other tips</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xlZQY2Bk"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=xlZQY2Bk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=JfjQVVTo"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=igbjK2xU"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=k3V1PTsu"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=k3V1PTsu" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=Qd7jTsYB"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/i2kmE4ifSZQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/5-ways-to-instantly-write-better-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/5-ways-to-instantly-write-better-css/</feedburner:origLink></item>
		<item>
		<title>CSS3 Feedback: Selector Blocks</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/rIJynNNh7W0/</link>
		<comments>http://trevordavis.net/asides/css3-feedback-selector-blocks/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 15:57:23 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1519</guid>
		<description><![CDATA[Ohh, please make the ability to do this happen. It would make CSS so much more lightweight and easier to write.
]]></description>
			<content:encoded><![CDATA[<p>Ohh, please make <a href="http://meyerweb.com/eric/thoughts/2009/02/12/selector-blocks/">the ability to do this</a> happen. It would make CSS so much more lightweight and easier to write.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=VNZu6m1x"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=VNZu6m1x" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=ATgEE2Mo"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xMsUPmi3"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=OCg5NUTB"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=OCg5NUTB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=UDmXVqls"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/rIJynNNh7W0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/css3-feedback-selector-blocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/css3-feedback-selector-blocks/</feedburner:origLink></item>
		<item>
		<title>Fixing a Twitter WordPress Plugin with jQuery</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/N8llcCIOgtk/</link>
		<comments>http://trevordavis.net/blog/tutorial/fixing-twitter-wordpress-plugin-jquery/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 05:57:52 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1377</guid>
		<description><![CDATA[I use the fantastic Twitter for WordPress plugin on my website. Sometimes though, Twitter decides that it doesn&#8217;t want to make my tweets available. The plugin has accounted for this, and it displays No public Twitter messages when this happens. That kinda sucks though.

It&#8217;s definitely nice that the plugin doesn&#8217;t throw an error, but I [...]]]></description>
			<content:encoded><![CDATA[<p>I use the fantastic <a href="http://wordpress.org/extend/plugins/twitter-for-wordpress/">Twitter for WordPress plugin</a> on my website. Sometimes though, <a href="http://twitter.com">Twitter</a> decides that it doesn&rsquo;t want to make my tweets available. The plugin has accounted for this, and it displays <strong>No public Twitter messages</strong> when this happens. That kinda sucks though.</p>
<p><span id="more-1377"></span></p>
<p>It&rsquo;s definitely nice that the plugin doesn&rsquo;t throw an error, but I really don&rsquo;t want that message displayed on my site. So what&rsquo;s the solution? <strong>jQuery of course</strong>.</p>
<h2>When the Tweet Comes Through</h2>
<p>Here is the markup that is displayed on my site when a tweet comes through successfully:</p>
<pre><code>&lt;div id="twitterContainer">
	&lt;a class="twitter-link" href="http://twitter.com/davist11/status/1200405534">
		I feel like I'm in an episode of Seinfeld right now.
	&lt;/a>
&lt;/div></code></pre>
<h2>When the Tweet Doesn&rsquo;t Come Through</h2>
<p>This is what you end up with:</p>
<pre><code>&lt;div id="twitterContainer">
	No public Twitter messages.
&lt;/div></code></pre>
<h2>The jQuery</h2>
<p>My thinking is that I will check the contents of <strong>div#twitterContainer</strong> to see if it is <strong>No public Twitter messages</strong>. If it is, I think it would be useful to replace that text with a link to <a href="http://twitter.com/davist11">my Twitter account</a> with a message telling people to follow me.</p>
<p>So first, let&rsquo;s execute the jQuery code when the document is loaded:</p>
<pre><code>$(document).ready(function() {

});</code></pre>
<p>Next, we are going to check and see <strong>if the contents of div#twitterContainer is No public Twitter messages</strong>:</p>
<pre><code>$(document).ready(function() {
	<strong>if(jQuery.trim($('div#twitterContainer').text()) == 'No public Twitter messages.') {

	}</strong>
});</code></pre>
<p>Finally, let&rsquo;s just replace this text with a link to my Twitter feed:</p>
<pre><code>$(document).ready(function() {
	if(jQuery.trim($('div#twitterContainer').text()) == 'No public Twitter messages.') {
		<strong>$('div#twitterContainer').html('&lt;a href="http://twitter.com/davist11" class="twitter-link">Follow Me on Twitter&lt;/a>');</strong>
	}
});</code></pre>
<div class="clearfix">
<p><img src="http://trevordavis.net/wp-content/uploads/2009/02/twitter-plugin-fixed.jpg" alt="Screenshot of fixed Twitter plugin" class="rightSide frame" height="164" width="150" /><strong>That&rsquo;s it</strong>. This is just <a href="http://trevordavis.net/blog/tutorial/improving-a-flickr-plugin-with-jquery/">another example of how I have used jQuery to improve a WordPress plugin on my site</a>.</p>
<p>You can see this in action on my site, or <a href="http://trevordavis.net/play/fixing-twitter-plugin/">take a look at the demo</a>.</p>
<p><a href="http://trevordavis.net/play/fixing-twitter-plugin/" class="more-link">See Demo</a></p>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=PsSlttK8"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=PsSlttK8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=9tgDJAao"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xdce3q1a"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=U7TlW75J"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=U7TlW75J" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=774pdWy4"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/N8llcCIOgtk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/fixing-twitter-wordpress-plugin-jquery/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/fixing-twitter-wordpress-plugin-jquery/</feedburner:origLink></item>
		<item>
		<title>No more pixel perfectionism in IE 6</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/tMfbhDDTfHo/</link>
		<comments>http://trevordavis.net/asides/no-more-pixel-perfectionism-in-ie-6/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 21:35:56 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1480</guid>
		<description><![CDATA[I do just like Roger Johansson says: I make sites perfectly usable in IE, but not necessarily exactly the same. As long as everything is accessible, it&#8217;s good enough for me.
]]></description>
			<content:encoded><![CDATA[<p>I do just like <a href="http://www.456bereastreet.com/archive/200902/no_more_pixel_perfectionism_in_ie_6/">Roger Johansson says</a>: I make sites perfectly usable in IE, but <strong>not necessarily exactly the same</strong>. As long as everything is accessible, it&rsquo;s good enough for me.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=e06GwRoS"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=e06GwRoS" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=x1ehR5Rr"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=LCq4iwdI"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=b5BVW3HP"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=b5BVW3HP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=vh5MPabD"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/tMfbhDDTfHo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/no-more-pixel-perfectionism-in-ie-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/no-more-pixel-perfectionism-in-ie-6/</feedburner:origLink></item>
		<item>
		<title>10 Harsh Truths About Corporate Websites</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/Z57Y9HsG4Z4/</link>
		<comments>http://trevordavis.net/asides/10-harsh-truths-about-corporate-websites/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 03:31:13 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1474</guid>
		<description><![CDATA[The legendary Paul Boag gives us a reality check. While it&#8217;s hard to believe, I think I agree with all of them.
]]></description>
			<content:encoded><![CDATA[<p>The legendary Paul Boag gives us a <a href="http://www.smashingmagazine.com/2009/02/10/10-harsh-truths-about-corporate-websites/">reality check</a>. While it&rsquo;s hard to believe, I think I agree with all of them.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=866MP3Cq"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=866MP3Cq" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=0WwzBT9s"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=QKZ2XM6u"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=OUCDH2vN"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=OUCDH2vN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=pRc1QOwL"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/Z57Y9HsG4Z4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/10-harsh-truths-about-corporate-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/10-harsh-truths-about-corporate-websites/</feedburner:origLink></item>
		<item>
		<title>42 Web Design Companies: Designs That Move Me</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/JRe8oSXINjY/</link>
		<comments>http://trevordavis.net/asides/42-web-design-companies-designs-that-move-me/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 22:53:53 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1457</guid>
		<description><![CDATA[There are so many web design companies that have amazing websites. I felt inspired after looking through these. Now it&#8217;s just a matter of execution&#8230;
]]></description>
			<content:encoded><![CDATA[<p>There are so many <a href="http://designmovesme.com/42-web-design-companies/">web design companies that have amazing websites</a>. I felt inspired after looking through these. Now it&rsquo;s just a matter of execution&hellip;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=shJXNjbn"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=shJXNjbn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=yS5JJLF9"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=upDznfiK"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=W6TT6TyT"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=W6TT6TyT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=96Mbc54Q"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/JRe8oSXINjY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/42-web-design-companies-designs-that-move-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/42-web-design-companies-designs-that-move-me/</feedburner:origLink></item>
		<item>
		<title>Setting Body Ids in Expression Engine</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/ck4ye8LO27g/</link>
		<comments>http://trevordavis.net/blog/tutorial/setting-body-ids-in-expression-engine/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 15:08:33 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1373</guid>
		<description><![CDATA[Expression Engine has become a popular choice to power many sites. I have just begun experimenting with it, and I have been very impressed. One thing that I have been interested in determining was to figure out if I could set an id on the body like I do when building other sites. I have [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://expressionengine.com/">Expression Engine</a> has become a popular choice to power many sites. I have just begun experimenting with it, and I have been very impressed. One thing that I have been interested in determining was to figure out if I could set an id on the body like I do when building other sites. I have already written one article showing how to do this in <a href="http://trevordavis.net/blog/tutorial/set-a-body-id/">PHP and WordPress</a>, but this will show how to do it dynamically in Expression Engine.</p>
<p><span id="more-1373"></span></p>
<h2>Why are Body Ids Useful?</h2>
<p>Body ids can be useful for styling sections differently, displaying certain parts of a dynamic template, displaying current navigation states, and many other things.</p>
<h3>A Simple Example</h3>
<p>Let&rsquo;s say that I want to have my font size be 14 pixels, <strong>except on the homepage</strong>. It would be as easy as this:</p>
<pre><code>body { font-size: 14px; }
body#home { font-size: 12px; }</code></pre>
<p><strong>Pretty useful.</strong> By using body ids, we now have a unique hook for each section of the website.</p>
<h2>Why not Body Classes?</h2>
<p>I do utilize body classes as well. I typically use the body id to indicate the section, then other various items for the body classes.</p>
<h3>For Example</h3>
<p>For my own blog, I have some pages that I want to have a left gutter on it so that I can push images, quotes, etc. into the column. I also have another class that indicates when it is a blog article page. So, I can just continue to use multiple classes on the body to help me control the width and layout of the page.</p>
<p>Here is what the body element looks like on a blog article on my site:</p>
<pre><code>&lt;body id="blog" class="subpage leftGutter article"></code></pre>
<p>The <strong>subpage class</strong> just indicates that it is not the homepage. Not completely necessary since I already have a specific id on the homepage, but it can sometimes become useful.</p>
<p>The <strong>leftGutter class</strong> is used to push the content area to the right and make it narrower. Then, I can pull elements into the left-hand gutter as well.</p>
<p>The <strong>article class</strong> is useful because some of the markup for the blog entry information is the same as the homepage and archive pages. Using this class, I can be more specific with my styles to change the way that these elements are displayed on the blog article page.</p>
<p>I always try and add classes and id attributes as high up in the tree as possible. This let&rsquo;s me utilize descendant selectors in the CSS without having to add additional classes and ids lower down.</p>
<h2>Setting the Body Id in Expression Engine</h2>
<p>I want to have complete control over the body id, so I want to be able to have it set dynamically and also be able to set it statically.</p>
<p>So my thought behind this is that first, I want to check to see if the body id was set statically. When I say statically, I mean passing the variable in as an attribute on my embed statement. Next, I will then set the body id dynamically.</p>
<h3>Setting the Id Statically</h3>
<p>In order to make changes to the overall website structure simpler, I have a header template the sits in the includes template group. So in all of the other template groups, I embed the header on the page:</p>
<pre><code>{embed="includes/header"}</code></pre>
<p>Then, if for some reason I want to specifically pass in a body id, I can just change it to this:</p>
<pre><code>{embed="includes/header" <strong>body_id="contact-us"</strong>}</code></pre>
<p>So the first step in the header is to check to see if the <strong>embed:body_id</strong> variable is set:</p>
<pre><code>&lt;body
{if embed:body_id}
	id="{embed:body_id}"
{/if}
></code></pre>
<p class="note"><em>Note: Line wrapping added for readability.</em></p>
<h3>Dynamically Setting the Id</h3>
<p>If we are not statically setting the body id, we want to then do it dynamically. My thinking is that I will take advantage of Expression Engine&rsquo;s <a href="http://expressionengine.com/docs/templates/globals/url_segments.html">URL segments</a> to determine which section we are in.</p>
<p>Here is an example of URL segments using the following URL:</p>
<pre><code>http://ee.trevordavis.net/index.php/about/me/education/</code></pre>
<ul>
<li>Segment 1 = <strong>about</strong></li>
<li>Segment 2 = <strong>me</strong></li>
<li>Segment 3 = <strong>education</strong></li>
</ul>
<p>Then, we can reference each segment like so:</p>
<ul>
<li>Segment 1 = <strong>{segment_1}</strong></li>
<li>Segment 2 = <strong>{segment_2}</strong></li>
<li>Segment 3 = <strong>{segment_3}</strong></li>
</ul>
<p>So basically what we want to do is assign the body id the value of <strong>{segment_1}</strong> if it is not empty. So continuing on our example:</p>
<pre><code>&lt;body
{if embed:body_id}
	id="{embed:body_id}"
{if:elseif segment_1}
	id="{segment_1}"
{/if}
></code></pre>
<p class="note"><em>Note: Line wrapping added for readability.</em></p>
<p><strong>But wait, what about the homepage?</strong> The homepage will have nothing for the value of <strong>{segment_1}</strong>, so we can just put in an else statement:</p>
<pre><code>&lt;body
{if embed:body_id}
	id="{embed:body_id}"
{if:elseif segment_1}
	id="{segment_1}"
{if:else}
	id="home"
{/if}
></code></pre>
<p class="note"><em>Note: Line wrapping added for readability.</em></p>
<p>Here is the line of code without any line wrapping:</p>
<pre><code>&lt;body{if embed:body_id} id="{embed:body_id}"{if:elseif segment_1} id="{segment_1}"{if:else} id="home"{/if}></code></pre>
<p>I created a <a href="http://ee.trevordavis.net/index.php/">demo Expression Engine site</a> to test this functionality.</p>
<p><a href="http://ee.trevordavis.net/index.php/" class="more-link">View Demo Site</a></p>
<h2>Walking Through the Demo Site</h2>
<p>Since we have body ids for each section and an id on each list item in the navigation, I have created the current state for the navigation with a few simple line of CSS:</p>
<pre><code>body#home ul#primaryNav li#homeNav a,
body#about ul#primaryNav li#aboutNav a,
body#services ul#primaryNav li#servicesNav a,
body#contact-us ul#primaryNav li#contactNav a {
	background: #B3602D;
	border-top-color: #B3602D;
	color: #fff;
}</code></pre>
<p class="note"><em>Note: Line wrapping added for readability.</em></p>
<p>I also want to show the sidebar on all of the subpages, so I just need 1 more conditional:</p>
<pre><code>{if embed:body_id || segment_1}
	&lt;div id="sidebar">
	&lt;/div>
{/if}</code></pre>
<p>This is checking to see if {embed:body_id} or {segment_1} are not empty, and displaying the sidebar if one or both are set.</p>
<p>These are just a few examples of using a body id in Expression Engine, but the possibilities are endless.</p>
<h2>One More Thing</h2>
<p>Another thing that I was trying to figure out was how to create a variable that I could reuse in multiple embed files. So what I want to do is in my conditional statement, determine that the body id should be and assign it to a variable. Then, I want to be able to access that variable in the footer without have to use the same conditional statement.</p>
<p><strong>Is this possible?</strong> I was messing around with the <strong>{assign_variable}</strong> tag, but that didn&rsquo;t seem to do the job because it can only be used in the same template. <strong>Anyone know how to do this?</strong> I&rsquo;m relatively new to Expression Engine, so I am still learning. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=P4VEQtaQ"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=P4VEQtaQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=CjNhHQBv"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=vjSHgFL2"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=uW7gBVjR"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=uW7gBVjR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=mm7VLoxg"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/ck4ye8LO27g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/setting-body-ids-in-expression-engine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/setting-body-ids-in-expression-engine/</feedburner:origLink></item>
		<item>
		<title>I’m a Weekly NETTUTS Writer</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/kolsXxHdvjo/</link>
		<comments>http://trevordavis.net/blog/tutorial/im-a-weekly-nettuts-writer/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 02:54:43 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1438</guid>
		<description><![CDATA[As I noted in my last post, I submitted a tutorial to NETTUTS to be considered as a weekly writer. I am very happy to announce that they chose me!
In my second article, Creating a &#8220;Filterable&#8221; Portfolio with jQuery, I take a look at creating a portfolio that can be filtered by category.

This tutorial was [...]]]></description>
			<content:encoded><![CDATA[<p>As I noted in my <a href="http://trevordavis.net/blog/tutorial/exactly-how-to-create-a-custom-jquery-accordion/">last post</a>, I submitted a tutorial to <a href="http://nettuts.com/">NETTUTS</a> to be considered as a weekly writer. I am very happy to announce that <strong>they chose me</strong>!</p>
<p>In my second article, <a href="http://nettuts.com/tutorials/javascript-ajax/creating-a-filterable-portfolio-with-jquery/">Creating a &ldquo;Filterable&rdquo; Portfolio with jQuery</a>, I take a look at creating a portfolio that can be filtered by category.</p>
<p><span id="more-1438"></span></p>
<p>This tutorial was kind of inspired by the effect that I created on <a href="http://www.matrixgroup.net/portfolio/">my company&rsquo;s portfolio</a>.</p>
<h2>How will this effect my web site?</h2>
<p>Yes, I am not going to be able to write articles as frequently on my blog, but I am still going to be posting some articles. I will also post a note each week discussing my weekly NETTUTS article.</p>
<p>I hope you all enjoy the articles.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=gm0kqt2p"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=gm0kqt2p" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=NznlOERj"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=1rNKoJc8"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=PQdW7YMY"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=PQdW7YMY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=zXMXMet7"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/kolsXxHdvjo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/im-a-weekly-nettuts-writer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/im-a-weekly-nettuts-writer/</feedburner:origLink></item>
		<item>
		<title>Twitter Chatter During the Super Bowl</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/9sNt292HMDo/</link>
		<comments>http://trevordavis.net/asides/twitter-chatter-during-the-super-bowl/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 17:51:51 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1399</guid>
		<description><![CDATA[The New York Times created an interactive information graph of tweets during the super bowl. I love how at halftime, there was an explosion of Springsteen tweets.
]]></description>
			<content:encoded><![CDATA[<p>The New York Times created an <a href="http://www.nytimes.com/interactive/2009/02/02/sports/20090202_superbowl_twitter.html">interactive information graph of tweets during the super bowl</a>. I love how at halftime, there was an explosion of Springsteen tweets.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=sVczaDl8"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=sVczaDl8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=0PCI17V4"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=F9Hs1mUp"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=sGEnoqVL"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=sGEnoqVL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=yvdsHQ76"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/9sNt292HMDo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/twitter-chatter-during-the-super-bowl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/twitter-chatter-during-the-super-bowl/</feedburner:origLink></item>
		<item>
		<title>WebAIM screenreader survey…the results are in</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/cru64mBeYYA/</link>
		<comments>http://trevordavis.net/asides/webaim-screenreader-survey-results/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:35:04 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1379</guid>
		<description><![CDATA[The WebAIM screenreader survey results are in. Not surprisingly: 76% of users always or often navigating by headings; 72% of screen reader users reported that Flash is very or somewhat difficult. 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webstandards.org/2009/01/31/webaim-screenreader-survey-results/">The WebAIM screenreader survey results are in</a>. Not surprisingly: 76% of users always or often navigating by headings; 72% of screen reader users reported that Flash is very or somewhat difficult. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=GaPdH795"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=GaPdH795" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xzIVKZiv"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=COGw6I1x"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=v9DfkNYj"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=v9DfkNYj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=oGXXCzxH"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/cru64mBeYYA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/webaim-screenreader-survey-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/webaim-screenreader-survey-results/</feedburner:origLink></item>
		<item>
		<title>How we reduced chargebacks by 30%</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/yNznmZgM-bM/</link>
		<comments>http://trevordavis.net/asides/how-we-reduced-chargebacks-by-30/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 01:36:44 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1360</guid>
		<description><![CDATA[Jason Fried discusses how they reduced chargebacks by 30%. My favorite part of this is how 37Signals determines the problem and quickly finds the simple solution to it.
]]></description>
			<content:encoded><![CDATA[<p>Jason Fried discusses <a href="http://www.37signals.com/svn/posts/1545-how-we-reduced-chargebacks-by-30-as-a-percentage-of-sales">how they reduced chargebacks by 30%</a>. My favorite part of this is how 37Signals determines the problem and quickly finds the simple solution to it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=6vWnJ9sx"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=6vWnJ9sx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=k9W1q29g"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=XIVyOKlO"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=hPDO0AqP"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=hPDO0AqP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=hVHlZ1je"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/yNznmZgM-bM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/how-we-reduced-chargebacks-by-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/how-we-reduced-chargebacks-by-30/</feedburner:origLink></item>
		<item>
		<title>Sprite Optimization</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/IbjMdFw2voI/</link>
		<comments>http://trevordavis.net/asides/sprite-optimization/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 01:18:37 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1356</guid>
		<description><![CDATA[Dave Shea is starting to notice the use of huge CSS Sprites. I think I am in his state of mind: optimize when possible, but I&#8217;m not too interested in making one of those huge sprites.
]]></description>
			<content:encoded><![CDATA[<p>Dave Shea is <a href="http://mezzoblue.com/archives/2009/01/27/sprite_optim/">starting to notice the use of huge CSS Sprites</a>. I think I am in his state of mind: optimize when possible, but I&rsquo;m not too interested in making one of those huge sprites.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=yfJHBly4"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=yfJHBly4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=ZuzqtcBR"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=IcgENbA1"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=SMHH9hJ3"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=SMHH9hJ3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=RF5Hxrb0"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/IbjMdFw2voI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/sprite-optimization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/sprite-optimization/</feedburner:origLink></item>
		<item>
		<title>My First WordPress Plugin</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/ZXWpHHniY5M/</link>
		<comments>http://trevordavis.net/asides/my-first-wordpress-plugin/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 17:41:24 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1353</guid>
		<description><![CDATA[In a recent project at work, I had to integrate WordPress and bbPress. It proved to be a little more difficult than I anticipated, and I had to write my first WordPress plugin: Add bbPress Default Role.
]]></description>
			<content:encoded><![CDATA[<p>In a recent project at work, I had to integrate WordPress and bbPress. It proved to be a little more difficult than I anticipated, and I had to write my first WordPress plugin: <a href="http://wordpress.org/extend/plugins/add-bbpress-default-role/">Add bbPress Default Role</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=loWum1Yf"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=loWum1Yf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=gYziK5kd"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=aEgpQupX"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=JF2Yjoyb"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=JF2Yjoyb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=lefuZPjK"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/ZXWpHHniY5M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/my-first-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/my-first-wordpress-plugin/</feedburner:origLink></item>
		<item>
		<title>Exactly How to Create a Custom jQuery Accordion</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/DwpVnV-Az2I/</link>
		<comments>http://trevordavis.net/blog/tutorial/exactly-how-to-create-a-custom-jquery-accordion/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 21:27:38 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1328</guid>
		<description><![CDATA[Yesterday, I saw that NETTUTS was looking for another staff writer. I figured that I would give it a shot and write a tutorial about creating a custom jQuery accordion (just like the one on the sidebar of my website). Well what do you know, they published it.
]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I saw that <a href="http://nettuts.com/articles/news/a-staff-writer-position-has-opened/">NETTUTS was looking for another staff writer</a>. I figured that I would give it a shot and write a tutorial about creating a custom jQuery accordion (just like the one on the sidebar of my website). Well what do you know, <a href="http://nettuts.com/tutorials/javascript-ajax/exactly-how-to-create-a-custom-jquery-accordion/">they published it</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=ukGwIweY"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=ukGwIweY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=i5kOSOM9"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=5IQK001j"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=dRMDUaHm"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=dRMDUaHm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=fp8HHLBi"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/DwpVnV-Az2I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/exactly-how-to-create-a-custom-jquery-accordion/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/exactly-how-to-create-a-custom-jquery-accordion/</feedburner:origLink></item>
		<item>
		<title>A List Apart: Issue 276</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/7MdfJ2Jf8gE/</link>
		<comments>http://trevordavis.net/asides/a-list-apart-issue-276/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 14:53:38 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1325</guid>
		<description><![CDATA[This issue focuses around one of the biggest problems in web development: education, or lack thereof. I know I would have loved to actually go to school for web development.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.alistapart.com/issues/276">This issue</a> focuses around one of the biggest problems in web development: education, or lack thereof. I know I would have loved to actually go to school for web development.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=vGo06jHb"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=vGo06jHb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wRzyTv8w"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=2230mVqD"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=3t2zJ8UQ"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=3t2zJ8UQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=3z8eWvky"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/7MdfJ2Jf8gE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/a-list-apart-issue-276/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/a-list-apart-issue-276/</feedburner:origLink></item>
		<item>
		<title>Design Share, an Event Series</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/skV1r1ijCeY/</link>
		<comments>http://trevordavis.net/asides/design-share-an-event-series/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:39:38 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1320</guid>
		<description><![CDATA[Viget&#8217;s write up about the design share event that I attended and summarized. This one with video!
]]></description>
			<content:encoded><![CDATA[<p>Viget&rsquo;s write up about the <a href="http://www.viget.com/inspire/design-share-event-series/">design share event</a> that I attended and <a href="http://trevordavis.net/blog/news/design-share/">summarized</a>. This one with video!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=2KqShAiT"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=2KqShAiT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wLG4LgKy"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=8sAXbHMR"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=ruxwQvIm"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=ruxwQvIm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=5RsjeF04"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/skV1r1ijCeY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/design-share-an-event-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/design-share-an-event-series/</feedburner:origLink></item>
		<item>
		<title>Web Development Project Estimator</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/g9WqzD18KpI/</link>
		<comments>http://trevordavis.net/asides/web-development-project-estimator/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 14:27:49 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1315</guid>
		<description><![CDATA[&#8220;A simple tool that allows web designers and site developers to quickly and thoroughly estimate the time and materials required for a proposed web project.&#8221; Yes, all of this could be accomplished through other programs, but this is a pretty nice interface.
]]></description>
			<content:encoded><![CDATA[<p>&ldquo;<a href="http://estimator.astuteo.com/">A simple tool</a> that allows web designers and site developers to quickly and thoroughly estimate the time and materials required for a proposed web project.&rdquo; Yes, all of this could be accomplished through other programs, but this is a pretty nice interface.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=rkzt7xBG"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=rkzt7xBG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=NSq2v7jK"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=1Q4EdX8q"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=LjvOCy44"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=LjvOCy44" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=pv7BWK54"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/g9WqzD18KpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/web-development-project-estimator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/web-development-project-estimator/</feedburner:origLink></item>
		<item>
		<title>Use jQuery to Enhance your WordPress Comment Form</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/CSSPVziMcGA/</link>
		<comments>http://trevordavis.net/blog/tutorial/use-jquery-to-enhance-your-wordpress-comment-form/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 05:47:29 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1253</guid>
		<description><![CDATA[I have already completed a couple of tutorials on forms and jQuery (Ajax Forms with jQuery and Flexible and Semantic Forms with a Little jQuery), but I wanted to show another example of using a simple jQuery script to enhance functionality. This example will be about the comment form on a WordPress powered site.

Depending upon [...]]]></description>
			<content:encoded><![CDATA[<p>I have already completed a couple of tutorials on forms and jQuery (<a href="http://trevordavis.net/blog/tutorial/ajax-forms-with-jquery/">Ajax Forms with jQuery</a> and <a href="http://trevordavis.net/blog/tutorial/flexible-and-semantic-forms-with-a-little-jquery/">Flexible and Semantic Forms with a Little jQuery</a>), but I wanted to show another example of using a simple jQuery script to enhance functionality. This example will be about the comment form on a WordPress powered site.</p>
<p><span id="more-1253"></span></p>
<p><img src="http://trevordavis.net/wp-content/uploads/2009/01/wordpress-validation.gif" alt="WordPress Validation Screenshot" width="330" height="106" class="leftSide pullLeft col6 frame" />Depending upon your configuration, WordPress will validate the comment form for required fields. In my configuration, I want to make sure that users fill in their name and email address If you submit my comment form without those, WordPress will perform server side validation.</p>
<p>But, do you really want users to see this error page? <strong>Wouldn&rsquo;t it be so much better if we used to JavaScript to validate on the client side so that they never have to leave the form</strong>?</p>
<p>I think so. Before we get started, I created <a href="http://trevordavis.net/play/wordpress-comment-form/">a sample of the WordPress comment form</a>.</p>
<p><a href="http://trevordavis.net/play/wordpress-comment-form/" class="more-link">See Example Page</a></p>
<h2>Creating the Markup</h2>
<p>I have tweaked my markup somewhat from the default WordPress comment form, so you will need to make changes to account for your markup. Here is the markup for my form:</p>
<pre><code>&lt;form action="#" method="post" id="commentform">
	&lt;p class="required">* Denotes Required Field&lt;/p>
	&lt;ol class="forms">
		&lt;li>
			&lt;label for="author">Name &lt;span class="required">*&lt;/span>&lt;/label>
			&lt;input type="text" class="requiredField" name="author" id="author" size="22" />
		&lt;/li>
		&lt;li>
			&lt;label for="email">E-Mail &lt;span class="required">*&lt;/span>&lt;/label>
			&lt;input type="text"  class="requiredField" name="email" id="email" size="22" />
		&lt;/li>
		&lt;li>
			&lt;label for="url">Website&lt;/label>
			&lt;input type="text" name="url" id="url" size="22" />
		&lt;/li>
		&lt;li class="textarea">
			&lt;label for="comment">Comments &lt;span class="required">*&lt;/span>&lt;/label>
			&lt;textarea  class="requiredField" name="comment" id="comment" cols="100%" rows="10">&lt;/textarea>
		&lt;/li>
		&lt;li class="subscribe-to-comments">
			&lt;input type="checkbox" name="subscribe" id="subscribe" value="subscribe"  />
			&lt;label for="subscribe">Notify me of followup comments via e-mail&lt;/label>
		&lt;/li>
		&lt;li class="buttons">
			&lt;button type="submit" name="submit" id="submit">Add Comment &raquo;&lt;/button>
		&lt;/li>
	&lt;/ol>
&lt;/form></code></pre>
<p>I don&rsquo;t think there is much that I need to discuss about that markup; it is pretty standard. The only thing to mention is the class name of <strong>requiredField</strong> on the form fields that I want to be required. <em>Note: I also removed the action on the form so that the sample form cannot really be submitted to the database.</em></p>
<h2>The jQuery</h2>
<p>I of course am going to show this example using jQuery, but you could create something comparable with any other JavaScript library or just with some plain old JavaScript.</p>
<p>Once the document is loaded, let&rsquo;s start by adding a function for when the comment form is submitted:</p>
<pre><code>$(document).ready(function() {
	$('form#commentform').submit(function() {
	&hellip;
	});
});</code></pre>
<p>Next, we want to remove any errors if they are showing, and create a flag that will let us know if an error has occured:</p>
<pre><code>$(document).ready(function() {
	$('form#commentform').submit(function() {
		<strong>$('form#commentform .error').remove();
		var hasError = false;</strong>
		&hellip;
	});
});</code></pre>
<p>Ok, here is where we really start to do some coding. I want to take each form field that has a class of <strong>requiredField</strong>, check to see if it is empty, copy the name of the label (<em>and remove the required asterisk</em>), traverse to the parent list item, and append the error message. Here is where we will also set the hasError flag so that we know an error has occurred:</p>
<pre><code>$(document).ready(function() {
	$('form#commentform').submit(function() {
		$('form#commentform .error').remove();
		var hasError = false;
		<strong>$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text().replace(' *','');
				$(this).parent().append('&lt;span class="error">'+labelText+' is a required field.&lt;/span>');
				hasError = true;
			}
		});</strong>
		&hellip;
	});
});</code></pre>
<p>Finally, you want to check the <strong>hasError</strong> variable to determine whether or not you should submit the form to the server:</p>
<pre><code>$(document).ready(function() {
	$('form#commentform').submit(function() {
		$('form#commentform .error').remove();
		var hasError = false;
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
				var labelText = $(this).prev('label').text().replace(' *','');
				$(this).parent().append('&lt;span class="error">'+labelText+' is a required field.&lt;/span>');
				hasError = true;
			}
		});
		<strong>if(hasError) {
			return false;
		}</strong>
	});
});</code></pre>
<p class="note"><em>Note: The end of the script is slightly different on the example form because I did not want to actually submit the form.</em></p>
<h2>Conclusion</h2>
<p>Just another simple example of how we can improve the user experience by using jQuery. Like usual, there are jQuery plugins out there that can do the same thing, but I think it is important to understand how to do things yourself. Plus, that is only 17 lines of JavaScript compared to much, much more for a plugin.</p>
<p>Anyone have any ideas on how to improve the script?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=Yz8sPlGO"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=Yz8sPlGO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=tqeT2nQb"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=775trd1z"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=7k5dXf8q"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=7k5dXf8q" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=VIf5872C"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/CSSPVziMcGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/tutorial/use-jquery-to-enhance-your-wordpress-comment-form/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/tutorial/use-jquery-to-enhance-your-wordpress-comment-form/</feedburner:origLink></item>
		<item>
		<title>CSS Testing of Selectors and Pseudo Selectors</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/mEm1CSBW2r8/</link>
		<comments>http://trevordavis.net/asides/css-testing-of-selectors-and-pseudo-selectors/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 02:33:55 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1257</guid>
		<description><![CDATA[A list of selectors and their supported browsers. There seems to be a trend of the non-supported ones&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://kimblim.dk/csstest/">A list of selectors and their supported browsers</a>. There seems to be a trend of the non-supported ones&hellip;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=6aushkUO"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=6aushkUO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=lWvr9tEo"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=YIaEpwiO"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=J6Z8rEEv"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=J6Z8rEEv" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=MUTjEeck"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/mEm1CSBW2r8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/css-testing-of-selectors-and-pseudo-selectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/css-testing-of-selectors-and-pseudo-selectors/</feedburner:origLink></item>
		<item>
		<title>The State of the Web 2008</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/Ncztd1FlZzs/</link>
		<comments>http://trevordavis.net/asides/the-state-of-the-web-2008/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 14:44:58 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1231</guid>
		<description><![CDATA[The detailed report from the State of the Web Survey has been compiled. Wow, 62% of the people using JavaScript libraries are using jQuery; I love it.
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.webdirections.org/the-state-of-the-web-2008/">detailed report from the State of the Web Survey</a> has been compiled. Wow, 62% of the people using JavaScript libraries are using jQuery; I love it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=l9m3Pvm5"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=l9m3Pvm5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=KeFwICKV"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=6SQQ2Rbf"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=mL680Hhx"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=mL680Hhx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=Vh1P6YwB"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/Ncztd1FlZzs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/the-state-of-the-web-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/the-state-of-the-web-2008/</feedburner:origLink></item>
		<item>
		<title>Design Share</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/UkapJZyraeE/</link>
		<comments>http://trevordavis.net/blog/news/design-share/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 07:39:39 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1207</guid>
		<description><![CDATA[I had the pleasure of being invited to Design Share at Viget Labs Wednesday night. The idea of the event was that 6 presenters would each give a 5 minute presentation on design, and then there was a question and answer period. It was especially great since I am not really a designer. Always great [...]]]></description>
			<content:encoded><![CDATA[<p>I had the pleasure of being invited to <strong>Design Share</strong> at <a href="http://viget.com/">Viget Labs</a> Wednesday night. The idea of the event was that 6 presenters would each give a 5 minute presentation on design, and then there was a question and answer period. It was especially great since I am not really a designer. Always great to learn new things.</p>
<p><span id="more-1207"></span></p>
<h2><a href="http://www.brian-talbot.com/" class="inline">Brian Talbot</a> National Geographic</h2>
<p>Brian started the night off by discussing the process of bringing the National Geographic <a href="http://www.thegreenguide.com/">Green Guide</a> online. It was quite an undertaking since they were taking a print publication and creating a supporting website.</p>
<p>Usually, something gets lost in translation going from print to the web. So, they wanted to still have these <strong>interesting layouts and help tie in the site to the printed collateral</strong>. They also wanted to get the community involved in providing information and commentary.</p>
<p>I think a lot of the screenshots that he showed us are not in production yet, but they looked great. There were charts, information organization in a sensible manor, and nice simple layouts.</p>
<h2><a href="http://www.thirstyinteractive.com/" class="inline">Jay Moore</a> Thirsty Interactive</h2>
<p>Next, Jay discussed his &ldquo;<strong>Papa Bear, Mama Bear, &amp; Baby Bear</strong>&rdquo; approach to mood boards. The example he used was from his experience in building the mood boards for the <a href="http://www.bered.com/">AOL Red</a> redesign.</p>
<h3>Papa Bear Mood Board</h3>
<p>This is the &ldquo;safety&rdquo; board. It&rsquo;s comfortable because it was similar to the previous design. They wanted to show that they incorporated elements to meet the goals of the project.</p>
<h3>Mama Bear Mood Board</h3>
<p>With this board, they do not expect it to be chosen. It&rsquo;s edgier and purposely a little bit too far over the top. The idea of this board is that it will help to generate thought and ideas.</p>
<h3>Baby Bear Mood Board</h3>
<p>This board is kind of the best of the Mama &amp; Papa bear boards. It is that happy medium. It has the familiar feel of the Papa bear board, but that edginess that will help to cater to the teen audience.</p>
<p>Of course, the final decision was to use elements from each board.</p>
<p>The most interesting part of this talk was that <strong>real design elements were actually worked into the mood boards</strong>. I haven&rsquo;t seen too many mood boards, but all of the ones I had seen were very abstract. This was a nice change.</p>
<h2><a href="http://www.ericlohman.com/" class="inline">Eric Lohman</a> AKQA</h2>
<p>Eric had the opportunity to help re-brand and redesign the <a href="http://www.nhl.com/">NHL</a> website. Before his company was involved, the NHL had no real brand; they had all of these different banners with different treatments of their logo. They helped to standardize the logo and provide a simple system for expanding it.</p>
<p><img src="http://trevordavis.net/wp-content/uploads/2009/01/nhl-team-logos.gif" alt="NHL Team Logos" width="220" height="220" class="leftSide pullLeft col4" />So AKQA developed mood boards, and <strong>the entire design concept was inspired by one image: black ice</strong>. This is where the dark concept came from. It really gives the site a sleek look, and it makes the large action shots really pop.</p>
<p>Another difficult task that they encountered was dealing with the teams logos. They were all odd shaped and nothing tied them all together. They decided to do some intense cropping to gain consistency between the logos.</p>
<p>Finally, Eric talked about adding more interactivity to the site. You can see game highlights, watch games live, and even look through an enormous photo gallery. The new NHL site is a tremendous design success.</p>
<h2><a href="http://caviarfrenchfries.tumblr.com/" class="inline">Ari Kushimoto</a> CaviarFrenchFries </h2>
<p>Ari was tasked with developing 3 mood boards for an intranet that had a Web 2.0 feel (yuck, I hate saying that). Of course she had a tight deadline. This is where she found that her bookmarking service really paid off. <strong>All of that time she spent bookmarking cool sites and ideas really paid off and saved time</strong>.</p>
<p>She took screenshots, organized into different folders, and then got started on the mood boards. She setup a consistent grid for the boards, and this made it easier to swap things in and out.</p>
<p>There was some good discussion afterward about good tools that help to organize screenshots: <a href="http://www.realmacsoftware.com/littlesnapper/">LittleSnapper</a> and <a href="http://derailer.org/paparazzi/">Paparazzi</a></p>
<h2><a href="http://www.robsoule.com/" class="inline">Rob Soul&eacute;</a> Viget Labs</h2>
<p>Rob talked about the Viget design process. The project begins by sending a couple of surveys to the client. The surveys ask some abstract questions like &ldquo;What kind of car would your company be&rdquo; and &ldquo;What magazine(s) describe your company&rdquo;. These surveys help the client to focus on their thoughts of their brand and <strong>help to give the designers a better idea of what the client is looking for</strong>.</p>
<p>Once a project is ready to be designed, a lead designer is assigned the project, and they sit down with 2 other designers. They discuss 3 directions that they want to go in and discuss elements that they want to include in the mood boards. While this is going on, the user experience designer is working on the wireframes.</p>
<p>One thing that I thought was really interesting was that they discuss specific elements to add to the mood boards. So for example, a submit button for a form, a headline, and the navigation. While sometimes they also do abstract mood boards, I think <strong>it seems more useful to real elements</strong> that you would see on a site.</p>
<h2><a href="http://sixtwothree.org/" class="inline">Jason Garber</a> Mixx</h2>
<p>When Jason used to work at AOL, he was involved in creating <a href="http://ficlets.com/">Ficlets</a> which is basically an online community for short story writers. It became popular relatively quickly, and they had a solid community. A few years later&hellip;Jason and the others who helped to create Ficlets no longer work at AOL, and suddenly, AOL decided they are going to shut down Ficlets.</p>
<p>It is not really clear what the reasoning is, basically AOL just sucks. Well, Jason and the others who created it didn&rsquo;t want the site to go away. It was successful and had a solid community. So Jason and friends decided to basically recreate it.</p>
<p>This is quite an opportunity for anyone creating a website. <strong>They were able to examine the way that users were using Ficlets and found some ways to improve it</strong>. They are facing some tough decisions trying to determine what to do with past Ficlets&rsquo; stories and the community. Somehow, they need to transport the community from Ficlets to <a href="http://ficly.com/">Ficly</a>, which will be the new home starting on January 15th.</p>
<h2>Conclusion</h2>
<p>It was very interesting to hear about the process and experience of so many talented people. I think the format of the 5 minute presentation also helped to focus the discussion. All in all, it was a good time.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=Rla6GI2r"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=Rla6GI2r" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=b86JPpdb"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=oURnDKpS"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=qPful45y"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=qPful45y" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=JKNbffCI"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/UkapJZyraeE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/news/design-share/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/news/design-share/</feedburner:origLink></item>
		<item>
		<title>Jason Santa Maria is Leaving Happy Cog</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/jY0IgFMXdg0/</link>
		<comments>http://trevordavis.net/asides/jason-santa-maria-is-leaving-happy-cog/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 16:48:22 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1203</guid>
		<description><![CDATA[Probably my favorite designer out there right now is going freelance. Hey Jason, want to come work at my company instead?
]]></description>
			<content:encoded><![CDATA[<p>Probably my favorite designer out there right now <a href="http://jasonsantamaria.com/articles/leaving-happy-cog/">is going freelance</a>. Hey Jason, want to come work at my company instead?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=2eAeg9NT"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=2eAeg9NT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=HiPJMHPJ"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=cH9jKiNb"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=j6Eygt33"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=j6Eygt33" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=xEyR0QSV"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/jY0IgFMXdg0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/jason-santa-maria-is-leaving-happy-cog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/jason-santa-maria-is-leaving-happy-cog/</feedburner:origLink></item>
		<item>
		<title>A Plea for WordPress Help</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/dtT_kS4FK_s/</link>
		<comments>http://trevordavis.net/blog/web/plea-for-wordpress-help/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 06:14:07 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1190</guid>
		<description><![CDATA[I love using WordPress to power websites.
While it began strictly as a blogging platform, it has evolved into a pretty solid CMS, but there is one little thing that has been bugging me for a while now.

With the launch of my redesigned site, I was interested in using the WP-PageNavi plugin because I think it [...]]]></description>
			<content:encoded><![CDATA[<p>I love using WordPress to power websites.</p>
<p>While it began strictly as a blogging platform, it has evolved into a pretty solid CMS, but there is one little thing that has been bugging me for a while now.</p>
<p><span id="more-1190"></span></p>
<p>With the launch of my redesigned site, I was interested in using the <a href="http://wordpress.org/extend/plugins/wp-pagenavi/">WP-PageNavi plugin</a> because I think it provides much better paging than the default WordPress previous/next.</p>
<p>The problem is that WordPress includes <strong>/category/</strong> in the URL, and I hate it. For example, on my <a href="http://trevordavis.net/blog/">blog page</a>, you can click the older entries link at the bottom of the content area, and you can see that the link points to here:</p>
<pre><code>http://trevordavis.net/blog/page/2/</code></pre>
<p>But, you will notice that you actually get redirected to:</p>
<pre><code>http://trevordavis.net/category/blog/page/2/</code></pre>
<p>I had to do this because <a href="http://trevordavis.net/blog/page/2/">/blog/page/2/</a> returned a 404 error. You can see this by going <a href="http://trevordavis.net/blog/page/3/">directly to the third page</a>.</p>
<h2>Some Suggested Fixes</h2>
<p>I read through <a href="http://wordpress.org/extend/ideas/topic.php?id=359">a couple</a> of <a href="http://wordpress.org/support/topic/98005">forum posts</a>  discussing the problem, but none of the fixes mentioned seemed to work.</p>
<p>The most discussed suggestion was to change the category base permalink to <strong>/.</strong>, but that did not work for me. Surprisingly, some people said it worked for them. That was pretty bizarre to me, so I kept looking.</p>
<p>Another suggestion was to edit a core WordPress file, which I do not want to do.</p>
<h2>Plugins to Fix the Problem?</h2>
<p>I came across 3 plugins that were supposed to fix the problem, but none of them worked for me either.</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/top-level-cats/">Top Level Categories</a></li>
<li><a href="http://wordpress.org/extend/plugins/decategorizer/">Decategorizer</a></li>
<li><a href="http://www.brianshoff.com/wordpress/category-base-removal-plugin.htm">Category Base Killer</a></li>
</ul>
<h2>My Idea</h2>
<p>So I am not the greatest with regular expressions and htaccess and all that jazz, but my thinking is that I can use the <a href="http://wordpress.org/extend/plugins/redirection/">Redirection plugin</a> to use a pass-through to rewrite any link like this:</p>
<pre><code>/blog/page/(*)/</code></pre>
<p>To this:</p>
<pre><code>/blog/page/$1/</code></pre>
<p><em>Is that not possible?</em> I could not get it to work. Does anyone know how to get something like this to work? <strong>WordPress team, why has this been a problem for so long?</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=HMvN5Aj0"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=HMvN5Aj0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wUj0OM6O"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=1kw0Qg6S"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=YoSXonb9"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=YoSXonb9" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=YuTMARxK"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/dtT_kS4FK_s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/blog/web/plea-for-wordpress-help/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://trevordavis.net/blog/web/plea-for-wordpress-help/</feedburner:origLink></item>
		<item>
		<title>Tabinta</title>
		<link>http://feedproxy.google.com/~r/TrevorDavisFullBlog/~3/32H3ACcXsOA/</link>
		<comments>http://trevordavis.net/asides/tabinta/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 22:56:19 +0000</pubDate>
		<dc:creator>Trevor</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://trevordavis.net/?p=1187</guid>
		<description><![CDATA[When editing stuff in WordPress, I was always so annoyed that I could not tab in the textareas. Tabinta Firefox plugin to the rescue.
]]></description>
			<content:encoded><![CDATA[<p>When editing stuff in WordPress, I was always so annoyed that I could not tab in the textareas. <a href="https://addons.mozilla.org/en-US/firefox/addon/3955">Tabinta</a> Firefox plugin to the rescue.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wyPrqwMk"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=wyPrqwMk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=wSdTQ14g"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=yjDPwAXs"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=rnILfbCZ"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?i=rnILfbCZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?a=VuR4ZAyV"><img src="http://feeds.feedburner.com/~f/TrevorDavisFullBlog?d=52" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TrevorDavisFullBlog/~4/32H3ACcXsOA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://trevordavis.net/asides/tabinta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://trevordavis.net/asides/tabinta/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 2.081 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-07-13 10:36:02 -->
