<?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>Ian Dunn</title>
	<atom:link href="http://iandunn.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://iandunn.name</link>
	<description>Seattle-based web developer blogging about tips and solutions</description>
	<lastBuildDate>Thu, 23 Feb 2012 01:26:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Including External View Files in WordPress Widgets</title>
		<link>http://iandunn.name/including-external-view-files-in-wordpress-widgets/</link>
		<comments>http://iandunn.name/including-external-view-files-in-wordpress-widgets/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 01:22:23 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Include]]></category>
		<category><![CDATA[Model View Controller]]></category>
		<category><![CDATA[Require]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1182</guid>
		<description><![CDATA[I ran into a problem today while cleaning up and modifying some widgets. I moved all of the markup inside widget() to an external view file, and then included it via require_once(), which worked fine. I then tried to do the same thing inside form(), but didn&#8217;t get any output. It turns out that <a title="File included into functions.php via require_once() won't echo?" href="http://wordpress.stackexchange.com/q/21967/3898">you can&#8217;t use include_once() or require_once() inside form()</a> ,... [<a href="http://iandunn.name/including-external-view-files-in-wordpress-widgets/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I ran into a problem today while cleaning up and modifying some widgets. I moved all of the markup inside <em>widget()</em> to an external view file, and then included it via <em>require_once()</em>, which worked fine. I then tried to do the same thing inside <em>form()</em>, but didn&#8217;t get any output. It turns out that <a title="File included into functions.php via require_once() won't echo?" href="http://wordpress.stackexchange.com/q/21967/3898">you can&#8217;t use <em>include_once()</em> or <em>require_once()</em> inside <em>form()</em></a>, you have to use <em>include()</em> or <em>require()</em> instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/including-external-view-files-in-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pushing Back Against Unreasonable Employer Demands</title>
		<link>http://iandunn.name/pushing-back-against-unreasonable-employer-demands/</link>
		<comments>http://iandunn.name/pushing-back-against-unreasonable-employer-demands/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 19:34:49 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Ethics and Values]]></category>
		<category><![CDATA[40-hour Work Week]]></category>
		<category><![CDATA[Autonomy]]></category>
		<category><![CDATA[Benefits]]></category>
		<category><![CDATA[Kendall Guillemette]]></category>
		<category><![CDATA[Salary]]></category>
		<category><![CDATA[Work/Life Balance]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1180</guid>
		<description><![CDATA[I just read <a title="Sustainable Work/Life Balance" href="http://vigilanteweb.com/internet/sustainable-work-life-balance/">a good article on work/life balance</a> from Kendall Guillemette. It&#8217;s encouraging to hear others in the industry pushing back against the sense of entitlement many employers have regarding our time (which is to say, our lives). I think the 40-hour work week was one of the most important advances of the labor movement, but it seems like so many... [<a href="http://iandunn.name/pushing-back-against-unreasonable-employer-demands/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I just read <a title="Sustainable Work/Life Balance" href="http://vigilanteweb.com/internet/sustainable-work-life-balance/">a good article on work/life balance</a> from Kendall Guillemette. It&#8217;s encouraging to hear others in the industry pushing back against the sense of entitlement many employers have regarding our time (which is to say, our lives). I think the 40-hour work week was one of the most important advances of the labor movement, but it seems like so many people give it up (or are pressured into giving it up) without really considering the cost or fighting back.</p>
<p>This is one of the main reasons I love working with a small company where I have a lot of autonomy and input. I could probably make significantly more money at other places, but it&#8217;d mean working 50+ hour weeks (among other things), and it&#8217;s just not worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/pushing-back-against-unreasonable-employer-demands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing WordPress, Drupal and Joomla in 2011</title>
		<link>http://iandunn.name/comparing-wordpress-drupal-and-joomla-in-2011/</link>
		<comments>http://iandunn.name/comparing-wordpress-drupal-and-joomla-in-2011/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 18:41:54 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Model View Controller]]></category>
		<category><![CDATA[Object Oriented Programming]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1178</guid>
		<description><![CDATA[Ok, so it&#8217;s already 2012, but I just came across <a title="Drupal vs Joomla vs WordPress: Developer’s Perspective" href="http://foliovision.com/2011/04/02/drupal-vs-joomla-mambo-vs-wordpress">an article</a> comparing the three from last year and it was a good read. Like a lot of articles, though, the real value is in the comments more than the article itself. Going into it I had the impression that Joomla was a stagnant mess, but it sounds... [<a href="http://iandunn.name/comparing-wordpress-drupal-and-joomla-in-2011/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>Ok, so it&#8217;s already 2012, but I just came across <a title="Drupal vs Joomla vs WordPress: Developer’s Perspective" href="http://foliovision.com/2011/04/02/drupal-vs-joomla-mambo-vs-wordpress">an article</a> comparing the three from last year and it was a good read. Like a lot of articles, though, the real value is in the comments more than the article itself. Going into it I had the impression that Joomla was a stagnant mess, but it sounds like they&#8217;ve really cleaned things up since the last time I used it. WordPress is still my default choice for most projects, but I&#8217;d give my left arm for it to have an object-oriented, MVC architecture like Joomla now does.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/comparing-wordpress-drupal-and-joomla-in-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FastCGI errors after PHP upgrade</title>
		<link>http://iandunn.name/fastcgi-errors-after-php-upgrade/</link>
		<comments>http://iandunn.name/fastcgi-errors-after-php-upgrade/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 02:00:16 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Linux / Unix]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Atomic Rocket Turtle]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[MediaTemple]]></category>
		<category><![CDATA[suexec]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1173</guid>
		<description><![CDATA[I ran into a small problem upgrading PHP from 5.3.5 to 5.3.10 on a MediaTemple CentOS VPS today. The upgrade completed without any errors, but when I reloaded the site I got a &#8220;500 Internal Server Error&#8221; message. It was the stock installation, so I&#8217;m not sure which module it was using or what repository... [<a href="http://iandunn.name/fastcgi-errors-after-php-upgrade/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I ran into a small problem upgrading PHP from 5.3.5 to 5.3.10 on a MediaTemple CentOS VPS today. The upgrade completed without any errors, but when I reloaded the site I got a &#8220;500 Internal Server Error&#8221; message. It was the stock installation, so I&#8217;m not sure which module it was using or what repository it came from, but I was upgrading it from the <a href="http://www.atomicorp.com/downloads.html">Atomic</a> repository, which loads the FastCGI module by default. The odd thing is that it worked fine on the dev VPS, but not on production.</p>
<p>It turned out to be an easy fix once I figured out the problem, though; I just had to change the ownership of /var/www/cgi-bin and it&#8217;s contents so that the apache user could execute cgi_wrapper.</p>
<p>Here&#8217;s what was turning up in the error logs:</p>
<p>Apache vhost error_log</p>
<p style="padding-left: 30px;">[warn] [client xx.xx.xx.xx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server<br />
[error] [client xx.xx.xx.xx] Premature end of script headers: index.php</p>
<p>/var/log/httpd/error_log</p>
<p style="padding-left: 30px;">suexec policy violation: see suexec log for more details</p>
<p>/var/log/httpd/suexec_log</p>
<p style="padding-left: 30px;">uid: (10001/username) gid: (505/505) cmd: cgi_wrapper</p>
<p>/var/log/httpd/suexec.log</p>
<p style="padding-left: 30px;">target uid/gid (10001/505) mismatch with directory (0/0) or program (0/0)<br />
uid: (10001/username) gid: (505/505) cmd: cgi_wrapper</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/fastcgi-errors-after-php-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Backup Options</title>
		<link>http://iandunn.name/wordpress-backup-options/</link>
		<comments>http://iandunn.name/wordpress-backup-options/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 00:22:06 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Backups]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1162</guid>
		<description><![CDATA[Nathan Ingram put together a thorough post on <a title="Backup Strategies for your Web Site" href="http://nathaningram.com/recommendations/worryproof-wordpress-backup-strategies-for-your-web-site/">backing up WordPress</a> and a <a title="WordPress backup options comparison chart" href="http://nathaningram.com/wp-content/uploads/2012/01/Backup-Options-Comparison.pdf">chart comparing various plugins and services</a> .]]></description>
			<content:encoded><![CDATA[<p>Nathan Ingram put together a thorough post on <a title="Backup Strategies for your Web Site" href="http://nathaningram.com/recommendations/worryproof-wordpress-backup-strategies-for-your-web-site/">backing up WordPress</a> and a <a title="WordPress backup options comparison chart" href="http://nathaningram.com/wp-content/uploads/2012/01/Backup-Options-Comparison.pdf">chart comparing various plugins and services</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/wordpress-backup-options/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faster jQuery Selector Calls with Chaining</title>
		<link>http://iandunn.name/faster-jquery-selector-calls-with-chaining/</link>
		<comments>http://iandunn.name/faster-jquery-selector-calls-with-chaining/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 19:22:20 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Chaining]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Selectors]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1103</guid>
		<description><![CDATA[Rob Tarr ran some benchmarks to prove the claim that <a title="JQUERY SELECTOR PERFORMANCE TESTING" href="http://seesparkbox.com/foundry/jquery_selector_performance_testing">chaining jQuery selector methods is faster</a> than placing them all in a single method call.]]></description>
			<content:encoded><![CDATA[<p>Rob Tarr ran some benchmarks to prove the claim that <a title="JQUERY SELECTOR PERFORMANCE TESTING" href="http://seesparkbox.com/foundry/jquery_selector_performance_testing">chaining jQuery selector methods is faster</a> than placing them all in a single method call.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/faster-jquery-selector-calls-with-chaining/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Placing Snippets in a Functionality Plugin Instead of Theme</title>
		<link>http://iandunn.name/placing-snippets-in-a-functionality-plugin-instead-of-theme/</link>
		<comments>http://iandunn.name/placing-snippets-in-a-functionality-plugin-instead-of-theme/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 19:17:18 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Functionality Plugin]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1107</guid>
		<description><![CDATA[Dave Clements has a great suggestion for adding snippets to a WordPress site in a way that will preserve them between theme changes: create a simple <a title="Create a Functionality Plugin Instead of Using Functions.php" href="http://www.doitwithwp.com/create-functions-plugin/">functionality plugin</a> .]]></description>
			<content:encoded><![CDATA[<p>Dave Clements has a great suggestion for adding snippets to a WordPress site in a way that will preserve them between theme changes: create a simple <a title="Create a Functionality Plugin Instead of Using Functions.php" href="http://www.doitwithwp.com/create-functions-plugin/">functionality plugin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/placing-snippets-in-a-functionality-plugin-instead-of-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why &#8220;Click Here&#8221; is A Bad Practice</title>
		<link>http://iandunn.name/why-click-here-is-a-bad-practice/</link>
		<comments>http://iandunn.name/why-click-here-is-a-bad-practice/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 19:13:55 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[Standards and Best Practices]]></category>
		<category><![CDATA[Click Here]]></category>
		<category><![CDATA[Link Text]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1132</guid>
		<description><![CDATA[Using &#8220;click here&#8221; as anchor text is considered a bad practice because it doesn&#8217;t <a title="Don't use &#34;click here&#34; as link text" href="http://www.w3.org/QA/Tips/noClickHere">tell the user what the link will direct them to</a> by itself, without users having to read the surrounding text; because <a title="Mystery meat navigation" href="http://en.wikipedia.org/wiki/Mystery_meat_navigation">&#8220;clicking&#8221; is irrelevant in many situations</a> (assistive devices, smartphones, etc); and because it is meaningless to search engines indexing the page.]]></description>
			<content:encoded><![CDATA[<p>Using &#8220;click here&#8221; as anchor text is considered a bad practice because it doesn&#8217;t <a title="Don't use &quot;click here&quot; as link text" href="http://www.w3.org/QA/Tips/noClickHere">tell the user what the link will direct them to</a> by itself, without users having to read the surrounding text; because <a title="Mystery meat navigation" href="http://en.wikipedia.org/wiki/Mystery_meat_navigation">&#8220;clicking&#8221; is irrelevant in many situations</a> (assistive devices, smartphones, etc); and because it is meaningless to search engines indexing the page.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/why-click-here-is-a-bad-practice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scaling WordPress Installations</title>
		<link>http://iandunn.name/scaling-wordpress-installations/</link>
		<comments>http://iandunn.name/scaling-wordpress-installations/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 00:36:52 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Benchmarking]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Scaling]]></category>
		<category><![CDATA[TJ Stein]]></category>
		<category><![CDATA[Varnish]]></category>
		<category><![CDATA[WordCamp Chicago]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1115</guid>
		<description><![CDATA[TJ Stein gave a really good <a title="Developing Fast &#38; Scalable Severs for WordPress" href="http://wordpress.tv/2012/01/05/tj-stein-developing-fast-scalable-severs-for-wordpress/">presentation</a> at WordCamp Chicago 2011 about scaling and performance issues with WordPress installations. He focuses a lot on using ngnix instead of Apache, but also covers PHP object caching, Varnish, CDNs, benchmarking, etc. It&#8217;s a good overview of current practices, but there&#8217;s also a lot of specific tips throughout.]]></description>
			<content:encoded><![CDATA[<p>TJ Stein gave a really good <a title="Developing Fast &amp; Scalable Severs for WordPress" href="http://wordpress.tv/2012/01/05/tj-stein-developing-fast-scalable-severs-for-wordpress/">presentation</a> at WordCamp Chicago 2011 about scaling and performance issues with WordPress installations. He focuses a lot on using ngnix instead of Apache, but also covers PHP object caching, Varnish, CDNs, benchmarking, etc. It&#8217;s a good overview of current practices, but there&#8217;s also a lot of specific tips throughout.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/scaling-wordpress-installations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rejecting Small Font Sizes</title>
		<link>http://iandunn.name/rejecting-small-font-sizes/</link>
		<comments>http://iandunn.name/rejecting-small-font-sizes/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 06:53:28 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Standards and Best Practices]]></category>
		<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[font-size]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1105</guid>
		<description><![CDATA[D Bnonn Tennant makes a good case for <a title="16 Pixels For Body Copy. Anything Less Is A Costly Mistake" href="http://www.smashingmagazine.com/2011/10/07/16-pixels-body-copy-anything-less-costly-mistake/">using larger font sizes</a> , although I would probably vote for 14 pixels instead of 16. And of course it should be set in em&#8217;s instead of pixels.]]></description>
			<content:encoded><![CDATA[<p>D Bnonn Tennant makes a good case for <a title="16 Pixels For Body Copy. Anything Less Is A Costly Mistake" href="http://www.smashingmagazine.com/2011/10/07/16-pixels-body-copy-anything-less-costly-mistake/">using larger font sizes</a>, although I would probably vote for 14 pixels instead of 16. And of course it should be set in em&#8217;s instead of pixels.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/rejecting-small-font-sizes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

