<?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.1.3" --><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>Carpe Jugular Webmaster Resource</title>
	<link>http://carpejugular.com</link>
	<description>Articles about Wordpress, CSS and other issues which concern commercial webmasters.</description>
	<pubDate>Mon, 06 Aug 2007 07:05:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/carpejugular" type="application/rss+xml" /><item>
		<title>Pink and Blue: Free WordPress Theme</title>
		<link>http://carpejugular.com/pink-and-blue-free-wordpress-theme/</link>
		<comments>http://carpejugular.com/pink-and-blue-free-wordpress-theme/#comments</comments>
		<pubDate>Thu, 17 May 2007 21:06:27 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[Free Themes]]></category>
<category>adult blogs</category><category>free theme</category><category>wordpress themes</category>
		<guid isPermaLink="false">http://carpejugular.com/pink-and-blue-free-wordpress-theme/</guid>
		<description><![CDATA[Pink and Blue is a totally free WordPress theme ready to unzip, upload to your themes folder and activate. It's a colorful 3-column theme with lightweight graphics, validates fully as XHTML strict, intended for (18-21) adult blogs, but easily adapted for other purposes.]]></description>
			<content:encoded><![CDATA[<p><strong>Pink and Blue</strong> is a three-column theme for adult (18-21 category?) blogs.</p>
<p id="projects"><a href="/files/article166_full.jpg" rel="lightbox" title="Free WordPress theme"><img src="/files/article166_tn.jpg" alt="Pink and Blue theme" /></a></p>
<p>Both XHTML (strict) and CSS validate fully and although the appearance is quite colorful, the graphics total less than 31Kb. Content appears on the left, with two sidebars to the right. The intention is for site navigation links to appear in the right bar and for the other to be used for promotions, etc. With this arrangement, surfers&#8217; eyes will pass across promos while moving between content and navigation.</p>
<p>With two exceptions, everything will be picked up automatically from your installation. The first is a javascript called <em>new_win.js</em> which serves to open all off-site links in a new window, without the need to add target=&#8221;_blank&#8221; anywhere. If you want to use this script, open it in an editor and change the first line - <em>var excludedomains=[&#8221;carpejugular.com&#8221;]</em> - to reflect your own domain name.</p>
<p>The other is the wp_list_bookmarks settings in center_column.php. It is currently set to display all bookmarks in random order. If you want to change that order or limit to a specific category, <a href="http://codex.wordpress.org/Template_Tags/wp_list_bookmarks">this page</a> over at WordPress explains the options. If you are using a version of WordPress before 2.1, you should replace my code, perhaps with <a href="http://codex.wordpress.org/Template_Tags/get_links_list">get_links_list</a>.</p>
<p>This theme is completely free to use and/or adapt as you wish. It includes a small credit in the footer and I would be grateful if it is left in place. To install, download the zip, unpack it on your PC, FTP the directories and files to your wp-content/themes directory and then activate the theme in your WordPress admin.</p>
<ul>
	<li><strong><a href="http://carpejugular.com/wordpress/index.php?wptheme=Pink+and+Blue">Demo</a></strong></li>
	<li><strong><a href="http://carpejugular.com/files/pink_and_blue.zip">Download</a></strong></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/pink-and-blue-free-wordpress-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Monetizing Your Blog</title>
		<link>http://carpejugular.com/monetizing-your-blog/</link>
		<comments>http://carpejugular.com/monetizing-your-blog/#comments</comments>
		<pubDate>Mon, 14 May 2007 22:08:16 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>blogging</category><category>blogs</category><category>inbound links</category><category>search engines</category>
		<guid isPermaLink="false">http://carpejugular.com/monetizing-your-blog/</guid>
		<description><![CDATA[Blogs can be fun and profitable, but they aren't magic bullets guaranteeing fame and fortune. The choice between blog and splog is up to you: done right, both can work so long as your strategy matches that choice. Real blogging is the way to go if you want the most out of the search engines for each of your sites, but be prepared for the work which is involved.]]></description>
			<content:encoded><![CDATA[<p>Search engines love blogs. Search engines mean traffic. Traffic means money. Instant riches.</p>
<p>Although that train of thought contains a few kernels of truth and heaven knows it is appealing, the reality is rather different. First, you are not likely to earn more than a very modest income from even a fairly popular blog and if you don&#8217;t have your own traffic source for it, you are going to need patience as well as making sure you get everything right.</p>
<h2>Splog or Blog?</h2>
<p>Search engines don&#8217;t love blogs in particular, but they do love original text-based content, lots of it, in depth. And that&#8217;s exactly what the earliest blogs were providing. Ignore this at your peril because although you <em>can</em> run splogs (minimal, sales-pitch type and/or non-original text), you will not see near the search engine benefit for which &#8220;real&#8221; blogs have become legend. There are ways in which certain strategies and circumstances might make it worthwhile accepting that loss, just don&#8217;t be under any illusion that they work as well as the model they mimic. I may cover splogs another time, this article is about making the real thing work from scratch.</p>
<h2>Hardcore Blogging</h2>
<p>Do not take on blogging lightly. Blogs are long-term projects which must be worked on consistently: you need to add at least one meaty article a day. On top of that you will need to develop (inbound) links, since that is something else the search engines value highly. And unless you are ready to have your modest earner as part of a varied empire, once you have your first blog under your belt, you will need a second, then a third and so on. A lot of work by the time you are done.</p>
<p>Don&#8217;t worry about visual content, RSS feeds and all the other tools at first. Blogging is about writing, so start by identifying a niche or angle you will be able to write about every day. How will you write? If you Google pretty much anything you will get thousands of results, so what style, personality or authority can you bring to your site to make it different, to pull in the bookmarkers and feed readers, as well as the search engines? This is something anyone building any kind of site should think about, but with blogs you cannot afford to simply pay lip service.</p>
<p>If by this point you haven&#8217;t decided that maybe you should be looking at mass-producing splogs, then the next thing is to identify who you are going to promote. If you are building a mainstream blog, Adsense might be your best bet, but if an adult blog, then you will benefit from sponsors who offer good content for affiliate use. It matters less what exactly they offer, than whether among their zips, FHG&#8217;s etc, is stuff you can write about with conviction. More than say, if you were running a TGP, it is also a good idea to pick sponsors whose sites do not disappoint. Blogs by their nature involve repeat visitors, not one-off sales shots. Promoting third-rate sites is a very bad idea.</p>
<p>Next, come up with a reasonable domain name and a theme. If you cannot afford a designer, there are hundreds of free designs out there which are relatively easy to adapt, or you can build a theme from scratch. Above all focus on usability and not gloss (<a href="http://www.smashingmagazine.com/2007/04/20/35-designers-x-5-questions/" title="Smashing Magazine">Smashing Magazine</a> recently published an article which is full of design clues) and if you do hire a designer, make sure he or she is going to deliver a table-free design which enhances and not overpowers your content. I strongly recommend either finding a site to use as a model, or sketching/roughing out the layout you want. There are <em>lots</em> of links and elements on a blog page and if your visitors cannot find what they expect easily, they will be gone.</p>
<p>Once your site is live, work especially hard to produce catchy topic-relevant titles. Create a list of keywords, but don&#8217;t overuse them, just keep the list handy as a reminder to use specific terms rather than generic ones when you can. Make sure you keep stats for both your site and your search engine, so that you can see what is popular and provide more of the same.</p>
<p>In search engine terms, hard exchanges with other sites such that your link appears in a long list with many others, are close to useless and possibly even damaging. Much easier to accomplish in mainstream than adult, you need to spend some time each day finding ways to place links back to your site from other sites. You can do that via <em>non-spammy</em> comments on other blogs, by organizing post exchanges, and by being willing to cast some bread on the water, with unconditional mentions of other blogs in your posts. By all means let the site owners know you have plugged their sites, but don&#8217;t be discouraged if most never return the courtesy. The few who do will make it worthwhile and meanwhile your visitors will appreciate being offered extra resources.</p>
<p>Sign your site up with Feedburner, make sure you are using a decent ping list and provide &#8220;chicklets&#8221;, the icons to encourage social bookmarking and feed subscriptions. If you are doing everything right and you want to speed your growth, when you begin earning money use it to buy yourself promotion (promotion, not traffic), on the search engines and/or on relevant sites.</p>
<h2>Onwards and Upwards</h2>
<p>Once you are feeling fairly confident that your site is solid and you have its maintenance under control, start over with something related but different. You can begin cross-promoting and as your network builds, you can if you wish, gradually spread into categories quite distant from your starting point. Just make sure that each new site builds on those you already have, so that you really do have a network and not just a collection of sites. That will also make it easier (with care) to use your posts on more than just one site (see below).</p>
<blockquote>
<h2>Sponsors RSS Feeds</h2>
<p>If you are lucky enough to find some good feeds relevant to your blog(s) there is absolutely no reason not to use them. If you do build a network, they will make it possible to expand further (unless you hire writers or regularly exchange posts) than would otherwise be possible.</p>
<p>So what is &#8220;good&#8221;? Well in this context it must mean that visually and textually the feeds are consistent with your site(s). True too if reusing your own posts, it is an excellent idea to at the very least swap out some keywords or even rewrite bits of imported feeds, to ensure uniqueness. <em>If you don&#8217;t have the means to edit feeds before they appear on your site, you can always set up a hidden site for importing and editing feeds and then import from there to your live site(s).</em></p>
</blockquote> 
<p>PS: mainstream oriented but relevant to everyone, <a href="http://problogger.net/" title="Make Money Online">ProBlogger</a> is an excellent resource for articles about monetizing blogs. Definitely worth subscribing to.</p>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/monetizing-your-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Technorati Tags</title>
		<link>http://carpejugular.com/technorati-tags/</link>
		<comments>http://carpejugular.com/technorati-tags/#comments</comments>
		<pubDate>Sat, 12 May 2007 03:36:22 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>keywords</category><category>navigation</category><category>tags</category><category>technorati</category>
		<guid isPermaLink="false">http://carpejugular.com/technorati-tags/</guid>
		<description><![CDATA[Tags, or "Technorati Tags" as they are often referred to, partly to distinguish them from meta tags, are useful not only to ensure correction classification in some blog directories, but for enhancing your blog in other ways. This article looks at some of the do's and don'ts of tagging.]]></description>
			<content:encoded><![CDATA[<p>Just for the record, although even WordPress refers to &#8220;Technorati Tags&#8221; in the <a href="http://codex.wordpress.org/Plugins/Technorati" title="Tag plugins for WordPress">Codex</a> offering more than a dozen related plugins, del.icio.us was actually one of the first introducers of &#8220;tags&#8221; (keywords related to and attached to or embedded in posts). And while if you use tags and ping <a href="http://www.technorati.com/" title="Technorati blog directory">Technorati</a> your posts/pages/site if added to the directory, will be classified according to your tags, there is no longer a requirement for these tags to point back to Technorati. Which is good news, because the traffic from Technorati is generally more of a trickle than a flood, not near enough to justify what used to be quite serious traffic leaks.</p>
<h2>Tag Strategy</h2>
<p>What if any value can tags serve, apart from controlling classification in some blog directories? First they <em>might</em> offer a small search engine edge if handled correctly, in that tags chosen (as they should be) from words which actually appear in your text, will in turn cause WordPress to generate pages based around those tags. Such pages by definition share at least some tags/keywords in common which <em>might</em> result in a concentration that <em>might</em> give you a decent SE placing.</p>
<p>Lots of emphasized uses of the word &#8220;might&#8221; there. Two reasons. The first is that it is near impossible to control the keyword density of those pages, so they are very unlikely to hit the ideals purely by coincidence. You could even end up being penalized for stuffing. Second, there is a growing school of opinion (I haven&#8217;t decided how credible it is) which says that if Google finds the same posts on your site via different routes (ie via category and date (and tags), as well as in their original date order, you could be penalized for duplicate content. The response to this belief is to place noindex metas (using a plugin) on all but main and single-post pages. Bye-bye any SE edge there could have been. Not everyone will agree, but in my view the best use of tags is to treat them as an extension of your categories.</p>
<p>Basic site navigation should be kept simple because too many options make it difficult for the surfer to choose. Crazy as it might sound, he may leave your site rather than make that choice. With that in mind, it is a good idea to restrict your categories to no more than a dozen, but that may well not be near enough to filter your visitors as effectively as possible, nor even give them a proper idea of all that your site has to offer. Tags to the rescue!</p>
<p>With tags, you can even say to hell with convention and apply tags to articles based on a list of keywords/phrases you have decided to use as effectively sub-categories. Don&#8217;t worry about whether or not these words appear in the text. Or you can play by the rules and restrict yourself to words from the text, still in effect creating sub-categories. Keep the tags per post between 3 and 6 (again for the sake of simple choices) and list these tags under each article (much easier) or embed them in the text (possibly more effective). Chosen wisely, you are then offering your visitors a tempting way to dig deep into your site, while at the same time allowing them a chance to define their interests more precisely. Try not to go too wild selecting different keywords for each and every post, because there really is no point in sending surfers to a page which may only contain the post we was originally reading. Even exercising some control you will likely still end up with dozens of tags on your site. Enough already :)</p>
<h2>Tag Clouds</h2>
<p>These are those collections, often of different-sized and/or different colored links, such as the one you can see on the right of this page. Tucked discretely out of the way or displayed on their own page, they serve much the same purpose as a site map: of limited interest to most visitors but a decent way to ensure search engines have short paths to all your content. To actually put them under the surfers&#8217; noses is more questionable and I do it here mainly because I want features I know I shall mention occasionally, to be built into the site so they can be seen.</p>
<p>Webmasters tend to think they are &#8220;cool&#8221; and possibly surfers did too while they were a novelty. But unless the cloud is kept small enough that it will exclude many tags anyway, it soon becomes another case of information overload. Think carefully about if and how you use them.</p>
]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/technorati-tags/feed/</wfw:commentRss>
		</item>
		<item>
		<title>De-mystifying WordPress</title>
		<link>http://carpejugular.com/de-mystifying-wordpress/</link>
		<comments>http://carpejugular.com/de-mystifying-wordpress/#comments</comments>
		<pubDate>Tue, 08 May 2007 12:32:39 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>modify theme</category><category>themes</category><category>wordpress basics</category>
		<guid isPermaLink="false">http://carpejugular.com/de-mystifying-wordpress/</guid>
		<description><![CDATA[Even as commercial software, WordPress would be amazing. It is easy to install and easy to use. But you are almost certainly going to want your site to have its own look and when you take a look at a theme for the first time - especially if you are not overly familiar with PHP and CSS - what you see may make no sense at all. This article will try to demystify WordPress theme files and show you that they are not nearly as complex as they may first appear.]]></description>
			<content:encoded><![CDATA[<p>Even if you buy a WordPress theme, chances are that pretty soon you will want to change, add or delete something. You can dip into your wallet every time, or you can get your head around how the scripts work. At first glance, the code may seem different and confusing, but look more closely and you will begin to see just how easily adaptable WordPress is.</p>
<p><img src="http://carpejugular.com/files/article00101.gif" width="163" height="155" alt="" /></p>
<p>After you unzip your <a href="http://wordpress.org/download/">WordPress download</a> on your PC, you will see a file structure like the one above. When you have done the <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">Famous 5-Minute Install</a> chmod 666 all the PHP files and the css file in the default directory, so that they can be edited. Inside your WordPress admin area, select the WordPress Default theme for editing.</p>
<p><img src="http://carpejugular.com/files/article00102.gif" width="432" height="120" alt="" /></p>
<blockquote>I do not recommend that you attempt to do more than minor editing directly into WordPress. This is an entirely personal preference, but I work from a set of files on my PC, using <a href="http://www.adobe.com/products/homesite/">my regular HTML editor</a> and after each change, copy and paste the code into WordPress. It&#8217;s more convenient than non-stop FTP&#8217;ing; I can look at the results as soon as I have saved the new code (to open your site in a new window, right-click on the &#8220;View Site&#8221; link at the top of your WordPress screen); and if I don&#8217;t like what I see, I can easily undo the changes or make more. Most importantly, at some point you will surely paste over the wrong file. Local copies make that an inconvenience and not a disaster.</blockquote>
<p>Down the right side of the screen is a list of file names: Stylesheet, 404 Template, Archives and so on. Click on the &#8220;Main Index Template&#8221; link to pull it into the editing area and (if you are working the way I do, open it in your HTML editor too). This is what you will see and it&#8217;s okay to say &#8220;Huh?&#8221;.</p>
<p><img src="http://carpejugular.com/files/article00103.gif" width="500" height="509" alt="" /></p>
<p>The good news is that although WordPress blogs are driven by PHP, you do not need to understand any PHP at all. All you must know is that <strong>&lt;?</strong> marks the beginning of a placeholder and <strong>?&gt;</strong>, the end of one. In between, is the code WordPress needs to work its magic.</p>
<p>Take a look at the areas I have highlighted in color. They are all <strong>get</strong> commands, which tells WordPress to process and then insert a template into that spot. Right now the templates are header, sidebar and footer. Look at that list on the right of your WordPress screen and there they are, templates for the top, side and bottom of all your pages. There is also <strong>searchform</strong> in that list, look down near the bottom of the code you have open in your editor, and find <strong>include blah blah&#8230; searchform.php</strong>. This is the regular PHP command with which you may already be familiar and WordPress also uses it to pull in templates.</p>
<p>Look at the code again, focusing on the styles identifiers used by the divisions. As they should, they should give you heavy clues as to what they contain: <strong>content</strong>; <strong>post</strong>; <strong>postentry</strong>; <strong>postmetadata</strong>; and <strong>navigation</strong>. Now look inside the divisions for more giveaways like <strong>the_title</strong>, <strong>the_time</strong>, <strong>the_content</strong>. After that, there isn&#8217;t much left on the page. Some conditional statements (while and if) wrapped around a few sections and that&#8217;s about it.</p>
<p><img src="http://carpejugular.com/files/article00104.gif" width="500" height="393" alt="" /></p>
<p>Take a look at your new blog and note that information about the category to which the post belongs appears below the post. Now cut the paragraph that I have highlighted above and paste it back, above <strong>div class=&#8221;entry&#8221;</strong>. Paste the whole page of code over the code in your WordPress editor and save. Look at your site again. That&#8217;s how easy it is to make changes to the &#8220;running order&#8221; of your pages.</p>
<h2 class="tutor">The Loop</h2>
<p>Look again at the last illustration, it begins with <strong>if (have_posts())</strong>. The section illustrated here is what WordPress calls <a href="http://codex.wordpress.org/The_Loop_in_Action"><strong>The Loop</strong></a> and it is exactly that: a loop within which a list of commands are repeated so that several posts can be displayed at one time. It checks whether any posts exist and if so, displays them. If not, an apology and search form are displayed. The important thing to remember about The Loop is that although you can move things around as easily as I just indicated, you must keep items which you want to display for every post inside The Loop. By extension, if you only want to show something once on a page, it must be placed outside The Loop, above the <strong>while</strong> statement or below the <strong>endwhile</strong>.</p>
<p>Examine the other templates in the same light, experiment with them if you wish. All we are doing at this point is de-mystifying the way that WordPress builds a site. WordPress is not without flaws, but it does illustrate very well how big, apparently complex sites can be made from just a few simple components. It also throughly applies the principle of separating content from design. You will not find a dimension or color anywhere in the templates: they are all contained within the single <strong>Stylesheet</strong> which shows at the top of that list of files and to which I shall return in another article.</p>
<blockquote>HINT: Some good-looking adult blog themes are on sale, but take a look at the way they are coded before you buy. Most use tables, producing a horrible porridge of old-style coding mixed with the modern (X)HTML/CSS which WordPress uses. I&#8217;m not someone from Planet Geek trying to spread the good word. This sloppy coding not only slows sites down and makes them less search-engine friendly, but should you want to change anything later, you are likely to find the job much harder. If your designer of choice is unable to use CSS, have him do your design and then either convert it to a WordPress template yourself or have someone do that for you.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/de-mystifying-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS Basic Page Structure</title>
		<link>http://carpejugular.com/css-basic-page-structure/</link>
		<comments>http://carpejugular.com/css-basic-page-structure/#comments</comments>
		<pubDate>Sat, 05 May 2007 22:50:11 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[HTML and CSS]]></category>
<category>css basics</category><category>doctypes</category><category>page structure</category>
		<guid isPermaLink="false">http://carpejugular.com/css-basic-page-structure/</guid>
		<description><![CDATA[CSS separates content from design making your sites easier to maintain, faster loading and more search-engine friendly. And if you build basic templates for the layouts you commonly use, just open one up for every new page or site and part of your work is already done.

Certainly using CSS means learning some new code and looking at coding in a slightly different way. But instead of continuing to build sites using outdated code, a little time invested now will save you a lot later.]]></description>
			<content:encoded><![CDATA[<p>The concept of separating content from layout instructions was developed by document storage specialists decades before CSS came along. It is a logical concept which works best if approached logically. In the case of site design, that surely begins with basic page structure.</p>
<p>The first step towards having CSS behave predictably is to include a valid <strong>doctype</strong> and <strong>HTML</strong> tag as the first two lines of your HTML. A longer list of all the options is offered by <a href="http://www.w3.org/QA/2002/04/valid-dtd-list.html">W3C</a>, but the most common are:<br />
<pre class="tutor wide">
If you are coding in HTML:
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
...

If you are coding in XHTML:
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
...
</pre><br />
If you don&#8217;t use a <strong>doctype</strong>, use one which is incomplete or doesn&#8217;t match the rest of your code, browsers drop into what is know as <strong>&#8220;quirks mode&#8221;</strong> which means they assume you have written very old code. They will ignore recent additions to CSS and interpret others wrongly. This can totally destroy your layout.</p>
<p>A major pitfall when using CSS is the unwillingness of browser developers to adopt a consistent standard. There are solutions (hacks) to almost all these inconsistencies, but it is easier to avoid them where possible. To this end I recommend beginning every CSS file with some parameters for the whole page.<br />
<pre class="tutor narrow">
body {
	margin: 0;
	padding: 0;
	}
</pre><br />
These two properties define the space around the outside of an element (margin) and the space inside an element (padding). If we seem to be leaving logic behind already, think of the screen as the master container and the body (your HTML) as an element within it. It is necessary to set the padding to zero to counter the default padding set by Opera.</p>
<p>If you do want space around your design, just change the values for <strong>margin</strong>. You can either set a single value to be applied on all sides:<br />
<pre class="tutor narrow">
body {
	margin: 10px;
	padding: 0;
	}
</pre><br />
or different values for top, bottom and each side:<br />
<pre class="tutor narrow">
body {
	/* top, right, bottom, left */
	margin: 20px 50px 20px 50px;
	padding: 0;
	}
</pre></p>
<h2 class="tutor">Single Columns</h2>
<p>It isn&#8217;t necessary to create an overall division to contain the rest of your page, if the whole page is a single column. Nevertheless, something like this means you establish parameters for your page which don&#8217;t then need to be repeated several times:<br />
<pre class="tutor narrow">
/* in your CSS file */
#wrapper {
	width: 780px;
	/* "auto" will center the block */
	margin: 0 auto 0 auto;
	padding: 20px;
	}
	
	
/* your HTML */
&lt;div id="wrapper"&gt;
	All your content goes here
&lt;/div&gt;
</pre><br />
You can leave out the <strong>margin</strong> parameter if you want your content to show against the left of the screen. The <strong>padding</strong> parameter is also optional and of course the actual dimensions are up to you. Padding may not be useful if your content will appear on your overall background color, but if they are not the same, you probably would not want your content hard up against the edges of that center block:</p>
<p><img src="http://carpejugular.com/files/article00201.gif" width="500" height="164" alt="" /></p>
<h2 class="tutor">Double Columns</h2>
<p>I am going to use a double column layout to illustrate a complete typical page structure of header, content and footer:</p>
<p><img src="http://carpejugular.com/files/article00202.gif" width="500" height="266" alt="" /></p>
<p><pre class="tutor wide">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;

&lt;style type="text/css"&gt;
/*global settings */
body {
	margin: 0;
	padding: 0;
	}
	
/* basic structure */
#wrapper {
	width: 780px;
	margin: 0 auto;
	}
#header {
	}
#content {
	}
.left {
	float: left;
	width: 350px;
	}
.right {
	float: right;
	width: 350px;
	}
#footer {
	clear: both;
	}
&lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;div id="wrapper"&gt;

	&lt;div id="header"&gt;
		HEADER
	&lt;/div&gt;

	&lt;div id="content"&gt;
		&lt;div class="left"&gt;LEFT COLUMN&lt;/div&gt;
		&lt;div class="right"&gt;RIGHT COLUMN&lt;/div&gt;
	&lt;/div&gt;

	&lt;div id="footer"&gt;
		FOOTER
	&lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
Although we haven&#8217;t applied any styling yet to the header or content blocks, it makes sense to provide place-holders, since we have created the blocks in HTML. Making the total width of the left and right columns (350+350=700) less than the width of our &#8220;master&#8221; block (780-20-20=740), creates the space between the two columns. Note that otherwise no widths have been specified and 100% is implied by default. The <strong>float</strong> parameter, is what tells each block to place itself to the left or the right.</p>
<p>We haven&#8217;t styled the footer block but we did need to include <strong>clear: both</strong>. Without that parameter, the block would locate itself as high up the screen as possible, which in this case would be between the left and right blocks. Always include <strong>clear: both</strong> in a block which follows multiple to tell browsers to create it below the longest of the blocks above.</p>
<p>That covers basic page layout for one- and two-column designs. Three-column layouts are  slightly more tricky, so I shall cover them separately.</p>
<blockquote>HINT: It is a big timesaver to store code similar to that above as templates for all the basic layouts you commonly use: simply open a file and your page is already part made. I include a little more than shown above - basic fonts, header sizes, link treatment, etc - but only such elements as are always, or almost always used. Indenting code (and I usually leave an empty line between blocks) makes the flow of the code easier to follow, and if you indent every new block and close indents at the end, you will soon see (when your final block close instruction is away from the left of the screen) if you forgot to close a block along the way. Give ID&#8217;s and classes descriptive names so that your style file doesn&#8217;t become gibberish. Finally, always comment anything in your HTML or CSS which needed special treatment or might otherwise catch you out if you don&#8217;t look at the file(s) again for a year.</blockquote>
<h2 class="tutor">Update</h2>
<p>At the beginning of this article, I mentioned the value of including parameters in a style sheet to account for the differences between browser defaults. For those who are more familiar with the issues involved, here is the set of instructions which I use myself. It pretty much over-rides all the default styling in all the major browsers, leaving you to start with a clean sheet, as it were:</p>
<pre>
/* clear browser defaults */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
abbr,acronym,fieldset,img{border:0;}
address,caption,cite,code,dfn,h1,h2,h3,h4,h5,h6,th,var{font-size:100%;font-style:normal;font-weight:normal;}
caption,th{text-align:left;}
div{overflow:hidden;}
h1,h2,h3,h4,li{white-space:nowrap;overflow:hidden;}
ol,ul{list-style:none;}
/* global hacks */
body{text-align:center;}
</pre>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/css-basic-page-structure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress Plugins</title>
		<link>http://carpejugular.com/wordpress-plugins/</link>
		<comments>http://carpejugular.com/wordpress-plugins/#comments</comments>
		<pubDate>Thu, 03 May 2007 03:16:54 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>anti spam</category><category>plugins</category><category>sitemaps</category>
		<guid isPermaLink="false">http://carpejugular.com/plugins-mods/</guid>
		<description><![CDATA[No blog or message board is complete without plugins and mods. This board is no different, so here is credit to the authors who wrote the add-ins and a useful list for anyone looking to customize their own sites.]]></description>
			<content:encoded><![CDATA[<p>The cost saving involved in using open-source software is usually quite small and definitely not worthwhile for a commercial site, if it means working with an inferior product. But when a product is solid and has a huge user base providing both support and modifications, open-source software offers many advantages. WordPress is &#8220;free&#8221; software at its best and credit must also go to the people who wrote the various plugins which are used on this site.</p>
<ul>
<li><strong><a href="http://www.homelandstupidity.us/software/bad-behavior/">Bad Behavior</a></strong> stops comment spam before it starts by trapping and blocking spambots before they have a chance to post comments. <strong>Use this even if you have comments closed, to prevent direct access to the comments script.</strong></li>
<li><strong><a href="http://www.twistermc.com/shake/RSS-index.php">Chicklet Creators</a></strong> adds RSS feed subscription buttons to your blog</li>
<li><strong><a href="http://anthologyoi.com/plugins/">Dashboard Editor</a></strong> allows you to customise your admin dashboard to speed up loading.</li>
<li><strong><a href="http://ottodestruct.com/wpstuff/disableautop.zip">Disable AutoP</a></strong> is the answer if you find WordPress entering paragraph tags where you don&#8217;t want them.</li>
<li><strong><a href="http://seologs.com/duplicate-content-cure/">Duplicate Content Cure</a></strong> is a solution to the concerns some have that the search engines might penalize blogs for showing the same content on multiple pages (index, archives, single, etc).</li>
<li><strong><a href="http://www.feedburner.com/fb/a/help/wordpress_quickstart">Feedsmith</a></strong> (formerly known as &#8220;Feedburner Feed Replacement&#8221;) this forwards regular feed traffic to the Feedburner version of your feed, while letting some (SE) User-Agents see your feed directly on your site. <em>I strongly recommend the use of Feedburner, as a free way to extend your feeds compatibility and and also to get some useful exposure via Feedburner&#8217;s directory. Nice stats too!</em></li>
<li><strong><a href="http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final">Google Sitemaps Generator</a></strong> will create a Google compliant sitemap of your WordPress blog</li>
<li><strong><a href="http://elasticdog.com/2004/09/optimal-title/">Optimal Title</a></strong> mirrors the function of wp_title() exactly, but moves the position of the separator to after the title rather than before. Much more friendly for those scanning SE directories.</li>
<li><strong><a href="http://gmurphey.com/2006/10/05/wordpress-plugin-page-link-manager/">Page Link Manager</a></strong> lets you choose which pages appear in your site navigation.</li>
<li><strong><a href="http://mtdewvirus.com/code/wordpress-plugins/">Recent Posts</a></strong> displays a customizable list of recent posts (with/without extracts).</li>
<li><strong><a href="http://wasabi.pbwiki.com/Related%20Entries">Related Entries</a></strong> uses full indexing to display a list of posts similar to the one being viewed. Good for visitors, good for keeping older posts exposed.</li>
<li><strong><a href="http://dancameron.org/wordpress/">Search Everything</a></strong> improves dramatically on the default search script, by allowing pages and comments to be searched if desired.</li>
<li><strong><a href="http://www.thunderguy.com/semicolon/wordpress/search-meter-wordpress-plugin/">Search Meter</a></strong> logs what people are searching for on your site.</li>
<li><strong><a href="http://www.dagondesign.com/articles/secure-form-mailer-plugin-for-wordpress/">Secure Form Mailer</a></strong> secure php form mailer script.</li>
<li><strong><a href="http://www.dagondesign.com/articles/sitemap-generator-plugin-for-wordpress/">Sitemap Generator</a></strong> generates a customizable sitemap containing all posts and pages.</li>
<li><strong><a href="http://push.cx/sociable">Sociable</a></strong> automatically add links on your posts to popular social bookmarking sites</li>
<li><strong><a href="http://www.duechiacchiere.it/wp-slimstat/">Slim Stat</a></strong> produces useful stats for your blog.</li>
<li><strong><a href="http://unknowngenius.com/blog/wordpress/spam-karma/">Spam Karma</a></strong> stops all forms of automated blog spam effortlessly, while remaining as unobtrusive as possible to regular commenters. <em>Combined with Bed Behaviour (above) Spam Karma will allow you to keep comments open, unmoderated and yet free of spam.</em></li>
<li><strong><a href="http://orderedlist.com/wordpress-plugins/wp-tiger-administration/">Tiger Admin</a></strong> changes your WP Admin interface to a quicker and more friendly version. <em>Only works with fully CSS2-compliant browsers.</em></li>
<li><strong><a href="http://www.neato.co.nz/ultimate-tag-warrior/">Ultimate Tag Warrior</a></strong> allows tags to be used either as a navigation aid and/or for SEO. Tons of functions, not such great documentation.</li>
<li><strong><a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache</a></strong> is a very fast cache module which can manage the whole sites. <em>Once installed, make sure it is working, otherwise your blog will actually run more slowly.</em></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/wordpress-plugins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>3-Column, Search-Engine Friendly Layout</title>
		<link>http://carpejugular.com/3-column-search-engine-friendly-layout/</link>
		<comments>http://carpejugular.com/3-column-search-engine-friendly-layout/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 18:05:44 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>3 columns</category><category>search engine friendly</category><category>SEO</category>
		<guid isPermaLink="false">http://carpejugular.com/3-column-search-engine-friendly-layout/</guid>
		<description><![CDATA[With the advent of higher resolutions, bigger screens and blogs, 3-column layouts have become increasingly popular. Unfortunately there is no single perfect solution which satisfies everyone's requirements. This solution is one to use when search engine appeal is your priority. But be warned, there are snags!]]></description>
			<content:encoded><![CDATA[<p>With the advent of higher resolutions, bigger screens and blogs, 3-column layouts have become increasingly popular. But wanting and achieving are often not the same thing and the perfect answer to 3-column layouts is, as some describe it, <a href="http://www.alistapart.com/articles/holygrail/">&#8220;The Holy Grail&#8221;</a>. You don&#8217;t want to mess around with absolute settings which require pixel-perfect placing. You do want the columns to appear to be the same length. You would like to be able to place the columns in any order within your HTML, so that you can tempt the search engines by placing your content-rich column at the top of your code. Unfortunately there are <a href="http://css-discuss.incutio.com/?page=ThreeColumnLayouts">many attempted solutions</a> but I am not aware of any which fulfil all those requirements.</p>
<p><img src="http://www.carpejugular.com/files/article00401.gif" width="500" height="160" alt="" /></p>
<p>This solution (I should probably be crediting someone with it, but it&#8217;s cobbled together from observation and experience over the years) is the one to use when search engine appeal is your priority. It has a major drawback, which is that unless you can dispense with a footer, you must know which is going to be the longest column. Your page will look horrible if you get it wrong. Nor does it attempt to equalize the columns, so if your design demands that they appear to be the same length, you will have to resort to the use of a background image to fake your columns (aka &#8220;faux columns&#8221;).</p>
<p>Otherwise it is a very neat solution which uses only one CSS &#8220;hack&#8221; (to compensate for Explorer&#8217;s strange treatment of margins). Tested in IE6 and FireFox, it provides fixed-width columns for navigation or whatever, plus a fluid center column which expands and contracts to fill whatever resolution your visitors are using. You may copy the code below and adapt it for your own use.</p>
<pre class="tutor wide">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;

&lt;head&gt;
&lt;title&gt;3-Column, Search-Engine Friendly Layout&lt;/title&gt;
&lt;style type="text/css"&gt;
/* globals */
body {
	margin: 10px;
	padding: 0;
	background: #FFFFFF;
	font: 12px Verdana, Geneva, sans-serif;
	color: #000000;
	}
p,pre {
	margin: 0 10px 10px 10px;
	}
h1 {
	margin: 0;
	padding: 10px;
	font-size: 14px;
	}		
			
/* structure */
#header {
	height: 40px;
	}
#leftcolumn {
	position: absolute;
	left: 10px;
	top: 50px;
	width: 200px;
	}
#centercolumn {
	margin-left: 200px;
	margin-right: 200px;
	padding-bottom: 10px;
	}
#rightcolumn {
	position: absolute;
	right: 10px;
	top: 50px;
	width: 200px;
	}
*html #rightcolumn {
	right: 9px;
	}
#footer {
	height: 40px;
	}

/* fonts etc */
#leftcolumn p, #rightcolumn p {
	font-size: 10px;
	}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="header"&gt;&lt;h1&gt;3-Column, Search-Engine Friendly Layout&lt;/h1&gt;&lt;/div&gt;

&lt;div id="centercolumn"&gt;
&lt;h1&gt;centercolumn&lt;/h1&gt;
&lt;pre&gt;
#centercolumn {
margin-left: 200px;
margin-right: 200px;
padding-bottom: 10px;
}
&lt;/pre&gt;
&lt;p&gt;The big plus of this layout is that, within your HTML, the columns can appear in any order, which means you may place your most content-rich block at the top of your code: the best place for search engines to find it. But it also has a serious limitation, namely that unless you can dispense with a footer, you must know which is going to be the longest column and adjust the code accordingly. In this example, the center (content) column is assumed to be the longest.&lt;/p&gt;
&lt;/div&gt;

&lt;div id="leftcolumn"&gt;
	&lt;h1&gt;leftcolumn&lt;/h1&gt;
&lt;pre&gt;
#leftcolumn {
position: absolute;
left: 10px;
top: 50px;
width: 200px;
}
&lt;/pre&gt;
&lt;/div&gt;

&lt;div id="rightcolumn"&gt;
	&lt;h1&gt;rightcolumn&lt;/h1&gt;
&lt;pre&gt;
#rightcolumn {
position: absolute;
right: 10px;
top: 50px;
width: 200px;
}
*html #rightcolumn {
right: 9px;
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div id="footer"&gt;
	&lt;h1&gt;footer&lt;/h1&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>In this example, we want a 10-pixel margin around the page and we have a 40-pixel tall header. Thus the left column is placed 10 pixels from the left of the screen and 10+40=50 pixels from the top. The right column is placed according to the same principle. If your header is a different size, or you want different margins or column widths, just change the numbers accordingly.</p>
<p>Because the center column is intended to be fluid, no width is stated for it, only left and right margins, which in this example, are the widths of the side columns (200 pixels). If you want to create a space between the center column and those on either side, simply increase the size of those margins.</p>
<p>And that is all there is to it. In another article I shall cover a less finicky 3-column layout, albeit one with less SEO appeal.</p>
<blockquote>I don&#8217;t like having to remember to put left and right margins on every element, so that paragraphs and the like do not butt up against column borders. Therefore normally I would use padding applied to the block as a whole. However, because that introduces cross-browser compatibility issues which would have confused this presentation, I decided to sidestep them here and leave that topic for another article.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/3-column-search-engine-friendly-layout/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Convert a 2-column WP Theme</title>
		<link>http://carpejugular.com/convert-a-2-column-wp-theme/</link>
		<comments>http://carpejugular.com/convert-a-2-column-wp-theme/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 02:42:37 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[WordPress]]></category>
<category>3 columns</category><category>float</category><category>theme</category>
		<guid isPermaLink="false">http://carpejugular.com/convert-a-2-column-wp-theme/</guid>
		<description><![CDATA[As a way to help you become familiar with both the HTML and CSS of a WordPress theme, this exercise will turn a 2-column WordPress theme into a 3-column version. It is also intended to illustrate that with a systematic approach, even quite dramatic changes are very simple to achieve.]]></description>
			<content:encoded><![CDATA[<p>As a useful exercise in its own right, but also as a way to become familiar with both the HTML and CSS of a WordPress theme, this exercise will turn a 2-column WordPress theme into a 3-column version. Because the default theme is tricky in certain ways, I am using instead <a href="http://lucmar.com/the-journalist/">Journalist</a>, although the principles described here involved apply to any.</p>
<p><img src="http://carpejugular.com/files/article00501.gif" width="500" height="411" alt="" /></p>
<p>One of the easiest ways to see how a template is structured, is to open the <strong>Main Index Template</strong> in my HTML editor and replace sections like <strong>&lt;?php get_header(); ?&gt;</strong> with its template. Once I have done this for header, sidebar and footer (in the case of this theme), I can look at the code of what would be a complete page in my blog. Then I paste the whole thing onto a new page and strip out everything which is not related to the basic page structure. What remains in this case is:</p>
<pre class="tutor wide">
&lt;div id="container"&gt;

	&lt;div id="content"&gt;&lt;/div&gt;

	&lt;div id="right"&gt;&lt;/div&gt;

	&lt;div id="footer"&gt;&lt;/div&gt;
	
&lt;/div&gt;
</pre>
<p>Now I can open the <strong>stylesheet</strong> (style.css) and see how those blocks are handled (I have removed references to fonts etc to simplify this illustration):</p>
<pre class="tutor wide">
#container {
width:950px;
}

#content {
float:left;
width:700px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 0 10px;
}

#right {
float:left;
width:180px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 10px 10px;
}

#footer {
width:700px;
border-left:#999 1px solid;
margin:0 0 20px 20px;
padding:5px 0 5px 10px;
}
</pre>
<p>The whole structure is held within the 950-pixel <strong>container</strong> block. There is no header as such, just an <strong>h1</strong> tag. The <strong>content</strong> block is 700 pixels wide and the <strong>right</strong> is 180 pixels wide. Both have 10 pixels left-padding and 20 pixel left-margin. There are also two 1-pixel borders, so the total width of the layout is 700+10+20+180+10+20+1+1=942 pixels, leaving 8 pixels as a right margin.</p>
<p>180 pixels is a fairly common width to use for a sidebar, so we shall stick with it. The new sidebar will therefore need 180+10+20+1=211 pixels. To keep this illustration simple, we will not change the overall width, so to accomodate the new block, the width of the <strong>content</strong> block must be reduced by 211 pixels (to 489 pixels). With this design, the footer is not full-width, so it must also be narrowed to 489 pixels and for safety, scan through the <strong>stylesheet</strong> looking for any elements within the <strong>content</strong> block which are greater than this width. This theme has a <strong>textarea</strong> which is 500 pixels wide, so reduce that to 400 pixels.</p>
<p>The easiest way to create the second sidebar is to open the original in your editor. Since we are only working on the structure right now, we can ignore the content. All we need to do is change the <strong>&lt;div id=&#8221;right&#8221;&gt;</strong> at the very top of the file to <strong>&lt;div id=&#8221;right2&#8243;&gt;</strong>, then save it as <strong>sidebar2.php</strong>. FTP the new file to your server into the theme directory and <strong>CHMOD 666</strong> it for editing later.</p>
<p>To recap, in the <strong>stylesheet</strong> we have changed <strong>#content { width:700px; }</strong> to <strong>#content { width:489px; }</strong>, <strong>textarea { width:500px; }</strong> to <strong>textarea { width:400px; }</strong> and <strong>#footer { width:700px; }</strong> to <strong>#footer { width:489px; }</strong>, we have created and uploaded <strong>sidebar2.php</strong>. Since we have created a new block - <strong>#right2</strong> - we need some styles for it. Again, since this is about structure and not design, locate the block of <strong>#right</strong> parameters in the <strong>stylesheet</strong>, copy and paste them below their original position and make them all refer to <strong>#right2</strong> thus:</p>
<pre class="tutor wide">
#right2 {
float:left;
width:180px;
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
font-size:12px;
border-left:#999 1px solid;
margin:0 0 0 20px;
padding:0 0 10px 10px;
}

#right2 h3 {
font-size:14px;
margin:20px 0 5px 0;
}

#right2 a {
color:#222;
text-decoration:none;
border-bottom:#ccc 1px solid;
}

