<?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>Ward on the Web</title>
	
	<link>http://www.wardontheweb.com</link>
	<description>Valuable Insights for Better Websites</description>
	<lastBuildDate>Mon, 08 Feb 2010 13:00:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WardOnTheWeb" /><feedburner:info uri="wardontheweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>WardOnTheWeb</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Attach Files to Taxonomy Terms in Drupal</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/Ae5CaV6Fm9s/</link>
		<comments>http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 13:00:30 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=424</guid>
		<description><![CDATA[From what I can tell, there are plenty of ways to attach files to nodes in Drupal, and even a few ways to attach them to users, but none that I could find to attach them to taxonomy terms (images through the Taxonomy Image module, for sure, but not files in general).  My guess [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/' rel='bookmark' title='Permanent Link: Selectable Items per Page Hack for Drupal 6 Views'>Selectable Items per Page Hack for Drupal 6 Views</a></li>
<li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>From what I can tell, there are plenty of ways to attach files to nodes in Drupal, and even a few ways to attach them to users, but none that I could find to attach them to taxonomy terms (images through the <a href="http://drupal.org/project/taxonomy_image">Taxonomy Image</a> module, for sure, but not files in general).  My guess is that there just aren&#8217;t enough people who need to do so.</p>
<p>In a recent project, however, I found myself needing just that.  The client in question was using a vocabulary of fonts that had to be associated with their respective font files for JavaScript.  After beating my head against the problem for awhile, I managed to figure out a solution.  Instead of attaching a file directly to the taxonomy term, I assigned the same vocabulary to a new content type to hold the attachment.  Here&#8217;s how it works:</p>
<ol>
<li>Go to Administer &gt; Site building &gt; Modules and make sure the core Taxonomy and Upload modules are enabled.</li>
<li>Go to Administer &gt; Content management &gt; Content types and click the link at the bottom to Add a new content type.</li>
<li>Give your new content type an intuitive name (e.g., Font File) and enable attachments under Workflow settings.  Configure the other settings as you see fit and hit Save.</li>
<li>Go to Administer &gt; Content management &gt; Taxonomy and edit the vocabulary for which the file attachments are intended (e.g., Fonts).  Check the box next to your new content type and click Save.</li>
</ol>
<p>Great!  Now you have a way of associating a term with a file, albeit indirectly through a node.  How you use that information will, of course, vary.  In my case, the font files needed to be populated into a drop-down list of font choices for use by JavaScript.  Here&#8217;s how you might go about accessing the attachment from the database:</p>
<p><code> &lt;?php</code></p>
<p><code>// Fetch the file path of the most recently uploaded file attached to a node that shares the given term<br />
$attachment_path = db_result(db_query("</p>
<p>SELECT filepath FROM {files} f JOIN {upload} u ON f.fid = u.fid JOIN {node} n ON u.vid = n.vid JOIN {term_node} tn ON n.vid = tn.vid WHERE n.type = '%s' AND tn.tid = %d ORDER BY f.timestamp DESC LIMIT 1</p>
<p>", $NODE_TYPE_NAME, $TERM_ID));</p>
<p></code></p>
<p><code>?&gt;<br />
</code></p>
<p>Of course, the best solution would be to create a custom module to handle all of this.  In my case, there simply wasn&#8217;t enough time for that.  I invite some enterprising developer to invalidate my technique by creating a module that allows file attachments on taxonomy terms.  Until then, I hope someone finds my roundabout hack useful.</p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=424&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/' rel='bookmark' title='Permanent Link: Selectable Items per Page Hack for Drupal 6 Views'>Selectable Items per Page Hack for Drupal 6 Views</a></li>
<li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=Ae5CaV6Fm9s:24w6aXzov8Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=Ae5CaV6Fm9s:24w6aXzov8Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=Ae5CaV6Fm9s:24w6aXzov8Q:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=Ae5CaV6Fm9s:24w6aXzov8Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=Ae5CaV6Fm9s:24w6aXzov8Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=Ae5CaV6Fm9s:24w6aXzov8Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=Ae5CaV6Fm9s:24w6aXzov8Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=Ae5CaV6Fm9s:24w6aXzov8Q:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=Ae5CaV6Fm9s:24w6aXzov8Q:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/Ae5CaV6Fm9s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/</feedburner:origLink></item>
		<item>
		<title>7 Signals of Comment Spam</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/gkaPI_rwO2g/</link>
		<comments>http://www.wardontheweb.com/7-signals-of-comment-spam/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 03:02:49 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=419</guid>
		<description><![CDATA[Recently, I&#8217;ve found myself giving the same advice to several of my clients, many of whom are still getting into the swing of blogging.  All too often, they&#8217;re uncertain about whether or not to mark a comment as spam.  Caught between the desire to avoid spam but foster legitimate conversation, they come to [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/is-seo-an-art-or-a-science/' rel='bookmark' title='Permanent Link: Is SEO an Art or a Science?'>Is SEO an Art or a Science?</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve found myself giving the same advice to several of my clients, many of whom are still getting into the swing of blogging.  All too often, they&#8217;re uncertain about whether or not to mark a comment as spam.  Caught between the desire to avoid spam but foster legitimate conversation, they come to me, and these are the seven signals I tell them to look out for:</p>
<ol>
<li><strong>Links to Spammy Sites.</strong> The biggest red flag should always be links provided by the commenter.  Visit them and you can usually figure out pretty quickly if the commenter is working an angle.  I&#8217;ve marked well-thought-out, on-topic comments as spam before because they linked to sites I didn&#8217;t care to be associated with.</li>
<li><strong>Lots of Links.</strong> There are very few situations I&#8217;ve ever seen in which a comment with more than two or three links isn&#8217;t spam.  If the comment is chock full of them, or, worse, is nothing but a list of links, you should hear alarm bells ringing.</li>
<li><strong>Overuse of Keywords.</strong> Perhaps one of the most obvious cues is when a comment seems like little more than a list of keywords.  This may be blatant, or the keywords may be hidden within the comment, at the end of the comment, or in the commenter&#8217;s name.  This sort of spam is easy to catch, but you have to be willing to give your comments more than a cursory glance.</li>
<li><strong>Off-topic.</strong> While not a clear signal in and of itself, the topic of a comment can nevertheless be an important clue.  Ask yourself what the commenter is talking about.  Does it flow from the article in a natural way, or is it marginally related at best?  Does it unambiguously mention anything from the article?  The more it strays from the topic at hand, the more likely it&#8217;s copied-and-pasted junk.</li>
<li><strong>Complimentary.</strong> Make no mistake; spammers will play to your ego if they think it will get their comments posted.  Beware comments that pay too much respect to your work.  They may just be buttering you up to compromise your better judgment.</li>
<li><strong>Irregular Size.</strong> Comments vary in length, but extremely short or long comments beg greater scrutiny.</li>
<li><strong>Poor Grammar.</strong> This isn&#8217;t to say that ordinary commenters don&#8217;t have atrocious grammar some of the time.  However, it&#8217;s been my experience that most spammers have terrible grammar, even to the point of being nonsensical.  Whether this is because English isn&#8217;t their native language, the comment is computer-generated, or some other reason, I couldn&#8217;t say.  Whatever the case, it&#8217;s something to keep an eye out for.</li>
</ol>
<p>Remember; a comment may have one or more of these features and still be perfectly legitimate.  When in doubt, ask yourself this: What value does this comment provide to my readers?  If you find yourself on the low or negative end of the spectrum, toss the comment without a second thought.</p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=419&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/is-seo-an-art-or-a-science/' rel='bookmark' title='Permanent Link: Is SEO an Art or a Science?'>Is SEO an Art or a Science?</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=gkaPI_rwO2g:WUQAlxyPwSU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=gkaPI_rwO2g:WUQAlxyPwSU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=gkaPI_rwO2g:WUQAlxyPwSU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=gkaPI_rwO2g:WUQAlxyPwSU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=gkaPI_rwO2g:WUQAlxyPwSU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=gkaPI_rwO2g:WUQAlxyPwSU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=gkaPI_rwO2g:WUQAlxyPwSU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=gkaPI_rwO2g:WUQAlxyPwSU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=gkaPI_rwO2g:WUQAlxyPwSU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/gkaPI_rwO2g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/7-signals-of-comment-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/7-signals-of-comment-spam/</feedburner:origLink></item>
		<item>
		<title>Selectable Items per Page Hack for Drupal 6 Views</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/rAQ14QtUZgs/</link>
		<comments>http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 13:00:26 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=404</guid>
		<description><![CDATA[I&#8217;m sure regular contributors to Drupal will cringe at what I&#8217;m about to show you, but I found it to be a handy trick.  Let&#8217;s say you&#8217;re using the Views module in Drupal 6 and you want a way to dynamically control the number of items listed in a view.  In my case, [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure regular contributors to Drupal will cringe at what I&#8217;m about to show you, but I found it to be a handy trick.  Let&#8217;s say you&#8217;re using the Views module in Drupal 6 and you want a way to dynamically control the number of items listed in a view.  In my case, a client I was working for wanted to be able to select the number of products displayed per page.</p>
<p>Reasonable request, right?  Unfortunately, Views doesn&#8217;t handle it out of the box.  After a bit of fiddling, I managed to come up with the following hack.  Mind you, I use the term &#8220;hack&#8221; here literally; you should never edit a module like this if you can avoid it, if only because it makes updates painful later on.</p>
<p>The operative code is in the pre_execute() function on line 1795 of modules/plugins/views_plugin_display.inc.  It normally looks like this:</p>
<p><code>$this-&gt;view-&gt;set_items_per_page($this-&gt;get_option('items_per_page'));</code></p>
<p>As the name suggests, anything you feed to this function will set the number of items displayed by the view.  In my case, I wanted to use a URL variable coupled with a drop-down menu and some jQuery to toggle it, so I changed it like so:</p>
<p><code>$this-&gt;view-&gt;set_items_per_page((($_GET['items-per-page'] &gt; 0) ? $_GET['items-per-page'] : $this-&gt;get_option('items_per_page')));</code></p>
<p>Voila!  One line of code and you&#8217;re off to the races.  Type &#8216;?items-per-page=X&#8217; into the URL (with X being a number, of course) and it should work like a charm.  The pagination even follows suit.</p>
<p>For those who want the full solution, here&#8217;s the code for the drop-down menu.  You&#8217;ll need to add it to a view-specific template file.  Just follow the pattern to create your own items per page options.</p>
<p><code>&lt;?php $items_per_page_override = ($_GET['items-per-page'] &gt; 0) ? $_GET['items-per-page'] : 12; ?&gt;<br />
&lt;div id="items-per-page-selector"&gt;&lt;strong&gt;Items per Page:&lt;/strong&gt; &lt;select&gt;<br />
&lt;option value="12"&lt;?php echo ($items_per_page_override == 12) ? ' selected="selected"' : ''; ?&gt;&gt;12&lt;/option&gt;<br />
&lt;option value="18"&lt;?php echo ($items_per_page_override == 18) ? ' selected="selected"' : ''; ?&gt;&gt;18&lt;/option&gt;<br />
&lt;option value="24"&lt;?php echo ($items_per_page_override == 24) ? ' selected="selected"' : ''; ?&gt;&gt;24&lt;/option&gt;<br />
&lt;option value="9999"&lt;?php echo ($items_per_page_override == 9999) ? ' selected="selected"' : ''; ?&gt;&gt;All&lt;/option&gt;<br />
&lt;/select&gt;</code></p>
<p>And here is the jQuery that controls the behavior of the drop-down menu.</p>
<p><code>$(document).ready(function(){<br />
$('#items-per-page-selector select').change(function(){<br />
window.location = '?items-per-page=' + $(this).val();<br />
});<br />
});</code></p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=404&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=rAQ14QtUZgs:kITVseRvk7o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=rAQ14QtUZgs:kITVseRvk7o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=rAQ14QtUZgs:kITVseRvk7o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=rAQ14QtUZgs:kITVseRvk7o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=rAQ14QtUZgs:kITVseRvk7o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=rAQ14QtUZgs:kITVseRvk7o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=rAQ14QtUZgs:kITVseRvk7o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=rAQ14QtUZgs:kITVseRvk7o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=rAQ14QtUZgs:kITVseRvk7o:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/rAQ14QtUZgs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/</feedburner:origLink></item>
		<item>
		<title>Is SEO an Art or a Science?</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/N6SJaNYTGPg/</link>
		<comments>http://www.wardontheweb.com/is-seo-an-art-or-a-science/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 15:10:43 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[online marketing]]></category>
		<category><![CDATA[search engine optimization]]></category>
		<category><![CDATA[website strategy]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=401</guid>
		<description><![CDATA[I&#8217;ve been asked a lot of interview questions in my career, some more creative than others, but few have ever stumped me as much as this one: Is SEO an art or a science?
Think about it for a minute.  You may have a strong opinion one way or another; I know people who fall [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/7-signals-of-comment-spam/' rel='bookmark' title='Permanent Link: 7 Signals of Comment Spam'>7 Signals of Comment Spam</a></li>
<li><a href='http://www.wardontheweb.com/10-performance-tips-to-speed-up-php/' rel='bookmark' title='Permanent Link: 10 Performance Tips to Speed Up PHP'>10 Performance Tips to Speed Up PHP</a></li>
<li><a href='http://www.wardontheweb.com/guess-who-owns-information-online/' rel='bookmark' title='Permanent Link: Guess Who Owns Information Online'>Guess Who Owns Information Online</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked a lot of interview questions in my career, some more creative than others, but few have ever stumped me as much as this one: Is SEO an art or a science?</p>
<p>Think about it for a minute.  You may have a strong opinion one way or another; I know people who fall on both sides of the spectrum.  If you&#8217;re anything like me, you have difficulty deciding one way or the other.  Here was the answer I gave to the interviewer.</p>
<h2>SEO Begins with Art&#8230;</h2>
<p>Choosing keywords and planning search strategy are largely intuitive tasks.  Experience helps, but in the beginning, all you have to follow is your gut.  You take the tools and techniques at your disposal, divine the business objectives at work, feel out the semantics between keywords and user intent, and finally draw up a plan for success.</p>
<h2>&#8230;and Ends with Science</h2>
<p>That&#8217;s where measurement and scientific methodology take over.  You test, analyze, optimize, and repeat.  You observe your work in its natural environment, collect data, and refine the equation until your site is a humming engine of SEO perfection.</p>
<p>What do you think?  Are you a firm believer one way or the other, or do you believe SEO is a mix of art and science like I do?  Share your thoughts in the comments.</p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=401&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/7-signals-of-comment-spam/' rel='bookmark' title='Permanent Link: 7 Signals of Comment Spam'>7 Signals of Comment Spam</a></li>
<li><a href='http://www.wardontheweb.com/10-performance-tips-to-speed-up-php/' rel='bookmark' title='Permanent Link: 10 Performance Tips to Speed Up PHP'>10 Performance Tips to Speed Up PHP</a></li>
<li><a href='http://www.wardontheweb.com/guess-who-owns-information-online/' rel='bookmark' title='Permanent Link: Guess Who Owns Information Online'>Guess Who Owns Information Online</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=N6SJaNYTGPg:JP8F_ufr_a4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=N6SJaNYTGPg:JP8F_ufr_a4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=N6SJaNYTGPg:JP8F_ufr_a4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=N6SJaNYTGPg:JP8F_ufr_a4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=N6SJaNYTGPg:JP8F_ufr_a4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=N6SJaNYTGPg:JP8F_ufr_a4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=N6SJaNYTGPg:JP8F_ufr_a4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=N6SJaNYTGPg:JP8F_ufr_a4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=N6SJaNYTGPg:JP8F_ufr_a4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/N6SJaNYTGPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/is-seo-an-art-or-a-science/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/is-seo-an-art-or-a-science/</feedburner:origLink></item>
		<item>
		<title>How to Manage External Pages within WordPress</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/VAyqGB71t6Q/</link>
		<comments>http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 18:06:36 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/</guid>
		<description><![CDATA[Let&#8217;s say you install WordPress in a subdirectory of your site, but you want to use it to manage specific pages in the root directory, as well.  The ideal solution would be to move the entire WordPress installation into the root directory, but that may not always be feasible.  As it turns out, [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you install WordPress in a subdirectory of your site, but you want to use it to manage specific pages in the root directory, as well.  The ideal solution would be to move the entire WordPress installation into the root directory, but that may not always be feasible.  As it turns out, you can use the following .htaccess code to accomplish the task without moving WordPress or changing any URLs:</p>
<p><code>&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} <em>existing-filename.php</em><br />
ReWriteRule . /<em>wordpress-directory</em>/<em>wordpress-nicename</em>/ [P,L]<br />
&lt;/IfModule&gt;</code></p>
<p>The code above should go into the .htaccess file in your base directory, not in your WordPress directory.  Change <em>existing-filename.php</em> to the relative file path of the file you&#8217;d like to manage from within WordPress, change <em>wordpress-directory</em> to the name of the directory where WordPress is installed, and change <em>wordpress-nicename</em> to the URL path of the page within WordPress that you&#8217;d like to substitute for the original.</p>
<p>Voila!  Whatever you&#8217;ve got on the page within WordPress should now show up when users go to the original URL.  Mesh your WordPress template with the rest of your site design and they won&#8217;t even realize the bait and switch.</p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=397&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=VAyqGB71t6Q:3Mo4V144w5g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=VAyqGB71t6Q:3Mo4V144w5g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=VAyqGB71t6Q:3Mo4V144w5g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=VAyqGB71t6Q:3Mo4V144w5g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=VAyqGB71t6Q:3Mo4V144w5g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=VAyqGB71t6Q:3Mo4V144w5g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=VAyqGB71t6Q:3Mo4V144w5g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=VAyqGB71t6Q:3Mo4V144w5g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=VAyqGB71t6Q:3Mo4V144w5g:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/VAyqGB71t6Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/</feedburner:origLink></item>
		<item>
		<title>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/bIpX6sfv2U8/</link>
		<comments>http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 03:31:14 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=352</guid>
		<description><![CDATA[I just posted How to Cross-Post WordPress to a Facebook Fan Page on BoldInteractive.com.
Let&#8217;s say you want to cross post to a Facebook fan page rather than a profile. Sounds easy, right? After all, it&#8217;s fairly trivial to post to a profile. Far from it.As it turns out, the path to Facebook fan page integration [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-google-analytics-visitor-counts-by-hour-of-day-and-day-of-week/' rel='bookmark' title='Permanent Link: Elsewhere: Google Analytics Visitor Counts by Hour of Day and Day of Week'>Elsewhere: Google Analytics Visitor Counts by Hour of Day and Day of Week</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I just posted <a href="http://www.boldinteractive.com/how-to-cross-post-wordpress-to-a-facebook-fan-page">How to Cross-Post WordPress to a Facebook Fan Page</a> on <a href="http://www.boldinteractive.com/">BoldInteractive.com</a>.</p>
<blockquote><p>Let&#8217;s say you want to cross post to a Facebook fan page rather than a profile. Sounds easy, right? After all, it&#8217;s fairly trivial to post to a profile. Far from it.As it turns out, the path to Facebook fan page integration is a bit more complex. Here&#8217;s what we used for Bold.</p></blockquote>
<p><a href="http://www.boldinteractive.com/how-to-cross-post-wordpress-to-a-facebook-fan-page">Read the whole article on BoldInteractive.com</a></p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=352&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-google-analytics-visitor-counts-by-hour-of-day-and-day-of-week/' rel='bookmark' title='Permanent Link: Elsewhere: Google Analytics Visitor Counts by Hour of Day and Day of Week'>Elsewhere: Google Analytics Visitor Counts by Hour of Day and Day of Week</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=bIpX6sfv2U8:tR0Bbd79ETk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=bIpX6sfv2U8:tR0Bbd79ETk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=bIpX6sfv2U8:tR0Bbd79ETk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=bIpX6sfv2U8:tR0Bbd79ETk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=bIpX6sfv2U8:tR0Bbd79ETk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=bIpX6sfv2U8:tR0Bbd79ETk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=bIpX6sfv2U8:tR0Bbd79ETk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=bIpX6sfv2U8:tR0Bbd79ETk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=bIpX6sfv2U8:tR0Bbd79ETk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/bIpX6sfv2U8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/</feedburner:origLink></item>
		<item>
		<title>Internet Explorer Must Be Stopped</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/JagHlHPMLr0/</link>
		<comments>http://www.wardontheweb.com/internet-explorer-must-be-stopped/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 14:46:33 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=347</guid>
		<description><![CDATA[
Casual web users probably find this chart amusing, but my fellow web professionals know how close it comes to the truth.  Today, I&#8217;d like you to take note of the giant yellow section in the top, right-hand corner that indicates, &#8220;Time spent trying to get the bastard to work in Internet fucking Explorer.&#8221;
In case [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/guess-who-owns-information-online/' rel='bookmark' title='Permanent Link: Guess Who Owns Information Online'>Guess Who Owns Information Online</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.wardontheweb.com/wp-content/uploads/2009/08/time-breakdown-of-moder-web-design.png" alt="time-breakdown-of-moder-web-design" title="time-breakdown-of-moder-web-design" width="500" height="373" class="aligncenter size-full wp-image-348" /></p>
<p>Casual web users probably find this chart amusing, but my fellow web professionals know how close it comes to the truth.  Today, I&#8217;d like you to take note of the giant yellow section in the top, right-hand corner that indicates, &#8220;Time spent trying to get the bastard to work in Internet fucking Explorer.&#8221;</p>
<p>In case you don&#8217;t already know, Internet Explorer is an abyssmal web browser.  Here are just a few reasons why.</p>
<ul>
<li><strong>It&#8217;s insecure.</strong>  Due in part to its popularity and in part to its <a href="http://en.wikipedia.org/wiki/Internet_Explorer#Security_vulnerabilities">security vulnerabilities</a>, Internet Explorer is frequently targeted by hackers as an easy way to spread viruses.  I&#8217;m not a desktop support specialist, but every time I help someone out with their computer, I advise them to download something else for their web browsing, if only out of security concerns.</li>
<li><strong>It creates more work for web developers.</strong>  CSS is the language that controls how websites are supposed to display.  On almost every website I build, I have to make special CSS to deal with improper implementation in the three most popular versions of Internet Explorer.  Yes, that&#8217;s custom styling for each of them individually.  Internet Explorer is the only browser that needs such special handling.  Multiply this by the number of websites being created by web developers every day and we&#8217;re talking about centuries of wasted man hours.</li>
<li><strong>It doesn&#8217;t automatically update.</strong>  Google Chrome and Mozilla Firefox both update automatically.  Thus, if security vulnerabilities or bugs ever crop up, they&#8217;re patched rapidly in every distribution of the software connected to the internet.  This is how it should work.  Internet Explorer doesn&#8217;t do this; if you get an update, it only comes as an update to your core Windows installation.  As proof, look at the larger percentage of users still using Internet Explorer 6, now two full versions behind the main software.  If anything has lead to Internet Explorer&#8217;s pervasive security and compatibility problems, it&#8217;s this.</li>
<li><strong>It&#8217;s always playing catch-up.</strong>  Tabbed browsing, for example, really came into vogue in the past few years, but for the longest time, Internet Explorer has refused to embrace it like its competitors.  Sure, it&#8217;s got tabs now, but its implementation of tabs is terrible compared to Chrome or Firefox.  One gets the sense that Microsoft wants to dictate what users want rather than listen and truly innovate.</li>
<li><strong>It&#8217;s only popular because it is the default on computers running Windows.</strong>  Period.  If people were given the choice right from the start, Internet Explorer would have lost the browser battle long ago.  The fact is, most people don&#8217;t even realize they have a choice.</li>
</ul>
<p>If you use it, chances are good you don&#8217;t know any better; after all, it&#8217;s what came on your computer.  Let this be your wake-up call.  You have alternatives.  Google Chrome and Mozilla Firefox are outstanding, completely free, more secure, and offer an all-around better user experience than IE.</p>
<p>I believe in this strongly enough that I&#8217;ve signed Ward on the Web up as a supporter of <a href="http://www.ie6nomore.com/">IE 6 No More</a>.  If you visit Ward on the Web in IE 6, you&#8217;ll get a special message telling you that you need to upgrade.</p>
<p>Personally, though, I don&#8217;t think that goes far enough.  Internet Explorer has a bad enough history that the most up-to-date versions should be suspect.  Thus, I proudly advocate that not only IE 6, but all versions of Internet Explorer, should be discarded in favor of better alternatives.</p>
<p>So, please, for your own sake and the sake of the internet, if you&#8217;re reading this in Internet Explorer, it&#8217;s time to upgrade.  <a href="http://www.google.com/chrome">Download Chrome</a> or <a href="http://www.mozilla.com/?from=sfx&#038;uid=277180&#038;t=306">Firefox</a> and never look back.</p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=347&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/css-menus-made-simple/' rel='bookmark' title='Permanent Link: CSS Menus Made Simple'>CSS Menus Made Simple</a></li>
<li><a href='http://www.wardontheweb.com/guess-who-owns-information-online/' rel='bookmark' title='Permanent Link: Guess Who Owns Information Online'>Guess Who Owns Information Online</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=JagHlHPMLr0:INzj16mZfRQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=JagHlHPMLr0:INzj16mZfRQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=JagHlHPMLr0:INzj16mZfRQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=JagHlHPMLr0:INzj16mZfRQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=JagHlHPMLr0:INzj16mZfRQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=JagHlHPMLr0:INzj16mZfRQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=JagHlHPMLr0:INzj16mZfRQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=JagHlHPMLr0:INzj16mZfRQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=JagHlHPMLr0:INzj16mZfRQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/JagHlHPMLr0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/internet-explorer-must-be-stopped/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/internet-explorer-must-be-stopped/</feedburner:origLink></item>
		<item>
		<title>Elsewhere: Google Analytics Visitor Counts by Hour of Day and Day of Week</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/4DxIi8nqeQg/</link>
		<comments>http://www.wardontheweb.com/elsewhere-google-analytics-visitor-counts-by-hour-of-day-and-day-of-week/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 18:24:15 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[elsewhere]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=344</guid>
		<description><![CDATA[I just posted Google Analytics Visitor Counts by Hour of Day and Day of Week on BoldInteractive.com.
Good news and bad news. I&#8217;m a pessimist realist, so we&#8217;ll start with the bad news. Bad news: Your web team says the site has to go down for maintenance. For several hours in the near future, your company&#8217;s [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/7-signals-of-comment-spam/' rel='bookmark' title='Permanent Link: 7 Signals of Comment Spam'>7 Signals of Comment Spam</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I just posted <a href="http://www.boldinteractive.com/google-analytics-visitor-counts-by-hour-of-day-and-day-of-week">Google Analytics Visitor Counts by Hour of Day and Day of Week</a> on <a href="http://www.boldinteractive.com/">BoldInteractive.com</a>.</p>
<blockquote><p>Good news and bad news. I&#8217;m a <strike>pessimist</strike> realist, so we&#8217;ll start with the bad news. Bad news: Your web team says the site has to go down for maintenance. For several hours in the near future, your company&#8217;s presence on the web will be invisible to any potential customer. Good news: You get to [...]</p></blockquote>
<p><a href="http://www.boldinteractive.com/google-analytics-visitor-counts-by-hour-of-day-and-day-of-week">Read the whole article on BoldInteractive.com</a></p>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=344&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/' rel='bookmark' title='Permanent Link: How to Hotwire WordPress in 7 Steps'>How to Hotwire WordPress in 7 Steps</a></li>
<li><a href='http://www.wardontheweb.com/7-signals-of-comment-spam/' rel='bookmark' title='Permanent Link: 7 Signals of Comment Spam'>7 Signals of Comment Spam</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=4DxIi8nqeQg:e1yhml0WLFs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=4DxIi8nqeQg:e1yhml0WLFs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=4DxIi8nqeQg:e1yhml0WLFs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=4DxIi8nqeQg:e1yhml0WLFs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=4DxIi8nqeQg:e1yhml0WLFs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=4DxIi8nqeQg:e1yhml0WLFs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=4DxIi8nqeQg:e1yhml0WLFs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=4DxIi8nqeQg:e1yhml0WLFs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=4DxIi8nqeQg:e1yhml0WLFs:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/4DxIi8nqeQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/elsewhere-google-analytics-visitor-counts-by-hour-of-day-and-day-of-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/elsewhere-google-analytics-visitor-counts-by-hour-of-day-and-day-of-week/</feedburner:origLink></item>
		<item>
		<title>10 Performance Tips to Speed Up PHP</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/9o4PVVzHqtI/</link>
		<comments>http://www.wardontheweb.com/10-performance-tips-to-speed-up-php/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 11:30:26 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=339</guid>
		<description><![CDATA[Even the most experienced programmer can be lazy.  After all, what are a few milliseconds of extra load time here or there?  Users won&#8217;t notice, right?
That sort of thinking is a slippery slope, though.  A fraction of a second here or there, measured over thousand of visits, can add up to lost [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/' rel='bookmark' title='Permanent Link: Selectable Items per Page Hack for Drupal 6 Views'>Selectable Items per Page Hack for Drupal 6 Views</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
<li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Even the most experienced programmer can be lazy.  After all, what are a few milliseconds of extra load time here or there?  Users won&#8217;t notice, right?</p>
<p>That sort of thinking is a slippery slope, though.  A fraction of a second here or there, measured over thousand of visits, can add up to lost conversions.  A little extra processing time per execution, over millions of executions, can add up to significant power consumption and wear and tear on the server.  And since most good programming habits require no additional work on the part of the programmer, there&#8217;s a real business case to be made against lazy programming.</p>
<p>It&#8217;s time to break out of those lazy habits and start coding with performance in mind.  Practice these ten PHP performance tips and watch your code go from sluggish to speedy in no time.</p>
<ol>
<li><strong>Use echo instead of print().</strong>  As a language construct rather than a function, echo has a slight performance advantage over print().</li>
<li><strong>Echo with commas, not periods.</strong>  I&#8217;m a repeat offender of this one.  If you use periods, PHP has to concatenate the string before it outputs.  If you use commas, it just outputs them in order with no extra processing.</li>
<li><strong>Avoid function tests in loop conditionals.</strong>  If you&#8217;re looping through an array, for example, count() it beforehand, store the value in a variable, and use that for your test.  This way, you avoid needlessly firing the test function with every loop iteration.</li>
<li><strong>Use include() and require() instead of include_once() and require_once().</strong>  There&#8217;s a lot of work involved in checking to see if a file has already been included.  Sometimes it&#8217;s necessary, but you should default to include() and require() in most situations.</li>
<li><strong>Use full file paths on include/require statements.</strong>  Normalizing a relative file path can be expensive; giving PHP the absolute path (or even &#8220;./file.inc&#8221;) avoids the extra step.</li>
<li><strong>Favor built-in functions over custom functions.</strong>  Since PHP has to take the extra step of interpreting your custom functions, built-in functions have a performance advantage.  More importantly, there are a lot of useful built-in functions that you may never learn about if you always default to writing your own.</li>
<li><strong>Avoid needlessly copying variables.</strong>  If the variable is quite large, this could result in a lot of extra processing.  Use the copy you already whenever possible, even if it doesn&#8217;t look pretty (e.g., $_POST['somevariable']).</li>
<li><strong>Pass unchanged variables to a function by reference rather than value.</strong>  This goes hand-in-hand with the point about needlessly copying variables.  Much of the time, your functions only need to use the values from their parameters without changing them.  In such cases, you can safely pass those parameters by reference (e.g., function(&#038;$parameter) rather than function($parameter)) and avoid having to make memory-intensive copies.</li>
<li><strong>Debug with error_reporting(E_ALL).</strong>  Every warning is a performance improvement waiting to happen, but only if you can see it.  Cleaning up warnings and errors beforehand can also keep you from using @ error suppression, which is expensive.  Just don&#8217;t forget to turn off error reporting when you&#8217;re done; warnings and errors are expensive as well.</li>
<li><strong>Ditch double quotes for single quotes.</strong>  There&#8217;s some disagreement, but the common wisdom is that PHP has to do extra processing on a string in double quotes to see if it contains any variables.  Concatenation with single quotes is marginally faster.</li>
</ol>
<h2>Sources</h2>
<p>Tips from this article were pulled from the following sources.</p>
<ul>
<li><a href="http://www.bootstrike.com/Articles/PHPPerformanceTips/">Bootstrike.com</a></li>
<li><a href="http://www.cluesheet.com/">Cluesheet</a></li>
<li><a href="http://code.google.com/speed/articles/optimizing-php.html">Google Code</a>
</ul>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=339&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/selectable-items-per-page-hack-for-drupal-6-views/' rel='bookmark' title='Permanent Link: Selectable Items per Page Hack for Drupal 6 Views'>Selectable Items per Page Hack for Drupal 6 Views</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
<li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=9o4PVVzHqtI:XqGSJZ303dk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=9o4PVVzHqtI:XqGSJZ303dk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=9o4PVVzHqtI:XqGSJZ303dk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=9o4PVVzHqtI:XqGSJZ303dk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=9o4PVVzHqtI:XqGSJZ303dk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=9o4PVVzHqtI:XqGSJZ303dk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=9o4PVVzHqtI:XqGSJZ303dk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=9o4PVVzHqtI:XqGSJZ303dk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=9o4PVVzHqtI:XqGSJZ303dk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/9o4PVVzHqtI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/10-performance-tips-to-speed-up-php/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/10-performance-tips-to-speed-up-php/</feedburner:origLink></item>
		<item>
		<title>How to Hotwire WordPress in 7 Steps</title>
		<link>http://feedproxy.google.com/~r/WardOnTheWeb/~3/EaPrYDjsHZw/</link>
		<comments>http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 11:30:54 +0000</pubDate>
		<dc:creator>Stephen Ward</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.wardontheweb.com/?p=336</guid>
		<description><![CDATA[First, let me go ahead and set the right expectation for this article.  This is a brief guide to gaining legitimate access to a WordPress site for which you do not know the username or password.  This is NOT a guide on hacking a WordPress site.
It&#8217;s a fine line, but there are legitimate [...]


Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>First, let me go ahead and set the right expectation for this article.  This is a brief guide to gaining legitimate access to a WordPress site for which you do not know the username or password.  This is NOT a guide on hacking a WordPress site.</p>
<p>It&#8217;s a fine line, but there are legitimate reasons for needing to hotwire WordPress.  For example, the client who owns the site may not be available to provide the username and password, or a hacker may have locked you out.  Personally, when I need to get into a client site, I find hotwiring is sometimes faster than digging up the password myself and waiting on someone else to find it for me.  The point is, there are good, honest reasons to do it.</p>
<p>Now that you&#8217;ve listened to my lengthy disclaimer, we can get down business.</p>
<ol>
<li><strong>Access the database.</strong>  Most web hosts nowadays offer PHPMyAdmin, which I recommend using.  If you don&#8217;t know the database credentials, you can get them from the wp-config.php file in the WordPress root directory.</li>
<li><strong>Find the users table.</strong>  Don&#8217;t forget that it might have a prefix; if there&#8217;s any confusion, the prefix should also be in wp-config.php.</li>
<li><strong>Find the account you want to hotwire.</strong>  In my experience, the first user is most often the administrator with all of the best privileges, so that&#8217;s the row you&#8217;ll want to change.  If the user_login is &#8220;admin,&#8221; like it is in most default WordPress installations, you may want to make a note to discuss changing it as a security precaution, but that&#8217;s a different article.</li>
<li><strong>Copy the old user_pass.</strong>  See that gobbledygook in the user_pass field?  Copy it and save it for later.  Otherwise, you won&#8217;t be able to restore the previous password.  In the event that you&#8217;re changing the password permanently, it&#8217;s not necessary to copy the original value, but that would be more like hijacking that hotwiring. <img src='http://www.wardontheweb.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><strong>Insert your temporary user_pass.</strong> You&#8217;ll want to place an md5-encrypted version of the temporary password you&#8217;ll be using in place of the old user_pass.  There are plenty of websites out there that can hash it for you; just plug &#8220;md5 encrypter&#8221; into Google.  Put the md5 hash value into the user_pass field and save your changes.</li>
<li><strong>Log into WordPress.</strong>  You should now be able to log in normally using the username of the account you&#8217;re hotwiring and the temporary password that you encrypted.</li>
<li><strong>Restore the old user_pass.</strong>  Most people don&#8217;t like having their passwords changed arbitrarily, so it&#8217;s good form to change it back for them.  To do this, repeat steps one through three and replace the user_pass field with the original value that you overwrote.</li>
</ol>
<img src="http://www.wardontheweb.com/?ak_action=api_record_view&id=336&type=feed" alt="" />

<p>Related Posts:<ul><li><a href='http://www.wardontheweb.com/how-to-manage-external-pages-within-wordpress/' rel='bookmark' title='Permanent Link: How to Manage External Pages within WordPress'>How to Manage External Pages within WordPress</a></li>
<li><a href='http://www.wardontheweb.com/elsewhere-how-to-cross-post-wordpress-to-a-facebook-fan-page/' rel='bookmark' title='Permanent Link: Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page'>Elsewhere: How to Cross-Post WordPress to a Facebook Fan Page</a></li>
<li><a href='http://www.wardontheweb.com/attach-files-to-taxonomy-terms-in-drupal/' rel='bookmark' title='Permanent Link: Attach Files to Taxonomy Terms in Drupal'>Attach Files to Taxonomy Terms in Drupal</a></li>
</ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=EaPrYDjsHZw:E7MEBiNCbAk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=EaPrYDjsHZw:E7MEBiNCbAk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=EaPrYDjsHZw:E7MEBiNCbAk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=EaPrYDjsHZw:E7MEBiNCbAk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=EaPrYDjsHZw:E7MEBiNCbAk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=EaPrYDjsHZw:E7MEBiNCbAk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=EaPrYDjsHZw:E7MEBiNCbAk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/WardOnTheWeb?a=EaPrYDjsHZw:E7MEBiNCbAk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/WardOnTheWeb?i=EaPrYDjsHZw:E7MEBiNCbAk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/WardOnTheWeb/~4/EaPrYDjsHZw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.wardontheweb.com/how-to-hotwire-wordpress-in-7-steps/</feedburner:origLink></item>
	</channel>
</rss>
