<?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>Ian's Notes</title>
	
	<link>http://ianpurton.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 11 Nov 2008 09:43:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/IanPurton" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>My Experience Buying a $10,000 Website on Sitepoint (Part 1)</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/dRyKQ_tr8Xc/</link>
		<comments>http://ianpurton.com/my-experience-buying-a-10000-website-on-sitepoint-part-1/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 09:43:27 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Web Marketing]]></category>
		<category><![CDATA[Webmastering]]></category>

		<guid isPermaLink="false">http://ianpurton.com/?p=10054</guid>
		<description><![CDATA[
I recently purchased Status2k on a sitepoint auction. It&#8217;s the first time I&#8217;ve ever bought a site and it&#8217;s definately a learning experience. After my winning bid was excepted the sale proceeded very rapidly (a lot quicker than I was expecting) over msn chat.

Getting some reassurance
Before sending $10,000 to someone I&#8217;d never met I wanted [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ianpurton.com/wp-content/uploads/2008/10/sitepoint-auction.png" alt="" title="sitepoint-auction" width="557" height="157" class="alignnone size-full wp-image-10057" /></p>
<p>I recently purchased <a href="http://www.status2k.com">Status2k</a> on a sitepoint auction. It&#8217;s the first time I&#8217;ve ever bought a site and it&#8217;s definately a learning experience. After my winning bid was excepted the sale proceeded very rapidly (a lot quicker than I was expecting) over msn chat.</p>
<p><span id="more-10054"></span></p>
<h2>Getting some reassurance</h2>
<p>Before sending $10,000 to someone I&#8217;d never met I wanted to get a feel for who the seller was and that they were genuine. This explains the first part of the interaction.</p>
<pre>
Ian: Hi.
Vlad: Hello Ian
Ian: So how do you think we should do this ?
Vlad: Well i did a lot of similar deals and it's pretty easy
Vlad: You pay us 50% we transfer the files
Vlad: Pay the other 50% and we transfer the domain
Vlad: So this way you are protected and we are too
Ian: OK, that seems fair...
Vlad: Great
...
Ian: I would also like to get contact details so that I know where
my money is
going i.e. a telephone no.
Vlad: You will pay via paypal right ?
Ian: If I can, I don't know what there upper limit is.
Vlad: Doesn't have for me , but depends from account to account yeah
Ian: I'll take a look, can you provide contact details ?
Vlad: what kind of details you need ?
Ian: I'll need your address and a phone number, if that's ok ?
Vlad: I'm not sure i d enjoy giving out the personal stuff online
Ian: I can't send that kind of money without knowing exactly
who it's going too.
Vlad: I understand
Vlad: But take it like this
Vlad: How could you verify
Vlad: If i wanted to scam you, I'd get a prepaid card, invent an address and
how could you verify if it's legit or not
...
Ian: Let me have a think about it, not feeling comfortable sending the money.
...
Vlad: Would you like to see my trader profile
...
Ian: It would be good to see trader profiles, yes. Sorry Vlad
but I just need to be sure.
Vlad: I perfectly understand you Ian .
...
Vlad: here hxxp://
Vlad: one of them
Ian: I'm feeling a bit better about this now, a good profile.
Vlad: Thank you
Vlad: I'm a member of hxxp:// too
Vlad: You can type in my email to lookup for my profile
Vlad: Or at
...
Vlad: Feeling more comfortable now Ian ?
Ian: Definately, shall I make paypal payment to &lt;removed>
</pre>
<h2>Sending the first half of the payment and receiving the files</h2>
<p>As a buyer this is a difficult part as you&#8217;re just receiving a bunch of files without really knowing if they&#8217;re going to work when you get them. However Vlad offers to keep the site hosted whilst I get set up, so the sale proceeds.</p>
<pre>
Vlad: No
Vlad: My paypal is &lt;removed>
Vlad: Yeah only thing is we have to pay fees
Vlad: Usually buyer pays fees
Vlad: but we can do 50/50 i guess
...
Ian: OK, I'll pay fees this time you next ?
Vlad: Yeah
Vlad: Let me know when you paid i'll transfer you the files and
then the domain
Ian: It'll take me a while to get the site up and running is that ok ?
Vlad: Well i'll give you everything, you can take your time
we'll still host it
Ian: payment has been sent.
...
Vlad: Great
Vlad: Okay
Vlad: You have a server with cPanel ?
Ian: I use webmin, put I'm pretty techy so getting it
setup shouldn't be a problem.
Vlad: Okay
Vlad: So if i provide cPanel logins and ftp you can handle ?
Ian: I think so yes.
Ian: What's the url for cpanel ?
...
Ian: OK, how do domains get sent ?
Vlad: Create an domainsite account
Ian: creating it now.
Ian: OK, account is created.
...
Vlad: Uploading now the archieve
Ian: Thanks.
Vlad: Meanwhile get your Account Code from your domainsite account
Ian: &lt;domain site account code removed&gt;
Vlad: Sweet
Ian: How's it going ?
Vlad: it's done
...
Ian: OK, I'll send the money now.
Vlad: Nice
Ian: Sent.
Vlad: Received
Vlad: Domain has been sent
Ian: Cool, will it just appear, let me check.
Vlad: Yah
Ian: Will it still point to the same ip ?
...
Ian: Right.
Ian: Lot's for me to do.
Vlad: Yep
Ian: I hope not to bother you too much in the next couple of days.
Vlad: It's okay
Vlad: I don't mind helping
...
</pre>
<h2>And the good news</h2>
<p>In part 2 I&#8217;ll write up more of my experiences of transferring the site to another server, email problems, dns problems and a few other suprises I wasn&#8217;t expecting. However the screenshot below shows the sales coming in, a huge sigh of relief.</p>
<p><img src="http://ianpurton.com/wp-content/uploads/2008/11/paypal-proof.png" alt="Paypal Proof" title="paypal-proof"  /></p>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/dRyKQ_tr8Xc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/my-experience-buying-a-10000-website-on-sitepoint-part-1/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://ianpurton.com/my-experience-buying-a-10000-website-on-sitepoint-part-1/</feedburner:origLink></item>
		<item>
		<title>Graffiti on the Regents Canal</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/a0Algq4u-gw/</link>
		<comments>http://ianpurton.com/graffiti-on-the-regents-canal/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 14:21:27 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://ianpurton.com/?p=10047</guid>
		<description><![CDATA[
Urban Commuting
To get to work a cycle along the Regents Canal. There&#8217;s a lot of graffit most of it pretty unsightly, but I like some of the new Banksy inspired art that&#8217;s appearing. I&#8217;ve collected a few examples and put them into a regents canal flickr set.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://ianpurton.com/wp-content/uploads/2008/10/2949257943_181a040eb7_b_scaled.jpg" alt="" title="2949257943_181a040eb7_b_scaled" width="557" class="alignnone size-medium wp-image-10048" /></p>
<h2>Urban Commuting</h2>
<p>To get to work a cycle along the <a href="http://en.wikipedia.org/wiki/Regents_Canal">Regents Canal</a>. There&#8217;s a lot of graffit most of it pretty unsightly, but I like some of the new <a href="http://en.wikipedia.org/wiki/Banksy">Banksy</a> inspired art that&#8217;s appearing. I&#8217;ve collected a few examples and put them into a <a href="http://www.flickr.com/photos/purton/sets/72157608334977089/">regents canal flickr set</a>.</p>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/a0Algq4u-gw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/graffiti-on-the-regents-canal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ianpurton.com/graffiti-on-the-regents-canal/</feedburner:origLink></item>
		<item>
		<title>Integrating Gravatars into PunBB forums</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/zOO0XMimLdg/</link>
		<comments>http://ianpurton.com/integrating-gravatars-into-punbb-forums/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 14:29:36 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ianpurton.com/integrating-gravatars-into-punbb-forums/</guid>
		<description><![CDATA[PunBB already has it&#8217;s own Avatar system however I wanted to use the Gravatar  site which is a central place to store avatar images.

To add gravatar functionality to PunBB you need to edit your viewtopic.php and look for the following line.

else
    $user_avatar = '';

And replace it with..

else
{
    $user_avatar [...]]]></description>
			<content:encoded><![CDATA[<p>PunBB already has it&#8217;s own <a href="http://en.wikipedia.org/wiki/Avatar_(computing)">Avatar</a> system however I wanted to use the <a href="http://en.gravatar.com/">Gravatar</a>  site which is a central place to store avatar images.</p>
<p><span id="more-10038"></span></p>
<p>To add gravatar functionality to PunBB you need to edit your <strong>viewtopic.php</strong> and look for the following line.</p>
<pre>
else
    $user_avatar = '';
</pre>
<p>And replace it with..</p>
<pre>
else
{
    $user_avatar = '&lt;img src="http://www.gravatar.com/avatar.php?gravatar_id=';
    $user_avatar .= md5($cur_post['email']);
    $user_avatar .= '&#038;size=40" width="40" height="40" alt="" />';
}
</pre>
<p>This will automatically slect the graviatar based on the users email address.</p>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/zOO0XMimLdg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/integrating-gravatars-into-punbb-forums/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ianpurton.com/integrating-gravatars-into-punbb-forums/</feedburner:origLink></item>
		<item>
		<title>Minimal Gray Wordpress Theme</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/shztm6mqJws/</link>
		<comments>http://ianpurton.com/minimal-gray-wordpress-theme/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 09:13:15 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Web Marketing]]></category>
		<category><![CDATA[Webmastering]]></category>

		<guid isPermaLink="false">http://ianpurton.com/minimal-gray-wordpress-theme/</guid>
		<description><![CDATA[
Based on my SEO Wordpress Sandbox Theme I&#8217;ve created a minimal gray theme.

Features

Supports widgets
Has an embedded digg this button
Includes gravatar support

Download

Minimal Gray Wordpress Theme

]]></description>
			<content:encoded><![CDATA[<p><img src="http://ianpurton.com/wp-content/uploads/2008/10/minimal-and-gray.jpg" alt="" title="Screenshot" width="460" height="250" class="aligncenter size-full wp-image-10041" /></p>
<p>Based on my <a href="http://ianpurton.com/seo-wordpress-sandbox-theme/">SEO Wordpress Sandbox Theme</a> I&#8217;ve created a minimal gray theme.</p>
<p><span id="more-10034"></span></p>
<h2>Features</h2>
<ol>
<li>Supports widgets</li>
<li>Has an embedded digg this button</li>
<li>Includes gravatar support</li>
</ol>
<h2>Download</h2>
<div class="download">
<p><a href="http://ianpurton.com/wp-content/uploads/2008/10/minimal-and-gray2.zip">Minimal Gray Wordpress Theme</a></p>
</div>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/shztm6mqJws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/minimal-gray-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://ianpurton.com/minimal-gray-wordpress-theme/</feedburner:origLink></item>
		<item>
		<title>How to make really sexy buttons with CSS</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/80TTPx6ofzY/</link>
		<comments>http://ianpurton.com/how-to-make-really-sexy-buttons-with-css/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 15:24:01 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://ianpurton.com/how-to-make-really-sexy-buttons-with-css/</guid>
		<description><![CDATA[I&#8217;ve been using the How to make sexy buttons with CSS technique for easily adding good looking buttons to a web application and found I could Jazz them up a little by using the free icons from FamFamFam Silk.

Below are the old style buttons.

And next are the new buttons.

Basically all I&#8217;m doing is adding a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using the <a href="http://www.oscaralexander.com/tutorials/how-to-make-sexy-buttons-with-css.html">How to make sexy buttons with CSS</a> technique for easily adding good looking buttons to a web application and found I could Jazz them up a little by using the free icons from <a href="http://famfamfam.com/lab/icons/silk/">FamFamFam Silk</a>.</p>
<p><span id="more-10030"></span></p>
<p>Below are the old style buttons.</p>
<p><a href='http://ianpurton.com/wp-content/uploads/2008/09/old-buttons.PNG' title='Old Buttons'><img src='http://ianpurton.com/wp-content/uploads/2008/09/old-buttons.PNG' alt='Old Buttons' /></a></p>
<p>And next are the new buttons.</p>
<p><a href='http://ianpurton.com/wp-content/uploads/2008/09/new-buttons.PNG' title='New Bottons'><img src='http://ianpurton.com/wp-content/uploads/2008/09/new-buttons.PNG' alt='New Bottons' /></a></p>
<p>Basically all I&#8217;m doing is adding a relevant icon against the link and pushing the text a little more to the left.</p>
<h2>The HTML Markup</h2>
<p>The HTML markup is similar to oscars with the addition of an image tag pointing to a famfamfam icon.</p>
<pre>
&lt;p class="button">
  &lt;img src="/img/buttons/add.png" />
  &lt;a href="#">&lt;span>Add task&lt;/span>&lt;/a>
&lt;/p>
</pre>
<h2>The CSS Styling</h2>
<p>This is directly copied over from Oscar&#8217;s implementation with a couple of changes.</p>
<pre>
/* Buttons
----------------------------------------------- */

p.button img {
  position: absolute;
  margin: 4px 0 0 5px;
}

p.button {
  display: block;
  margin-bottom: 10px;
}
p.button a {
  padding: 0px;
  background: transparent url('bg_button_a.gif') no-repeat scroll top right;
  color: #444;
  display: block;
  font: bold 12px arial, sans-serif;
  height: 24px;
  padding-right: 18px; /* sliding doors padding */
  text-decoration: none;
  margin: 0px 6px 00px 0px;
}

p.button span {
  margin: 0px;
  background: transparent url('bg_button_span.gif') no-repeat;
  display: block;
  line-height: 14px;
  padding: 5px 0 5px 25px;
}

p.button a:active {
  background-position: bottom right;
  color: #000;
  outline: none; /* hide dotted outline in Firefox */
}

p.button a:active span {
  background-position: bottom left;
  padding: 6px 0 4px 25px; /* push text down 1px */
}
</pre>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/80TTPx6ofzY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/how-to-make-really-sexy-buttons-with-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ianpurton.com/how-to-make-really-sexy-buttons-with-css/</feedburner:origLink></item>
		<item>
		<title>How to Create Javascript Catfish Sliding Promotions</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/ncLrHk5Gb6E/</link>
		<comments>http://ianpurton.com/how-to-create-javascript-catfish-sliding-promotions/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 14:40:53 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Marketing]]></category>

		<guid isPermaLink="false">http://ianpurton.com/how-to-create-javascript-catfish-sliding-promotions/</guid>
		<description><![CDATA[An effective way to advertise or promote a product is the Catfish pop-up, so
called because it lies on the bottom of the browser. Less annoying than fullblown pop-ups and to me much better than adverising embedded within content. I&#8217;ve mocked up two example pages a transparency example and an example form.

Sitepoint
As far as I know [...]]]></description>
			<content:encoded><![CDATA[<p>An effective way to advertise or promote a product is the Catfish pop-up, so<br />
called because it lies on the bottom of the browser. Less annoying than fullblown pop-ups and to me much better than adverising embedded within content. I&#8217;ve mocked up two example pages a <a href="http://ianpurton.com/catfish/transparency-test.html" title="transparency example">transparency example</a> and an <a href="http://ianpurton.com/catfish/form-test.html" title="example form">example form</a>.</p>
<p><span id="more-10029"></span></p>
<h2>Sitepoint</h2>
<p>As far as I know catfish pop-ups were first implemented on <a href="http://www.sitepoint.com" title="Sitepoint">Sitepoint</a> and detailed in <a href="http://www.sitepoint.com/blogs/2005/10/18/the-catfish-part-1/" title="The Catfishâ€”Part 1">The Catfishâ€”Part 1</a> and <a href="http://www.sitepoint.com/blogs/2005/10/21/catfish-ads-part-2/" title="Set Us Up The Catfishâ€”Part 2: SlideMe">Set Us Up The Catfishâ€”Part 2: SlideMe</a> articles.
</p>
<h2>My Implementation</h2>
<p>I&#8217;ve enhanced (re-written) the implementation to use an <a href="http://www.w3schools.com/tags/tag_iframe.asp" title="iframe">iframe</a> so instead of embedding the promotion within your main content (The Sitepoint implementation uses a <em>div</em> at the bottom of the markup), you can place the promotion code in a separate HTML file.</p>
<p>An iframe will also help the page load faster and the javascript is light at &lt;5kb (&lt;3kb for non IE6) not including the size of your iframe content.</p>
<p>The <em>iframe</em> will allow you to use forms within your promotion which will act independently of your main content; your promotion could be on another site altogether.</p>
<h2>Usage</h2>
<p>The <a href="http://ianpurton.com/catfish/catfish.zip">download</a> (zip) contains the examples from above and implementing your own catfish should be fairly straight forward. I&#8217;ve tried to make the amount of markup you need to add to a page as lightweight as possible but the minimum I&#8217;ve been able to get it down to is the code example below. IE6 does not support the CSS style <a href="http://www.cssplay.co.uk/layouts/fixed.html" title="position:fixed">position:fixed</a>, so a workaround had to be introduced.</p>
<h2>The Markup</h2>
<p>Place the following between your &lt;head&gt; tags.</p>
<div class="code">&lt;!&#8211;[if lt IE 7]&gt;&lt;script defer type=&#8221;text/javascript&#8221; src=&#8221;catfish/iehack.js&#8221;&gt;&lt;/script&gt;<br />
&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;catfish/iehack.css&#8221; type=&#8221;text/css&#8221;/&gt;&lt;![endif]&#8211;&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;catfish/catfish.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;catfish(&#8217;form-test/popup.html&#8217;,100);&lt;/script&gt;</div>
<p>There&#8217;s some conditional code here to get it to work in IE also note the use of the <a href="http://www.websiteoptimization.com/speed/tweak/defer/" title="script defer">script defer</a> which is a way of getting IE to delay script execution until the DOM has formed.</p>
<h2>Calling catfish()</h2>
<p>You can call catfish and configure all the options (from the 4th line in the markup above).</p>
<div class="code">catfish(url, height_in_px, start_delay_in_ms, speed_in_ms, increment_in_px);</div>
<p>or, allow the script to default the scrolling speed and delay for you.</p>
<div class="code">catfish(url, height_in_px);</div>
<table>
<tr>
<th width="50%">Parameter</th>
<th width="50%">Description</th>
</tr>
<tr>
<td>
        url
      </td>
<td>
        The url of the content you wish to display.
      </td>
</tr>
<tr>
<td>
        height_in_px
      </td>
<td>
        The height of the content.
      </td>
</tr>
<tr>
<td>
        start_delay_in_ms
      </td>
<td>
        The number of milliseconds before the content starts to scroll into<br />
        view. (default is 2000ms)
      </td>
</tr>
<tr>
<td>
        speed_in_ms
      </td>
<td>
        The time in milliseconds before the content is moved increment_in_px<br />
        pixels. (default is 25ms).
      </td>
</tr>
<tr>
<td>
        increment_in_px
      </td>
<td>
        The number of pixels the content is moved every speed_in_ms<br />
        milliseconds. (default is 5px)
      </td>
</tr>
</table>
<h2>Closing options</h2>
<p>You have two options when allowing the user to close the catfish temporary or permanent, temporary will re-open the catfish when the user refreshes the page or goes to another page with a catfish.</p>
<p>Permanent will set a cookie and not re-open the catfish for that user (unless they clean out their cookies).</p>
<p>Temporary close markup for your catfish :-</p>
<div class="code">&lt;a href=&#8221;#&#8221; onclick=&#8221;parent.document.catfish_close();return false;&#8221; id=&#8221;closeme&#8221;&gt;Close this&lt;/a&gt;</div>
<p>Permanent close markup :-</p>
<div class="code">&lt;a href=&#8221;#&#8221; onclick=&#8221;parent.document.catfish_lock();parent.document.catfish_close();return<br />
false;&#8221; id=&#8221;closeme&#8221;&gt;Don&#8217;t show me this again&lt;/a&gt;</div>
<h2>And Finally</h2>
<p>I&#8217;ve only been able to test the implementation on IE6 and Firefox, if someone could let me know how well it runs on Safari and Opera that would be great.</p>
<p>If you do implement some catfish pop-ups please let me know so I can add a few more examples to this article.</p>
<div class="download">
<p><a href="http://ianpurton.com/catfish/catfish.zip">Download catfish.zip</a></p>
</div>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/ncLrHk5Gb6E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/how-to-create-javascript-catfish-sliding-promotions/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		<feedburner:origLink>http://ianpurton.com/how-to-create-javascript-catfish-sliding-promotions/</feedburner:origLink></item>
		<item>
		<title>Helper to Display Rails Flash Messages</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/EdzkP3tPi1Q/</link>
		<comments>http://ianpurton.com/helper-to-display-rails-flash-messages/#comments</comments>
		<pubDate>Wed, 13 Dec 2006 14:30:19 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://ianpurton.com/helper-to-display-rails-flash-messages/</guid>
		<description><![CDATA[
A simple code snippet for displaying your flash[:warning] = "Warning Message" messages in rails.

Add the following to your application_helper.rb.

def flash_helper

    f_names = [:notice, :warning, :message]
    fl = ''

    for name in f_names
      if flash[name]
        [...]]]></description>
			<content:encoded><![CDATA[<p>
A simple code snippet for displaying your <code>flash[:warning] = "Warning Message"</code> messages in rails.</p>
<p><span id="more-6"></span></p>
<p>Add the following to your application_helper.rb.</p>
<pre>
def flash_helper

    f_names = [:notice, :warning, :message]
    fl = ''

    for name in f_names
      if flash[name]
        fl = fl + "&lt;div class=\"notice\">#{flash[name]}&lt;/div>"
      end
    flash[name] = nil;
  end
  return fl
end
</pre>
<p>To show all messages place this code in your view (rhtml).</p>
<pre class="ruby" name="code">
&lt;%=&nbsp;flash_helper&nbsp;%&gt;
</pre>
<p>Also here&#8217;s some <strong>CSS</strong> to style the messages.</p>
<pre class="css" name="code">
div.notice {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	width: 40%;
	border: 5px solid #ccc;
	margin-top: 50px;
	padding: 20px;
	font-weight: bold;
}
</pre>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/EdzkP3tPi1Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/helper-to-display-rails-flash-messages/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://ianpurton.com/helper-to-display-rails-flash-messages/</feedburner:origLink></item>
		<item>
		<title>Recompile suexec to work with Apache Virtual Domains on Fedora</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/CtRLwwz0AiM/</link>
		<comments>http://ianpurton.com/recompile-suexec-to-work-with-apache-virtual-domains-on-fedora/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:45:28 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Webmastering]]></category>

		<guid isPermaLink="false">http://ianpurton.com/recompile-suexec-to-work-with-apache-virtual-domains-on-fedora/</guid>
		<description><![CDATA[Q. Having problems getting suexec and Apache to work together with your virtual domains ?
A. You need to re-compile suexec to work from a different document root.
Suexec and the Document Root
Basically, suexec is hard coded to work from /var/www/html/ if your virtual domain is using sub directories under another path then you&#8217;ll get this problem. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Q</strong>. Having problems getting <strong>suexec</strong> and Apache to work together with your virtual domains ?</p>
<p><strong>A</strong>. You need to re-compile <strong>suexec</strong> to work from a different document root.</p>
<h2>Suexec and the Document Root</h2>
<p>Basically, <strong>suexec</strong> is hard coded to work from /var/www/html/ if your virtual domain is using sub directories under another path then you&#8217;ll get this problem. I like to host each of my domains on a separate user account under /home.</p>
<p><span id="more-5"></span></p>
<p>Here&#8217;s what I use to recompile <strong>suexec</strong> under Fedora core 5. Incidentally I ran this on a VMWare session on my laptop just to be safe.</p>
<h2>Recompiling</h2>
<p>Make sure you have gcc installed, if not</p>
<pre class="terminal">
yum&nbsp;install&nbsp;gcc
</pre>
<p>The following creates a new suexec copies it in after backing up your old one. Change the /home on the 4th line to whatever document root you require.</p>
<pre class="terminal">
get&nbsp;http://www.apache.org/dist/httpd/httpd-2.0.58.tar.gz
tar&nbsp;-zxvf&nbsp;httpd-2.0.58.tar.gz
cd&nbsp;httpd-2.0.58
./configure&nbsp;--enable-suexec&nbsp;--with-suexec-docroot=/home
make
cp&nbsp;/usr/sbin/suexec&nbsp;/usr/sbin/suexec-
cp&nbsp;support/suexec&nbsp;/usr/sbin/suexec
</pre>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/CtRLwwz0AiM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/recompile-suexec-to-work-with-apache-virtual-domains-on-fedora/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ianpurton.com/recompile-suexec-to-work-with-apache-virtual-domains-on-fedora/</feedburner:origLink></item>
		<item>
		<title>SEO WordPress Sandbox Theme</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/4UfgXJvTEUA/</link>
		<comments>http://ianpurton.com/seo-wordpress-sandbox-theme/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 11:56:19 +0000</pubDate>
		<dc:creator>Ian Purton</dc:creator>
				<category><![CDATA[Web Marketing]]></category>

		<guid isPermaLink="false">http://ianpurton.com/?p=3</guid>
		<description><![CDATA[The SEO Wordpress Sandbox Theme is a bare naked WordPress theme ready for styling via CSS. The theme has been search engine optimised and the markup enhanced to help with search engine rankings.

I&#8217;ve used the Yahoo CSS grids framework which, to quote Yahoo, gives you.

The foundational YUI Grids CSS file offers three preset page widths, [...]]]></description>
			<content:encoded><![CDATA[<p>The <em>SEO Wordpress Sandbox Theme</em> is a bare naked WordPress theme ready for styling via CSS. The theme has been search engine optimised and the markup enhanced to help with search engine rankings.</p>
<p><a href="http://ianpurton.com/wp-content/uploads/2007/01/screenshot.jpg" rel="lightbox" title="Screenshot"><img src="http://ianpurton.com/wp-content/uploads/2007/01/screenshot.jpg" width="96" height="80" alt="Screenshot" /></a></p>
<p>I&#8217;ve used the Yahoo <a href="http://developer.yahoo.com/yui/grids/">CSS grids</a> framework which, to quote Yahoo, gives you.</p>
<blockquote><p>
The foundational YUI Grids CSS file offers three preset page widths, seven core templates, and the ability to nest subdivided regions of one to four columns. All told, the file offers almost 200 preset layouts and an unlimited number of custom permutations that work across all A-grade browsers, all for less than 2.5kb of minimized file weight.
</p></blockquote>
<p><span id="more-10027"></span></p>
<h2>Search Engine Optimisation</h2>
<p>The standard themes that come with Wordpress are good. However, I like to add a couple of tweaks that I believe increase the pages rankings. Namely :-</p>
<ul>
<li>Place the keywords at the beginning of &lt;title> elements.</li>
<li>Promote titles from H2 to H1 elements.</li>
<li>A recents posts list in the sidebar, users landing on your old pages get an easy link to more recent content.</li>
</ul>
<p>I make a couple of tweeks via the wordpress administration console.</p>
<ul>
<li>From the Options/Permalinks menu set the custom structure to <code>/%postname%/</code>. This will place the blog entry title into the URL of the entry.</li>
<li>Install the <a xhref="http://automattic.com/code/widgets/">Sidebar Widgets Plugin</a> this will allow you to add &#8220;Latest Comments&#8221; and &#8220;Latest Posts&#8221; sections on your blog. Invaluable for getting both users and search engines to find your content.</li>
</ul>
<h2>Styling and the YUI Grid CSS</h2>
<p>The theme comes pre-loaded with the Yahoo <strong>reset-fonts-grids-min.css</strong> file, and the HTML is marked up using the <em>hd</em>, <em>bd</em>, <em>ft</em> id&#8217;s as specified in the grid documentation.</p>
<p>To use the <em>doc0-3</em> and <em>yui-t1-7</em> ids and classes you&#8217;ll need to modify the functions.php file which can be accessed via the theme editor within wordpress. There is a <a href="http://developer.yahoo.com/yui/docs/assets/cheatsheets.zip">cheat sheet</a> on how to apply the various layouts and how best to use fonts.</p>
<h2>Search engines and canonical URLs</h2>
<p>One further change that I make to a Wordpress install is the .htaccess file. I add the following directive so that accesses to yoursite.com are forwarded to www.yoursite.com or vice versa. See <a href="http://www.mattcutts.com/blog/seo-advice-url-canonicalization/">the advice on URL canonicalization</a> for why.</p>
<p>To make sure URL&#8217;s have a leading www use.</p>
<ol class="code">
<li class="even">RewriteCond %{HTTP_HOST} !^www[NC]
</li>
<li>RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [L,R=301][NC]
</li>
</ol>
<p>Or, if you prefer to strip off the leading www use.</p>
<ol class="code">
<li class="even">RewriteCond&nbsp;%{HTTP_HOST}&nbsp;\.([a-z-]+\.[a-z]{2,6})$&nbsp;[NC]
</li>
<li>RewriteRule&nbsp;^/(.*)$&nbsp;http://%1/$1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[R=permanent,L]</li>
</ol>
<p></p>
<h2>Download SEO WordPress Sandbox Theme</h2>
<p>The theme can be downloaded <a href="http://ianpurton.com/wp-content/uploads/2006/11/seo-sandbox-theme.zip">Here (.zip)</a>.</p>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/4UfgXJvTEUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/seo-wordpress-sandbox-theme/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://ianpurton.com/seo-wordpress-sandbox-theme/</feedburner:origLink></item>
		<item>
		<title>WordPress Recent Posts Plugin</title>
		<link>http://feedproxy.google.com/~r/IanPurton/~3/mhiAFmEmF_o/</link>
		<comments>http://ianpurton.com/wordpress-recent-posts-plugin/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 08:13:53 +0000</pubDate>
		<dc:creator>ian.purton</dc:creator>
				<category><![CDATA[Web Marketing]]></category>

		<guid isPermaLink="false">http://jiploo.com/blog/wordpress-recent-posts-plugin/</guid>
		<description><![CDATA[This PHP code will give your WordPress blog a recent posts list as I have on my sidebar to the right.
It&#8217;s not actually a plugin, you need to cut and paste this code into the sidebar.php of your theme.

Recent Posts

&#60;?php
function get_recent_posts ($num_posts = 10)
{
  global $wpdb, $tableposts, $post, $tablepost2cat;

  if (!isset($tablepost2cat)) $tablepost2cat = [...]]]></description>
			<content:encoded><![CDATA[<p>This PHP code will give your WordPress blog a recent posts list as I have on my sidebar to the right.</p>
<p>It&#8217;s not actually a plugin, you need to cut and paste this code into the sidebar.php of your theme.</p>
<p><span id="more-10026"></span></p>
<h2>Recent Posts</h2>
<pre name="code" class="php">
&lt;?php
function get_recent_posts ($num_posts = 10)
{
  global $wpdb, $tableposts, $post, $tablepost2cat;

  if (!isset($tablepost2cat)) $tablepost2cat = $wpdb->post2cat;
  if (!isset($tableposts)) $tableposts = $wpdb->posts;

  $orderby = "$tableposts.post_$orderby";

  $now = current_time('mysql');
  $sql = "SELECT DISTINCT * FROM $tableposts ";
  $sql .= "WHERE $tableposts.post_date &lt;= '$now' AND ( $tableposts.post_status = 'publish' ";
  $sql .= "OR $tableposts.post_status = 'sticky' ";
  $sql .= ") ";
  $sql .= "GROUP BY $tableposts.ID ORDER BY $tableposts.post_date DESC";
  $sql .= " LIMIT 0, $num_posts";

  $posts = array();
  $posts = $wpdb->get_results($sql);
  if (empty($posts)) return;

  echo '&lt;ul>';

  foreach ($posts as $post) {

   $title = the_title('','', false);
   echo '&lt;li>';
   echo '&lt;a href="'.get_permalink().'" title="View'.htmlspecialchars(strip_tags($title)).'">'.$title.'&lt;/a>';
   echo '&lt;/li>';
  }

  echo '&lt;/ul>';

 } //end function get_recent_posts()

 get_recent_posts();
?>
</pre>
<img src="http://feeds.feedburner.com/~r/IanPurton/~4/mhiAFmEmF_o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ianpurton.com/wordpress-recent-posts-plugin/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://ianpurton.com/wordpress-recent-posts-plugin/</feedburner:origLink></item>
	</channel>
</rss>
