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

<channel>
	<title>NerdStarGamer &#187; Web Design</title>
	<atom:link href="http://blog.nerdstargamer.com/category/web-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nerdstargamer.com</link>
	<description>Mental Notes. Random thoughts. Comments on technology, games and life.</description>
	<lastBuildDate>Wed, 09 Feb 2011 18:35:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Oatmeal on Restaurant Websites</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2011%2Fthe-oatmeal-on-restaurant-websites%2F&#038;seed_title=The+Oatmeal+on+Restaurant+Websites</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2011%2Fthe-oatmeal-on-restaurant-websites%2F&#038;seed_title=The+Oatmeal+on+Restaurant+Websites#comments</comments>
		<pubDate>Wed, 09 Feb 2011 18:33:51 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Comics]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[The Oatmeal]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2011/the-oatmeal-on-restaurant-websites/</guid>
		<description><![CDATA[Dead On. What I want from a restaurant website]]></description>
			<content:encoded><![CDATA[<p>Dead On.</p>

<p><a href="http://theoatmeal.com/comics/restaurant_website"><img src="/wp-content/uploads/2011/02/restaurant_website.png" alt="Restaurant Website" /></a></p>

<ul class="articleLink">
    <li><a href="http://theoatmeal.com/comics/restaurant_website" title="What I want from a restaurant website - The Oatmeal">What I want from a restaurant website</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2011%2Fthe-oatmeal-on-restaurant-websites%2F&#038;seed_title=The+Oatmeal+on+Restaurant+Websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two CMS Solutions Worth Looking At</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Ftwo-cms-solutions-worth-looking-at%2F&#038;seed_title=Two+CMS+Solutions+Worth+Looking+At</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Ftwo-cms-solutions-worth-looking-at%2F&#038;seed_title=Two+CMS+Solutions+Worth+Looking+At#comments</comments>
		<pubDate>Tue, 21 Dec 2010 17:20:15 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content Management Systems]]></category>
		<category><![CDATA[Halogy]]></category>
		<category><![CDATA[Perch]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/two-cms-solutions-worth-looking-at/</guid>
		<description><![CDATA[Below are two different content management systems that definitely seem worth checking out. Halogy is a free open source system. Although it&#8217;s free to start out with, it looks like they charge for different modules. Perch costs about $55 per website but sounds intriguing. Mostly just a small customizable solution. It sounds like it might [...]]]></description>
			<content:encoded><![CDATA[<p>Below are two different content management systems that definitely seem worth checking out. <a href="http://www.halogy.com/" title="Free, Open Source CMS for Designers built on CodeIgniter - Halogy">Halogy</a> is a free open source system. Although it&#8217;s free to start out with, it looks like they charge for different modules.</p>

<p><a href="http://grabaperch.com/buy" title="Buy - Perch">Perch</a> costs about $55 per website but sounds intriguing. Mostly just a small customizable solution. It sounds like it might be nice for some basic websites where other CMS solutions would be overkill.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Ftwo-cms-solutions-worth-looking-at%2F&#038;seed_title=Two+CMS+Solutions+Worth+Looking+At/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ImageOptim</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fimageoptim%2F&#038;seed_title=ImageOptim</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fimageoptim%2F&#038;seed_title=ImageOptim#comments</comments>
		<pubDate>Thu, 09 Dec 2010 20:54:33 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Image Optimization]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/imageoptim/</guid>
		<description><![CDATA[ImageOptim is a great GUI tool for optimizing images. It uses AdvPNG, OptiPNG, PngGrush, JpegOptim and others. Perfectly simple. Don&#8217;t forget to download and install the provided service so that you can optimize images by using the context menu (right click).]]></description>
			<content:encoded><![CDATA[<p><a href="http://imageoptim.pornel.net/" title="ImageOptim – a PNG/JPEG/GIF optimizer for Mac OS X">ImageOptim</a> is a great GUI tool for optimizing images. It uses AdvPNG, OptiPNG, PngGrush, JpegOptim and others. Perfectly simple. Don&#8217;t forget to download and install the provided service so that you can optimize images by using the context menu (right click).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fimageoptim%2F&#038;seed_title=ImageOptim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boulton&#8217;s Designing for the Web Is Now Online</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fboultons-designing-for-the-web-is-now-online%2F&#038;seed_title=Boulton%26%238217%3Bs+Designing+for+the+Web+Is+Now+Online</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fboultons-designing-for-the-web-is-now-online%2F&#038;seed_title=Boulton%26%238217%3Bs+Designing+for+the+Web+Is+Now+Online#comments</comments>
		<pubDate>Thu, 09 Dec 2010 19:07:35 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Design for the Web]]></category>
		<category><![CDATA[Grids]]></category>
		<category><![CDATA[Mark Boulton]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/boultons-designing-for-the-web-is-now-online/</guid>
		<description><![CDATA[Mark Boulton&#8217;s book Designing for the Web is now available free to read online. I&#8217;ve already got my PDF copy, but this is great that it&#8217;s online now. Check it out and don&#8217;t forget to also look at all the great Five Simple Steps books.]]></description>
			<content:encoded><![CDATA[<p>Mark Boulton&#8217;s book <em>Designing for the Web</em> is now available <a href="http://designingfortheweb.co.uk/book/index.php" title="Designing for the Web &ndash; Contents">free to read online</a>. I&#8217;ve already got my PDF copy, but this is great that it&#8217;s online now. Check it out and don&#8217;t forget to also look at all the great <a href="http://fivesimplesteps.com/" title="Five Simple Steps | A Practical Guide to">Five Simple Steps</a> books.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fboultons-designing-for-the-web-is-now-online%2F&#038;seed_title=Boulton%26%238217%3Bs+Designing+for+the+Web+Is+Now+Online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Html5 &amp; Css3 Readiness</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fhtml5-css3-readiness%2F&#038;seed_title=Html5+%26amp%3B+Css3+Readiness</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fhtml5-css3-readiness%2F&#038;seed_title=Html5+%26amp%3B+Css3+Readiness#comments</comments>
		<pubDate>Mon, 17 May 2010 18:55:39 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Infographics]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/html5-css3-readiness/</guid>
		<description><![CDATA[Here is a very nice visualization of support for the different HTML5 and CSS3 properties among various browsers. The visualization allows you to also look at different years from 2008-2010 which gives a great demonstration about how quickly browser vendors are finally moving to implement these standards.]]></description>
			<content:encoded><![CDATA[<p>Here is a very nice visualization of <a href="http://html5readiness.com/" title="HTML5 Readiness">support for the different HTML5 and CSS3</a> properties among various browsers. The visualization allows you to also look at different years from 2008-2010 which gives a great demonstration about how quickly browser vendors are finally moving to implement these standards.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fhtml5-css3-readiness%2F&#038;seed_title=Html5+%26amp%3B+Css3+Readiness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backslash</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fbackslash%2F&#038;seed_title=Backslash</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fbackslash%2F&#038;seed_title=Backslash#comments</comments>
		<pubDate>Tue, 11 May 2010 17:47:57 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[XKCD]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/backslash/</guid>
		<description><![CDATA[If I only had a dollar for every time I had to go over this in my web design course.]]></description>
			<content:encoded><![CDATA[<p>If I only had a dollar for every time I had to go over this in my web design course.</p>

<p><a href="http://xkcd.com/727/" title="xkcd: Trade Expert"><img src="http://imgs.xkcd.com/comics/trade_expert.png" alt="XKCD Comic titled Trade Expert" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fbackslash%2F&#038;seed_title=Backslash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts and Links About the Facebook Login Fiasco</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fthoughts-and-links-about-the-facebook-login-fiasco%2F&#038;seed_title=Thoughts+and+Links+About+the+Facebook+Login+Fiasco</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fthoughts-and-links-about-the-facebook-login-fiasco%2F&#038;seed_title=Thoughts+and+Links+About+the+Facebook+Login+Fiasco#comments</comments>
		<pubDate>Fri, 19 Feb 2010 01:42:58 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[General Computing]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Computer Support]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Google Search]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Krug]]></category>
		<category><![CDATA[Login]]></category>
		<category><![CDATA[ReadWriteWeb]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/thoughts-and-links-about-the-facebook-login-fiasco/</guid>
		<description><![CDATA[I think most people that follow the same news feeds that I read probably have heard about this whole Facebook login thing, so I won&#8217;t summarize too much. Basically, the blog ReadWriteWeb posted an arcticle about Facebook. The article subsequently got ranked as a very high search result for &#8220;Facebook login&#8221; on Google. The content [...]]]></description>
			<content:encoded><![CDATA[<p>I think most people that follow the same news feeds that I read probably have heard about this whole Facebook login thing, so I won&#8217;t summarize too much. Basically, the blog ReadWriteWeb posted an <a href="http://www.readwriteweb.com/archives/facebook_wants_to_be_your_one_true_login.php" title="Facebook Wants to Be Your One True Login">arcticle about Facebook</a>. The article subsequently got ranked as a very high search result for &#8220;Facebook login&#8221; on Google. The content of the article itself is irrelevant to the issue at hand (although the article itself is interesting). Pay special attention to the comments (or at least the first 100 or so).</p>

<h3>First Impressions</h3>

<p>The typical nerd response to this has been <a href="http://mattstratton.com/hilarity/hundreds-of-facebook-users-are-apparently-really-dumb" title="Hundreds of Facebook users are apparently really dumb">laughing and pointing</a>. Now, I have to admit, that was my first response as well. But, after I stopped laughing and shaking my head (well, actually I&#8217;m still shaking my head), I started thinking of all of the crazy things that I&#8217;ve seen people do in the last 5+ years I&#8217;ve spent working in computer support. While I find this whole thing rather amusing, I can&#8217;t say that I&#8217;m actually surprised. I have witnessed someone physically lift a mouse into the air when asked to &#8220;move the mouse up&#8221;.</p>

<p>I think the biggest difference between developers (or nerds) and normal people, is that normal people don&#8217;t <em>want</em> to know how a computer or the internet work. They don&#8217;t care. They don&#8217;t want to learn. I&#8217;ve never really gotten over this because it&#8217;s something that I find terribly disappointing about working in computer support. I can watch a person do the same thing over an over again knowing that there is a better way to do it, but they don&#8217;t care. They don&#8217;t want to understand. They don&#8217;t want me to teach them how to understand why something works a certain way. They just want to get the result they need.</p>

<p>I still have yet to decide the which angle of this attitude is the more important one. Is it an indication that a certain population of people will always be lagging behind because they refuse to adapt to a quickly changing world that requires them to understand certain aspects of technology?  Or perhaps is it an indication that technology (and the people who develop it) simply hasn&#8217;t evolved enough to adapt to &#8220;real people&#8221; who do not &#8220;need&#8221; to understand black box in order to use it?</p>

<h3>The Wider Debate</h3>

<p>Much has been written in regard to the Facebook login fiasco, and quite a controversy has been sparked in the development community about what this really means, and whose &#8220;fault&#8221; it is. First, check out some of these articles which highlight very interesting points for both sides of the debate.</p>

<ul>
<li><a href="http://funkatron.com/site/comments/were-the-stupid-ones-facebook-google-and-our-failure-as-developers/" title="funkatron.com: We&#8217;re the Stupid Ones: Facebook, Google, and Our Failure as Developers">We’re the Stupid Ones: Facebook, Google, and Our Failure as Developers</a></li>
<li><a href="http://blog.cursingnerds.com/2010/02/reply-to-funkatrons-analysis-of.html" title="Cursing Nerds: Reply to Funkatron&#8217;s Analysis of the RWW/Facebook Debaucle of 2010">Reply to Funkatron’s Analysis of the RWW/Facebook Debaucle of 2010</a></li>
<li><a href="http://philcrissman.com/2010/02/16/no-were-not-the-stupid-ones" title="No, We&#8217;re Not The Stupid Ones at philcrissman.com">No, We’re Not The Stupid Ones</a></li>
<li><a href="http://www.wolerized.com/blog/remi-woler/really-are-we-idiots" title="Really? Are we the idiots? | Wolerized.com">Really? Are we the idiots?</a></li>
<li><a href="http://jonoscript.wordpress.com/2010/02/18/some-people-cant-read-urls/" title="Some People Can&#8217;t Read URLs &laquo; Not The User&#8217;s Fault">Some People Can’t Read URLs</a></li>
<li><a href="http://philcrissman.com/2010/02/17/why-its-not-a-google-failure" title="Why It&#8217;s Not A Google Failure at philcrissman.com">Why It’s Not A Google Failure</a></li>
</ul>

<h3>On Whether Or Not Google Got It Wrong</h3>

<p>I guess this really depends on how far exactly the RWW article made it up the search rankings. I&#8217;d say that it&#8217;s an entirely different debate depending on whether the search result was first or fifth. I thought originally the result was first, but Stratton <a href="http://mattstratton.com/hilarity/hundreds-of-facebook-users-are-apparently-really-dumb" title="Hundreds of Facebook users are apparently really dumb">claims it never made it to number one</a>. I don&#8217;t see any reason why that RWW article should not reach a high rank on the search term &#8220;facebook login&#8221; since that is what the article is about. It&#8217;s a popular blog and presumably the article was popular as well.</p>

<p>A number one search result is another matter though. I agree with the camp that says it would be impossible for Google (or any other search engine) to always know what a person meant. But seriously, isn&#8217;t that what Google is always trying to do? It just doesn&#8217;t sit right to me that an article about a website as huge as Facebook would ever be a more popular search intention that the site itself.</p>

<p>The search &#8220;facebook login&#8221; seems to clearly indicate a search for the login page itself. That seems fairly intuitive. In fact, substitute facebook for most major web apps and I think it&#8217;s the same. However, if the search changes slightly to something like &#8220;facebook changes login&#8221;, it&#8217;s now an entirely different issue.</p>

<p>Perhaps the artificial intelligence of search algorithms just isn&#8217;t sophisticated enough to parse nuances of language that seem so obvious to humans. Then again, perhaps they are and that&#8217;s why the RWW page never made it to the number one spot for the &#8220;facebook login&#8221; search. In that case, I really think this whole debate about whether or not Google got it wrong is really a non issue.</p>

<h3>On The Users Themselves</h3>

<p>Moving past the whole Google question, there are a couple of things that really baffle me about this entire fiasco. First of all, it&#8217;s clear that these users have no idea what a URL is. Both because they are using Google Search to find a URL like facebook.com and also (and more importantly) because they did not realize that the RWW URL bears absolutely no resemblance to any Facebook URL, and therefore cannot possible be the Facebook website.</p>

<p>How is it that these users who have to most superficial understanding of what a website is and how the internet works, are also capable of writing comments to the RWW page? They are baffled about how to log in to a site that&#8217;s not the Facebook site they&#8217;re used to (and in fact bears absolutely no resemblance to it). But they still can use the comment form in order to voice their disapproval of the perceived redesign.</p>

<p>Okay so, maybe typing into a comment form is no big deal. Even people that think the entire internet is just Google/Facebook/YouTube can figure out a comment form. What about using Facebook itself? It&#8217;s not like Facebook is that simple to use. This isn&#8217;t a slam on Facebook user interface, it&#8217;s just that Facebook is huge, and there are a lot of things that you can do on it. How can these people figure out how to use Facebook?</p>

<p>Perhaps this is an issue of normal people realizing that they want to use Facebook enough to spend time learning about friend networks, walls, how to upload photos in the little snazzy uploader. Why is it that they deem it important enough to figure out how to use websites like Facebook, but at the same time don&#8217;t care to understand what a web address is? I think I just fail to understand why someone would not care about that kind of stuff because I am so interested in it myself.</p>

<h3>Is It Actually a Facebook Problem?</h3>

<p>I logged on to Facebook for the first time in several weeks today. I don&#8217;t find myself doing this too much these days because I often either don&#8217;t look at Facebook at all or only look at it through the Facebook iPhone app. Much to my surprise, Facebook looked quite a bit different than the last time I saw it. I started thinking about how often I have to do what Steve Krug calls &#8220;muddling through&#8221; when I&#8217;m using Facebook. I know what I can do on Facebook, it just usually takes me a couple of tries to figure it out.</p>

<p>Why is this? Well, when I think about it, the Facebook website changes quite a bit. They&#8217;ve made several large and small changes to the website in recent years (or less?). Compare this to something like the Google home page which has changed very little since it&#8217;s inception.</p>

<p>Perhaps Facebook users have come to expect over time, and through personal experience, that the Facebook website will change, and sometimes change dramatically. They expect this because it has happened. Perhaps it wasn&#8217;t so far fetched after all to believe that the RWW page was simply just the newest reiteration of a Facebook design.</p>

<p>Now, I know this is a stretch, but perhaps it&#8217;s not too much of a stretch. Has Facebook changed its pages so much that users are now willing to accept that a complete makeover, such as the RWW page being a new Facebook design, is a real possibility? Does Facebook redesign too often? Has Facebook unwittingly trained it&#8217;s users to expect this?</p>

<h3>One Last Only Slightly Related Thought</h3>

<p>Anyone like me (aka: nerd, developer, gamer, general computer enthusiast) who thinks that the iPad is stupid and going to be a flop is not seeing the big picture. The iPad is designed for exactly the type of people commenting on the RWW website. Both <a href="http://flyosity.com/ipad/the-ipad-is-for-everyone-but-us.php" title="The iPad Is For Everyone But Us &mdash; Flyosity: Mac &amp; iPhone Interface Design">Mike Rundle</a> and <a href="http://speirs.org/blog/2010/1/29/future-shock.html" title="Fraser Speirs - Blog - Future&nbsp;Shock">Fraser Speirs</a> are dead on (along with some other smart people as well). I think that most people will love the iPad. I think the iPad is going to revolutionize the netbook/eReader market just like the iPhone revolutionized the mobile phone market. Will the iPad be as successful a device as the iPhone? I don&#8217;t know. But I guarantee that it will change the game.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fthoughts-and-links-about-the-facebook-login-fiasco%2F&#038;seed_title=Thoughts+and+Links+About+the+Facebook+Login+Fiasco/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pure CSS3 AT-AT Walker</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fpure-css3-at-at-walker%2F&#038;seed_title=Pure+CSS3+AT-AT+Walker</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fpure-css3-at-at-walker%2F&#038;seed_title=Pure+CSS3+AT-AT+Walker#comments</comments>
		<pubDate>Wed, 03 Feb 2010 23:45:35 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Animations]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2010/pure-css3-at-at-walker/</guid>
		<description><![CDATA[All I can really say about this is &#8220;Wow.&#8221; And also, maybe someone has too much time on their hands. Pure CSS3 AT-AT Walker]]></description>
			<content:encoded><![CDATA[<p>All I can really say about this is &#8220;Wow.&#8221; And also, maybe someone has too much time on their hands.</p>

<ul>
<li><a href="http://anthonycalzadilla.com/css3-ATAT/index.html" title="Pure CSS3 AT-AT Walker by: Anthony Calzadilla">Pure CSS3 AT-AT Walker</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2010%2Fpure-css3-at-at-walker%2F&#038;seed_title=Pure+CSS3+AT-AT+Walker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Upload HTTP Error Fix</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fwordpress-upload-http-error-fix%2F&#038;seed_title=WordPress+Upload+HTTP+Error+Fix</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fwordpress-upload-http-error-fix%2F&#038;seed_title=WordPress+Upload+HTTP+Error+Fix#comments</comments>
		<pubDate>Tue, 16 Jun 2009 18:47:17 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Fixes]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTTP Error]]></category>
		<category><![CDATA[Image Uploader]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2009/wordpress-upload-http-error-fix/</guid>
		<description><![CDATA[Several versions of WordPress ago, I started sporadically encountering a problem while trying to use the Flash uploader in WordPress. Every time I tried to upload something using the Flash uploader, I would just get this HTTP Error message: I searched for a solution to the problem and found that it was a bug in [...]]]></description>
			<content:encoded><![CDATA[<p>Several versions of WordPress ago, I started sporadically encountering a problem while trying to use the Flash uploader in  WordPress. Every time I tried to upload something using the Flash uploader, I would just get this HTTP Error message:</p>

<p><img src="http://blog.nerdstargamer.com/wp-content/uploads/2009/06/wp_http_error1.png" alt="A Screenshot of the HTTP Error message when attempting to upload a files in WordPress" title="HTTP Error Message in WordPress"></p>

<p>I searched for a solution to the problem and found that it was a bug in one of the older versions of WordPress. Now, several versions later, it&#8217;s still happening. I&#8217;ve seen it on both WordPress 2.7 and WordPress 2.8. More Googling revealed several tips about about adding directives to the .htaccess file. I tried each of them, but with no success.</p>

<p>The most puzzling part of this problem for me was that I have several different installations of WordPress on different servers and different versions, but this error was only happening on some of them. After I actually sat down and thought about the problem, I realized that the error was only occurring on the WordPress installations that I had set to be private through the authorization control using my .htaccess files. Those sites have an .htaccess file in the root directory which starts with something like this:</p>

<pre><code>AuthName "private site"
AuthType Basic
AuthUserFile /home/private/.htpasswd
Require valid-user
</code></pre>

<p>This causes a dialog box to pop up when you try to go to the site. You have to specify a correct username and password, as specified in the .htpasswd file, in order to gain access to the site.</p>

<p>After realizing there might be a connection with this, I tested using the flash uploader on one of my sites with the htaccess authentication turned off. Sure enough, it worked like a charm. So after realizing that the HTTP Error was definitely related to this, a solution was easier to find.</p>

<p>The solution that worked for me was to create an <code>.htaccess</code> file in the <code>wp-admin</code> directory. The htaccess file should have the following rules in it:</p>

<pre><code>AuthType Basic
AuthName share
Satisfy Any
Order deny,allow
Allow from all

&lt;IfModule mod_security.c&gt;
&lt;Files async-upload.php&gt;
SecFilterEngine Off
SecFilterScanPOST Off
&lt;/Files&gt;
&lt;/IfModule&gt;
</code></pre>

<p>Since adding this file, I&#8217;ve been using the image uploader on my protected sites without a problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fwordpress-upload-http-error-fix%2F&#038;seed_title=WordPress+Upload+HTTP+Error+Fix/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Public Alley 404</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fpublic-alley-404%2F&#038;seed_title=Public+Alley+404</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fpublic-alley-404%2F&#038;seed_title=Public+Alley+404#comments</comments>
		<pubDate>Thu, 16 Apr 2009 23:40:09 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[HTTP Errors]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2009/public-alley-404/</guid>
		<description><![CDATA[Public Alley not found: View Larger Map]]></description>
			<content:encoded><![CDATA[<p>Public Alley not found:</p>

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/?ie=UTF8&amp;ll=42.343263,-71.083439&amp;spn=0.001473,0.00206&amp;z=19&amp;output=embed"></iframe>

<p><br /><small><a href="http://maps.google.com/?ie=UTF8&amp;ll=42.343263,-71.083439&amp;spn=0.001473,0.00206&amp;z=19&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2009%2Fpublic-alley-404%2F&#038;seed_title=Public+Alley+404/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Errors</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fhttp-errors%2F&#038;seed_title=HTTP+Errors</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fhttp-errors%2F&#038;seed_title=HTTP+Errors#comments</comments>
		<pubDate>Mon, 01 Dec 2008 19:48:25 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Art & Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[HTTP Errors]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/http-errors/</guid>
		<description><![CDATA[Here&#8217;s a great Flickr set on interpretations of the different HTTP Errors:]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a great Flickr set on interpretations of the different <a href="http://www.flickr.com/photos/apelad/sets/72157594388426362/" title="HTTP errors - a set on Flickr">HTTP Errors</a>:</p>

<p><a href="http://www.flickr.com/photos/apelad/sets/72157594388426362/" title="HTTP errors - a set on Flickr"><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/12/400-bad-request.jpg" alt="An Illustration of the HTTP Error 400. Shows a hot dog with two ice cream scoops and a cherry on top" title="400 Bad Request" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fhttp-errors%2F&#038;seed_title=HTTP+Errors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional Classnames</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fconditional-classnames%2F&#038;seed_title=Conditional+Classnames</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fconditional-classnames%2F&#038;seed_title=Conditional+Classnames#comments</comments>
		<pubDate>Tue, 21 Oct 2008 17:49:59 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Conditional Stylesheets]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/conditional-classnames/</guid>
		<description><![CDATA[Paul Hammond has a very clever idea about avoiding conditional sytlesheets for Internet Explorer. Basically, if we just use conditional comments for IE to include a classname in the body tag, we can isolate the specific IE rules in the main stylesheet. Pros Avoids any extra HTTP requests for files with IE-only hacks Slicker than [...]]]></description>
			<content:encoded><![CDATA[<p>Paul Hammond has a <a href="http://www.paulhammond.org/2008/10/conditional/" title="paulhammond.org: Conditional classnames">very clever idea</a> about avoiding conditional sytlesheets for Internet Explorer. Basically, if we just use conditional comments for IE to include a classname in the body tag, we can isolate the specific IE rules in the main stylesheet.</p>

<h4 id="pros">Pros</h4>

<ul>
<li>Avoids any extra HTTP requests for files with IE-only hacks</li>
<li>Slicker than including that monstrosity inside the head tag</li>
<li>Allows for easier reading and maintenance of stylesheets. The IE hacks can be placed where they&#8217;re relevant in the stylesheet.</li>
</ul>

<h4 id="cons">Cons</h4>

<ul>
<li>Doesn&#8217;t this defeat the entire idea of separating out hacks from standard CSS?</li>
</ul>

<p>Does anyone else have opinions on the matter?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fconditional-classnames%2F&#038;seed_title=Conditional+Classnames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Current Web Design Resources</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcurrent-web-design-resources%2F&#038;seed_title=Current+Web+Design+Resources</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcurrent-web-design-resources%2F&#038;seed_title=Current+Web+Design+Resources#comments</comments>
		<pubDate>Mon, 20 Oct 2008 18:17:17 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Grids]]></category>
		<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wireframes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/current-web-design-resources/</guid>
		<description><![CDATA[I&#8217;ve been steadily working on a new web design project which will eventually become a custom WordPress template. In the design process I&#8217;ve slowly managed to amass several browser windows full of tabs of related things that I was looking at for inspiration on the site. Safari is getting pretty slow with all of those [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been steadily working on a new web design project which will eventually become a custom WordPress template. In the design process I&#8217;ve slowly managed to amass  several browser windows full of tabs of related things that I was looking at for inspiration on the site.</p>

<p>Safari is getting pretty slow with all of those tabs so I kind of needed to do a complete dump of the tabs. Without further ado, here are the links (for my benefit as much as yours).</p>

<h3>Wireframes</h3>

<ul>
<li><a href="http://aiburn.com/article/building_a_website_wireframe_in_illustrator" title="Building a Website Wireframe in Illustrator | AiBURN">Building a Website Wireframe in Illustrator</a></li>
<li><a href="http://blog.popstalin.com/why-you-should-create-a-wireframe-first/" title="Why You Should Create a Wireframe First - Pop Stalin Design&#8217;s Design Blog">Why You Should Create a Wireframe First</a></li>
<li><a href="http://uxmatters.com/MT/archives/000161.php" title="Wireframing With InDesign and Illustrator :: UXmatters">Wireframing With InDesign and Illustrator</a></li>
<li><a href="http://toddwarfel.com/archives/wireframing-part-ii-illustrator-basics/" title="Wireframing Part II: Illustrator Basics | toddwarfel.com">Wireframing Part II: Illustrator Basics</a></li>
</ul>

<h3>CSS Galleries</h3>

<ul>
<li><a href="http://www.csselite.com/category/showcase" title="CSSelite.com - CSS Gallery   &raquo; Showcase &raquo; Showcasing the best in CSS web design and development.">CSSelite.com</a></li>
<li><a href="http://www.cssdrive.com">CSS Drive</a> (<em>This site appears to be down as of writing this</em>)</li>
</ul>

<h3>WordPress Themes (Inspiration)</h3>

<ul>
<li><a href="http://themeforest.net/" title="Site Templates, WordPress, Joomla &amp; Drupal Themes - ThemeForest">ThemeForest</a></li>
<li><a href="http://wpglamour.com/" title="WP Glamour - Free themes and resources">WP Glamour</a></li>
<li><a href="http://www.smashingmagazine.com/2008/10/20/cellar-heat-a-free-wordpress-theme/" title="Cellar Heat: A Free WordPress Theme | Freebies | Smashing Magazine">Cellar Heat: A Free WordPress Theme</a></li>
</ul>

<h3>Photoshop and Illustrator Tutorials</h3>

<ul>
<li><a href="http://www.blog.spoongraphics.co.uk/tutorials/create-a-vibrant-modern-blog-design-in-adobe-photoshop" title="Create a Vibrant Modern Blog Design in Photoshop | Blog.SpoonGraphics">Create a Vibrant Modern Blog Design in Photoshop</a></li>
<li><a href="http://www.kirupa.com/motiongraphics/grunge_border.htm" title="kirupa.com - Grunge Border">Grunge Border</a></li>
<li><a href="http://vectips.com/tutorials/quickly-add-grunge-to-text/" title="Quickly Add Grunge To Text in Illustrator | Vectips">Quickly Add Grunge To Text</a></li>
<li><a href="http://www.ndesign-studio.com/resources/tutorials/" title="Illustrator Tutorials">Illustrator Tutorials</a></li>
</ul>

<h3>Other Stuff</h3>

<ul>
<li><a href="http://kuler.adobe.com/" title="kuler">Adobe Kuler</a></li>
<li><a href="http://960.gs/" title="960 Grid System">960 Grid System</a></li>
<li><a href="http://www.webdesignerwall.com/tutorials/how-to-css-large-background/" title="How to: CSS Large Background">How to: CSS Large Background</a></li>
<li><a href="http://www.smashingmagazine.com/2008/09/15/wordpress-developers-toolbox/" title="WordPress Developer&rsquo;s Toolbox | Developer's Toolbox | Smashing Magazine">WordPress Developer&#8217;s Toolbox</a></li>
<li><a href="http://www.askapache.com/seo/remove-category-from-wordpress-urls.html" title="Removing Category Base from WordPress URLs">Removing Category Base from WordPress URLs</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcurrent-web-design-resources%2F&#038;seed_title=Current+Web+Design+Resources/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Parallax</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fparallax%2F&#038;seed_title=Parallax</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fparallax%2F&#038;seed_title=Parallax#comments</comments>
		<pubDate>Thu, 04 Sep 2008 22:13:45 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Parallax]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/parallax/</guid>
		<description><![CDATA[Parallax is a very interesting plugin for jQuery that allows you to create a Parallax effect: Parallax turns a selected element into a &#8216;window&#8217;, or viewport, and all its children into absolutely positioned layers that can be seen through the viewport. These layers move in response to the mouse, and, depending on their dimensions (and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://webdev.stephband.info/parallax.html" title="webdev.stephband.info">Parallax</a> is a very interesting plugin for jQuery that allows you to create a Parallax effect:</p>

<blockquote>
  <p>Parallax turns a selected element into a &#8216;window&#8217;, or viewport, and all its children into absolutely positioned layers that can be seen through the viewport. These layers move in response to the mouse, and, depending on their dimensions (and options for layer initialisation), they move by different amounts, in a parallaxy kind of way.</p>
</blockquote>

<p>This is pretty neat stuff. I&#8217;m racking my brain trying to think of gratuitous ways to use this in my next design project. So far I&#8217;m only thinking of running dogs&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fparallax%2F&#038;seed_title=Parallax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perishable Press 3G Blacklist and WP Super Cache</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fperishable-press-3g-blacklist-and-wp-super-cache%2F&#038;seed_title=Perishable+Press+3G+Blacklist+and+WP+Super+Cache</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fperishable-press-3g-blacklist-and-wp-super-cache%2F&#038;seed_title=Perishable+Press+3G+Blacklist+and+WP+Super+Cache#comments</comments>
		<pubDate>Fri, 30 May 2008 17:48:22 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/05/30/perishable-press-3g-blacklist-and-wp-super-cache/</guid>
		<description><![CDATA[I&#8217;ve been following the Building the 3G Blacklist series on Perishable Press for the last week or two and have been implementing each of the rules as they were released. For the most part, there have been no problems. I&#8217;ve seen a huge increase in 403 errors (Forbidden Access) in my logs, which has been [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been following <a href="http://perishablepress.com/press/2008/05/25/series-summary-building-the-3g-blacklist/" title="Series Summary: Building the 3G Blacklist &bull; Perishable Press">the Building the 3G Blacklist series</a> on Perishable Press for the last week or two and have been implementing each of the rules as they were released. For the most part, there have been no problems. I&#8217;ve seen a huge increase in  403 errors (Forbidden Access) in my logs, which has been good. Judging from my <code>access.log</code>, all of the requests have been bogus.</p>

<p>After the final list came out, I implemented any changes to the rules, tested it in my default browser (Safari) and called it good. Several days later however, I tried to pull up this site on my home PC using Firefox and was greeted with a big fat 403. Uh oh. I switched over to IE and got the same results. After some cursory checking, I switched over to using my laptop and Safari and noticed that there was no problem there. Weird. Even weirder because I&#8217;m using Version DSL with router, so as far as my server is concerned, both computers have the same IP.</p>

<p>Most weird: when I actually checked my <code>access.log</code>, I could see my own requests that had been served 403 errors. But instead of the normal 403, the requests actually showed a single request with a 200 status for each time I tried to load a page.</p>

<pre><code>IP - - [30/May/2008:10:20:02 -0700] "GET /about/ HTTP/1.1" 200 363 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7" 
IP - - [30/May/2008:10:20:07 -0700] "GET / HTTP/1.1" 200 364 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7" 
</code></pre>

<p>That&#8217;s a request for my about page, and then my main page. Both recieved a &#8220;Forbiden&#8221; in my browser, but both show a status of OK in my log. Additionally, if the request had actually been successful, a bunch of other files would have been requested as well.</p>

<p>I quickly decided that it was more important to get the site up and running again rather than spend a bunch of time trying to figure out what the problem was and how to fix it. After some selective commenting in my <code>.htaccess</code> file, I discovered that the culprit rule was the following one from the 3G Blacklist:</p>

<pre><code>RedirectMatch 403 \/\/
</code></pre>

<p>I commented out the rule for the time-being so that I could test further at a later point in time.</p>

<p>This particular rule redirects all requests that contain a double slash <em>after</em> the <code>http://</code> section. I thought that this was very odd that this rule should break my site because I can&#8217;t see any reason why a legitimate request would need to utilize a double slash. I also was concerned, because judging from my <code>access.log</code>, this is the rule that does the bulk of the work concerning 403 errors.</p>

<p>I did some more scanning of my <code>.htaccess</code> folder and arrived at the conclusion that the culprit must be within the rules for the <a href="http://ocaoimh.ie/wp-super-cache/" title="WP Super Cache">WP Super Cache</a> plugin I had recently installed. This plugin creates a static html page to serve instead of the normal WordPress PHP pages. Here&#8217;s an explanation from their site:</p>

<blockquote>
  <p>When a visitor who is not logged in, or who has not left a comment, visits they will be served a static HTML page out of the supercache subdirectory within the WordPress cache directory. If you navigate to that directory you can view an exact replica of your permalink structure as well as the HTML files within the directories. To determine if a page has been served out of the Super Cache, view the source and the last line on the page should read <!-- super cache --> or <!-- super cache gz -->.</p>
</blockquote>

<p>Hmm, I&#8217;d say we&#8217;re getting closer now. The section that WP Super Cache adds to my <code>.htaccess</code> file looks like this:</p>

<pre><code># WP SUPER CACHE
&lt;IfModule mod_rewrite.c&gt;
AddDefaultCharset UTF-8
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]
&lt;/IfModule&gt;
# END WPSuperCache
</code></pre>

<p>Now, perhaps a <code>mod_rewrite</code> ninja can see immediately what the problem is, but I was having trouble actually figuring out what was going on. Since I&#8217;m using a shared host, I don&#8217;t have access to an <code>httpd.conf</code> and therefor cannot use the RewriteLog directive to actually see what&#8217;s going on in the rewrites.</p>

<p>After some research I discovered that by adding an <code>R</code> flag to each of WP Super Caches RewriteRule directives, it would force a temporary redirect and therefore allow me to see in the browser what was actually being requested. I changed each RewriteRule to the following:</p>

<pre><code>RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [R,L]
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [R,L]
</code></pre>

<p>Now after running the same tests again, I could see in my browser how things were getting screwed up. I typed the address <code>http://blog.nerdstargamer.com</code> into Firefox and sure enough, got the 403 error. This time though, when I looked at the URL it showed the following redirect:</p>

<p>http://blog.nerdstargamer.com/wp-content/cache/supercache/blog.nerdstargamer.com//index.html</p>

<p>There&#8217;s the culprit right there. The double-slash right before <code>index.html</code>. So, basically, every time WP Super Cache serves a cached page, it&#8217;s serving a URL with a double slash before the file name. I did a quick check by deleting the cache folders of WP Super Cache and confirmed that pages not cached loaded fine while cached pages always got redirected to a 403 error. Bingo.</p>

<p>So, now to fix the problem. Why on earth the <code>.htaccess</code> code for WP Super Cache does this in the first place, I&#8217;m not sure. It seems wrong to me, but I&#8217;ll defer to the experts on this one. Basically what&#8217;s happing is that the variable <code>$1</code> is being replaced with the path name that was requested which includes a trailing slash. The next part of the rewrite starts with a slash, thus the double slash problem.</p>

<p>I was able to fix the conflict in the WP Super Cache code by removing one of the slashes like so:</p>

<pre><code># WP SUPER CACHE
&lt;IfModule mod_rewrite.c&gt;
AddDefaultCharset UTF-8
# not post
RewriteCond %{REQUEST_METHOD} !=POST
# not a search
RewriteCond %{QUERY_STRING} !.*s=.*
# not an attachment page
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1index.html.gz [L]

RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{QUERY_STRING} !.*attachment_id=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1index.html [L]
&lt;/IfModule&gt;
# END WPSuperCache
</code></pre>

<p>This certainly looks funny but at least it works. I&#8217;m sure there is a more elegant way to do this, like say, rewriting the original request to remove the trailing slash and then applying the cache rules. Perhaps this is really a problem with the way WordPress is doing its permalinks (I&#8217;m on 2.5.1 by the way). Who knows? Ninjas chime in.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fperishable-press-3g-blacklist-and-wp-super-cache%2F&#038;seed_title=Perishable+Press+3G+Blacklist+and+WP+Super+Cache/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Getting Geeky With YSlow</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgetting-geeky-with-yslow%2F&#038;seed_title=Getting+Geeky+With+YSlow</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgetting-geeky-with-yslow%2F&#038;seed_title=Getting+Geeky+With+YSlow#comments</comments>
		<pubDate>Thu, 29 May 2008 21:17:54 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Google API]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[mod_deflate]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[YSlow]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/05/29/getting-geeky-with-yslow/</guid>
		<description><![CDATA[I spent a good amount of time over the last couple of days attempting to make my site a little bit faster. I&#8217;ve been pretty negligent about it up until now, because I know that much of the slowness of my site can be directly attributed to my web hosting company. 1 Even so, I [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a good amount of time over the last couple of days attempting to make my site a little bit faster. I&#8217;ve been pretty negligent about it up until now, because I know that much of the slowness of my site can be directly attributed to my web hosting company. <sup id="fnr-yslow1"><a href="#fn-yslow1">1</a></sup> Even so, I decided to spend some time doing what I could to speed things up.</p>

<p>The first thing that I did was run a test in <a href="http://developer.yahoo.com/yslow/" title="YSlow for Firebug">YSlow</a> to see how my site was doing. Yikes! I got an F right off the bat. After some further review and research, I realized that this wasn&#8217;t necessarily something that should have me freaking out. If you&#8217;re not entirely familiar with YSlow and what it does, Jeff Atwood&#8217;s article, &#8220;<a href="http://www.codinghorror.com/blog/archives/000932.html" title="Coding Horror: YSlow: Yahoo's Problems Are Not Your Problems">YSlow: Yahoo&#8217;s Problems Are Not Your Problems</a>&#8221; on <a href="http://www.codinghorror.com/" title="Coding Horror">Coding Horror</a> is a must-read. Basically, YSlow offers a lot of good advice that should be taken, but with a grain of salt.</p>

<p>With that said, here are the steps that I&#8217;ve taken to speed up my site.</p>

<h3 id="make_fewer_http_requests">Make Fewer HTTP Requests</h3>

<p>The first time I ran YSlow, I discovered that all of my pages were making a ridiculous number of HTTP Requests for JavaScript and CSS files. I was requesting four CSS files: screen, print, IE hacks, and one for <a href="http://www.huddletogether.com/projects/lightbox2/" title="Lightbox 2">Lightbox 2</a>. Unfortunately, the IE hacks stylesheet is still necessary. Obviously the screen an print ones are as well. After taking a look at the Lightbox 2 CSS file, I decided that it was small enough to simply tack on to the bottom on my existing screen stylesheet. That&#8217;s one down.</p>

<p>There were also quite a few JavaScript files being requested, including all of the files for <a href="http://www.google.com/analytics/" title="Google Analytics">Google Analytics</a>, <a href="http://www.haveamint.com/" title="Mint: A Fresh Look at your Site">Mint</a>, <a href="http://wordpress.org/extend/plugins/stats/" title="WordPress &#8250; WordPress.com Stats &laquo; WordPress Plugins">WP Stats</a> and Lightbox. What can I say? I like my tracking software.</p>

<p>The first thing that I decided to do was to reduce the number of tracking utilities I was using to two. I love Mint and Google Analytics seems to be necessary, so I had to get rid of WP Stats. That wasn&#8217;t such a big deal for me. That&#8217;s another one down.</p>

<p>The next step was to take a long hard look at Lightbox 2. I originally installed this for my <a href="http://blog.nerdstargamer.com/gallery" title="Gallery | NerdStarGamer">Gallery</a> page, and then decided to include it on all my pages on the off chance that I might want to use it in a few posts. While it works and looks great, I&#8217;ve been decidedly unhappy about how much baggage Lightbox comes with. There are five JavaScript files that need to be included, just to have that neat little image trick. Even worse, the included Prototype JavaScript library weighs in at a staggering 124KB. What a waste.</p>

<p>I made a mental note to do some research to find a more lightweight solution for my image gallery. <a href="http://www.smashingmagazine.com/" title="Smashing Magazine">Smashing Magazine</a> has a <a href="http://www.smashingmagazine.com/2007/05/18/30-best-solutions-for-image-galleries-slideshows-lightboxes/" title="30 Scripts For Galleries, Slideshows and Lightboxes | Developer's Toolbox | Smashing Magazine">good list of them</a>, which I will inspect at a later point in time. For the time-being, I compressed the Javascript files and was able to bring the total size of the Javascript files down to about 125KB from 196KB. I also decided to only include the scripts on my actual Gallery page. It seems like too much of a waste to require all those files when I rarely use them.</p>

<h3 id="put_css_at_the_top_and_js_at_the_bottom">Put CSS At the Top and JS at the Bottom</h3>

<p>When I first set up Lightbox, I wanted to avoid using a WordPress plugin for it, so I cooked up <a href="http://blog.nerdstargamer.com/2008/04/04/gallery-of-doodles-in-lightbox-2/" title="Gallery of Doodles in Lightbox 2 | NerdStarGamer">my own method of including it</a>. Most of the work was simply trying to find a way around hard-coding my template directory in it and also using a function to keep my <code>header.php</code> file clean and easy to read.</p>

<p>The first problem with my original method was that all of those JavaScript files were at the top of the page, meaning that almost 200KB of JavaScript had to be loaded before any of the content on my page started to load. That&#8217;s no good! The simplest thing to do was to move my function down to the bottom of the page, right before the scripts for Google Analytics and Mint. The only other problem was that the function included the CSS file as well. Since I had already decided to merge the Lightbox CSS with my main CSS, all I actually had to do was remove the call to load the CSS.</p>

<h3 id="use_google's_apis">Use Google&#8217;s APIs</h3>

<p>Unless you&#8217;ve been living under a rock (or just don&#8217;t care), you&#8217;ve probably heard that Google just released their <a href="http://code.google.com/apis/ajaxlibs/" title="AJAX Libraries API - Google Code">AJAX Libraries API</a>. This was pretty much perfect timing for me since I was already looking at how Lightbox used the <a href="http://www.prototypejs.org/" title="Prototype JavaScript framework: Easy Ajax and DOM manipulation for dynamic web applications">Prototype</a> Framework and <a href="http://script.aculo.us/" title="script.aculo.us - web 2.0 javascript">Scriptaculous</a> Effects Library. It makes a whole lot more sense to use a version hosted by Google than it does to require clients to download the same exact version of a standard library from my slow web host. Ajaxian has a good rundown of the <a href="http://ajaxian.com/archives/announcing-ajax-libraries-api-speed-up-your-ajax-apps-with-googles-infrastructure" title="Ajaxian &raquo; Announcing AJAX Libraries API: Speed up your Ajax apps with Google&#8217;s infrastructure">features of this new API and why you would want to use it</a>.</p>

<p>After doing a relatively quick setup, I was able to call the Prototype framework from the Google API. It came in from Google at only 29KB; that&#8217;s the same file that I was just complaining was 124KB. That&#8217;s a no-brainer. Scriptaculous was a bit more of a problem though, since it takes a modular approach. Lightbox 2 actually only uses two of the eight possible modules. As far as I can tell, there is no way to use the standard type of of script tag to only include the libraries you want like this:</p>

<pre><code>&lt;script type="text/javascript" src="http://blog.nerdstargamer.com/wp-content/themes/positiveGrey-v2.0/js/scriptaculous.js?load=effects,builder"&gt;&lt;/script&gt;
</code></pre>

<p><a href="http://ajaxian.com/archives/announcing-ajax-libraries-api-speed-up-your-ajax-apps-with-googles-infrastructure#comment-264086" title="Ajaxian &raquo; Announcing AJAX Libraries API: Speed up your Ajax apps with Google&#8217;s infrastructure">One of the comments on Ajaxian by jdalton</a>, addresses this:</p>

<blockquote>
  <p>Another issue google will need to work out is that MooTools, Scriptaculous, and Dojo are modular (meaning you donâ€™t have to load the kitchen sink and can just load the parts you want). This can effect the file size footprint as well. This may be beyond the scope of a CDN though.</p>
</blockquote>

<p>Because I couldn&#8217;t find a way to only include the modules I needed, I decided to continue serving them locally instead. So, my function to include Lightbox now looks like this:</p>

<pre><code>function AKM_include_lightbox() {
    $templateDir = get_bloginfo('template_directory');

    $output = &lt;&lt;&lt;EOT
&lt;script src='http://www.google.com/jsapi'&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
    var tplDir = "${templateDir}/images/lightbox/";
    google.load('prototype', '1.6.0.2');
&lt;/script&gt;
&lt;script type="text/javascript" src="${templateDir}/js/scriptaculous.js?load=effects,builder"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="${templateDir}/js/lightbox.js"&gt;&lt;/script&gt;
EOT;

echo $output;
}
</code></pre>

<h3 id="reorganize_template_directory">Reorganize Template Directory</h3>

<p>Although this doesn&#8217;t actually have anything to do with the speed of my website, it seemed appropriate to take this opportunity to reorganize my template directory a little bit. I was striving to create a more traditional web setup within my WordPress template that included all CSS in a CSS folder, JavaScript in a JS folder, and images in an image folder.</p>

<p>This first issue to address was the WordPress default <code>style.css</code> file. This file is necessary for WordPress template to function properly, as explained in the <a href="http://codex.wordpress.org/Theme_Development#Theme_Style_Sheet" title="Theme Development &laquo; WordPress Codex">WordPress Theme Development Codex page</a>. What I decided to do was to remove all of the actual styles from this file and simply leave the WordPress information:</p>

<pre><code>/*
Theme Name:Positive Grey
Theme URI:http://nerdstargamer.com
Description:A simple theme using a fluid 2 column layout with green and grey
Version:2.0
Author:Alissa Miller
Author URI:http://nerdstargamer.com
*/

/* See css/screen-x.x.css for styles */
</code></pre>

<p>I then moved all of the styles to a new file called <code>screen-x.x.css</code> in the CSS folder. This allows me to have all stylesheets (with the exception of <code>style.css</code>) in the CSS folder. It also allows me to use versioning in the filename, which as we will see, will be important after I&#8217;ve implemented better caching and expires headers.</p>

<p>I previously put all of the Lightbox files in their own folder, to keep things neat. I&#8217;ve now decided to roll those files into the normal directory structure instead of keeping them separate. The CSS file got merged with <code>screen.css</code> and all of the Lightbox JavaScript files got moved into the js folder. Lightbox also includes several images, which I decided to put in <code>images/lightbox/</code> so as not to confuse them with my own template images.</p>

<h3 id="gzip_components">Gzip Components, Improve Caching</h3>

<p>One of the <a href="http://developer.yahoo.com/performance/rules.html#gzip" title="Best Practices for Speeding Up Your Web Site">rules for YSlow includes Gziping components</a>. Some of my scripts are for Mint and JavaScript, which I can&#8217;t really control. The others however, along with my CSS are fair game. I had a little bit of trouble figuring out how to do this since I did not want to use any of the more common php methods to compress my pages on the fly and was looking at just using either mod_gzip or mod_deflate. The YSlow page gives the following information:</p>

<blockquote>
  <p>Gzipping generally reduces the response size by about 70%. Approximately 90% of today&#8217;s Internet traffic travels through browsers that claim to support gzip. If you use Apache, the module configuring gzip depends on your version: Apache 1.3 uses mod_gzip while Apache 2.x uses mod_deflate.</p>
</blockquote>

<p>After some research, I figured out that my website is hosted on Apache 2 (not earlier). I included this block in my root <code>.htaccess</code> file:</p>

<pre><code># GZIP CSS AND JS
&lt;IfModule mod_deflate.c&gt;
 &lt;FilesMatch "\.(js|css)$"&gt;
  SetOutputFilter DEFLATE
 &lt;/FilesMatch&gt;
&lt;/IfModule&gt;
</code></pre>

<p>I also decided to make the move to using <a href="http://ocaoimh.ie/wp-super-cache/" title="WP Super Cache">WP Super Cache</a> instead of <a href="http://mnm.uib.es/gallir/wp-cache-2/" title="Antiguo y abandonado blog de Ricardo Galli :-( &raquo; WP-Cache 2.0">WP Cache</a>. WP Super Cache is much like WP Cache but does offer some performance benefits. Once I got WP Super Cache configured and running, it seemed to have an immediate effect on the speed of my blog. Of course, that could have just been wishful thinking on my part.</p>

<h3 id="add_an_expires_header">Add an Expires Header</h3>

<p>One of the last things I did was add an expires header in my root <code>.htaccess</code> file. This tells the client browsers not to look for a new version at all if the one in their cache hasn&#8217;t expired yet.</p>

<p>Now, I obviously don&#8217;t want to do this to the dynamic WordPress files (comments and posts would never update!), but that&#8217;s okay because WP Super Cache is taking care of those files already. What I do want to do is add the expires header to all of my images, JavaScript and CSS files. None of these will really change except for the CSS files. Fortunately, when I reorganized my template files, I gained the ability to append version numbers to my CSS files. So now I can go ahead and add that expires header to my CSS files, and then simply change the file name when I need to make changes in my CSS. The new file will download like normal, and it&#8217;s good practice to get some sort of versioning underway.</p>

<p>Here is the code that I put in my <code>.htaccess</code> file:</p>

<pre><code>### ADD FAR OUT EXPIRES HEADDER TO STATIC CONTENT ###
&lt;ifmodule mod_expires.c&gt;
  &lt;filesmatch "\.(jpg|gif|png|css|js)$"&gt;
       ExpiresActive on
       ExpiresDefault "access plus 1 month"
   &lt;/filesmatch&gt;
&lt;/ifmodule&gt;
</code></pre>

<p>After some thought I decided that one month was an appropriate length for my purposes. This depends entirely on what type of content it is, and how often you are going to change it.</p>

<h3 id="rework_the_gallery_page_for_better_performance">Rework the Gallery Page for Better Performance</h3>

<p>After doing all of the previously mentioned fixes, I had improved the page load time quite a bit for most of my site. The only remaining bottleneck seemed to be my <a href="http://blog.nerdstargamer.com/gallery" title="Gallery | NerdStarGamer">Gallery</a> page. That wasn&#8217;t particularly surprising considering that the page includes 25 thumbnail images. The total size of all of the images, at full size, weighs in at a hefty 2MB. This page was also still using the Lightbox scripts.</p>

<p>One of the things I noticed while using YSlow was that some of my thumbnail images seemed to be unnecessarily large. Some of them were as big as 40KB for a 150&#215;150 pixel image! Upon further inspection I decided that <em>all</em> of the thumbnails were too large. I had used WordPress&#8217; feature to automatically create thumbnails of images to set this up. I&#8217;m not sure exactly how WordPress does this, but after taking a look at the file sizes I&#8217;m sure that it sucks. I recreated all of the thumbnails in Photoshop and the biggest one is now only 17.6KB.</p>

<p>I had also originally set up the gallery page in WordPress&#8217; admin screen (using the file browser and things like that). Once I was no longer using the dynamically generated thumbnails, it didn&#8217;t make sense to lay out the page in WordPress&#8217; page section. Instead I created a page template called gallery.php, which includes all of the images and code for the page.</p>

<p>I also copied all of the full size and thumbnail images into my template image folder. This way the links to the images are no longer being stored in my database.</p>

<h3 id="conclusion">Conclusion</h3>

<p>After all of these changes my website does seem to be a little bit faster. These types of exercises are good practice for any web designer/developer. Having a slow web host is no excuse for not doing what you can on your end to make the site faster.</p>

<p>As always, any tips or improvements from more experienced developers in this area are greatly appreciated.</p>

<ol class="footnote">
 <li id="fn-yslow1">You get what you pay for, right?<a href="#fnr-yslow1" title="back to article">&#x21A9;</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgetting-geeky-with-yslow%2F&#038;seed_title=Getting+Geeky+With+YSlow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coupon Ninja</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcoupon-ninja%2F&#038;seed_title=Coupon+Ninja</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcoupon-ninja%2F&#038;seed_title=Coupon+Ninja#comments</comments>
		<pubDate>Thu, 15 May 2008 20:35:17 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Art & Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Inspiration]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/05/15/coupon-ninja/</guid>
		<description><![CDATA[I just discovered the CouponNinja website and completely fell in love with the header images: It makes me snicker every time I look at it. Via Design Shack.]]></description>
			<content:encoded><![CDATA[<p>I just discovered the <a href="http://www.couponninja.com/" title="Coupon Codes, Promo Codes and Discounts from Thousands of your favorite retailers! CouponNinja.com">CouponNinja</a> website and completely fell in love with the header images:</p>

<p><a href="http://www.couponninja.com/" title="Coupon Codes, Promo Codes and Discounts from Thousands of your favorite retailers! CouponNinja.com"><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/05/coupon-ninja-screenshot.jpg" alt="Coupon Ninja Screenshot" title="Screenshot of CouponNinja.com" /></a></p>

<p>It makes me snicker every time I look at it.</p>

<p class="via">Via <a href="http://www.designshack.co.uk/design/couponninja.html" title="Design Shack">Design Shack</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fcoupon-ninja%2F&#038;seed_title=Coupon+Ninja/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gallery of Doodles in Lightbox 2</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgallery-of-doodles-in-lightbox-2%2F&#038;seed_title=Gallery+of+Doodles+in+Lightbox+2</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgallery-of-doodles-in-lightbox-2%2F&#038;seed_title=Gallery+of+Doodles+in+Lightbox+2#comments</comments>
		<pubDate>Fri, 04 Apr 2008 23:29:18 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Art & Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Doodles]]></category>
		<category><![CDATA[Drawing]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Lightbox]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/04/04/gallery-of-doodles-in-lightbox-2/</guid>
		<description><![CDATA[NerdStarGamer now has a new Gallery page that features my doodles: All of the images have been set up as a list of thumbnails which use Lightbox 2 to display large versions. I spent a little extra time to set up Lightbox on this blog without using a plugin. I&#8217;ve been on a steady crusade [...]]]></description>
			<content:encoded><![CDATA[<p>NerdStarGamer now has a new <a href="http://blog.nerdstargamer.com/gallery/" title="Gallery | NerdStarGamer">Gallery page</a> that features my doodles:</p>

<p><a href="http://blog.nerdstargamer.com/gallery/" title="Gallery | NerdStarGamer"><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/04/screenshot-of-doodle-gallery.png" alt="Screenshot of Doodle Gallery" /></a></p>

<p>All of the images have been set up as a list of thumbnails which use <a href="http://www.huddletogether.com/projects/lightbox2/" title="Lightbox 2">Lightbox 2</a> to display large versions.</p>

<p>I spent a little extra time to set up Lightbox on this blog without using a plugin. I&#8217;ve been on a steady crusade to get rid of most of my plugins for quite some time. Setting up Lightbox in <a href="http://wordpress.org/" title="WordPress &#8250; Blog Tool and Weblog Platform">WordPress</a> was fairly straightforward.</p>

<p>After <a href="http://www.huddletogether.com/projects/lightbox2/#download" title="Lightbox 2">downloading the Lightbox 2 files</a>, I created a new directory in my template directory called <code>lightbox</code> and dropped all of the lightbox files into it. I then put a function call into the <code>header.php</code> file right before the line that reads <code>&lt;?php wp_head(); ?&gt;</code>.</p>

<pre><code>&lt;head profile="http://gmpg.org/xfn/11"&gt;
    ...some other tags...

    &lt;?php AKM_include_lightbox(); ?&gt;
    &lt;?php wp_head(); ?&gt;
&lt;/head&gt;
</code></pre>

<p>The <code>AKM_includ_lightbox();</code> function is just a short little function that I wrote and put in the <code>functions.php</code> file of my template. Here is the function:</p>

<pre><code>function AKM_include_lightbox() {
    $lbDir = get_bloginfo('template_directory') . "/lightbox";

    // Echo out some file path variables for images used lightbox JS
    $output = '&lt;script type="text/javascript"&gt;' . "\n";
    $output .= "\t" . 'var tplDir = "' . $lbDir . '";' . "\n";
    $output .= '&lt;/script&gt;' . "\n";

    // Echo links to js and css for lightbox
    $output .= '&lt;script type="text/javascript" src="' . $lbDir . '/js/prototype.js"&gt;&lt;/script&gt;' . "\n";
    $output .= '&lt;script type="text/javascript" src="' . $lbDir . '/js/scriptaculous.js?load=effects,builder"&gt;&lt;/script&gt;' . "\n";
    $output .= '&lt;script type="text/javascript" src="' . $lbDir . '/js/lightbox.js"&gt;&lt;/script&gt;' . "\n";
    $output .= '&lt;link rel="stylesheet" href="' . $lbDir . '/css/lightbox.css" type="text/css" media="screen" /&gt;' . "\n";

    echo $output;   
}
</code></pre>

<p>This first line of the function sets up a variable that includes the path to the Lightbox files inside my template directory. This is necessary because the <code>lightbox.js</code> file needs to reference the images included in the Lightbox folder. Without this part, the previous, next and close images will not show up because the link will be going to your WordPress uploads directory.</p>

<p>That second chunk of text in the function echos out a small bit of JavaScript into your header that simply declares the variable <code>tplDir</code> and sets it to the path to your LightBox installation. The last chunk of text inserts all of the necessary Lightbox JavaScript and CSS links into your header. I could have written all of this directly into the <code>header.php</code> file, of course, however I felt that my file was getting a bit messy and that this approach was much more clear.</p>

<p>We also need to make a small edit to the <code>lightbox.js</code> file which is going to use that <code>tplDir</code> variable we set. Find the line in the beginning of the file like this (around line 49):</p>

<pre><code>fileLoadingImage:        'images/loading.gif',     
fileBottomNavCloseImage: 'images/closelabel.gif',
</code></pre>

<p>Simply change those two lines to this:</p>

<pre><code>fileLoadingImage:        tplDir+'/images/loading.gif',     
fileBottomNavCloseImage: tplDir+'/images/closelabel.gif',
</code></pre>

<p>That completes the Lightbox 2 setup in WordPress without using a plugin. Now all you have to do is add the <code>rel="lightbox"</code> tag to any link you want to use Lightbox. For example, if you have a thumbnail image that links to a larger image like this:</p>

<pre><code>&lt;a href="images/full-size-image.jpg"&gt;&lt;img src="images/thumbnail" /&gt;&lt;/a&gt;
</code></pre>

<p>To add the Lightbox effect, just add in the attribute like this:</p>

<pre><code>&lt;a rel="lightbox" href="images/full-size-image.jpg"&gt;&lt;img src="images/thumbnail" /&gt;&lt;/a&gt;
</code></pre>

<p>Be sure to check out the <a href="http://www.huddletogether.com/projects/lightbox2/#how" title="Lightbox 2">Lightbox 2 page for more information</a> on what you can do with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fgallery-of-doodles-in-lightbox-2%2F&#038;seed_title=Gallery+of+Doodles+in+Lightbox+2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Superest</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-superest%2F&#038;seed_title=The+Superest</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-superest%2F&#038;seed_title=The+Superest#comments</comments>
		<pubDate>Fri, 04 Apr 2008 22:51:48 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Art & Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/04/04/the-superest/</guid>
		<description><![CDATA[The Superest is a very funny running blog of illustrations of superest heros. Each superest hero plays off of the last in a very clever way: The Superest is a continually running game of My Team, Your Team. The rules are simple: Player 1 draws a character with a power. Player 2 then draws a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thesuperest.com/" title="The Superest: Who is the superest hero of them all?">The Superest</a> is a very funny running blog of illustrations of superest heros. Each superest hero plays off of the last in a very clever way:</p>

<blockquote>
  <p>The Superest is a continually running game of My Team, Your Team. The rules are simple: Player 1 draws a character with a power. Player 2 then draws a character whose power cancels the power of that previous character. Repeat.</p>
</blockquote>

<p>The design of the site itself is is quite elegant and simple. Most of the display type on the site is done in a very nice typeface:</p>

<p><a href="http://www.thesuperest.com/" title="The Superest: Who is the superest hero of them all?"><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/04/the-superest.png" alt="The Superest" title="The Superest Logo" /></a></p>

<p>Start from the beginning get the the feeling for the way the superest heros flow one after another.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-superest%2F&#038;seed_title=The+Superest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typography for Seed Conference Website</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ftypography-for-seed-conference-website%2F&#038;seed_title=Typography+for+Seed+Conference+Website</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ftypography-for-seed-conference-website%2F&#038;seed_title=Typography+for+Seed+Conference+Website#comments</comments>
		<pubDate>Tue, 01 Apr 2008 18:26:52 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/04/01/typography-for-seed-conference-website/</guid>
		<description><![CDATA[The new website for the 3rd Seed Conference in Chicago is sporting some excellent typography. The type really looks elegant and nice. This is all done with CSS styles and no images. It&#8217;s a great example of what can be done with web typography. Via Daring Firebal.]]></description>
			<content:encoded><![CDATA[<p>The new website for the 3rd <a href="http://seedconference.com/" title="Seed Conference | Chicago | 6 June 2008">Seed Conference</a> in Chicago is sporting some excellent typography.</p>

<p><a href="http://seedconference.com/" title="Seed Conference | Chicago | 6 June 2008"><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/04/seed-conference-website-screenshot.png" alt="Seed Conference Website Screenshot" /></a></p>

<p>The type really looks elegant and nice. This is all done with CSS styles and no images. It&#8217;s a great example of what can be done with web typography.</p>

<p class="via">Via <a href="http://daringfireball.net" title="Daring Firebal">Daring Firebal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ftypography-for-seed-conference-website%2F&#038;seed_title=Typography+for+Seed+Conference+Website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi Columns in websites</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fmulti-columns-in-websites%2F&#038;seed_title=Multi+Columns+in+websites</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fmulti-columns-in-websites%2F&#038;seed_title=Multi+Columns+in+websites#comments</comments>
		<pubDate>Wed, 19 Mar 2008 08:13:19 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MultiColumn]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/03/19/multi-columns-in-websites/</guid>
		<description><![CDATA[For the past couple of months I&#8217;ve been working on creating a new website that uses WordPress as a CMS for the organization Girls Get Connected (That&#8217;s the old site, because the new one isn&#8217;t quite done yet). The project has been a great one to work on because I&#8217;ve gotten to do everything including [...]]]></description>
			<content:encoded><![CDATA[<p>For the past couple of months I&#8217;ve been working on creating a new website that uses <a href="http://wordpress.org/" title="WordPress &#8250; Blog Tool and Weblog Platform">WordPress</a> as a <a href="http://en.wikipedia.org/wiki/Content_management_system" title="Content management system - Wikipedia, the free encyclopedia">CMS</a> for the organization <a href="http://www.girlsgetconnected.org/" title="Welcome to the Girls Get Connected web site!">Girls Get Connected</a> (That&#8217;s the old site, because the new one isn&#8217;t quite done yet). The project has been a great one to work on because I&#8217;ve gotten to do everything including the design of the site and development of the WordPress back-end and templates.</p>

<p>Early on in the project, after the design mockup had been approved, I knew there were going to be some difficulties implementing it. One of the things that I knew would be a problem was the fact that I had designed a rather prominent section on the home page of the site which called for an article to be split into multiple columns. This being a content managed site, I also knew it wasn&#8217;t really going to be an option to ask the end users to break up their articles into two even sections so that it would make nice and pretty columns. Also, CSS3 really wasn&#8217;t an option, since this site would have to work on all current browsers. Something else would have to be done.</p>

<p>The solution I ended up using was a very elegant JavaScript program written by <a href="http://randysimons.com/pagina_1_NL.xhtml" title="Home">Randy Simons</a>. The script is called <a href="http://randysimons.com/pagina_129_NL.xhtml" title="Automatic Multi Column text in HTML">Multi-Column Text</a> and is pretty easy to implement. It automatically splits the text into multiple columns (you chose how many), and includes support for liquid layouts. This means that the content and columns aren&#8217;t static; they will automatically adjust as the page is resized. Check out the <a href="http://randysimons.com/overige/multicolumn/" title="Multi Columns in HTML">demonstration page</a> to see what I mean. This script is also works on enough old browsers to actually be usable.</p>

<p>What impressed me most about the script was that it requires very little extra markup. Assuming all of your markup is in some sort of standards compliant state, all that is required is one (or possibly two) extra <code>div</code> tags. Say you wanted to make the following code segment use the multicolumn script:</p>

<pre><code>&lt;h2&gt;Maecenas&lt;/h2&gt;
&lt;p&gt;Pellentesque mi. In lacinia iaculis ante.&lt;/p&gt;
&lt;h1&gt;Ut dapibus&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Nunc non dui.&lt;/em&gt; Maecenas quis lacus sed dui commodo elementum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pellentesque rhoncus sollicitudin libero. Phasellus nunc risus, tincidunt vel, bibendum eu, molestie ac, tortor. Etiam in felis.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pellentesque id erat. Mauris condimentum pharetra nibh. Fusce sollicitudin auctor tortor. Aliquam placerat,&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
</code></pre>

<p>All that needs to be added are two <code>div</code> tags to wrap the content. The first <code>div</code> must also include an id or class name for the JavaScript to hook to. You can use whatever class or id name you want when you implement it. I chose to use <code>id=multicolumn</code>. The finished markup would look like this:</p>

<pre><code>&lt;div class="multicolumn"&gt;
  &lt;div&gt;
    &lt;h2&gt;Maecenas&lt;/h2&gt;
    &lt;p&gt;Pellentesque mi. In lacinia iaculis ante.&lt;/p&gt;
    &lt;h1&gt;Ut dapibus&lt;/h1&gt;
    &lt;p&gt;&lt;em&gt;Nunc non dui.&lt;/em&gt; Maecenas quis lacus sed dui commodo elementum.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Pellentesque rhoncus sollicitudin libero. Phasellus nunc risus, tincidunt vel, bibendum eu, molestie ac, tortor. Etiam in felis.&lt;/strong&gt;&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;&lt;em&gt;Pellentesque id erat. Mauris condimentum pharetra nibh. Fusce sollicitudin auctor tortor. Aliquam placerat,&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>I like the way that looks: clean and simple. You can even use this in in a WordPress template with PHP tags included and everything still works. This is what is actually coded into one of my WordPress template files:</p>

<pre><code>&lt;div class="multicolumn"&gt;
  &lt;div&gt;
    &lt;?php ggc_the_long_excerpt(); ?&gt;
    &lt;p class="readmore"&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Continue Reading &lt;?php the_title_attribute(); ?&gt;"&gt;Read More &amp;raquo;&lt;/a&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>My favorite part is what happens when Javascript is not available. In my case, the page still works fine and no content is lost. Sure, there are some rather long line lengths, but everything still works.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fmulti-columns-in-websites%2F&#038;seed_title=Multi+Columns+in+websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript getElementsByClassName</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fjavascript-getelementsbyclassname%2F&#038;seed_title=JavaScript+getElementsByClassName</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fjavascript-getelementsbyclassname%2F&#038;seed_title=JavaScript+getElementsByClassName#comments</comments>
		<pubDate>Thu, 06 Mar 2008 02:37:55 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM Scripting]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/03/05/javascript-getelementsbyclassname/</guid>
		<description><![CDATA[Today I found myself writing a little bit of JavaScript to isolate an element on a page. The element in question looked something like this: &#60;div class="mulitcolumn"&#62; &#60;p&#62;Some text...&#60;/p&#62; &#60;p&#62;Some more text&#60;/p&#62; &#60;div&#62; I wanted to get the div element by searching for the class name multicolulmn. Without thinking, I began writing the code to [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found myself writing a little bit of JavaScript to isolate an element on a page. The element in question looked something like this:</p>

<pre><code>&lt;div class="mulitcolumn"&gt;
    &lt;p&gt;Some text...&lt;/p&gt;
    &lt;p&gt;Some more text&lt;/p&gt;
&lt;div&gt;
</code></pre>

<p>I wanted to get the <code>div</code> element by searching for the class name <code>multicolulmn</code>. Without thinking, I began writing the code to grab the <code>div</code> using the <code>getElementByClassName</code> function. Then I remembered that <code>getElementByClassName</code> isn&#8217;t actually a built-in function. Oh well, <a href="http://www.google.com/" title="Google">Google</a> to the rescue.</p>

<p>I was able to quickly find Robert Nyman&#8217;s elegant <code>getElementsByClassName</code> function in The <a href="http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/" title="The Ultimate getElementsByClassName - Robert&#8217;s talk - Web development and Internet trends">Ultimate GetElementsByClassName</a>.</p>

<p>Using this function, you can get elements like so (examples pulled from Nyman&#8217;s site):</p>

<pre><code>// To get all a elements in the document with a â€œinfo-linksâ€ class.
getElementsByClassName(document, "a", "info-links");

// To get all div elements within the element named â€œcontainerâ€, with a â€œcolâ€ and a â€œleftâ€ class.
getElementsByClassName(document.getElementById("container"), "div", ["col", "left"]);
</code></pre>

<p>I love it when I don&#8217;t have to write my own JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fjavascript-getelementsbyclassname%2F&#038;seed_title=JavaScript+getElementsByClassName/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding a Good CMS Solution</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ffinding-a-good-cms-solution%2F&#038;seed_title=Finding+a+Good+CMS+Solution</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ffinding-a-good-cms-solution%2F&#038;seed_title=Finding+a+Good+CMS+Solution#comments</comments>
		<pubDate>Fri, 08 Feb 2008 20:49:00 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[MODx]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/02/08/finding-a-good-cms-solution/</guid>
		<description><![CDATA[There is a pretty good discussion going on over at 456 Berea Street about &#8220;Looking for open source CMS and portal software options&#8220;. I&#8217;ve been thinking a lot about this for the last couple of months. I&#8217;ve worked extensively with WordPress (for this blog and a few others) and I really feel comfortable with it. [...]]]></description>
			<content:encoded><![CDATA[<p>There is a pretty good discussion going on over at <a href="http://www.456bereastreet.com/lab/" title="The CSS and XHTML Lab | 456 Berea Street">456 Berea Street</a> about &#8220;<a href="http://www.456bereastreet.com/archive/200802/looking_for_open_source_cms_and_portal_software_options/" title="Looking for open source CMS and portal software options | 456 Berea Street">Looking for open source CMS and portal software options</a>&#8220;.</p>

<p>I&#8217;ve been thinking a lot about this for the last couple of months. I&#8217;ve worked extensively with <a href="http://wordpress.org/" title="WordPress &#8250; Blog Tool and Weblog Platform">WordPress</a> (for this blog and a few others) and I really feel comfortable with it. I am confident that I can work with it and bend it to do most things I want with a little effort.</p>

<p>Currently I&#8217;m using WordPress for a contract job to create a smallish website managed by a CMS. The client wanted to use WordPress, and I am reasonably confident that it will achieve their goals. That said, I think they&#8217;re getting uncomfortably close to WordPress&#8217;s limits. There&#8217;s always a point when you are extending software that you have to stop and consider, &#8220;Am I really using the right tool for this job?&#8221;</p>

<p>I&#8217;d really like to branch out and learn some other content management systems that are more powerful than WordPress and also more geared towards CMS rather than blogging out of the box. I tried using <a href="http://drupal.org/" title="drupal.org | Community plumbing">Drupal</a> a few months ago, and like many of the peopling commenting on 456 Berea Street, I found the admin interface to be absolutly overwhelming. It&#8217;s definitely designed with the mentality that more is better. I had a very clear vision in mind for what I wanted to accomplish with my Drupal site, but I ended up stumbling on some key things that felt like they should be very easy. Primarily dealing with attachment links.</p>

<p>That said, I was very impressed in general with Drupal. It seemed liked the sky was the limit as far what could be accomplished with it. The user roles were also a welcome departure from more restrictive systems like WordPress.</p>

<p>In the end, I was left with the impression that given a lot of time and energy (to learn Drupal) I could make some very cool sites. I wonder, are there other solutions that are better?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Ffinding-a-good-cms-solution%2F&#038;seed_title=Finding+a+Good+CMS+Solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Funkiest Ampersands You Have Ever Seen</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-funkiest-ampersands-you-have-ever-seen%2F&#038;seed_title=The+Funkiest+Ampersands+You+Have+Ever+Seen</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-funkiest-ampersands-you-have-ever-seen%2F&#038;seed_title=The+Funkiest+Ampersands+You+Have+Ever+Seen#comments</comments>
		<pubDate>Fri, 01 Feb 2008 19:51:16 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Art & Design]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2008/02/01/the-funkiest-ampersands-you-have-ever-seen/</guid>
		<description><![CDATA[Blog.SpoonGraphics has a nice collection of funky ampersands. I think my favorite is ElektrixBold.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blog.spoongraphics.co.uk/" title="Blog.SpoonGraphics">Blog.SpoonGraphics</a> has a nice <a href="http://www.blog.spoongraphics.co.uk/articles/the-funkiest-ampersands-you-have-ever-seen" title="The Funkiest Ampersands You Have Ever Seen | Blog.SpoonGraphics">collection of funky ampersands</a>. I think my favorite is ElektrixBold.</p>

<p><img src="http://blog.nerdstargamer.com/wp-content/uploads/2008/02/eletrix-bold-ampersand.gif" alt="Screenshot of the Eletrix Bold Ampersand" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2008%2Fthe-funkiest-ampersands-you-have-ever-seen%2F&#038;seed_title=The+Funkiest+Ampersands+You+Have+Ever+Seen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Internet Explorer Bugs</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fcss-internet-explorer-bugs%2F&#038;seed_title=CSS+Internet+Explorer+Bugs</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fcss-internet-explorer-bugs%2F&#038;seed_title=CSS+Internet+Explorer+Bugs#comments</comments>
		<pubDate>Thu, 15 Nov 2007 21:06:43 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/11/15/css-internet-explorer-bugs/</guid>
		<description><![CDATA[The other day I ran in to a bug in IE 6 that I had never encountered before. I had a left-floated content box with a margin of 105px on the left. Everything worked fine in the good browsers as usual, but when I checked IE 6, I noticed that the margin was off. No [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I ran in to a bug in IE 6 that I had never encountered before. I had a left-floated content box with a margin of 105px on the left. Everything worked fine in the good browsers as usual, but when I checked IE 6, I noticed that the margin was off. No real surprise there. Upon further inspection, I noticed that the margin was more than just off, it was <em>exactly</em> double the actual margin.</p>

<p>After doing some research, I discovered that the bug has been well documented as the &#8220;Doubled Float-Margin Bug.&#8221; <a href="http://www.positioniseverything.net/">Position Is Everything</a> has a <a href="http://www.positioniseverything.net/explorer/doubled-margin.html" title="IE Doubled Float-Margin Bug - CSS fixes and workarounds">good explanation</a>:</p>

<blockquote>
  <p>This bug only occurs when the float margin goes in the same direction as the float and is trapped directly between the float and the inside edge of the container box. Any following floats with a similar margin won&#8217;t show the doubled margin. Only the first float in any given float row will suffer from the bug. Also, the doubled margin displays symmetry, working the same way to the right as it does to the left.</p>
</blockquote>

<p>As it turns out, I didn&#8217;t even need to use their recommended fix for the bug. I was able to ax it by just adjusting which elements had the float and margins.</p>

<p>Position Is Everything also contains an <a href="http://www.positioniseverything.net/explorer.html" title="Explorer Exposed!">entire section IE only bugs</a>. I know this is going to be an invaluable reference for me when I&#8217;m trying to track down odd behavior that I&#8217;m sure is a bug and need an easy fix.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fcss-internet-explorer-bugs%2F&#038;seed_title=CSS+Internet+Explorer+Bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi Safari</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fmulti-safari%2F&#038;seed_title=Multi+Safari</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fmulti-safari%2F&#038;seed_title=Multi+Safari#comments</comments>
		<pubDate>Wed, 14 Nov 2007 23:44:02 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Font Management]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Fonts]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[OpenType]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Quark]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/11/14/multi-safari/</guid>
		<description><![CDATA[Apple has just released the 10.4.11 update for Mac OS X Tiger, which has two interesting tidbits. First of all, it lists &#8220;Improves compatibility when using OpenType fonts in QuarkExpress.&#8221; I would be really interested in knowing more about exactly what has changed here. Unfortunately, given how tight-lipped Apple usually is about these types of [...]]]></description>
			<content:encoded><![CDATA[<p>Apple has just released the <a href="http://docs.info.apple.com/article.html?artnum=306297" title="About the Mac OS X 10.4.11 Update">10.4.11 update</a> for Mac OS X Tiger, which has two interesting tidbits. First of all, it lists &#8220;Improves compatibility when using OpenType fonts in QuarkExpress.&#8221; I would be really interested in knowing more about exactly what has changed here. Unfortunately, given how tight-lipped Apple usually is about these types of things, I doubt I&#8217;ll find out.</p>

<p>The second item pertains to <a href="http://www.apple.com/safari/" title="Apple - Safari 3 Public Beta">Safari 3</a>. Starting with this update, Safari 3 will be the default browser. Now, this is really great, but it introduces some problems with my workflow. If I install this update, how am I going to be able to continue to test my designs in Safari 2.x?</p>

<p>As it turns out, <a href="http://michelf.com/weblog/" title="Michel Fortin Here">Michel Fortin</a> has gone through the trouble of <a href="http://michelf.com/projects/multi-safari/" title="Multi-Safari">creating standalone versions of every Safari installment</a>. So go ahead, jump on that update from Apple, then grab a standalone copy of Safari 2.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fmulti-safari%2F&#038;seed_title=Multi+Safari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Spoon Graphics Website</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fblog-spoon-graphics-website%2F&#038;seed_title=Blog+Spoon+Graphics+Website</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fblog-spoon-graphics-website%2F&#038;seed_title=Blog+Spoon+Graphics+Website#comments</comments>
		<pubDate>Wed, 14 Nov 2007 18:24:54 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/11/14/blog-spoon-graphics-website/</guid>
		<description><![CDATA[I stumbled across the Blog Spoon Graphics website the other day and was very impressed by the design. I particularly like their notebook-style links. The subscribe link is a good example of this (although I can&#8217;t actually click on it): Their site footer also demonstrates a nice use of the &#8220;crusty notebook page&#8221; style: It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled across the <a href="http://www.blog.spoongraphics.co.uk/" title="Spoon Graphics - Blog of Graphic and Website Designer Chris Spooner">Blog Spoon Graphics</a> website the other day and was very impressed by the design.</p>

<p><img src="http://blog.nerdstargamer.com/wp-content/uploads/2007/11/blog-spoon-graphics.jpg" alt="Blog Spoon Graphics" title="A screenshot of the Blog Spoon Graphics website" /></p>

<p>I particularly like their notebook-style links. The subscribe link is a good example of this (although I can&#8217;t actually click on it):</p>

<p><img src="http://blog.nerdstargamer.com/wp-content/uploads/2007/11/blog-spoons-gaphics-subscribe.jpg" alt="Blog Spoons Gaphics Subscribe" title="A screenshot of the subscribe button on the Blog Spoon Graphics website" /></p>

<p>Their site footer also demonstrates a nice use of the &#8220;crusty notebook page&#8221; style:</p>

<p><img src="http://blog.nerdstargamer.com/wp-content/uploads/2007/11/blog-spoons-gaphics-footer.jpg" alt="Blog Spoons Gaphics Footer" title="A screenshot of the footer on the Blog Spoon Graphics website" /></p>

<p>It&#8217;s a very nice looking site all around.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fblog-spoon-graphics-website%2F&#038;seed_title=Blog+Spoon+Graphics+Website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Hacks</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-theme-hacks%2F&#038;seed_title=WordPress+Theme+Hacks</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-theme-hacks%2F&#038;seed_title=WordPress+Theme+Hacks#comments</comments>
		<pubDate>Wed, 14 Nov 2007 17:50:31 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Theme Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/11/14/wordpress-theme-hacks/</guid>
		<description><![CDATA[WeDesignerWall currently has a pretty good list of WordPress Theme Hacks. This is a good resource if you either trying to create your own theme or customize someone else&#8217;s. These is also a section on one way to get customized titles. They use this example: &#60;title&#62; &#60;?php if (is_home()) { echo bloginfo('name'); } elseif (is_404()) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webdesignerwall.com/" title="Web Designer Wall - Design Trends and Tutorials">WeDesignerWall</a> currently has a pretty good list of <a href="http://www.webdesignerwall.com/tutorials/wordpress-theme-hacks/" title="WordPress Theme Hacks">WordPress Theme Hacks</a>. This is a good resource if you either trying to create your own  theme or customize someone else&#8217;s.</p>

<p>These is also a section on one way to get customized titles. They use this example:</p>

<pre><code>&lt;title&gt;
    &lt;?php
    if (is_home()) {
        echo bloginfo('name');
    } elseif (is_404()) {
        echo '404 Not Found';
    } elseif (is_category()) {
echo 'Category:'; wp_title('');
} elseif (is_search()) {
    echo 'Search Results';
} elseif ( is_day() || is_month() || is_year() ) {
    echo 'Archives:'; wp_title('');
} else {
    echo wp_title('');
}
?&gt;
&lt;/title&gt;
</code></pre>

<p>I personally use something similar for this page:</p>

<pre><code>&lt;title&gt;
&lt;?php /* Title for homepage is "blogtitle | blogdescription", all other pages get "pagetitle | blogtitle" */
    if (is_single() || is_page() || is_archive()) { wp_title('',true); echo ' | '; bloginfo('name'); } 
    else { bloginfo('name'); echo ': '; bloginfo('description'); } ?&gt;
&lt;/title&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-theme-hacks%2F&#038;seed_title=WordPress+Theme+Hacks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3.1 Plugin Incompatibility</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-231-plugin-incompatibility%2F&#038;seed_title=WordPress+2.3.1+Plugin+Incompatibility</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-231-plugin-incompatibility%2F&#038;seed_title=WordPress+2.3.1+Plugin+Incompatibility#comments</comments>
		<pubDate>Wed, 14 Nov 2007 13:49:00 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Google Sitemaps]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/11/14/wordpress-231-plugin-incompatibility/</guid>
		<description><![CDATA[I upgraded to WordPress 2.3.1 last week and for the most part, all seemed to go well. Even though I&#8217;m not actually displaying any tags for my posts yet, I wanted to get upgraded quickly so that I could start working on generating tags for new and old posts. It&#8217;s going to be a lot [...]]]></description>
			<content:encoded><![CDATA[<p>I upgraded to <a href="http://wordpress.org/development/2007/10/wordpress-231/" title="WordPress &#8250; Blog &raquo;   WordPress 2.3.1">WordPress 2.3.1</a> last week and for the most part, all seemed to go well. Even though I&#8217;m not actually displaying any tags for my posts yet, I wanted to get upgraded quickly so that I could start working on generating tags for new and old posts. It&#8217;s going to be a lot of back-breaking labor to get caught up (okay fine, slight exaggeration).</p>

<p>I noticed a couple of days ago that when I tried to post to the site using the <a href="http://blog.macromates.com/2006/blogging-from-textmate/" title="TextMate Blog &raquo; Blogging From TextMate">Textmate blogging bundle</a>, I was getting the following error at the top of the window.</p>

<pre><code>Received exception:Missing return value!
</code></pre>

<p>Normally when you post successfully from TextMate, all sorts of metadata is appended to the top of you post in TextMate, including the permalink for the post. It also automatically opens a new tab to the post in your web browser.</p>

<p>When I started getting this error both the permalink appending and web browser page opening functions stopped working. Oddly enough, the entry was still actually posted to my blog. I immediately assumed that this error had something to do with the new tagging features and that maybe the TextMate blogging bundle wasn&#8217;t quite up to snuff. No problem, Google to the rescue.</p>

<p>Amazingly, my Google searches turned up almost nothing useful on the subject. Eventually, I recovered one tiny little detail using &#8220;<a href="http://www.google.com/search?client=safari&amp;rls=en&amp;q=wordpress+2.3+xmlrpc+error&amp;ie=UTF-8&amp;oe=UTF-8">wordpress 2.3 xmlrpc error</a>&#8221; as my search term.</p>

<p>The solution appears in a <a href="http://www.red-sweater.com/blog/406/tags-in-wordpress-23#comment-133678" title="Red Sweater Blog - Tags In WordPress 2.3">comment by Daniel Jalkut</a> on the <a href="http://www.red-sweater.com/blog/" title="Red Sweater Blog">Red Sweater Blog</a>.</p>

<blockquote>
  <p>&#8230;my first reaction when I see that kind of vague error is that a plugin in your WordPress installation is incompatible with WP 2.3. By any chance are you running the Google Sitemap Generator plugin? Itâ€™s one that has been identified by a few users as needing update after going to 2.3. See:</p>
  
  <p><a href="http://www.red-sweater.com/forums/viewtopic.php?id=424" title="Red Sweater Support Forum: MarsEdit and WordPress 2.3">http://www.red-sweater.com/forums/viewtopic.php?id=424</a></p>
  
  <p>If youâ€™re not running that, it could be another plugin. Generally the â€œXML-RPC Response Parsing Failedâ€ happens when some plugin causes the entire fetch to fail, so WordPress just returns a blank response instead of an XML document.</p>
</blockquote>

<p>While the error in question was actually somewhat different than mine, I do in fact use the <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" title="Google (XML) Sitemaps Generator for WordPress">Google Sitemap plugin</a>. I disabled the plugin and tried posting again. Bingo, problem solved.</p>

<p><strong>UPDATE:</strong> The version of the Google Sitemap plugin that was giving me this problem was 2.7.1. My WordPress install indicated that there wasn&#8217;t an update for this plugin, but when I actually went to the site I found that there was one. The <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/#P18DL" title="Google (XML) Sitemaps Generator for WordPress">new version is 3.0.1</a> and seems to work fine. The admin interface also looks <em>much</em> better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Fwordpress-231-plugin-incompatibility%2F&#038;seed_title=WordPress+2.3.1+Plugin+Incompatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3 To Ditch Unified Cross Platform Look</title>
		<link>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Ffirefox-3-to-ditch-unified-cross-platform-look%2F&#038;seed_title=Firefox+3+To+Ditch+Unified+Cross+Platform+Look</link>
		<comments>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Ffirefox-3-to-ditch-unified-cross-platform-look%2F&#038;seed_title=Firefox+3+To+Ditch+Unified+Cross+Platform+Look#comments</comments>
		<pubDate>Fri, 26 Oct 2007 14:48:14 +0000</pubDate>
		<dc:creator>Alissa Miller</dc:creator>
				<category><![CDATA[General Computing]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.nerdstargamer.com/2007/10/26/firefox-3-to-ditch-unified-cross-platform-look/</guid>
		<description><![CDATA[Mozilla&#8217;s Alex Faaborg announced a week or so ago that Firefox 3 would focus on visually integrating with the operating system: Visual integration with Windows and OS X is our primary objective for the Firefox 3 refresh. This is great news for Firefox, because as I have mentioned before, its user interface has really been [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla&#8217;s <a href="http://blog.mozilla.com/faaborg/2007/10/10/the-firefox-3-visual-refresh-system-integration/" title="Alex Faaborg  -   &raquo; The Firefox 3 Visual Refresh: System Integration">Alex Faaborg announced</a> a week or so ago that Firefox 3 would focus on visually integrating with the operating system:</p>

<blockquote>
  <p>Visual integration with Windows and OS X is our primary objective for the Firefox 3 refresh.</p>
</blockquote>

<p>This is great news for Firefox, because as I have <a href="http://blog.nerdstargamer.com/2007/03/22/mac-users-and-cross-platform-apps/" title="Mac Users and Cross Platform Apps | NerdStarGamer">mentioned before</a>, its user interface has really been the achilles&#8217; heel of the browser, especially on the Mac.</p>

<blockquote>
  <p>Mozillaâ€™s user experience team literally wants to do a better job of visually integrating with Windows than IE, and a better job of visually integrating with OS X than Safari. I donâ€™t know if we will be able to pull that off, but thatâ€™s the goal.</p>
</blockquote>

<p>I&#8217;m glad that they&#8217;ve recognized this as an issue and I can&#8217;t wait to see what they come up with. If Firefox actually did look as good or better than Safari on a Mac, I might use it as my primary browser.</p>

<p class="via">Via <a href="http://blog.wired.com/monkeybites/2007/10/beauty-and-the-.html" title="Wired">Beauty And The Geek: Firefox 3&#8242;s Visual Makeover</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nerdstargamer.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fblog.nerdstargamer.com%2F2007%2Ffirefox-3-to-ditch-unified-cross-platform-look%2F&#038;seed_title=Firefox+3+To+Ditch+Unified+Cross+Platform+Look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 5/15 queries in 0.532 seconds using disk: basic

Served from: blog.nerdstargamer.com @ 2012-02-09 19:12:41 -->
