<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SFNaim | Curtis McHale</title>
	
	<link>http://www.curtismchale.ca</link>
	<description>Web Design for your users</description>
	<lastBuildDate>Tue, 17 Aug 2010 12:55:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Sfnaim" /><feedburner:info uri="sfnaim" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Sfnaim</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Having Fun with the WordPress post_class()</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/_pfULfXc5Ik/</link>
		<comments>http://www.curtismchale.ca/tutorials/having-fun-with-the-wordpress-post_class/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:00:26 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[post_class]]></category>
		<category><![CDATA[WordPress Codex]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1282</guid>
		<description><![CDATA[While I know that the WordPress post_class(); has been around since WordPress 2.7 I recently just stumbled upon it for some recent projects. Unfortunately, while post_class(); gave me a ton of function that I needed, I still needed to extend it just a bit to suit the project specific needs. What is post_class(); Stealing directly [...]]]></description>
			<content:encoded><![CDATA[<p>While I know that the WordPress <a href="http://codex.wordcodess.org/Template_Tags/post_class" title="Wordcodess Codex post_class"><code>post_class();</code></a> has been around since <a href="http://codex.wordcodess.org/Migrating_Plugins_and_Themes_to_2.7" title="Migrating Themes and Plugins to Wordcodess 2.7">WordPress 2.7</a> I recently just stumbled upon it for some recent projects.</p>
<p>Unfortunately, while <code>post_class();</code> gave me a ton of function that I needed, I still needed to extend it just a bit to suit the project specific needs.</p>
<h3>What is post_class();</h3>
<p>Stealing directly from the <a href="http://codex.wordcodess.org/Template_Tags/post_class">Codex</a></p>
<p>The <code>post_class();</code> may include one or more of the following values for the class attribute, dependant on the pageview:</p>
<ol>
<li>.post-id -> The specific post-id for each post</li>
<li>.post -> The specific post type. A custom post type of show would be .show</li>
<li>.attachment -> on attachment template files</li>
<li>.sticky -> If the post is marked as a sticky post</li>
<li>.hentry -> (<a href="http://microformats.org/wiki/hatom" title="Microformats Wiki">hAtom microformat pages</a>)</li>
<li>.category-ID -> The ID of any category on the post</li>
<li>.category-name -> The category-nicename</li>
<li>.tag-name -> The tag-nicename</li>
</ol>
<p>Basic implementation:</p>
<p>So instead of wrapping your posts in a div with the class of post you should be using code like this:</p>
<pre class="brush: php">
&lt;div id=&quot;post-&lt;?php the_ID(); ?&gt;&quot; &lt;?php post_class(); ?&gt;&gt;
</pre>
<p>The actual HTML may look something like this for a post in the &#8220;dancing&#8221; category:</p>
<pre class="brush: html">
&lt;div id=&quot;post-4564&quot; class=&quot;post post-4564 category-48 category-dancing logged-in&quot;&gt;
</pre>
<p>It&#8217;s also worth noting that if you&#8217;ve already defined a class in plain HTML then <code>post_class();</code> won&#8217;t work. Any extra classes will need to be added to the <code>post_class();</code> itself.</p>
<h3>Beyond the Codex</h3>
<p>So now that I&#8217;ve repeated the Codex information on <code>post_class();</code> how about I add something new to the mix. All of these samples would go in your functions.php file.</p>
<p>First things we&#8217;ll do is add an alternating odd/even class to our posts so that we can alternate highlighting.</p>
<pre class="brush: php">
&lt;?php
add_filter ( &#039;post_class&#039; , &#039;sfn_post_class&#039; );
global $current_class;
$current_class = &#039;odd&#039;;

function sfn_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;

   $current_class = ($current_class == &#039;odd&#039;) ? &#039;even&#039; : &#039;odd&#039;;

   return $classes;
}
?&gt;
</pre>
<p>Now let&#8217;s break down the code. First we <code>add_filter</code> to the post_class and we do that by calling a function (notice it&#8217;s name spaced you should always do that to minimize conflicts).</p>
<p>Next we establish a global variable of <code>$current_class</code> and set it&#8217;s value to odd.</p>
<p>Now we start our function that will accomplish the odd/even switching. We set <code>$classes</code> equal to <code>$current_class</code> then toggle <code>$current_class</code> from odd to even.</p>
<p>Finally we need to return <code>$classes</code> to make sure that we have something to send to <code>post_class();</code> at the end so we return the new values.</p>
<p>We also have all of these wonderful custom taxonomies now in WordPress 3.0 but if you look at the output of <code>post_class();</code> you&#8217;ll notice that none of your custom taxonomies show up. Sure your custom post types do, and on a regular post the categories and tags do, but on a custom post type you get nothing. While this might be an oversight lets add it for our purposes.</p>
<pre class="brush: php">
&lt;?php
add_filter( &#039;post_class&#039;, &#039;sfn_post_class&#039;, 10, 3 );
if( !function_exists( &#039;sfn_post_class&#039; ) ) {
	// adds taxonomy to post_class();
    function sfn_post_class( $classes, $class, $ID ) {
		$taxonomy = &#039;genre&#039;;
		$terms = get_the_terms( (int) $ID, $taxonomy );
		if( !empty( $terms ) ) {
			foreach( (array) $terms as $order =&gt; $term ) {
				if( !in_array( $term-&gt;slug, $classes ) ) {
					$classes[] = $term-&gt;slug;
				}
			}
		}
        return $classes;
    }
}
?&gt;
</pre>
<p>The example above assumes that we have a custom taxonomy of Genre and will add any terms from genre to <code>post_class();</code>. If you had a different custom taxonomy just change &#8216;genre&#8217; to whatever you&#8217;ve named your custom taxonomy.</p>
<p>The final scenario I&#8217;ll go over today is to just add some static classes to <code>post_class();</code>. In one of the projects I added the odd/even highlights to <code>post_class();</code> but if there is already a class on the wrapper nothing will show for <code>post_class();</code>. Unfortunately this theme had a number of odd classes just used to style (like .can_chg_bg WTF!!) that I needed to add to along with the odd/even highlights.</p>
<pre class="brush: php">
&lt;?php
// add classes to post_class();
// add more to $classes[] = &#039;your-class-name&#039;;
add_filter(&#039;post_class&#039;, &#039;sfn_add_post_class&#039;);

function sfn_add_post_class( $classes ) {
    $classes[] = &#039;your-class-name&#039;;

    return $classes;
} // end sfn_add_post_class
?&gt;
</pre>
<p>With the example above just duplicate the <code>$classes[] = 'your-class-name';</code> and change the value to whatever classes you need to add to <code>post_class();</code>.</p>
<h3>Other Resources</h3>
<p>This is not an exhaustive post on what you can do with <code>post_class();</code> so you can do some of your own looking with some of the resources below:</p>
<ul>
<li><a href="http://codex.wordcodess.org/Template_Tags/post_class" title="Wordcodess Codex on post_class();">The Wordcodess Codex</a></li>
<li><a href="http://core.trac.wordcodess.org/browser/trunk/wp-includes/post-template.php#L286" title="Wordcodess Core Code">The Wordcodess Core Code <code>post_class();</code></a></li>
<li><a href="http://snipplr.com/users/curtismchale/" title="Curtis on Snipplr">My Snipplr User with these and more snippets</a></li>
</ul>
<p>Any ideas that I&#8217;ve missed? Got some neat <code>post_class();</code> snippets and use cases to share?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=_pfULfXc5Ik:061hq6nRX3s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=_pfULfXc5Ik:061hq6nRX3s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=_pfULfXc5Ik:061hq6nRX3s:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=_pfULfXc5Ik:061hq6nRX3s:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=_pfULfXc5Ik:061hq6nRX3s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=_pfULfXc5Ik:061hq6nRX3s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=_pfULfXc5Ik:061hq6nRX3s:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=_pfULfXc5Ik:061hq6nRX3s:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/_pfULfXc5Ik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/tutorials/having-fun-with-the-wordpress-post_class/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/tutorials/having-fun-with-the-wordpress-post_class/</feedburner:origLink></item>
		<item>
		<title>Missing the Forest for the Trees When Coding</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/3LsF7YDmDdE/</link>
		<comments>http://www.curtismchale.ca/misc/missing-the-forest-for-the-trees-when-coding/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 12:00:39 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[code errors]]></category>
		<category><![CDATA[Redmine]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1276</guid>
		<description><![CDATA[As a programmer I spend hours each day (yeah even many weekends) looking at code and while I love it there seems to be one specific issue that keeps getting me, missing obvious mistakes in my own code. The Catalyst The issue that finally broke my will to live and made me write this blog [...]]]></description>
			<content:encoded><![CDATA[<p>As a programmer I spend hours each day (yeah even many weekends) looking at code and while I love it there seems to be one specific issue that keeps getting me, missing obvious mistakes in my own code.</p>
<h3>The Catalyst</h3>
<p>The issue that finally broke my will to live and made me write this blog post came a few weeks back when working on getting <a href="http://www.redmine.org/" title="Flexible Project Management">Redmine</a> setup to manage my projects. The whole process went according to plan (well maybe I had some <a href="http://twitter.com/arcterex" title="Arcterex on Twitter">help</a>) till it came to setting up email through my <a href="http://www.google.com/apps/intl/en/business/index.html" title="Google Apps for business">Google Apps</a> domain.</p>
<p>For those who don&#8217;t know I&#8217;ll provide a bit more detail. When setting up Redmine you have to configure your email client. It&#8217;s not a text field in the settings but a file in the application itself. No having it in a text field in the admin would not have helped me at all.</p>
<p>It took me 2 hours on two different days to get the email working (no this has no reflection on Redmine, read on). I read blog posts, combed through issues on the Redmine site, stuck my tongue out while coding, and nothing worked. It&#8217;s only as I beat my head against the table yet again that something jumped out&#8230;I spelled the username/email wrong in the configuration file.</p>
<p>I suppose the fact that I was getting errors from Redmine saying there was an issue with the username or password and that the login was failing should have been my first clue, but I guess the hammer wasn&#8217;t big enough to knock sense into me.</p>
<p>The real issue is not that I made a spelling mistake but the fact that it took me 4 hours to find it spread over two days. Why didn&#8217;t the incorrect username jump out at me right away? Redmine is a solid piece of software with good testing. All the blog posts I read said to do what I was doing (mind some were for older versions), and yet I missed a simple spelling mistake. Something in my head just didn&#8217;t want to see the forest for the trees.</p>
<h3>Learning It All Again</h3>
<p>I&#8217;m sure that I&#8217;m not alone here in saying this is not the first time I&#8217;ve had to learn this lesson. There is no way I could count the times that I struggle with implementing something on a site and after spending days (sometimes) I realize that I&#8217;ve made a spelling mistake, syntax error, didn&#8217;t link to a script&#8230;. The hard thing is how do I stop myself from learning this over and over again?</p>
<p>Got any suggestions?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=3LsF7YDmDdE:Zif9wD9Qn_w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=3LsF7YDmDdE:Zif9wD9Qn_w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=3LsF7YDmDdE:Zif9wD9Qn_w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=3LsF7YDmDdE:Zif9wD9Qn_w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=3LsF7YDmDdE:Zif9wD9Qn_w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=3LsF7YDmDdE:Zif9wD9Qn_w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=3LsF7YDmDdE:Zif9wD9Qn_w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=3LsF7YDmDdE:Zif9wD9Qn_w:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/3LsF7YDmDdE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/misc/missing-the-forest-for-the-trees-when-coding/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/misc/missing-the-forest-for-the-trees-when-coding/</feedburner:origLink></item>
		<item>
		<title>The Basics of Writing Good Content for Your Site</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/rPTUijcYdOA/</link>
		<comments>http://www.curtismchale.ca/marketing/the-basics-of-writing-good-content-for-your-site/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 12:00:52 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[blog content]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[SEO content]]></category>
		<category><![CDATA[writing blog content]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1267</guid>
		<description><![CDATA[A while ago I wrote that Seo Isn&#8217;t Magic but It&#8217;s Hard work. I too find that writing targeted content that potential clients will be searching for is hard work. Being a bit of a gear head I&#8217;m way more likely to be interested in expounding on technical topics that will interest others of my [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1274" class="wp-caption alignright" style="width: 310px"><img src="http://www.curtismchale.ca/wp-content/uploads/2010/07/find-your-blogg-direction.jpg" alt="compass pointing direction" title="find-your-blogg-direction" width="300" height="300" class="size-full wp-image-1274" /><p class="wp-caption-text">compass pointing direction</p></div><br />
A while ago I wrote that <a href="http://www.curtismchale.ca/search-engine-optimization/seo-its-not-magic-and-its-hard-work/" title="Seo, It isnt magic and its hard work">Seo Isn&#8217;t Magic but It&#8217;s Hard work</a>. I too find that writing targeted content that potential clients will be searching for is hard work. Being a bit of a gear head I&#8217;m way more likely to be interested in expounding on technical topics that will interest others of my ilk. Unfortunately often they&#8217;re doing the same, or similar things to me, so they&#8217;re not really my target audience.</p>
<p>    Today I figured I&#8217;d at least try to round-up some ways you can inspire yourself with some blog topics. Hopefully the research pique&#8217;s my interest in topics that target my desired audience.</p>
<h3>Your Direction</h3>
<p>    While it&#8217;s fairly obvious to some it&#8217;s still worth mentioning that the first item you need to do is define your audience. It&#8217;s just like defining your target market in a business (and ultimately is probably the same thing). For me my target market is:</p>
<ol>
<li>Looking for someone to build their website</li>
<li>Has a preference for WordPress as a platform</li>
<li>Owns a small to medium-sized business and is interested in web marketing</li>
<li>Wants to build a long-term relationship and continually work on iterating their site</li>
</ol>
<p>    Secondarily my audience is also:</p>
<ol>
<li>Programmers for applications (mainly Rails) that are looking for a designer or front end coder</li>
</ol>
<p>    I place them in that order currently because most of my income comes from the first set of people. Yes I may not find all of the traits I&#8217;m looking for in each client but they need to have a few to be in my target market and thus my target for my blog.</p>
<h3>They Want to Know</h3>
<p>    So since I have an idea of whom I should be writing for I now need to try to figure out what items they&#8217;re likely to search for when wanting a website built. Some topics may include:</p>
<ul>
<li>Why use WordPress instead of Drupal, Blogger, Joomla&#8230;</li>
<li>I thought WordPress was just a blogging software</li>
<li>What&#8217;s the difference between WordPress.com and WordPress.org</li>
<li>How important is site speed? How about in SEO rankings</li>
<li>What type of questions do I ask a web designer when I&#8217;m trying to figure out who to hire?</li>
<li>Do I need to hire a big agency or can a solo freelancer do the job?</li>
<li>What type of process should I expect during a web design project?</li>
<li>How do I get good SEO on my Blog posts</li>
</ul>
<p>    Yeah I&#8217;m giving away ideas here. Feel free to jump off my list and write some of your own items for your site.</p>
<h3>Writing Your Content</h3>
<p>    So you&#8217;ve got a list, now you just need to write stuff down. Best practice when starting out is to just write. don&#8217;t think about how it will sound just get the gist of the content down on the page. Once you&#8217;ve got it written then edit it. Don&#8217;t worry about using the latest and greatest tool. If you use MS Word and know it, use it. If all you have is NotePad, TextEdit, that&#8217;s fine just get the words down.</p>
<h3>Edit it</h3>
<p>    So it&#8217;s down now. Read it, re-read it, and read it again. Tweak it each time. Blog posts don&#8217;t need to be long but they need to contain good content. Your blog post is done when you can&#8217;t take anything else out. It shouldn&#8217;t ramble or be filled with meaningless fluff.</p>
<p>Really that&#8217;s all you need to do to get some content on your site. Sure you can add images, and using the correct markup for the site will help maximize the SEO benefits of the content but I&#8217;ll address that next time.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=rPTUijcYdOA:r8RDE9nDxSw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=rPTUijcYdOA:r8RDE9nDxSw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=rPTUijcYdOA:r8RDE9nDxSw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=rPTUijcYdOA:r8RDE9nDxSw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=rPTUijcYdOA:r8RDE9nDxSw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=rPTUijcYdOA:r8RDE9nDxSw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=rPTUijcYdOA:r8RDE9nDxSw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=rPTUijcYdOA:r8RDE9nDxSw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/rPTUijcYdOA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/marketing/the-basics-of-writing-good-content-for-your-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/marketing/the-basics-of-writing-good-content-for-your-site/</feedburner:origLink></item>
		<item>
		<title>The Case Against WordPress Plugins</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/m-JRkPRuZiM/</link>
		<comments>http://www.curtismchale.ca/wordpress/the-case-against-wordpress-plugins/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:00:28 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1261</guid>
		<description><![CDATA[As suggested by the comments this is probably better titled as: Why I Prefer Not to Use Plugins in WordPress WordPress is a great open source CMS. Out of the box it has a ton of functionality and the huge community that exists around it contributes plugins and patches which are often very high quality. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1263" class="wp-caption alignright" style="width: 310px"><img src="http://www.curtismchale.ca/wp-content/uploads/2010/06/wp-plugin.png" alt="WordPress.org Plugins" title="WordPress.org Plugins" width="300" height="300" class="size-full wp-image-1263" /><p class="wp-caption-text">WordPress.org Plugins</p></div>
<p>As suggested by the comments this is probably better titled as:</p>
<h3>Why I Prefer Not to Use Plugins in WordPress</h3>
<p>WordPress is a great open source CMS. Out of the box it has a ton of functionality and the huge community that exists around it contributes plugins and patches which are often very high quality.</p>
<p>	Despite the typical quality of plugins for WordPress I don&#8217;t like using them and here is why.</p>
<h3>Clean up Please</h3>
<p>	One of the biggest issues with plugins is the fact that many just leave their tables in the database after they have been removed. A well thought out plugin that adds data to your DB should also:</p>
<ol>
<li>Remove the data from your database</li>
<li>Offer to let you download a .zipped copy of the data before deletion</li>
</ol>
<p>	The only plugins I&#8217;ve seen clean up after themselves are premium plugins like <a href="http://www.gravityforms.com/" title="Gravity Forms Plugin for WordPress">Gravity Forms</a>. Yes there may be other plugins of a non-commercial nature that do clean up after themselves I just haven&#8217;t seen them.</p>
<h3>Way more than I need</h3>
<p>    Many plugins for WordPress provide way more functionality than I need. In an attempt to serve the wide community that is WordPress plugins seem to bloat. Users request more features and the developer adds them to keep their users happy. Sure this sounds like a good plan but so many plugins offer a million different options for what was once a simple function.</p>
<h3>Trivial Functionality</h3>
<p>    While I&#8217;ll agree that WordPress is used by many people with differing degrees of comfort in code, I personally am happy to code. There are a ton of plugins that add trivial functionality (Feedburner RSS link) for which I think its silly to use a plugin. Producing a quick theme level option that uses the default WordPress feed or can substitute for any feed you choose is a trivial thing so I just use it in every theme I produce.</p>
<h3>Increased Likelihood of Issues</h3>
<p>	Anytime you add code to anything you&#8217;re increasing the likelihood of errors in the system. Each line of code can potentially include a security hole in your software. Code can break on upgrades of the system. With the recent release of WordPress 3.0 many people reported issues during upgrade because of plugins. I personally experience issues with the <a href="http://podcastingplugin.com/" title="TSG Podcasting WordPress plugin">TSG Podcasting plugin</a>. It gave me a mysterious white screen of death. Yeah it was upgraded pretty quickly but the fact is that WordPress 3 betas were around for a long time and the plugin author waited to update till after issues were out.</p>
<p>	I&#8217;m not trying to call TSG out, it&#8217;s just an example that happened recently. I still use the plugin and don&#8217;t plan on switching.</p>
<h3>Long Term Support</h3>
<p>	This issue has raised it&#8217;s head before and the WordPress community is trying to deal with it by introducing the notion of <a href="http://wordpress.org/development/2009/12/canonical-plugins/" title="Canonical Plugins for WordPress">Canonical Plugins</a>. There are many cases of plugins just stopping development. With the wide user base of WordPress it&#8217;s almost guaranteed that there will be hundreds of people using any given plugin. That&#8217;s hundreds of people who aren&#8217;t happy when the unsupported plugin breaks. If there is a plugin I&#8217;m relying on I&#8217;d rather also be in control of its development. At the very least I want to see a commitment to the continued development of the plugin.</p>
<p>	There are few plugins that truly have any type of long-term development commitment so I&#8217;m just hoping development will continue.</p>
<h3>Making the WordPress Plugin Ecosystem more Robust</h3>
<p>    I&#8217;ve alluded to many of these but, here are the items I&#8217;d like to see WordPress work on with Plugins:</p>
<ol>
<li>
            <strong>Uninstall Mechanism</strong></p>
<p>The WordPress Plugin API should include an easy call which would allow plugins to remove all of the data they&#8217;ve introduced into the database as well as offer a .zipped copy of that data. This isn&#8217;t something each plugin developer should have to build themselves.</p>
</li>
<li>
            <strong>Version Compatibility Checks</strong></p>
<p>When upgrading WordPress it should check if all of the current plugins are marked as version compatible with the version you&#8217;re upgrading to. If not it should give you the opportunity to upgrade or to stop the upgrade. Yes this means plugin authors will have to tag their plugin as compatible with the proper version of WordPress and no it doesn&#8217;t really stop them from tagging without testing but it&#8217;s better than nothing.</p>
</li>
<li>
            <strong>Easily Transfer Ownership of Undeveloped Plugins</strong></p>
<p>There are also lots of plugins in the repository that are dead in the water. Currently there is no real mechanism to pass on ownership of a plugin. Not only should this be easy for a plugin author to do, it should also be possible to transfer the ownership of a plugin given a stop in development, a compatibility issue, and no response from the original developer. Yes there needs to be some process to make sure that plugins aren&#8217;t being removed inappropriately but there needs to be a process to give dead plugins to developers that want to maintain them.</p>
</li>
<li>
            <strong>Development Commitment</strong></p>
<p>There should be some sort of development agreement provided by WordPress that developers can optionally agree to. Something that says this will be in development for the next 6 months or maybe that it will be updated for the next release of WordPress. Developers would need to tag the version appropriately at the release of each WordPress version. Yeah this idea needs more development so leave your thoughts in the comments.</p>
</li>
<li>
            <strong>Easily Remove Outdated Plugins</strong></p>
<p>This idea came to light from discussions on the WordPress Hackers Mailing list. It seems that plugins whose functionality is no longer needed (because it&#8217;s in WordPress core) are still sitting on the WordPress Plugin Repository. There is no clear way to remove a plugin from the repository.</p>
</li>
</ol>
<h3>I don&#8217;t</h3>
<p>	Now despite my dislike of plugins I don&#8217;t disable them or their updates on any sites I produce. </p>
<p>	Firstly clients aren&#8217;t coders so they may need functionality that is supplied by a plugin. Sure I might code it directly into the themes functions file but clients don&#8217;t want to always have to come to me for everything.</p>
<p>	Secondly entirely disabling the plugin updates and plugin system is more work than I want to do. Even on a site that I manage regularly sometimes I just need something to work and work quickly. In that case I&#8217;ll resort to a plugin until I have time to add the functions myself.</p>
<p>	Thirdly WordPress uses its own plugin architecture to modify itself so stripping out the plugin functionality entirely would break a site.</p>
<p>	Forth removing plugin function would be like forking WordPress. I&#8217;m not working on any sites that are so mission critical that the time I&#8217;d spend stripping out plugin functionality and making WordPress still work is worth it in any fashion. For some government organizations this would make sense because of the sensitivity of their data but I&#8217;m not working with anything like that.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=m-JRkPRuZiM:kpJReCxuFY8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=m-JRkPRuZiM:kpJReCxuFY8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=m-JRkPRuZiM:kpJReCxuFY8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=m-JRkPRuZiM:kpJReCxuFY8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=m-JRkPRuZiM:kpJReCxuFY8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=m-JRkPRuZiM:kpJReCxuFY8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=m-JRkPRuZiM:kpJReCxuFY8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=m-JRkPRuZiM:kpJReCxuFY8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/m-JRkPRuZiM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/wordpress/the-case-against-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/wordpress/the-case-against-wordpress-plugins/</feedburner:origLink></item>
		<item>
		<title>SEO, It’s Not Magic, and It’s Hard Work</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/hRz1MqUnt1E/</link>
		<comments>http://www.curtismchale.ca/search-engine-optimization/seo-its-not-magic-and-its-hard-work/#comments</comments>
		<pubDate>Thu, 27 May 2010 12:00:31 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[good web content]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1251</guid>
		<description><![CDATA[During almost every website I build I get asked by my client&#8217;s what I&#8217;ll be doing to make sure their site ranks high for XXXXXX search term. Unfortunately this stems from the widely held belief that SEO is some sort of magic Voodoo that is done by the site code only. We can&#8217;t blame clients [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1255" class="wp-caption alignright" style="width: 310px"><img src="http://www.curtismchale.ca/wp-content/uploads/2010/05/seo-not-magic.jpg" alt="SEO image" title="seo-not-magic" width="300" height="300" class="size-full wp-image-1255" /><p class="wp-caption-text">SEO image</p></div><br />
During almost every website I build I get asked by my client&#8217;s what I&#8217;ll be doing to make sure their site ranks high for XXXXXX search term. Unfortunately this stems from the widely held belief that SEO is some sort of magic Voodoo that is done by the site code only. We can&#8217;t blame clients for wanting to rank well in search since it&#8217;s such a traffic driver but we can educate them so that they think of SEO properly.</p>
<h3>It&#8217;s All Wrong</h3>
<p>I&#8217;m not sure where this dumb idea about SEO being all in code and trickery came from but the fact is that this is wrong. Sure a well coded site using current best practices is a huge leg up in gaining search engine ranking but if there is no original, good content on the site there is nothing to be crawled by search engines.</p>
<h3>Good Content!</h3>
<p>I think back about one client who had lots of content on their site. They put up something new each day. It was relevant to their field even. Unfortunately it sucked. All they did was grab a news story that related to search terms they wanted to rank for and put the headline on their site with the first paragraph from the article. Sometimes they added a link to the original source. The article was followed by a link to their contact form.</p>
<p>While this is content, and it is published regularly, it&#8217;s not good original content so ultimately they&#8217;re just wasting their time. SEO comes from good original content.</p>
<h3>I Now Refuse</h3>
<p>Unfortunately with the client I list above about 4 months later they came to me complaining that they still weren&#8217;t ranking for the search terms they wanted to rank for and started blaming me for it. When I asked if they were writing at least one original article a week I was told:</p>
<blockquote><p>
    In a perfect world we&#8217;d take the time for that, but it&#8217;s just not going to happen.
</p></blockquote>
<p>This has lead me to one response to clients when we start talking about SEO. As soon as they start to talk about it I ask if they&#8217;re going to write original content at least once a week. If I get any other answer than &ldquo;Yes&rdquo; I tell them to stop talking about SEO. If you give me no original content to work with there is nothing I can do.</p>
<h2>SEO is not magic. It&#8217;s good content, Good Content, GOOD CONTENT</h2>
<h3>The Right Way to Think About SEO</h3>
<p>When you think about SEO you need to be thinking about a long term plan for how you&#8217;re going to achieve ranking for search terms. It&#8217;s not instant pay off, but a long term commitment to produce good content.</p>
<p>I currently like to cite the <a href="http://fraservalleywhitewater.com" title="Fraser Valley Whitewater - The spot for Paddling news in the lower mainland">paddling site</a> I run with a friend. I&#8217;ve been heavily involved in the site for 3 years. The first design/code I did for the site sucked. I can live with that reality. I was new to WordPress and hadn&#8217;t dug into SEO much so the markup was not well suited to identifying content to search engines. </p>
<p>I only rebuilt the site last year and while we did see some increase in repeat traffic and see more people clicking on more articles with the redesign, we really didn&#8217;t see an increase in search engine visitors. We see about 1000 people a day come directly from search terms. Having talked with a number of other paddlers running sites we&#8217;re far and above the highest in about 90% of the cases.</p>
<p>We out rank local stores for purchase specific search terms. I don&#8217;t even sell anything.</p>
<p>We have accomplished this with approximately 100 articles. When we want to rank for a new search term, or better for a current one, we come up with 3 or 4 articles to write that would pertain to the term then sit down and write them. Then we wait a few weeks and guess what, we start seeing people come to our site via the terms we wanted to rank for.</p>
<p>That&#8217;s my big secret.</p>
<h3>Just Stop</h3>
<p>So stop thinking that some company can come in and help you move from not ranking at all to ranking number 1 on Google for a term. Sit down and get some original content on the site. Do some work instead of expecting someone else to do it for you. Stop being lazy. Setup a long term plan and follow through on it. Sure it&#8217;s not easy but it&#8217;s what needs to get done.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=hRz1MqUnt1E:U6NS3xH3Kd0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=hRz1MqUnt1E:U6NS3xH3Kd0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=hRz1MqUnt1E:U6NS3xH3Kd0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=hRz1MqUnt1E:U6NS3xH3Kd0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=hRz1MqUnt1E:U6NS3xH3Kd0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=hRz1MqUnt1E:U6NS3xH3Kd0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=hRz1MqUnt1E:U6NS3xH3Kd0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=hRz1MqUnt1E:U6NS3xH3Kd0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/hRz1MqUnt1E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/search-engine-optimization/seo-its-not-magic-and-its-hard-work/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/search-engine-optimization/seo-its-not-magic-and-its-hard-work/</feedburner:origLink></item>
		<item>
		<title>Launch Perfect or On Time? - Are you Bogged Down in Things that Don't Matter?</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/sHf-hdgjbQQ/</link>
		<comments>http://www.curtismchale.ca/business/launch-perfect-or-on-time/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 12:00:01 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[personal projects]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[trim the fat]]></category>
		<category><![CDATA[your workflow]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1242</guid>
		<description><![CDATA[So I recently launched Your Workflow which was inspired a few months ago by @dennis_j_bell. As with all personal projects the ideas sit in your head for a while taking shape. Since personal projects don&#8217;t always really pay the bills it&#8217;s easy to get them sidetracked which means they&#8217;d never actually get done. But if [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1248" class="wp-caption alignright" style="width: 260px"><img class="size-full wp-image-1248" title="launch-ontime-or-perfect" src="http://www.curtismchale.ca/wp-content/uploads/2010/04/launch-ontime-or-perfect.png" alt="screenshot of a timeline" width="250" height="250" /><p class="wp-caption-text">screenshot of a timeline</p></div>
<p>So I recently launched <a title="Your Workflow Homepage" href="http://yourworkflow.ca">Your Workflow</a> which was inspired a few months ago by <a title="Dennis J. Bell on Twitter" href="http://twitter.com/dennis_j_bell">@dennis_j_bell</a>.</p>
<p>As with all personal projects the ideas sit in your head for a while taking shape. Since personal projects don&#8217;t always really pay the bills it&#8217;s easy to get them sidetracked which means they&#8217;d never actually get done. But if it&#8217;s something you really want to do you eventually set a due date announce it then work to hit it.</p>
<h3>The Timeline</h3>
<p>For me the it ended up being a 2 week turn around from formal announcement to actually launching. As I came up to the week before I got lots of extra client work which is awesome because I like my house and I like to eat, unfortunately this also left me with a bunch of to do items on the site that just weren&#8217;t going to fit inside the time I had left.</p>
<h3>The Evaluation</h3>
<p>With time a ticking away (points if you know the song reference) I was faced with a decision about which features would actually make it into the site. The two things that had to be in it were, a working WordPress theme, and the first audio show. Since I had both of those things already I decided that launching on time was the way to go.</p>
<p>Sure the first audio show is a bit rough around the edges, it doesn&#8217;t have intro music and cuts out abruptly but it&#8217;s there to listen to.</p>
<h3>The Cuts</h3>
<p>Some of the cuts ended up being the site advertising. I&#8217;d like <a title="Your Workflow Homepage" href="http://yourworkflow.ca">Your Workflow</a> to make some money so that I can justify running it long-term but to launch the site I can skip the adds.</p>
<p>I also wanted to set up a good deployment strategy. No more of this FTP changes crap. Lets leverage the power of the terminal and Git and get deployments streamlined. Well that got cut to. Sure it saves me time but it&#8217;s not needed to launch a site.</p>
<p>Probably the final thing I cut that was of some importance was the show images. The first show didn&#8217;t have an image when I launched it. Sure it has one now but again the reality is that it didn&#8217;t need an image to actually launch so it got cut.</p>
<h3>The Blessing of Deadlines</h3>
<p>The reality is that setting aggressive deadlines is awesome to help you prioritize the things that are actually important in your project. I highly advise setting aggressive deadlines to force yourself to trim the fat and just put out what you need. You can always iterate the project later.</p>
<p>The day after the launch of Your Workflow I push code changes 3 times. I&#8217;ve push 3 code over the weekend and setup a pretty solid deployment strategy that leverages the git enabled web sever the site runs on. Now I&#8217;m fleshing out the things that are nice to have.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=sHf-hdgjbQQ:m0jjPfydJTE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=sHf-hdgjbQQ:m0jjPfydJTE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=sHf-hdgjbQQ:m0jjPfydJTE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=sHf-hdgjbQQ:m0jjPfydJTE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=sHf-hdgjbQQ:m0jjPfydJTE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=sHf-hdgjbQQ:m0jjPfydJTE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=sHf-hdgjbQQ:m0jjPfydJTE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=sHf-hdgjbQQ:m0jjPfydJTE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/sHf-hdgjbQQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/business/launch-perfect-or-on-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/business/launch-perfect-or-on-time/</feedburner:origLink></item>
		<item>
		<title>Time for a Change</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/ZGYCRmli9GE/</link>
		<comments>http://www.curtismchale.ca/business/time-for-a-change/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 12:00:33 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1233</guid>
		<description><![CDATA[I&#8217;ve been blogging on random things here for a few years now. I&#8217;ve taken a few breaks here and there of course but I think I have been fairly consistent and accomplished the goals needed for this site/blog. Today I announce that I will be changing the focus of the site and blog. The Focus [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1235" class="wp-caption alignright" style="width: 260px"><img class="size-full wp-image-1235" title="your-workflow" src="http://www.curtismchale.ca/wp-content/uploads/2010/04/your-workflow.jpg" alt="Your Workflow site design" width="250" height="250" /><p class="wp-caption-text">Your Workflow site design</p></div>
<p>I&#8217;ve been blogging on random things here for a few years now. I&#8217;ve taken a few breaks here and there of course but I think I have been fairly consistent and accomplished the goals needed for this site/blog. Today I announce that I will be changing the focus of the site and blog.</p>
<h3>The Focus</h3>
<p>This site is really meant to generate leads for clients. Currently my top searches have little to do with anything a small business would be looking for. Because I like blogging in general I will be opening a new blog on April 20 2010 called <a title="Your Workflow" href="http://yourworkflow.ca">Your Workflow</a>.</p>
<p>Your Workflow will be focusing on the workflows of people in the creative and coding industry. Everything from client acquisition, to coding, to database design and management.</p>
<h3>The Idea</h3>
<p>The idea for <a title="Your Workflow" href="http://yourworkflow.ca">Your Workflow</a> came from a car ride discussion with <a title="Twitter Dan Kubb" href="http://twitter.com/dkubb">@dkubb</a> about the tools each of us use to track our time and invoice clients. The others in the car were deeply interested and have been bugging me for a few weeks to get some of my ideas out.</p>
<p>To that end Your Workflow will be started.</p>
<h3>But what about…</h3>
<p>What about some of the series posts you&#8217;ve been doing on this site? I plan to finish them still. Some will move over to <a title="Your Workflow" href="http://yourworkflow.ca">Your Workflow</a> some will finish out here. It just depends on the audience they suit.</p>
<h3>Your Workflow</h3>
<p>If you&#8217;re interested in <a title="Your Workflow" href="http://yourworkflow.ca">Your Workflow</a> head over to the site and follow the twitter account listed there.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=ZGYCRmli9GE:BeNPZ3H71bw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=ZGYCRmli9GE:BeNPZ3H71bw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=ZGYCRmli9GE:BeNPZ3H71bw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=ZGYCRmli9GE:BeNPZ3H71bw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=ZGYCRmli9GE:BeNPZ3H71bw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=ZGYCRmli9GE:BeNPZ3H71bw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=ZGYCRmli9GE:BeNPZ3H71bw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=ZGYCRmli9GE:BeNPZ3H71bw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/ZGYCRmli9GE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/business/time-for-a-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/business/time-for-a-change/</feedburner:origLink></item>
		<item>
		<title>The Great Windows Code Editor Hunt: InType - Yeah It's Still in Beta</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/AwQSyA-4r1s/</link>
		<comments>http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt-intype/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 12:00:52 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[bundles]]></category>
		<category><![CDATA[code editor]]></category>
		<category><![CDATA[InType]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[textmate]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1209</guid>
		<description><![CDATA[We’re now on the third code editor in our epic hunt for a great windows editor. If you’d like to catch up and see where we’ve been: The Great Windows Code Editor Hunt: Part 1 Dreamweaver Komodo Edit Now it’s on to InType. InType is still in Alpha and is similar to Textmate for OSX. [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1220" class="wp-caption alignright" style="width: 260px"><img class="size-full wp-image-1220" title="intype-logo" src="http://www.curtismchale.ca/wp-content/uploads/2010/04/intype-logo.jpg" alt="InType Logo" width="250" height="250" /><p class="wp-caption-text">InType Logo</p></div>
<p>We’re now on the third code editor in our epic hunt for a great windows editor. If you’d like to catch up and see where we’ve been:</p>
<p><a title="Part 1 of The Great Windows Code Editor Hunt" href="http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt/">The Great Windows Code Editor Hunt: Part 1</a></p>
<p><a title="Review of Dreamweaver" href="http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt-dreamweaver/">Dreamweaver</a></p>
<p><a title="Review of Komodo Edit" href="http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt-dreamweaver/">Komodo Edit</a></p>
<p>Now it’s on to <a title="Intype homepage" href="http://intype.info/home/index.php">InType</a>.</p>
<p>InType is still in Alpha and is similar to <a title="Textmate homepage" href="http://macromates.com/">Textmate</a> for OSX. In fact it’s so similar that it even imports Textmate <a title="list of InType bundles" href="http://intype.info/download/bundles/">bundles</a> with a bit of conversion. I just started using Textmate on my OSX installation (switching from Coda for HAML, SASS, and LESS highlighting) and the two do bear a number of similarities.</p>
<h3>The Good</h3>
<p>InType starts up super fast which is a far cry from the other two editors (Dreamweaver, Komodo Edit) that I’ve looked at so far. Even while rendering video in Handbrake, InType started up with little lag and remained responsive during the entire time used.</p>
<p>A second point for InType is the amazing code completion. With all of the <a title="InType bundles list" href="http://intype.info/download/bundles/">bundles</a> available for InType you’re pretty sure to find the language and code completion you’re looking for. Sure it doesn’t have some of the popular web app languages like Ruby but you shouldn’t be doing <a title="Setup Ruby on Rails on Windows" href="http://www.curtismchale.ca/tutorials/the-best-windows-ruby-on-rails-setup-part-1-screentcast/">ROR dev on a Windows box</a> anyway.</p>
<div id="attachment_1210" class="wp-caption aligncenter" style="width: 466px"><img class="size-full wp-image-1210" title="bundle-list" src="http://www.curtismchale.ca/wp-content/uploads/2010/03/bundle-list.png" alt="image of the InType bundle list" width="456" height="283" /><p class="wp-caption-text">image of the InType bundle list</p></div>
<p>InType is also very configurable. While it doesn’t have the wealth of options that Dreamweaver has you also don’t spend an hour looking for an option. Really the most important ones are at your finger tips in the main editor window. Need to change your indentation for HAML to two spaces…go ahead it’s at the bottom of the editor window.</p>
<div id="attachment_1213" class="wp-caption aligncenter" style="width: 450px"><img class="size-full wp-image-1213 " title="preferences" src="http://www.curtismchale.ca/wp-content/uploads/2010/03/preferences.png" alt="Intpye preferences panel" width="440" height="488" /><p class="wp-caption-text">Intpye preferences panel</p></div>
<p>That also brings me to another great feature of InType, visualization of your tabs and spaces. I haven’t had an editor that has done this before so when I opened my projects in InType I was greeted by a cacophony of tab and space styles. Ultimately it made more work for me as I went through and changed everything to be 4 spaces but it means I’ve got cleaner code instead of the soup of indentation styles I unknowingly had before.</p>
<h3>The Bad</h3>
<p>I know InType is still in Alpha and it does show sometimes. One issue that kept cropping up for me would appear when starting InType up, for some reason it would forget it’s location and open with a small window in the upper left corner of my monitor. Now I normally use two monitors and have the code editor open in the bottom right of my second monitor…so InType would jump across my entire desktop on occasion.</p>
<div id="attachment_1217" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1217" title="small-odd-window" src="http://www.curtismchale.ca/wp-content/uploads/2010/04/small-odd-window.png" alt="InType forgot where it should be" width="500" height="451" /><p class="wp-caption-text">InType forgot where it should be</p></div>
<p>Another point against InType is the fact that it adds a project file to your project. Not a huge issue but yet another file to declare in my .gitignore file. I’d prefer that we didn’t add a project file but I can live with it.</p>
<p>The code completion of InType could also throw off some users. Sure it’s similar to how Textmate works but it’s also very different from the way Komodo Edit or Dreamweaver does it. Both Komodo Edit and Dreamweaver start hinting while you’re typing while InType waits till you hit tab before providing options to complete you’re typing. So when working in CSS you’ll need to type “background” then press tab, which will present you with all of the options for background. It even shows you the properties that background can take. Again it works but depending on where your experience lies you may find it odd.</p>
<div id="attachment_1218" class="wp-caption aligncenter" style="width: 509px"><img class="size-medium wp-image-1218" title="code-completion" src="http://www.curtismchale.ca/wp-content/uploads/2010/04/code-completion-499x246.png" alt="Intype's code completion" width="499" height="246" /><p class="wp-caption-text">Intype&#39;s code completion</p></div>
<p>Finally, and probably the biggest point against InType is the fact that it doesn’t have access to remote files. If you’re working with InType you’re working locally. I honestly do this anyway so it’s not a huge issue for me to fire up a FTP client or SSH into the server and transfer the needed files when I’m putting up a project for final client sign-off. It would be nice though to be able to connect to multiple servers out of a project like Dreamweaver does.</p>
<h3>The Conclusion</h3>
<p>While InType is a bit rough around a few edges overall it’s a pretty solid editor. It has all of the little features like easy theme management, code completion and the few draw backs are hardly show stoppers. At the end of the day InType is happy to just melt into the background and let you interact with your code.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=AwQSyA-4r1s:a7mUswC9U-M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=AwQSyA-4r1s:a7mUswC9U-M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=AwQSyA-4r1s:a7mUswC9U-M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=AwQSyA-4r1s:a7mUswC9U-M:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=AwQSyA-4r1s:a7mUswC9U-M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=AwQSyA-4r1s:a7mUswC9U-M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=AwQSyA-4r1s:a7mUswC9U-M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=AwQSyA-4r1s:a7mUswC9U-M:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/AwQSyA-4r1s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt-intype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/reviews/the-great-windows-code-editor-hunt-intype/</feedburner:origLink></item>
		<item>
		<title>5 Things A Client Should Ask a Prospective Web Designer or Agency - How Do Web Design Clients Navigate the Tricky World?</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/lbOMBfhIAuo/</link>
		<comments>http://www.curtismchale.ca/business/5-things-a-client-should-ask-a-prospective-web-designer-or-agency/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 12:00:28 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[client communication]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[creative process]]></category>
		<category><![CDATA[relationship]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web design client]]></category>
		<category><![CDATA[web designer]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1223</guid>
		<description><![CDATA[Evaluating a company or person to build your website is a tricky thing. What do you expect? What things do you need to know? Here are 5 questions that a client should be asking all companies in the running to build their next website. Have you worked on any similar projects? While it is possible [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1228" class="wp-caption alignright" style="width: 260px"><img src="http://www.curtismchale.ca/wp-content/uploads/2010/03/5-questions-evaluate-designer.jpg" alt="Man and Woman Dancing" title="5-questions-evaluate-designer" width="250" height="250" class="size-full wp-image-1228" /><p class="wp-caption-text">Man and Woman Dancing</p></div><br />
Evaluating a company or person to build your website is a tricky thing. What do  you expect? What things do you need to know? Here are 5 questions that a client should be asking all companies in the running to build their next website.</p>
<ol>
<li><strong>Have you worked on any similar projects?</strong> While it is possible that the designers and agencies you are talking to about your project have never worked in your specific field before building an e-commerce site for a canoe shop or for a place selling paintball equipment is very similar. The target market might be a bit different but the issues that you will need to deal with are the same. Find out what projects they have done that they feel have similar issues to  your site.</li>
<li><strong>What type of communication can I expect?</strong> Communication is key. Sure it is an often heard motto, but really how often does a company really take that to heart? My experience from working full-time in-house and contracting out work, is that many companies don’t really take communication seriously. At one point I sent enquiries to a number (link) of agencies in BC and only heard from 2. I’ve also dealt with a company that would, seemingly, drop off the face of the earth for a few days (10 at one point). Not the type of communication I would allow.When I work with a client I touch base at the very least on Friday and Monday of each week, while a project is active. Sure a late Thursday email counts as well but the point is to wrap up the week, setup what you’ll be working on next week and then on Monday communicate again about the goals of the coming week. All it does is let the client know that they are a priority. Make sure that heading into a project you know what type and how frequent communication will be. Make sure that you establish your communication needs.</li>
<li><strong>What is the design process?</strong> Will you see a wireframe? How many design options will you see? The reality is that there are many differing opinions on what is needed in a design process. I do wireframe. Some project get a lot of wireframing. Some projects start with a bit of sketching, then move quickly onto wireframing then get into Photoshop. That wireframing may have only been to sketch out ideas and may really not be anything to show off. Sometimes in the middle of a project I’ll start sketching out some elements on a page to get my creative ideas solid. Just because I went through all of the items above on a project doesn’t mean that I end up showing the client each little stage of the process.Make sure that you know what the creative process is and what parts you can expect to see. As I said I do wirfeframes sometimes. If at the end of a full wireframe I’m not sure about content layout then I show it to a a client. This probably only happens on about 20% of project. Often I get part way through the wireframe and the content layout gets solid and I start thinking of the visuals. In that case the client probably will not see the wireframes. Just be sure you know what to expect and make your expectations know.</li>
<li><strong>Do you have the capacity to meet the deadline?</strong> Just because the agency you’re talking to employ’s 20 people doesn’t mean they have the time to meet your deadlines. It is entirely possible that all of the staff are tied up with other clients already.One note for clients though, an average blog project easily takes 4 weeks from contract signed to finished. If it’s anything more than that you need to add time. While you may have a preferred finish time (asap is typical) remember that it may not be a realistic one. Use this question to evaluate how they schedule themselves as well as how many staff (or hours in a week) they will devote to your project.</li>
<li><strong>What are your pet peeves in web design right now?</strong> This is a great time to listen to the web designer talk about the pet peeves they have in web design right now. Some will talk about the design of forms, some will wax poetic about elegant code. Don’t ask them this to judge them on the specifics, ask them to hear their passion. Ask them to make sure the things you see as issues with your site are issues that your designer is passionate about.Remember that just because they don’t express your specific concerns as their passion doesn’t mean they don’t have strong opinions on them. As with anything passions and pet peeves run in cycles. While they may not be passionate today about the things that bug you they may have been bugged by those same issues 2 months ago. It’s always a good idea to read through their blog (if they have one) and to ask them questions specifically around the items that are of concern to you.</li>
</ol>
<h3>Wrap It Up</h3>
<p>Really figuring out who to work with on a web project is a bit like getting a new dance partner. You need to communicate up front to make sure that you’re both in sync.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=lbOMBfhIAuo:gkGv0SOpoVw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=lbOMBfhIAuo:gkGv0SOpoVw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=lbOMBfhIAuo:gkGv0SOpoVw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=lbOMBfhIAuo:gkGv0SOpoVw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=lbOMBfhIAuo:gkGv0SOpoVw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=lbOMBfhIAuo:gkGv0SOpoVw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=lbOMBfhIAuo:gkGv0SOpoVw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=lbOMBfhIAuo:gkGv0SOpoVw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/lbOMBfhIAuo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/business/5-things-a-client-should-ask-a-prospective-web-designer-or-agency/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/business/5-things-a-client-should-ask-a-prospective-web-designer-or-agency/</feedburner:origLink></item>
		<item>
		<title>5 Jobs Clients Have During a Web Project - Hiring a Web Designer Doesn’t Mean Your Work is Done</title>
		<link>http://feedproxy.google.com/~r/Sfnaim/~3/w3FP_6MTOuw/</link>
		<comments>http://www.curtismchale.ca/business/5-jobs-clients-have-during-a-web-project/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 12:00:04 +0000</pubDate>
		<dc:creator>Curtis McHale</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[client relations]]></category>
		<category><![CDATA[client web design]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web design agency]]></category>

		<guid isPermaLink="false">http://www.curtismchale.ca/?p=1200</guid>
		<description><![CDATA[For some reason many clients think that the only job they have in developing their websites is to hire the person/company that is going to build the site. Unfortunately they haven’t realized that once they hire someone to build the website their work has just begun. Establish Your Business Goals: A site is not just [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.curtismchale.ca/wp-content/uploads/2010/03/blueprint.jpg" alt="" title="blueprint" width="300" height="300" class="alignright size-full wp-image-1204" /><br />
For some reason many clients think that the only job they have in developing their websites is to hire the person/company that is going to build the site. Unfortunately they haven’t realized that once they hire someone to build the website their work has just begun.</p>
<ol>
<li><strong>Establish Your Business Goals</strong>: A site is not just there to look pretty, you want a new site built to accomplish something for your business. Whether it’s just to attract local search or we’re building an e-commerce site and we want to increase sales by 10% this year, sites are built for specific business purposes.Clients need to make sure that their web designer knows what business goals need to be accomplished by the site they are building. If they don’t ask tell them. If they don’t build the site with your business goals in mind it won’t accomplish them well at all.</li>
<li><strong>Establish Your Target</strong>: Audience: Tied closely with your business goals is your target audience. You know basic details about the clients you encounter each day. You know the types of clients that you deal with, and the new ones you want to reach.Your web designer needs to know the types of clients that your site is supposed to reach. They need you to pass along the knowledge you’ve gained about your target audience’s likes and dislikes over the years you’ve dealt with them.</li>
<li><strong>Find Problems</strong>: During the development of a site you need to find the problems in the site. No matter how long you’ve worked with a web designer or developer you still know your business the best and need to help educate them to their blind spots. You need to help them find the ways that their design doesn’t fit your vision and help them fix the issue.This doesn’t mean that you just tell them to “move that box to the other side” or “just make it blue.” It means that you describe why you want the changes so that the web designer can work with you to find the solutions. Maybe you want it blue because you want to cater to men? Whatever the reason is you need to tell your web designer what the problem is and why it is a problem so that you can work together to find a solution.</li>
<li><strong>Deliver Content</strong>: As soon as your web designer shows you a copy of the initial design you need to start thinking about the content that will be needed to fill the design. Unless you’ve hired a copy writer or the agency you deal with has people to work on the content of your site, it’s all up to you. Content takes a lot more work than most client’s realize so don’t start working on the content the week a site is supposed to launch or it will either miss the launch date or launch without content. Either option is less than acceptable.</li>
<li><strong>Establish a Long Term Plan</strong>: Probably one of the biggest things that clients can do during a web project is to realize that the site isn’t done once it launches. All of the little things you think of during a project that you just can’t accomplish are perfect for adding to the long-term development of the site.From the first day clients should be keeping a list of the little things they think of so that once the site launches you can continue to improve the site. Leaving a website languishing for a few years, then rebuilding it from the ground up is a poor use of time and money. Don’t let yourself do that.</li>
</ol>
<p>So clients, when you start that next web project keep the 5 things above in mind. You do have a very important job to do. Without your continued work the project and site will fail.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Sfnaim?a=w3FP_6MTOuw:w98IxfRWpUk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=w3FP_6MTOuw:w98IxfRWpUk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=w3FP_6MTOuw:w98IxfRWpUk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=w3FP_6MTOuw:w98IxfRWpUk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Sfnaim?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=w3FP_6MTOuw:w98IxfRWpUk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=w3FP_6MTOuw:w98IxfRWpUk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Sfnaim?a=w3FP_6MTOuw:w98IxfRWpUk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Sfnaim?i=w3FP_6MTOuw:w98IxfRWpUk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Sfnaim/~4/w3FP_6MTOuw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.curtismchale.ca/business/5-jobs-clients-have-during-a-web-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.curtismchale.ca/business/5-jobs-clients-have-during-a-web-project/</feedburner:origLink></item>
	</channel>
</rss>
