<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3.1" --><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/" version="2.0">

<channel>
	<title>More Than Scratch The Surface</title>
	<link>http://www.scratch99.com</link>
	<description>A Journey In Web Development</description>
	<pubDate>Fri, 14 Nov 2008 07:32:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MoreThanScratchTheSurface" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">1127475</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>FeedEntryHeader Featured On WordPress Weekly</title>
		<link>http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/</link>
		<comments>http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 07:32:38 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[My WordPress Plugins]]></category>

		<category><![CDATA[content scraping]]></category>

		<category><![CDATA[FeedEntryHeader]]></category>

		<category><![CDATA[splogs]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/.I was pleasantly surprised to find that my FeedEntryHeader plugin was featured on Episode 28 of the WordPress Weekly podcast. The mention was fairly brief,&#160; but it&#8217;s nice to be noticed by such an influential podcast.
I&#8217;d like to thank Keith Murray for making FeedEntryHeader his [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/">http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/</a>.<br /><p>I was pleasantly surprised to find that my <a title="The home page of the FeedEntryHeader plugin for WordPress which allows you add a copyright statment to the top of your feed entries" href="http://www.scratch99.com/wordpress-plugin-feedentryheader/">FeedEntryHeader plugin</a> was featured on <a href="http://weblogtoolscollection.com/archives/2008/11/08/27-overdose/" target="_blank">Episode 28</a> of the <a href="http://weblogtoolscollection.com/archives/category/wordpress-weekly/" target="_blank">WordPress Weekly podcast</a>. The mention was fairly brief,&#160; but it&#8217;s nice to be noticed by such an influential podcast.</p>
<p>I&#8217;d like to thank <a href="http://kdmurray.net/">Keith Murray</a> for making <strong>FeedEntryHeader </strong>his plugin of the week. WordPress Weekly is one of the regular features of my 40 minute train ride into the Brisbane CBD. I always listen to the plugin of the week section with interest, but never thought one of my <a title="My WordPress plugins page" href="http://www.scratch99.com/wordpress-plugins-by-stephen-cronin/">WordPress plugins</a> would appear.</p>
<p>It&#8217;s probably lucky that I found out that FeedEntryHeader was featured <strong>before</strong> I listened to Episode 28. If I&#8217;d been taken by surprise on the train, there&#8217;s no telling what my reaction may have been! </p>
<p>Anyway, Keith mentioned <strong>the threat of having your content scraped</strong> by a splog and the role that FeedEntryHeader can play in combating this.</p>
<p>Ironically, I found out that FeedEntryHeader had been featured on WordPress Weekly when I followed a backlink in my WordPress Admin Dashboard. It took me to a splog, which appears to have been scraping Weblog Tools Collection! There was a copy of the Episode 28 page, word for word, including the link to the FeedEntryHeader home page.</p>
<p>So&#8230; I found out that WordPress Weekly Episode 28 had mentioned my plugin as a <strong>weapon against splogs</strong>, through one of these very splogs, that had scraped the Episode 28 page! This is the bit where I say that Weblog Tools Collection should use FeedEntryHeader right? </p>
<p>Well, as it happens, they&#8217;d been scraped by a reasonably nice splog, which had left all the post&#8217;s links intact, including the post title link pointing at the original post. However, FeedEntryHeader would have made it clearer to people that <strong>they were reading the post on the wrong blog</strong>. It could also help them with the other, not so nice splogs.</p>
<p>Anyway, it was very nice to have been mentioned by WordPress Weekly. It&#8217;s a great podcast and I have a lot of respect for the guys that run it.</p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/452667345" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/11/feedentryheader-featured-on-wordpress-weekly/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Amazing Results - Optimising Image Size Using Smush.it</title>
		<link>http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/</link>
		<comments>http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 13:59:57 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[Websites]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[web applications]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/.There are dozens of new web based applications being launched every day. Most are moderately useful, but it&#8217;s rare that I actually need to use one. After playing with them for a while, I normally abandon them and go back to the core tools I [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/">http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/</a>.<br /><p>There are dozens of new web based applications being launched every day. Most are moderately useful, but it&#8217;s rare that I actually <b>need</b> to use one. After playing with them for a while, I normally abandon them and go back to the core tools I use to get things done. </p>
<p>Well, I found one that&#8217;s going right into my toolset: <a href="http://smushit.com/" target="_blank">smush.it</a>, the image optimisation web application.</p>
<p>I recently read yet another one of those posts that list <b>free web based applications that you must use</b>! There are too many of these posts going around to keep track of. You see the same applications listed again and again and the lists grow longer and longer. Tiresome, but I still read them! </p>
<p>I&#8217;d seen <strong>smush.it </strong>mentioned before, but on this particular day, I decided to click through and check it out. </p>
<p>To be honest, I was skeptical before I tried it. I thought I knew a bit about balancing quality and size for web images. I use <strong>Adobe Fireworks CS3</strong>, which is pretty good at creating images optimised for the web. So, when I tried running <strong>smush.it</strong> on my blog&#8217;s header image, I wasn&#8217;t expecting much.</p>
<div class="csstextbox1">Some background: When I created my <a href="http://www.scratch99.com/2008/09/exciting-new-theme/">new theme</a>, the header image weighed in at 57KB. While not as big as some sites (<a href="http://ma.tt/" target="_blank">Matt Mullenweg</a>&#8217;s is 134KB for example), it was more than I was comfortable with. I could have made it smaller by splitting it up into several smaller images, but I went with a single image to reduce the number of http requests and to speed up the page</div>
<p>Results time: <strong>smush.it</strong> reduced my header image from 57.3KB to 46.7KB. <strong>That&#8217;s a saving of about 19%!</strong></p>
<p>Here&#8217;s the original 57.3KB file created in Fireworks (click to open):</p>
<p><a href='http://www.scratch99.com/wp-content/uploads/2008/10/original-header.png' title='Original Header Image'><img src='http://www.scratch99.com/wp-content/uploads/2008/10/original-header.thumbnail.png' alt='Original Header Image' /></a></p>
<p>And here&#8217;s the 46.7KB smushed image (click to open):</p>
<p><a href='http://www.scratch99.com/wp-content/uploads/2008/10/optimised-header.png' title='Optimised Header Image'><img src='http://www.scratch99.com/wp-content/uploads/2008/10/optimised-header.thumbnail.png' alt='Optimised Header Image' /></a></p>
<p>You can guess which ones up there in the page header now! </p>
<p>When I open the <strong>smushed image</strong> in Fireworks and save it again, it goes back to 57.3KB. That&#8217;s for a flattened PNG24 image (same as the smushed image). Whatever Fireworks is adding, it must be pretty big! The only visible difference I can see is that the <strong>smushed image</strong> is 96dpi, while the original is 71dpi. </p>
<p>I also tried <strong>smushing some other images</strong> and only got a saving of around 2%, but every little bit counts and if you can occasionally chop 19% off an image, then it&#8217;s well worth running. I&#8217;ll be a regular user of <strong>smush.it </strong>from now on.</p>
<p>I optimised the image via the <strong>smush.it</strong> site, but they&#8217;ve also got a <strong>Firefox extension</strong> (or bookmarklet for other browsers) that will smush all the images on a web page and <strong>provide you with them in a zip file for you to download!</strong></p>
<div class="csstextbox1">Note: smush.it is a free service, which is going to be open sourced. No one asked me to write this post, I&#8217;m not getting paid, it&#8217;s just damn good!</div>
<p>Who&#8217;s behind this new web 2.0 offering? Stoyan Stefanov and Nicole Sullivan, who are part of the of the Exceptional Performance team at Yahoo! (the team responsible for YSlow). No wonder it&#8217;s good! </p>
<p>Anyone else out there had any success <strong>optimising images using smush.it</strong>? Matt Mullenweg, if you happen to come across this, <strong>smush.it</strong> can reduce your main header image by 6.45KB (or 4.81%). <strong>Happy smushing everyone!</strong></p>
<script type="text/javascript">Nifty("div.csstextbox1","bgcolor-#FFFFFF");</script><img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/436957152" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/10/smushit-amazing-results-optimizing-images-for-the-web/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Centered Fixed Width Layout And Scrollbar Problem</title>
		<link>http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/</link>
		<comments>http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 13:23:11 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/.I recently ran into a CSS problem with a centered fixed width layout. It’s probably been written about before and experienced web developers may already know this, but it caught me out. I&#8217;m reasonably experienced, so I thought it worth mentioning here.
The Problem: Fixed Width [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/">http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/</a>.<br /><p>I recently ran into a <strong>CSS problem</strong> with a <strong>centered fixed width layout</strong>. It’s probably been written about before and experienced web developers may already know this, but it caught me out. I&#8217;m reasonably experienced, so I thought it worth mentioning here.</p>
<h2>The Problem: Fixed Width Centering Inconsistent</h2>
<p>I&#8217;ve been developing a website for a client, which uses a <strong>fixed width layout</strong>. I know there are arguments against using fixed width layouts, but leave that aside for the moment. It was fixed width. </p>
<p>The site was <strong>centered</strong>, using <code>margin:0 auto;</code> on the body element.</p>
<p>Things were looking good, until I added the fourth page. Then I noticed that there was a <strong>slight offset</strong>, maybe about 8px, between the centering on some of the pages. </p>
<p>When navigating between pages, the whole page (including the menu) would jump slightly to the left or the right. This was annoying (and bad for usability) as the menu should be positioned consistently on all pages.</p>
<h2>Browser Consistency: Problem In Firefox, But Not IE</h2>
<p>I checked to see if this was consistent across different browsers. The problem occurred in Firefox and Chrome, but not in Internet Explorer. </p>
<p>I didn&#8217;t bother checking Opera or Safari, as I was pretty certain they&#8217;d be the same as Firefox and Chrome (especially in the case of Safari which shares the same browser engine as Chrome).</p>
<h2>Tracking Down The Problem</h2>
<p>I set out to track down the problem, but it was slippery. Some pages were fine, some slightly to the left. I seemed to be able to make the problem disappear through various methods: reducing the font-size, removing a paragraph, removing an image, reducing the bottom margin values. </p>
<p>However it was inconsistent: one of the above methods would fix the problem short term, but later the problem would be back and the method would no longer work. Then the penny dropped: </p>
<p><strong>The problem was happening when the browser scrollbar was shown</strong>. </p>
<p>When calculating the size of the area to center the page in, it was using the full width for short pages (with no scrollbar) and the full width minus 17px for long pages (with scrollbar). So obvious in hindsight! My &#8217;solutions&#8217; worked only because they shortened the page enough for the scrollbar to disappear.</p>
<h2>The Solution: overflow:scroll</h2>
<p>Fortunately, there was a simple solution: I added <code>overflow:scroll</code> to the body CSS element. </p>
<p>This will cause <strong>the scrollbar to always appear</strong> (if the page is wide enough), regardless of whether the page is long enough to actually need it. While this is annoying, it&#8217;s better than having the menus move around between pages. </p>
<h2>Final Thoughts</h2>
<p>Most sites I work with never have a page short enough for this problem to occur! In theory, the problem could occur on this very blog, but the sidebar is so long that the scroll bar will always be shown.</p>
<p>Have you ever been tricked by a CSS problem that has such a simple explanation in hindsight? If so, please share it in the comments!</p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/431701569" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/10/centered-fixed-width-layout-css-problem-browser-scrollbar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Notice: WordPress Plugin Category Feeds To Be Removed</title>
		<link>http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/</link>
		<comments>http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 03:55:55 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[My WordPress Plugins]]></category>

		<category><![CDATA[DualFeeds]]></category>

		<category><![CDATA[FeedEntryHeader]]></category>

		<category><![CDATA[IFrameWidgets]]></category>

		<category><![CDATA[KeywordLuv]]></category>

		<category><![CDATA[localcurrency]]></category>

		<category><![CDATA[Wordpress Plugins]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/.It&#8217;s been a while since I last posted, because I&#8217;ve been tied up with some other projects. My focus is now returning to this blog, but before I get into anything of substance, there&#8217;s some housekeeping I need to take care of.
If you subscribe to [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/">http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/</a>.<br /><p>It&#8217;s been a while since I last posted, because I&#8217;ve been tied up with some other projects. My focus is now returning to this blog, but before I get into anything of substance, there&#8217;s some housekeeping I need to take care of.</p>
<p>If you subscribe to the feed of one of my WordPress plugin categories, please be warned that <strong>these feeds will be removed in 7 days time</strong>. The feeds in question are the following:</p>
<p><small></p>
<ul>
<li>http://www.scratch99.com/category/my-wordpress-plugins/dualfeeds/feed</li>
<li>http://www.scratch99.com/category/my-wordpress-plugins/iframewidgets/feed</li>
<li>http://www.scratch99.com/category/my-wordpress-plugins/feedentryheader/feed</li>
<li>http://www.jobsinchina.com/category/resourcesx/localcurrency/feed</li>
<li>http://www.scratch99.com/category/my-wordpress-plugins/keywordluv/feed</li>
</ul>
<p></small></p>
<p>If you want news about my <a href="http://www.scratch99.com/wordpress-plugins-by-stephen-cronin/">WordPress plugins</a>, <strong>please subscribe to the following feed</strong>:</p>
<p><a href="http://www.scratch99.com/category/my-wordpress-plugins/feed/">http://www.scratch99.com/category/my-wordpress-plugins/feed</a></p>
<p><strong>This feed will contain news and tips relating to ALL my WordPress plugins</strong>.</p>
<p>Alternatively, you can subscribe to the feed relating to the tag (rather than category) for each plugin. These will <strong>probably</strong> have all the news relating to each plugin, but may also contain other posts that mention the plugin in passing. These feeds are as follows:</p>
<ul>
<li><a href="http://www.scratch99.com/tag/dualfeeds/feed">DualFeeds Tag Feed</a></li>
<li><a href="http://www.scratch99.com/tag/iframewidgets/feed">IFrameWidgets Tag Feed</a></li>
<li><a href="http://www.scratch99.com/tag/feedentryheader/feed">FeedEntryHeader Tag Feed</a></li>
<li><a href="http://www.scratch99.com/tag/localcurrency/feed">LocalCurrency Tag Feed</a></li>
<li><a href="http://www.scratch99.com/tag/keywordluv/feed">KeywordLuv Tag Feed</a></li>
</ul>
<p>I&#8217;ve taken this move for two reasons:</p>
<ol>
<li>I&#8217;m consolidating my categories, because I have too many of them. This will merge 5 categories into one general category for my WordPress plugins.</li>
<li>I normally stick to one category per post, but I often have news relating to more than one plugin. This will allow such news to reach everyone who needs it.</li>
</ol>
<p>I regret any inconvenience this may cause, but hopefully it will result in a better site.</p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/429226249" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/10/notice-wordpress-plugin-category-feeds-to-be-removed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Password Protecting The Wp-admin Folder</title>
		<link>http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/</link>
		<comments>http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 13:42:11 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[virus]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/.I recently listened to the WordPress Podcast - Episode 44. Although it&#8217;s a couple of months old now, it was quite interesting and one issue really caught my eye ear: the security related question for Matt Mullenweg at around 1:13:30 of the podcast.
A listener, Simon [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/">http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/</a>.<br /><p>I recently listened to the <a href="http://wp-community.org/2008/08/04/episode-44/" target="_blank">WordPress Podcast - Episode 44</a>. Although it&#8217;s a couple of months old now, it was quite interesting and one issue really caught my <s>eye</s> ear: the <strong>security related question</strong> for Matt Mullenweg at around 1:13:30 of the podcast.</p>
<p>A listener, Simon Jones from <a href="http://beforeiforget.co.uk" target="_blank">beforeiforget.co.uk</a>, talked about the difficulty of changing the default WordPress user name from <strong>admin</strong> to something a <strong>little harder for hackers to guess</strong>. The only way to do this is to change it in the database itself - it can&#8217;t be done through WordPress. </p>
<p>Simon&#8217;s main question was &quot;Why isn&#8217;t there an easier way to <strong>change the default user from admin to something else</strong>?&quot;. Matt didn&#8217;t actually answer this, presumably because Simon&#8217;s question was fairly long and to be honest, could have been a little more to the point. </p>
<p>However, Matt did mention that it&#8217;s <strong>very difficult to brute force WordPress</strong> because such an attempt would need to submit thousands of requests per second and web servers won&#8217;t allow that many requests. He also mentioned that he&#8217;d changed his user name, though obviously not for security reasons, because he told everyone what it was!</p>
<p>Anyway, the podcast has inspired me to go on to discuss a couple of points related to <strong>WordPress security</strong>:</p>
<h2>Password Strength</h2>
<p>What Matt didn&#8217;t say (because it&#8217;s elemental) is that having a strong password is essential. A user name / password combination of Admin and dS35Hg68p1d will be much harder to break than one of admin and WordPress.</p>
<p>If you have a strong password, leaving user name as admin is less of an issue. So make sure your password is reasonably strong.</p>
<h2>Protecting The Wp-admin Folder</h2>
<p>For the paranoid, such as myself, who are worried about their WordPress login being hacked, it&#8217;s possible to add an <strong>extra layer of security to the wp-admin folder</strong>. This is more effective than just changing the default user. There are different ways to do this, including:</p>
<ul>
<li>only allowing users from a certain <a href="http://money.bigbucksblogger.com/blog-security-htaccess-block/" target="_blank"><strong>IP address or range to access the wp-admin folder</strong></a></li>
<li>using the <a href="http://www.askapache.com/wordpress/htaccess-password-protect.html" target="_blank"><strong>AskApache Password Protect plugin</strong></a> to password protect the wp-admin folder</li>
<li>using <strong>CPanel</strong> to password protect the wp-admin folder (here&#8217;s a <a href="http://www.waterswebshops.com/tutorials/cpanel_x3_ppdirectory.htm" target="_blank"><strong>general tutorial</strong></a>, but one that could be applied to wp-admin) </li>
</ul>
<p>The second two methods will present the user with an additional user name / password prompt before the normal WordPress login screen can be accessed. This obviously takes longer to log in, but it also makes it <strong>much more unlikely that your site can be hacked</strong>. </p>
<div class="csstextbox1">These two methods work in a similar way, setting security through the .htaccess file. If you really know what you&#8217;re doing, you could set this up manually.</div>
<h2>Problem With Password Protecting The Wp-admin Folder</h2>
<p>When I first tried to password protect the wp-admin folder, using the AskApache Password Protect plugin, I ran into a serious problem. <strong>I wasn&#8217;t given the &#8220;Authentication Required&#8221; window, I just got a 404 File not found message</strong>. This meant I was unable to log into my WordPress system and couldn&#8217;t access the plugin screen to turn off the password protection.</p>
<p>So how did I get access to my site again? I logged into my host via FTP and removed the following files:</p>
<ul>
<li>.aahtpasswd from the public_html folder </li>
<li>.htaccess from the public_html/wp-admin directory (<b>not the one from public_html</b>)<b></b></li>
</ul>
<p>I later experienced this same problem when <strong>password protecting the wp-admin folder via Cpanel</strong>, but of course, I could just turn off the password protection again via Cpanel. </p>
<p>I found a permanent solution to this problem at Developed Traffic&#8217;s <a href="http://developedtraffic.com/2007/05/27/wordpress-admin-password-protection-404/" target="_blank">WordPress admin password protection 404</a> post. The solution is to create an empty file called myerror.html and upload it to your public_html folder, then add the following to your .htaccess file (in public_html):</p>
<p class="codebox"><code>ErrorDocument 401 /myerror.html<br />
ErrorDocument 403 /myerror.html</code></p>
<p>If you want to store the myerror.html file in a folder, rather than in public_html, then simply add the folder&#8217;s name to the two lines, ie:</p>
<p class="codebox"><code>ErrorDocument 401 /foldername/myerror.html<br />
ErrorDocument 403 /foldername/myerror.html</code></p>
<p>That should fix the problem - although I&#8217;m not sure what impact it may have on other things (ie by having 401 and 403 go to the new file rather than WordPress handling it). If anyone out there know this please let me know in the comments.</p>
<h2>The Real Lesson About WordPress Security</h2>
<p>This post is all about trying to minimize the slight chance that someone may be able to break into your WordPress system via the login screen. I&#8217;m willing to bet that <strong>out of all the WordPress blogs ever hacked, very few of them would have been hacked via the login screen</strong>.</p>
<p>In the previous section, I mentioned how I locked myself out of the WordPress login screen, but got around it by FTPing in. <strong>All that security</strong> on the login screen <strong>is worth nothing</strong> if someone gets access to your host account via FTP.</p>
<p>From what I&#8217;ve heard, most hacked sites were compromised via:</p>
<ul>
<li>their host login being stolen after their email account was hijacked and used by the hackers to get the login details from the host service provider</li>
<li>through an XSS exploit in WordPress</li>
</ul>
<p>So the real lesson is to <strong>keep your computer free of viruse</strong>s and spyware and <strong>your WordPress installation up to date</strong> with the latest security releases.</p>
<p>If you have any further thoughts on WordPress security, please let me know in the comments.</p>
<script type="text/javascript">Nifty("div.csstextbox1","bgcolor-#FFFFFF");</script><img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/410259205" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/10/password-protecting-the-wp-admin-folder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting Cookies In WordPress - Trap For Beginners</title>
		<link>http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/</link>
		<comments>http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 21:18:29 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/.I recently wrote about displaying ads only to search visitors in WordPress. A key part of the technique described is to set a cookie, identifying the visitor as having come from a search engine. It should have been simple, but my PHP setcookie command didn’t [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/">http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/</a>.<br /><p>I recently wrote about <a href="http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/">displaying ads only to search visitors</a> in WordPress. A key part of the technique described is to <strong>set a cookie</strong>, identifying the visitor as having come from a search engine. It should have been simple, but my <a href="http://php.net/setcookie">PHP setcookie command</a> didn’t appear to work. </p>
<p>I was using the setcookie command in the same way I’d done countless times before. I’d already taken into account that the cookie <strong>wouldn’t be available</strong> on the <strong>first page view</strong>. I couldn’t see anything wrong with the command I was using (in functions.php in the WordPress theme I was creating):</p>
<p class="codebox"><code>setcookie(&quot;sevisitor&quot;, 1, time()+3600);</code></p>
<p>This should have set a cookie with a name of sevisitor and a value of 1, that expires after one hour. However, <strong>no cookie was created</strong>.</p>
<p>After scouring the Internet in vain, I found a hint somewhere in the WordPress Support Forums (although I can’t find the page again now!). It suggested that the <strong>setcookie command&#8217;s domain parameter</strong> needed to be set.</p>
<p>I’d never used this parameter before and although I’ve seen explanations of what it does, I still can’t find a clear explanation of why you’d want to use it. Most descriptions of it mention that it’s optional, but don’t mention under what circumstances it would be necessary. Any <strong>PHP experts</strong> out there, please feel free to put me straight in the comments!</p>
<p>Anyway, after some experimentation, I got it working, by using the following command:</p>
<p class="codebox"><code>setcookie(&quot;sevisitor&quot;, 1, time()+3600, &quot;/&quot;, &quot;.scratch99.com&quot;); </code></p>
<p>Problem solved! As you can see I’ve done the following:</p>
<ul>
<li>added the path parameter, setting it to &#8220;/&#8221;, which allows the cookie within the entire domain. </li>
<li>added the domain parameter, setting it to my top level domain (.scratch99.com). Note the preceding . apparently makes it compatible with more browsers.</li>
</ul>
<p>Obviously, if you want to set a cookie in WordPress, you’ll have to <strong>replace .scratch99.com with the domain you are using</strong>.</p>
<p>Alternatively, you could let WordPress work out the domain for you, by using the following:</p>
<p class="codebox"><code>setcookie(&quot;sevisitor&quot;, 1, time()+3600, &quot;/&quot;, str_replace(&#039;http://www&#039;,&#039;&#039;,get_bloginfo(&#039;url&#039;)) );</code></p>
<p>This uses the <code>get_bloginfo(&#039;url&#039;))</code> command to get the site’s URL from WordPress, then strips the preceding <code>http://www</code> from it, leaving only the domain. Note, if you don’t use the www on your site, you’ll need to change: </p>
<p class="codebox"><code>str_replace(&#039;http://www&#039;</code></p>
<p>to </p>
<p class="codebox"><code>str_replace(&#039;http://&#039;</code></p>
<p>However, it’s really not worth doing things this way – your site will be <em>slightly</em> faster if you hard code your domain in. </p>
<p>The only time you’d want to use the above would be if you were putting this into a <strong>WordPress Theme</strong> that you were creating to be distributed. In that case, you’d probably want to make it a little cleverer, so that it works whether or not the www is present. But I’ll leave that to you to work out!</p>
<p>Anyway, the lesson I learned: <strong>If you want to set a cookie in WordPress, you must set the path and domain parameters</strong>.</p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/403159346" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To Display Ads Only To Search Visitors</title>
		<link>http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/</link>
		<comments>http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 12:37:21 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[Plugin Hacks]]></category>

		<category><![CDATA[Adsense]]></category>

		<category><![CDATA[hacks]]></category>

		<category><![CDATA[make money online]]></category>

		<category><![CDATA[Monetization]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[Wordpress Plugins]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/.In the past, I&#8217;ve written about only showing Google Adsense to search engine visitors, so as to decrease the chance of being smart priced. In this post, you&#8217;ll see how to improve the technique outlined previously, so that you can make more money.  
Note: [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/">http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/</a>.<br /><p>In the past, I&#8217;ve written about <a href="http://www.scratch99.com/2008/01/shylock-adsense-plugin-hack-to-avoid-adsense-smart-pricing/">only showing Google Adsense to search engine visitors</a>, so as to decrease the chance of being <strong>smart priced</strong>. In this post, you&#8217;ll see how to improve the technique outlined previously, so that you can <strong>make more money</strong>.  </p>
<div class="csstextbox1">Note: Although this post is about showing Adsense to search engine visitors, it’s really about determining whether a user came from a search engine or not. The technique can be used to show search engine visitors whatever you choose, not just Adsense.</div> </p>
<h2>Background On Smart Pricing</h2>
<p>By now, most people know that <strong>Smart Pricing</strong> is a penalty Google applies to Adsense accounts that don’t convert well for the advertiser, resulting in you <strong>earning only about 10%</strong> of what you’d normally earn per click. </p>
<p>I’m not going to go into more detail than is absolutely necessary in this post, so if you want more information on Smart Pricing, see my post on <a href="http://www.scratch99.com/2008/08/seth-godin-smart-pricing/">how smart pricing may cost you money</a> or for the ultimate description, see Grizzly’s <a href="http://makemoneyforbeginners.blogspot.com/2008/04/optimization-tips-for-adsense.html">Optimization Tips for Adsense</a>.</p>
<p>For now, you just need to know that <strong>only certain visitors are going to click Adsense ads</strong> and buy something from the advertiser. Who? It’s not your regular readers. It’s not the stream of visitors from StumbleUpon, Digg or Sphinn. It’s the <strong>search engine visitors</strong>.</p>
<p>Search engine visitors provide <strong>targeted traffic</strong> for the advertiser, which <strong>converts well</strong>. The other sources don’t. If the majority of your traffic comes from the social news sites, then you’re <a href="http://www.scratch99.com/2008/01/avoid-adsense-smart-pricing-on-blogs/">in danger of being smart priced</a>. That’s why I chose to show Adsense only to search engine visitors.</p>
<h2>The Original “From Search” Function</h2>
<p>In my original <a href="http://www.scratch99.com/2008/01/shylock-adsense-plugin-hack-to-avoid-adsense-smart-pricing/">Shylock Adsense Plugin - Hack To Avoid Smart Pricing</a> post, I provided two approaches: one based on hacking just the Shylock Adsense plugin; another on a more generic solution that can be called from wherever you want (within the Shylock Adsense plugin, the sidebar, single.php, etc). </p>
<p>In this post, I’m using the second approach as it has a wider application. This was originally explained in the <em>Hacking Shylock Adsense AND Sidebars</em> section of the previous post. This worked by adding the following function to functions.php in your theme’s folder (wp-content/themes/<em>yourtheme</em> folder, where <em>yourtheme</em> is the name of your theme):</p>
<p class="codebox"><code>function scratch99_fromasearchengine(){<br />
&nbsp;&nbsp;$ref = $_SERVER[&#039;HTTP_REFERER&#039;];<br />
&nbsp;&nbsp;$SE = array(&#039;/search?&#039;, &#039;images.google.&#039;, &#039;web.info.com&#039;, &#039;search.&#039;, &#039;del.icio.us/search&#039;, &#039;soso.com&#039;, &#039;/search/&#039;, &#039;.yahoo.&#039;);<br />
&nbsp;&nbsp;foreach ($SE as $source) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (strpos($ref,$source)!==false) return true;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return false;<br />
}<br />
</code></p>
<div class="csstextbox1">Note: This function is based on the ‘only show search engine’ functionality from the <a href="http://planetozh.com/blog/my-projects/wordpress-plugin-who-sees-ads-control-adsense-display/">Who Sees Ads plugin</a>.</div>
<p>This function was then called from the Shylock Adsense plugin, a sidebar widget, or anywhere else you may want to, via the following code:</p>
<p class="codebox"><code>if (function_exists(&#039;scratch99_fromasearchengine&#039;)) {<br />
&nbsp;&nbsp;if (scratch99_fromasearchengine()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;INSERT YOUR CODE HERE<br />
&nbsp;&nbsp;}<br />
}</code></p>
<p>Obviously, INSERT YOUR CODE HERE needs to be replaced with whatever code you want to show the search engine visitors: your Adsense code if it’s in the sidebar (using the <a href="http://wordpress.org/extend/plugins/php-code-widget/">ExecPHP widget</a>) or the Shylock Adsense code (see my original post for more details).</p>
<h2>Problem With The Original Function</h2>
<p>As <a href="http://www.zath.co.uk/">Zath</a> pointed out in the comments, the original function only works on the <strong>first page</strong> the visitor lands on. If the visitor subsequently navigates to another page on your site, <strong>the ads disappear</strong>. This is because the http_referer is no longer the search engine, it’s now the page where they landed on your site.</p>
<p>Of course, that means they no longer have the option to <strong>click an ad</strong> before leaving the site. I wasn&#8217;t worried about this, because I figured not many search engine visitors would go to another page on my site. <strong>I was wrong!</strong></p>
<h2>Leaving Money On The Table</h2>
<p>According to Google Analytics, over the last month, visitors arriving at this site from a search engine read 1.54 pages per visit. That means that <strong>every second visitor</strong> is clicking another page. </p>
<p>Every second visitor! That means I could be <strong>serving up 50% more ads</strong> to the sort of visitor who is <strong>likely to click ads</strong>!</p>
<p>I decided I better change the way I was doing things, so that <strong>search engine visitors see ads on every page</strong> they visit at my site. Fortunately, this is fairly easy to do, by setting a cookie that identifies search engine visitors.</p>
<h2>New “From Search” Function Using Cookie</h2>
<p>Here is the solution I’m now using on this blog. </p>
<p>First, the you need to add some code to functions.php in your theme’s folder (wp-content/themes/<em>yourtheme</em> folder, where <em>yourtheme</em> is the name of your theme). The following should be added immediately before the ?> at the bottom of the file:</p>
<p class="codebox"><code>$ref = $_SERVER[&#039;HTTP_REFERER&#039;];<br />
$SE = array(&#039;/search?&#039;, &#039;images.google.&#039;, &#039;web.info.com&#039;, &#039;search.&#039;, &#039;del.icio.us/search&#039;, &#039;soso.com&#039;, &#039;/search/&#039;, &#039;.yahoo.&#039;);<br />
foreach ($SE as $source) {<br />
&nbsp;&nbsp;if (strpos($ref,$source)!==false) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;setcookie(&quot;sevisitor&quot;, 1, time()+3600, &quot;/&quot;, &quot;.scratch99.com&quot;); <br />
&nbsp;&nbsp;&nbsp;&nbsp;$sevisitor=true;<br />
&nbsp;&nbsp;}<br />
}<br />
&nbsp;<br />
function fromasearchengine(){<br />
&nbsp;&nbsp;global $sevisitor;<br />
&nbsp;&nbsp;if ($sevisitor==true || $_COOKIE[&quot;sevisitor&quot;]==1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return false;<br />
}<br />
</code></p>
<p><strong>Note: In the setcookie line, you must change &#8220;.scratch99.com&#8221; to your own domain!<br />
</strong><br />
The fromasearchengine function can then be called from wherever you want to use it (to check if a visitor is from a search engine or not). This is explained further below.</p>
<h2>Notes About The New “From Search” Function</h2>
<p>The code that detects whether the user is from a search engine has been moved out of the fromasearchengine function, into the body of functions.php. This means it will only run this code once per page load, rather than every time the function is called, which may be several times per page load (I call it from Shylock Adsense and from the sidebar).</p>
<p>Also, the $sevisitor variable was introduced because the cookie can’t be detected on the first page view. The cookie is set on the first page view, but the $_COOKIE function won’t see it until the next page view. The above code checks whether the $sevisitor variable is set (ie it’s the first page view) or whether the cookie is set (ie it’s a subsequent page view).</p>
<p>I had one problem with setting the cookie via WordPress, but it doesn&#8217;t affect the final solution above, so I leave that for a future post.</p>
<h2>Calling The New “From Search” Function</h2>
<p>To call the new fromasearchengine function from Shylock Adsense, edit the shylock_adsense.php file which comes with the plugin. Look for the following code (on line 325 in version 1.2):</p>
<p class="codebox"><code>function shylock_adsense_filter($content){<br />
&nbsp;&nbsp;global $id,$user_level;<br />
&nbsp;&nbsp;$output = $content;</code></p>
<p>and replace it with:</p>
<p class="codebox"><code>function shylock_adsense_filter($content){<br />
&nbsp;&nbsp;global $id,$user_level;<br />
&nbsp;&nbsp;$output = $content;<br />
&nbsp;<br />
if (function_exists(&#039;fromasearchengine&#039;)) {<br />
&nbsp;&nbsp;if (fromasearchengine()) {<br />
</code></p>
<p>Then go down to about line 364 and look for:</p>
<p class="codebox"><code>&nbsp;&nbsp;return $output;</code></p>
<p>and replace it with:</p>
<p class="codebox"><code>} } return $output;</code></p>
<div class="csstextbox1">Note: I’ve just noticed that the Shylock Adsense Plugin has been renamed to the <a href="http://www.whydowork.com/blog/whydowork-adsense-plugin/">WhyDoWork Adsense Plugin</a>. The name change seems to be the only difference, so the line numbers above are still correct, but the function is called whydowork_adsense_filter instead of shylock_adsense_filter.</div>
<p>Alternatively, to call it from a  PHP sidebar widget or somewhere else (such as single.php), you would add the following code in the appropriate place:</p>
<p class="codebox"><code>&lt;?php if (function_exists(&#039;fromasearchengine&#039;)) {<br />
&nbsp;&nbsp;if (fromasearchengine()) { ?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;INSERT YOUR CODE HERE<br />
&lt;?php } } ?&gt;</code></p>
<p>replacing INSERT YOUR CODE HERE with your Adsense code or whatever else you wanted to show the search engine visitor.</p>
<h2>Final Thoughts</h2>
<p>Using this technique, to set a cookie to <strong>identify search engine visitors</strong>, then only serving Adsense to such visitors, should help you <strong>make more money</strong>, while avoiding being <strong>smart priced</strong>. However, as always, it pays to experiment with Adsense and monitor the affects on your income.</p>
<p>Of course this technique will have other applications as well, allowing you to <strong>serve whatever content you like to search engine visitors</strong>. I hope some of you find it of use.</p>
<script type="text/javascript">Nifty("div.csstextbox1","bgcolor-#FFFFFF");</script><img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/397174437" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/09/avoid-smart-pricing-show-adsense-only-to-search-engine-visitors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Exciting New Look For More Than Scratch The Surface</title>
		<link>http://www.scratch99.com/2008/09/exciting-new-theme/</link>
		<comments>http://www.scratch99.com/2008/09/exciting-new-theme/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 13:00:29 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[advertising]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[site improvement]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/09/exciting-new-theme/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/09/exciting-new-theme/.This post marks an exciting new theme for More Than Scratch The Surface. Regular readers won&#8217;t recognise the site! I&#8217;ve extensively overhauled the theme and in this post I explain the changes, the choices I made and why I made them.
Firstly, for my regular readers, [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/09/exciting-new-theme/">http://www.scratch99.com/2008/09/exciting-new-theme/</a>.<br /><p>This post marks an <strong>exciting new theme</strong> for More Than Scratch The Surface. Regular readers won&#8217;t recognise the site! I&#8217;ve extensively overhauled the theme and in this post I explain the changes, the choices I made and why I made them.</p>
<p>Firstly, for my regular readers, if you&#8217;re reading this in a feed reader, come on over to the site and check it out. I&#8217;d love some feedback from you. And if you find any problems, please let me know.</p>
<h2>Screenshots</h2>
<p>For posterity, here is a screenshot of both the old theme and the new one:</p>
<p><a href='http://www.scratch99.com/wp-content/uploads/2008/09/old-theme.jpg' title='Old Theme'><img src='http://www.scratch99.com/wp-content/uploads/2008/09/old-theme.thumbnail.jpg' alt='Old Theme' /></a> <a href='http://www.scratch99.com/wp-content/uploads/2008/09/new-theme.jpg' title='New Theme'><img src='http://www.scratch99.com/wp-content/uploads/2008/09/new-theme.thumbnail.jpg' alt='New Theme' /></a></p>
<h2>A New Theme?</h2>
<p>Actually, it&#8217;s not a <strong>new theme</strong>, it&#8217;s the same theme. I&#8217;ve just totally overhauled it to the extent that you wouldn&#8217;t know it’s the same theme.</p>
<p>My original plan was to start from scratch and <strong>build a new theme</strong> from the ground up. However, I&#8217;m short on time at the moment, so I decided to just adapt my current theme. </p>
<p>I started by creating the header graphic and the menu section in straight HTML, then modified my current WordPress theme to incorporate it.</p>
<p>Making the new stuff work with the old has resulted in some <strong>very messy HTML / CSS</strong>. I’m quite irritated by this, so I&#8217;m still planning to create a new theme, from the ground up, when I have time.</p>
<p>It’s also not quite finished yet. I have some <strong>other features I&#8217;d like to add</strong> and I&#8217;m not quite convinced by some things  (the font, the link colour, the background colours), so there&#8217;ll be some small changes in future. </p>
<p>However, this post marks the big change and I’m pretty happy with the general look of the theme, especially the header. So which designer did I use to create it? Me! And I really enjoyed doing it.</p>
<h2>The Menu</h2>
<p>I originally included a text based menu, but ended up changing to an image based menu. </p>
<p>In general, I prefer text based menus because they’re <strong>simpler, cleaner and easier to maintain</strong>. However, I’m a bit of a control freak at times, and the text menu didn’t look so good when the text was resized. This was a ‘problem’ <strong>even when specifying the font in px</strong> (IE won’t resize but Firefox will). </p>
<p>By using an image based menu I could ensure that the menu will always look right. As a bonus, using an image allowed me to use a far more attractive font! I was going to go all glassy buttons with the menu, but decided that would make the page too busy.</p>
<p>I understand that one of the principles behind accessibility is that the user can decide how the page will look. I don&#8217;t mind resizing for most of the page, but <strong>I don&#8217;t want the menu to appear broken</strong>, especially as the site acts as an advertisement. Let’s face it, potential clients are probably more concerned (wrongly) about looks than they are about accessibility.</p>
<p>Anyway the menu IS accessible: the HTML is clean and the menu is an unordered list. If the user disables CSS, provides their own style sheet or is using different media, they’ll get a nice list of menu options. Note, I made a point of saying the menu is accessible, because once you hit the sidebars, things aren’t perfect. It’s not terrible, but not as good as I’d like. </p>
<h2>Images And Performance</h2>
<p>Having read many times that one of the <strong>keys to speeding up a page</strong> is to <strong>reduce the number of http requests</strong>, I made a concerted effort to reduce the number of images used in theme. I even went so far as to sacrifice size to achieve this.</p>
<p>The old theme had 8 images with a total size of 18KB. The new theme only has 3 images, but they weigh in at 68KB. The new images were always going to be larger than the old theme’s, but I’m sure I could have kept it under 50KB if I’d split the images up further. </p>
<p>The image based menu increased the total size of images used, especially as the image changes on mouse hover. I used <strong>CSS sprites</strong> to keep the number of images needed down: the images used for the menu’s normal and hover states are both part of the main header image.</p>
<p>I’ll admit that the image size worries me, so I’ll be keeping an eye on performance. I’m not sure at what point <strong>the size outweighs the number of http requests</strong>.</p>
<p>This influenced my decision not to use <a href="http://www.alistapart.com/articles/sprites2">JQuery to fade in the hover state</a>. I’ve been playing with JQuery lately and I like the idea, but it’s not worth adding the size of the JQuery script just to get fading menus. If I start using JQuery for something else, I&#8217;ll revisit this idea.</p>
<p>Finally, I used an image for the background of the WordPress plugins blurb near the top of the sidebar. No big deal right? Well I actually used a <strong>vertical sliding doors technique</strong> to cater for the user resizing the text. It may be overkill, but you have to increase the text size about 20 times in Firefox before it starts to fall apart. I’ll write up how I did this in a separate post.</p>
<h2>Advertising</h2>
<p>Another big change with this theme is that I’ve finally embraced <strong>direct advertising</strong> and built ad spaces into the theme. I’ve been planning to do it for a while and the new theme seemed like the right time to introduce it.</p>
<p>I’m offering <strong>special introductory prices (50% off)</strong> until the slots fill up, making it only $12.50 for a spot at the top of my sidebar, or $7.50 for a spot lower down in the right sidebar. If you want to advertise on More Than Scratch The Surface, check out my <a href="http://www.scratch99.com/advertise/">Advertise</a> page! </p>
<p>One important thing to note however, is that I’m nofollowing the links, to protect both the advertiser’s site and mine from attracting a <a href="http://www.scratch99.com/2008/01/toolbar-pagerank-penalty/">toolbar PageRank penalty from Google</a>. Advertising here is purely to <strong>build brand awareness</strong> for your site and <strong>send you traffic</strong>, not to game the search engines.</p>
<h2>Final Thoughts</h2>
<p>I&#8217;ve spent a fair bit of time making these changes to my theme and I&#8217;m very happy with the new look. But what do you think? Leave a comment and let me know!</p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/389633020" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/09/exciting-new-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WPVote Needs To Improve Published News Section</title>
		<link>http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/</link>
		<comments>http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 12:23:54 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[social networks]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/.For those of you who don&#8217;t know, there&#8217;s a new social news site for WordPress, called WPVote. I&#8217;ve been using the site for a couple of days and while the concept is great, the quality of entries are poor at this early stage.
I&#8217;m a big [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/">http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/</a>.<br /><p>For those of you who don&#8217;t know, there&#8217;s a new <strong>social news site for WordPress</strong>, called <a href="http://www.wpvote.com/"><strong>WPVote</strong></a>. I&#8217;ve been using the site for a couple of days and while the concept is great, the quality of entries are poor at this early stage.</p>
<p>I&#8217;m a big believer in the idea of a social news site for WordPress. It&#8217;s a great way of pooling together all of the WordPress related posts out there, making it <strong>easy for people to find quality information</strong> about WordPress. </p>
<p>The Published News section should be the most valuable list of WordPress related articles around. Unfortunately however, to be quite frank, there&#8217;s <strong>a lot of crap</strong> in the Published News section at the moment.</p>
<p>There are the obligitory Top WordPress Plugins Lists that don&#8217;t add anything new (and seem to miss many of the essential plugins to boot), generic How To Blog posts with only a tenuous link to WordPress, and posts that don&#8217;t really help. For example, one post includes the point: </p>
<blockquote><p>If you have added a new feature to your WP blog by writing some PHP code that executes SQL queries; make sure that you minimize the load on the server.</p></blockquote>
<p>If you know what that means, you probably don&#8217;t need to be told. If you don&#8217;t know what that means, this doesn&#8217;t help you at all!  If it had a link to a site that told you how to minimise the load on the server, then it would add value. Without such a link, <strong>it&#8217;s useless</strong>.</p>
<p>I won&#8217;t link to these entries here, as I&#8217;m not having a go at individuals and don&#8217;t want to single anyone out, but posts such as this <strong>don&#8217;t belong in the Published News section</strong>.</p>
<p>Now, I&#8217;m not saying that these articles are all bad (or that mine are better), or that there aren&#8217;t top quality posts there as well (see Perishable Press&#8217; excellent and original article on <a href="http://perishablepress.com/press/2006/06/14/the-htaccess-rules-for-all-wordpress-permalinks/">.htaccess rules for permalinks</a>), or that this doesn&#8217;t happen on other social news sites.</p>
<p>I&#8217;m not even saying that the poor quality entries shouldn&#8217;t be on WPVote. Of course they&#8217;re entitled to be! I just want to see <strong>better quality in the Published News section</strong>. How do we get that? </p>
<p><strong>We all need to get behind WPVote</strong>. Submit quality WordPress articles when you find them. Vote on entries in the Upcoming News section. Add comments. Spread the word about WPVote, so the community grows.</p>
<p>I know this post sounds harsh, but it&#8217;s a call to action. I believe WPVote can be truly great - but the only way that will come to pass is if we all get behind it. <strong>Let&#8217;s make WPVote great!</strong></p>
<img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/376145156" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/08/wpvote-needs-to-improve-published-news-section/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Seth Godin May Be Costing You Money</title>
		<link>http://www.scratch99.com/2008/08/seth-godin-smart-pricing/</link>
		<comments>http://www.scratch99.com/2008/08/seth-godin-smart-pricing/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 07:27:14 +0000</pubDate>
		<dc:creator>Stephen Cronin</dc:creator>
		
		<category><![CDATA[Monetization]]></category>

		<category><![CDATA[Adsense]]></category>

		<category><![CDATA[advertising]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[make money online]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[traffic]]></category>

		<guid isPermaLink="false">http://www.scratch99.com/2008/08/seth-godin-smart-pricing/</guid>
		<description><![CDATA[Copyright © 2008 Stephen Cronin. Visit the original article at http://www.scratch99.com/2008/08/seth-godin-smart-pricing/.This morning I noticed an entry on Sphinn highlighting GreyWolf’s Seth Godin Wants to Cheat Advertisers with Fake Clicks post. It discusses Seth Godin’s Ads are the new online tip jar post, which suggests that readers should click ads to reward bloggers for their writing. [...]]]></description>
			<content:encoded><![CDATA[Copyright © 2008 <a href="http://www.scratch99.com">Stephen Cronin</a>. Visit the original article at <a href="http://www.scratch99.com/2008/08/seth-godin-smart-pricing/">http://www.scratch99.com/2008/08/seth-godin-smart-pricing/</a>.<br /><p>This morning I noticed an <a href="http://sphinn.com/story/67432"><strong>entry on Sphinn</strong></a> highlighting GreyWolf’s <a href="http://www.wolf-howl.com/22/seth-godin-cheat-advertisers/"><strong>Seth Godin Wants to Cheat Advertisers with Fake Clicks</strong></a> post. It discusses Seth Godin’s <a href="http://sethgodin.typepad.com/seths_blog/2008/08/ads-are-the-new.html"><strong>Ads are the new online tip jar</strong></a> post, which suggests that readers should click ads to reward bloggers for their writing. To quote Seth:</p>
<blockquote><p>If you like what you&#8217;re reading, click an ad to say thanks.</p></blockquote>
<p>GreyWolf condemns Seth’s advice and rightly points out that anyone following this advice is <strong>guilty of click fraud</strong>:</p>
<blockquote><p>If you click on an ad and your purpose is to make sure the site owner or blogger gets money from the click, and you had no intent to buy or research, that is click fraud.</p></blockquote>
<p>As you’d expect, given they are Internet Marketing / SEO communities, comments on GreyWolf’s post and on Sphinn strongly condemn Seth’s statement. The majority of commentators agree that this is click fraud. I concur!</p>
<p>However, what’s intrigued me is that no-one’s mentioned the effect this may have on a blog being smart priced by Google. <strong>Seth’s advice may actually end up costing bloggers</strong> who run Google Adsense.</p>
<div class="csstextbox1">This post really only applies to blogs running Google Adsense. Seth doesn’t mention Adsense in his post, but there’s no doubt that if people were to follow his advice, some of the ads they’d be clicking on would be Adsense ads.</div>
<p>I’m not sure why no-one’s mentioned this. It may be that most members of those communities fall on the advertising, rather than publisher, side of the fence. I’m definitely on the publisher side, so I’ll go ahead and explore the <strong>impact on smart pricing</strong>.</p>
<h2>What Is Smart Pricing?</h2>
<p>I’m not going to go into what smart pricing is in detail. That’s been covered before, both by myself in my <a href="http://www.scratch99.com/2008/01/avoid-adsense-smart-pricing-on-blogs/"><strong>How To Avoid Adsense Smart Pricing On Blogs</strong></a> post, and by better bloggers than me. </p>
<p>The short description is that smart pricing is a <strong>penalty applied by Google</strong>, resulting in the amount of money you receive when someone clicks an Adsense ad (on your site) being <strong>only a fraction</strong> of what you would normally receive.</p>
<p>If you want to find out more about smart pricing, the best description I’ve found is Grizzly’s <a href="http://makemoneyforbeginners.blogspot.com/2008/04/optimization-tips-for-adsense.html"><strong>Optimization Tips for Adsense</strong></a>. Read his long article in full for a good understanding, but here’s his quick summary of smart pricing:</p>
<blockquote><p>If you are running ads on your blog that an advertiser has bid $0.50 per click on and your traffic clicks the ads and doesn&#8217;t convert well for the advertiser then Google will not pay you the usual $0.25 per click. They will likely give you $0.01 to $0.05 per click. This means you have been smart priced. This will also mean that you will receive lower payouts on every site you have Adsense on - not just the poorly converting site. This is a penalty because you are not optimizing your Adsense pages in order to give the advertiser the most bang for his or her buck.</p></blockquote>
<p><em>So basically, if clicks from your site give advertisers a low conversion rate, you get a huge penalty on what you earn.</em></p>
<h2>But It’s More Complicated Than That</h2>
<p>There’s more at play here than what I’ve described above. Admittedly, no-one but Google really knows how it works, but Grizzly knows as much as anyone else and mentions <strong>targeted traffic</strong>.</p>
<p>Google considers where the traffic comes from and how much value traffic is to the advertiser. Even if the visitor doesn’t buy anything from the advertiser, if it’s targeted traffic, Google considers that you’ve delivered quality traffic to the advertiser. As Grizzly explains:</p>
<blockquote><p> My best advertiser is looking for people looking to &#8220;make money online&#8221;. The ad says &#8220;Make Easy Money Online&#8221;. Most of my traffic - about 75% find my blog searching on Google for the term &#8220;make money online&#8221; or a long tail version of that term. If one of my visitors clicks on the ad they are most likely looking for what the advertiser has to offer and even if they don&#8217;t buy, Google can charge the advertiser full price because the visitor left a &#8220;make money online&#8221; trail. They found me using the term and they found the advertiser because of the term. That is as targeted as traffic can get and Google can charge the advertiser full price. If all my traffic came from stumble upon and clicked the ads then the advertiser wont get many conversions and Google can see where the traffic originated, knows it isn&#8217;t targeted and will penalize me and give the advertiser a rebate.</p></blockquote>
<p><em>So you’re more likely to be smart priced if a high percentage of the visitors clicking ads, arrived at your site from a source other than a search engine.</em></p>
<h2>Seth Godin Could Cost You Money</h2>
<p>How can you avoid smart pricing? The answer: Try to ensure you’re <strong>delivering targeted traffi</strong>c (ie from search engines) to the advertisers and that a good percentage of that traffic <strong>converts for the advertiser</strong>.</p>
<p>If your regular readers follow Seth’s advice and click on ads to reward you, you’ll get more clicks, but you won’t be delivering targeted traffic to the advertiser and only a low percentage of people will actually buy anything. </p>
<p><strong>That puts you squarely in smart pricing territory</strong>. Thanks Seth!</p>
<p>If you only have one site, the impact may not be so bad: There&#8217;s no guarantee you&#8217;ll be smart priced and anyway, a lot of low value clicks may equal a few high value clicks. </p>
<p>However, the risk is not worth it, especially if you have other sites running Adsense. If you get smart priced on your blog, <strong>you get smart priced on all your sites</strong>. That could really cost you.</p>
<h2>Final Thoughts</h2>
<p>I&#8217;ve got nothing against Seth Godin - he&#8217;s obviously very well respected - but I think he&#8217;s wrong on this occasion. I&#8217;m far from an expert in this, but leaving the click fraud argument aside, it seems his advice, aimed at helping bloggers, <strong>could actually hurt them</strong> if they run Google Adsense ads.</p>
<p>As a publisher, I don&#8217;t want my normal visitors to click ads. When people choose to click ads on my site, I want them to be <strong>highly targeted search engine visitors</strong>, who’ll lead to a <strong>higher advertiser conversion rate</strong> and won’t get me smart priced.</p>
<p>Oh, if you came to this post from Sphinn or StumbleUpon, or you&#8217;re one of my regulars, and you&#8217;re wondering why you can&#8217;t see Adsense on this blog, well you can&#8217;t. Only <a href="http://www.scratch99.com/2008/01/shylock-adsense-plugin-hack-to-avoid-adsense-smart-pricing/"><strong>search engine visitors see Adsense ads</strong></a> on this blog.</p>
<script type="text/javascript">Nifty("div.csstextbox1","bgcolor-#FFFFFF");</script><img src="http://feeds.feedburner.com/~r/MoreThanScratchTheSurface/~4/374052603" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.scratch99.com/2008/08/seth-godin-smart-pricing/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