#right2 a:hover {
color:#222;
text-decoration:none;
border-bottom:#777 1px solid;
}

#right2 ul {
list-style:none;
}

#right2 ul ul {
margin:5px 0 0 10px;
}

#right2 ul ul ul {
margin:5px 0 0 10px;
}

#right2 ul li {
padding:0 0 5px 0;
}
</pre>
<p>Paste the revised <strong>stylesheet</strong> over the one WordPress is currently using and finally call up the <strong>Main Index Template</strong>. Scroll to the very bottom and above the line <strong>&lt;?php get_sidebar(); ?&gt;</strong> add <strong>&lt;?php include (TEMPLATEPATH . &#8216;/sidebar2.php&#8217;); ?&gt;</strong>. This is the result:</p>
<p><img src="http://carpejugular.com/files/article00502.gif" width="500" height="411" alt="" /></p>
<p>And with that under your belt you are well on your way to creating your own, original templates.</p>
<blockquote>In case you attempt this exercise using the same Journalist theme, be aware that I cheated slightly. The theme includes a stylesheet called <strong>style-ie.css</strong> which has a couple of hacks for coping with Explorer&#8217;s vagaries and those hacks include dimensions which will need changing in line with this article. Since a second stylesheet is fairly unusual and this article is for the illustration of general principles, I did not want to clutter it with such details.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/convert-a-2-column-wp-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Become Your Own Boss</title>
		<link>http://carpejugular.com/become-your-own-boss/</link>
		<comments>http://carpejugular.com/become-your-own-boss/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 11:30:06 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>
<category>business planning</category><category>business strategy</category><category>webmasters</category>
		<guid isPermaLink="false">http://carpejugular.com/become-your-own-boss/</guid>
		<description><![CDATA[The 90's are long over, those days when work almost magically turned into money. Now webmasters must think about what they are doing and make every hour count. We toss around clich&#233;s such as "work smarter not harder", but how many actually apply them? It's time to get off the treadmill for a couple of hours and grab your business by the throat. ]]></description>
			<content:encoded><![CDATA[<p>Be honest. How many of you sit down every day and get right to work, reviewing galleries, building pages or whatever? How many, after you have put in your 10 or 12 hours of coding, traffic trading and the rest, save your files and get straight into whatever it is you do with your spare time?</p>
<p>There&#8217;s no doubt that adult webmasters on the whole are a hard-working bunch of people. We are pretty good at making use of lots of scripts and other tools to help us be productive. But while we play the role of laborer very effectively, we aren&#8217;t nearly as good at being bosses. Most of us are action driven: we work long and hard, learning as much as we can about the practical aspects of our business. We are happy if we earn more this month than last and when that doesn&#8217;t happen, we work a bit harder, hope for better days, and if all else fails, there is always the latest bandwagon to try out.</p>
<p>Think about it. Who is usually paid more: the CEO or the worker on the production line? Who earns more for their business? Now ask yourself if it really makes sense to spend all your time on the production line.</p>
<p><em>To be successful, you must be results driven</em>. You should not spend a moment on anything without knowing why you are doing it, what you expect from it, and how long it will take you to produce the desired results. <em>You need goals</em>. In this context &#8220;I want to be rich&#8221; is not a goal: a 5% earnings increase over the next month is a goal.</p>
<p><strong>Here&#8217;s a challenge</strong>. Finish work a couple of hours early today and try this:
<ul>
<li>Write the names of the next 12 months as headlines across a wide sheet of paper.</li>
<li>Ignore the two best and two worst months of the last 6 months, average your income for the 2 months which remain and write that number under each month. Total the 12 months.</li>
<li>Now put some thought into adjusting those figures, to account for any seasonal variations you perceive in this business. You might possibly show increases in October and November, decreases in January, February, June, July and August. Juggle the numbers until they reflect <em>your</em> experience, but the total for the year should be the same as in the first line.</li>
<li>More thought next, combined with a healthy dose of realism and a good measure of ambition. Knowing everything you do about the market, its competitiveness and opportunities, and about yourself, your skills and drive, how challenged you are currently, adjust the monthly numbers further to reflect what you feel is an <em>attainable</em> growth rate through the next year.</li>
<li>Take a hard look at the numbers you have produced. A 5% month-on-month increase may seem very modest but it represents more than 70% over the year. If you honestly believe you can achieve that (or even more), go for it. But be realistic, because the next job is to figure out <em>how</em> to achieve the targets you have just set.</li>
</ul></p>
<p>The first reason for having specific targets related to specific timelines is so that you do not sit down on the 1st of the month and beaver away for the next 4 weeks, hoping for the best. What are you going to do to ensure you meet your targets?</p>
<p>The answer depends on your situation. Maybe you need to monitor your sponsors more carefully and find some new ones. Maybe some of your promotions are weak and need tightening up or replacing. Maybe you need more traffic. New sites. There are lots of possibilities. The point is that in an increasingly competitive market you must drive your results, not expect them to happen simply because you put in a lot of hours.</p>
<p>Once you have targets and you have figured out how to achieve them, it should be easy to produce a to-do list. At least for the upcoming month, better two, note down the broad steps you will have to take to see your plans through. Then, working a week or two in advance in more detail, fit that work into your daily schedule.</p>
<p>Where are we so far?
<ul>
<li>We have financial targets set for each month of the next year.</li>
<li>We have broad plans for the whole year as to how to reach those targets.</li>
<li>We have a lot of the practical details worked out for the next month or two.</li>
<li>We have specific tasks to complete during this week and next, and we have fitted those tasks into our daily schedules.</li>
</ul></p>
<p>All that sounds easy enough. The snag is that if you take this seriously and you are already working your ass off, it is probably difficult, maybe impossible to commit yourself to more work. If you have come to that conclusion, this exercise is already paying off, because in real life you can only get a pint into a pint glass. Instead of working without a plan, introducing new things often more in hope than expectation and - perhaps without realizing it - letting proven revenue producers slip, this exercise is forcing you to <em>think</em>. What shall I have to spend less time on to free up the time for these new tasks? What will that cost me? Since I shall have to increase the targets for the new projects to make up for such losses, are those targets still reasonable?</p>
<p>If you took up this challenge and got this far, the final benefit is that you will be able to review each day, each week, each month, and see whether you accomplished everything and if the money is pouring in as you hoped. If yes, pat yourself on the back. If not, what are you going to do about it? Either way, <strong>now you are the boss</strong>, actually in charge of your business. Get it right and you will be paid the big bucks :)</p>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/become-your-own-boss/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TGP Makeover</title>
		<link>http://carpejugular.com/tgp-makeover/</link>
		<comments>http://carpejugular.com/tgp-makeover/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 16:26:24 +0000</pubDate>
		<dc:creator>John Foulds</dc:creator>
		
		<category><![CDATA[HTML and CSS]]></category>
<category>tgp</category><category>thumb preview</category><category>xhtml</category>
		<guid isPermaLink="false">http://carpejugular.com/tgp-makeover/</guid>
		<description><![CDATA[Using tables to code text-based TGP's undermines a lot of the SEO potential edge these otherwise content-rich sites might have, by leaving them with a high code to content ratio. And if a little clever CSS isn't used, they can also suffer from that familiar lag before the whole page pops into view. The advantages of going table-free are not as great for thumb-preview TGP's, but as this article shows, the code for even a simple site can be reduced by 25%.]]></description>
			<content:encoded><![CDATA[<p>This exercise illustrates how to approach the job of converting a typical thumb-preview TGP page into table-less XHTML with all the styling being done in CSS. <a href="http://www.carpejugular.com/files/original.html" target="_blank">The original</a> (this is just a sample including the main elements only once) is coded in HTML, uses tables and some CSS and this is <a href="http://www.carpejugular.com/files/revised.html" target="_blank">the end product</a>. Compare the source code from these two links, just note that to make this exercise easier to follow, the styles are included in the documents. In use they might be stored separately and referenced by <strong>&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;/path_to/style.css&#8221; type=&#8221;text/css&#8221; media=&#8221;screen&#8221; /&gt;</strong>.</p>
<p>The first step in a &#8220;makeover&#8221; like this should be to validate the document in its present form. This one had only a few errors:
<ol>
<li>Two title tags.</li>
<li>Character-set meta tag appears twice.</li>
<li>The header image has no alt tag.</li>
<li>In the full version of the original, a div id (largelinks) was used multiple times. <strong>ID&#8217;s must be unique</strong>: use &#8220;class&#8221; where a style is going to be repeated.</li>
</ol></p>
<p>Although not directly related to this exercise, I changed the document&#8217;s character set to <strong>UTF-8</strong> (Unicode). I don&#8217;t want to go off at a lengthy tangent (you can read more about Unicode <a href="http://en.wikipedia.org/wiki/Unicode">here</a>), enough to say that ASCII, Latin 1 (ISO 8859-1), etc., are deprecated these days. Use this instead (note the space and oblique used to close the tag):
<pre class="tutor wide">
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
</pre></p>
<p>Another change I made not directly related to the main point of this exercise, was to remove the bookmark javascript script into its own file, because it is search engine friendly to keep your head section to a minimum. That is one reason for creating a separate stylesheet file, the other being that if it is read in separately, the file will be cached, which makes subsequent pages of multipage sites load faster.</p>
<p>The value of converting to XHTML as part of a makeover is debatable. XHTML fans argue that you are future-proofing your work and since CSS behaves slightly differently, why be forced to learn these differences later and perhaps have to change some of your code? My view is that several scripts these days (notably blogs) default to XHTML, thus whatever the future may hold, it is easier to tackle a single HTML/CSS combo for everything. Fortunately, very few coding changes are required for XHTML:
<ol>
<li>Change your doctype and html tag to:
<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
</pre>
Here is an <a href="http://alistapart.com/stories/doctype/">in-depth discussion of doctypes</a>.</li>
<li>All tags must be in lower case. I changed the case of the keyword and description metas and also applied the space+oblique to close the tags properly (compare the two source codes). I also had to convert the p (paragraph) tags to lower case.</li>
<li>The target tag in the head must also be closed with space+oblique (be aware this tag works but is not part of the XHTML convention).</li>
<li>Search and replace all &lt;br&gt; tags making them &lt;br /&gt;.</li>
<li>Change all image tags to end with that space+oblique.</li>
<li>All dimensions and tag parameters must be enclosed in quotation marks.</li>
<li>Although some HTML editors allow it, putting actual symbols (such as the copyright mark) into your code is a no-no because they may not display correctly (the copyright symbol of the original showed as a question mark in my browser). Use entities instead such as <strong>&#38;&#35;38;</strong> for ampersand: this page at <a href="http://www.pemberley.com/janeinfo/latin1tb.html">Pemberley</a> includes an entity table.</li>
</ol></p>
<p>Now the CSS. Here is the new file with comments:
<pre class="tutor wide">
/* 18sweeties */
/* There may be nothing in a style file to remind you to what it
belongs, so give it a title */

/* Some will tell you to lay out your CSS file strictly separating structure and fonts/colors. That can be very confusing for CSS novices, so here I have placed the page-wide parameters first and the rest in page order */

/* globals */
body {
	/* for cross-browser compatibility always state the overall margin */
	margin: 0; 
	 /* include MAC fonts */
	font: 16px Verdana, Geneva, Arial, Helvetica, sans-serif;
	background: #fffee8;
	color: #000; /* set a font color to be safe */
	}
img {
	/* use this and you don't need border="0" in any of your image tags */
	border: 0; 
	}
a {
	font-weight: bold;
	/* when colors are represented by 3 pairs, 0000ff, they can be shortened */
	color: #00f;
	text-decoration: underline;
	}
a:hover {
	/* it is not necessary to repeat parameters which will be inherited so only a color change is needed here*/
	color: #5454ff; 
	}
	
/* I always include this fix for a problem Explorer has with short divs. It is sometimes necessary to name the div, but this avoids that a lot of the time and if it isn't needed, (usually) doesn't hurt */
* html div {
	height: 1%;
	}
	
/* in page order for ease */
/* div align=center was used in the original document but is not compliant with current standards so this div was used instead */
#header {
	/* 17px represents top/bottom and auto left/right. There is no need to specify all four measurements when the pairs are the same */
	margin: 17px auto;
	text-align: center;
	}
.wrapper {
	width: 769px;
	margin: 0 auto;
	/* no need to specify left, top, etc borders when all are the same */
	border: #c103ff 2px solid; 
	background: #f9e6ff;
	}
/* check out the source code: all that was needed to replace the table holding the thumbs was a width-restricted container (wrapper, above) and a margin around the images */
.thumbtable img {
	/* replaces the cell-padding used in the original file */
	margin: 2px; 
	/* placing image dimensions here means no need to include them in HTML */
	width: 120px;
	height: 160px;
	}
/* when different style class have the same parameters, save code by combining them in a comma-separated list */
a:link img, a:visited img { 
	border: #cc0033 2px solid;
	}
a:hover img, a:active img {
	border: #cc0033 2px dashed;
	}
/* technically we could have given a class to the paragraph tag used originally but using a div here is more semantically correct */
.bookmark { 
	margin: 15px auto;
	text-align: center;
	}
.largelinks {
	font: 16px Arial, Helverica, sans-serif;
	font-weight: bold;
	letter-spacing: -1px;
	}
.largelinks a {
	font-size: 24px;
	color: #ed145b;
	line-height: 28px;
	}
.largelinks a:hover {
	color: #00497e
	}
/* lists such as trade links need not be displayed vertically and can be given specific widths */
ul.largelinks {
  	width: 769px;
  	margin: 15px auto;
  	padding: 0;
	list-style: none;
	}
ul.largelinks li {
  	float: left;
  	width: 33%;
  	margin: 0;
  	padding: 0;
	text-align: center;
	}
/* these next lines cleaned up a mix of paragraph tags and spaces */
/* after multiple columns, in this case the inline list displaying trade links you must tell browsers when you want to begin a new block or they will try to create an extra column */
#footer {
	clear: both; /* that is what this line does */
	text-align: center;
	padding: 50px 0;
	}
/* Mozilla browsers and Explorer do not handle "clear" the same way, so we end up with more space than we want in Explorer. The following instruction which can only be read by Explorer and is ignored by Firefox etc., corrects that */
*html #footer {
	padding: 35px 0;
	}
#footer img {
	margin-top: 50px;
	}
</pre></p>
<p>The result looks the same in both Explorer and Firefox and just as it did originally. The combined size of the HTML and (uncommented) CSS for the revised version is 5.01KB compared to 6.54KB for the same section in its original form. That is <strong>almost a 25% saving</strong>, providing obvious speed and bandwidth benefits. Perhaps more importantly, had this been a text-based site, the content to code ratio would have improved dramatically, giving a distinct edge with the search engines.</p>]]></content:encoded>
			<wfw:commentRss>http://carpejugular.com/tgp-makeover/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
