<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simian Enterprises &#187; Website Development</title>
	<atom:link href="https://www.simianenterprises.co.uk/blog/category/website-development/feed" rel="self" type="application/rss+xml" />
	<link>https://www.simianenterprises.co.uk/blog</link>
	<description>Web development, Coldfusion, CSS, a bit of this, a bit of that...</description>
	<lastBuildDate>Sat, 26 Apr 2014 00:42:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.7</generator>
	<item>
		<title>Integrate WordPress into your ColdFusion app</title>
		<link>https://www.simianenterprises.co.uk/blog/integrate-wordpress-into-your-coldfusion-app-148.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/integrate-wordpress-into-your-coldfusion-app-148.html#comments</comments>
		<pubDate>Thu, 13 Jan 2011 12:57:04 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=148</guid>
		<description><![CDATA[Integrate a Wordpress blog into your CFML app, with functions to pull posts and comments from the Wordpress database, and embed CFM templates directly in your Wordpress theme.<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/cache-and-display-multiple-twitter-feeds-in-coldfusion-cfc-131.html" rel="bookmark" title="Cache and display multiple Twitter feeds in ColdFusion &#8211; CFC">Cache and display multiple Twitter feeds in ColdFusion &#8211; CFC </a> <small>CFC to easily pull in and cache multiple Twitter feeds....</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/new-site-live-1.html" rel="bookmark" title="New site live&#8230; Vertical rhythm FTW!">New site live&#8230; Vertical rhythm FTW! </a> <small>After many sleepless nights, the new Simian Enterprises site is...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/if-coldfusion-is-dead-its-adobe-that-killed-it-118.html" rel="bookmark" title="If ColdFusion is dead, it&#8217;s Adobe that killed it.">If ColdFusion is dead, it&#8217;s Adobe that killed it. </a> <small>You can't call yourself a CFML developer unless you have...</small></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Lately I&#8217;ve been working on a few ColdFusion apps that require a comprehensive blog system. While I could easily install Mango Blog or Blog CFC, nothing really rivals the functionality of WordPress when it comes to blog apps &#8211; but of course, WordPress is a PHP based system.</p>
<p>Installing WordPress alongside a ColdFusion app isn&#8217;t too difficult, but I need to customise the blog so that it looks identical to the rest of the site, and allow the user to switch seamlessly between the two.</p>
<p>This level of integration requires two main bits of functionality. Firstly I need to use ColdFusion to connect to the WordPress database and pull out articles and comments for use in summary blocks around the rest of the site, and secondly I need to be able to embed CFML templates directly into the WordPress blog to generate headers and footers whilst keeping any session based information such as login status, cart contents etc. &#8211; Essentially I need a CFINCLUDE equivalent for PHP.</p>
<p><span id="more-148"></span></p>
<h2>Using ColdFusion to pull in WordPress content</h2>
<p>I created a few components to pull data from a WordPress database. One to grab published articles, one to grab approved comments and one to remove any formatting and strip out extra HTML such as embedded images or videos.</p>
<p>The components are fairly self explanatory, and for the moment provide only basic functionality. It would be possible to build on these to provide greater integration, but for now these do the job nicely.</p>
<h3>Pull published blog posts</h3>
<p>[coldfusion]<br />
<cffunction name="getBlogPosts" access="public" returntype="query" hint="Pulls published blog posts from a wordpress database (Tested in 2.7)"><br />
    <cfargument name="sDSN" type="string" required="yes" hint="Datasource name assigned to the WordPress database" /><br />
	<cfargument name="ID" type="numeric" default="0" hint="Blog post ID - Leave blank to pull all published posts" /><br />
    <cfargument name="iLimit" type="numeric" default="0" hint="Limit the number of posts to pull back" /></p>
<p>	<!--- Get blog posts ---><br />
	<cfquery name="Local.qGetBlogPosts" datasource="#Arguments.sDSN#"><br />
		SELECT		wp_posts.*<br />
		FROM		wp_posts</p>
<p>		WHERE		0 < 1
		
		<cfif Arguments.ID NEQ 0><br />
			AND		wp_posts.ID = <cfqueryparam value="#Arguments.ID#" cfsqltype="CF_SQL_INTEGER" /><br />
		</cfif></p>
<p>        AND			wp_posts.post_type = &#8220;post&#8221;</p>
<p>        AND 		wp_posts.post_status = &#8220;publish&#8221;</p>
<p>        ORDER BY	wp_posts.post_date DESC</p>
<p>        <cfif Arguments.iLimit GT 0><br />
        	LIMIT #Arguments.iLimit#<br />
		</cfif></p>
<p>		;<br />
	</cfquery></p>
<p>	<cfscript><br />
		// Return the query object<br />
		return Local.qGetBlogPosts;<br />
	</cfscript></p>
<p></cffunction></p>
<p>[/coldfusion]</p>
<h3>Pull approved comments</h3>
<p>[coldfusion]</p>
<p><cffunction name="getComments" access="public" returntype="query" hint="Pulls approved comments from a wordpress database (Tested in 2.8)"><br />
    <cfargument name="sDSN" type="string" required="yes" hint="Datasource name assigned to the WordPress database" /><br />
	<cfargument name="iCommentID" type="numeric" default="0" hint="Comment ID - use to pull back a specific comment record" /><br />
	<cfargument name="iPostID" type="numeric" default="0" hint="Post ID - Use to pull back all approved comments from a specific post" /><br />
    <cfargument name="iLimit" type="numeric" default="0" hint="Limit the number of comments pulled back" /></p>
<p>	<!--- Get comments ---><br />
	<cfquery name="Local.qGetBlogComments" datasource="#Arguments.sDSN#"><br />
		SELECT		wp_comments.*,<br />
        			wp_posts.post_name,<br />
                    wp_posts.ID,<br />
                    wp_posts.post_type,<br />
                    wp_posts.post_status,<br />
					wp_posts.post_title</p>
<p>		FROM		wp_comments</p>
<p>		INNER JOIN	wp_posts<br />
        ON			wp_comments.comment_post_ID = wp_posts.ID</p>
<p>		WHERE		0 < 1
		
		<cfif Arguments.iCommentID NEQ 0><br />
			AND		wp_comments.comment_ID = <cfqueryparam value="#Arguments.iCommentID#" cfsqltype="CF_SQL_INTEGER" /><br />
		</cfif></p>
<p>		<cfif Arguments.iPostID NEQ 0><br />
			AND		wp_comments.comment_post_ID = <cfqueryparam value="#Arguments.iPostID#" cfsqltype="CF_SQL_INTEGER" /><br />
		</cfif>      </p>
<p>        AND			wp_comments.comment_approved = 1</p>
<p>        AND			wp_posts.post_type = &#8220;post&#8221;</p>
<p>        AND 		wp_posts.post_status = &#8220;publish&#8221;</p>
<p>        ORDER BY	wp_comments.comment_date DESC</p>
<p>        <cfif Arguments.iLimit GT 0><br />
        	LIMIT #Arguments.iLimit#<br />
		</cfif></p>
<p>		;<br />
	</cfquery></p>
<p>	<cfscript><br />
		// Return the query object<br />
		return Local.qGetBlogComments;<br />
	</cfscript></p>
<p></cffunction></p>
<p>[/coldfusion]</p>
<h3>Strip HTML from posts</h3>
<p>This function uses the &#8216;TagStripper&#8217; custom tag by Rick Root / Ray Camden, available from http://www.cflib.org<br />
[coldfusion]</p>
<p><cffunction name="unformatPost" output="no" hint="Removes HTML from the string" access="public" returntype="string"><br />
	<cfargument name="sString" type="string" required="Yes" hint="Data to strip HTML from - pass the post contents here" /><br />
	<cfargument name="bShowSummary" type="boolean" default="0" hint="If you use the 'more' tag to split posts into summary and content, set this flag to pull back the summary only" />    </p>
<p>	<cfinclude template="/customTags/tagStripper.cfm" /></p>
<p>	<cfscript><br />
		// If we&#8217;re only showing a summary, strip out everything after wordpress&#8217; &#8216;<!--more-->&#8216; tag.<br />
		if (Arguments.bShowSummary) {<br />
			Arguments.sString = REReplace(Arguments.sString, &#8220;<!--more-->.*&#8221;, &#8220;&#8221;);<br />
		}</p>
<p>		// Stip out any HTML tags and return the output<br />
		return tagStripper(Arguments.sString,&#8217;strip&#8217;,&#8217;p,strong,em,a&#8217;);<br />
	</cfscript></p>
<p></cffunction><br />
[/coldfusion]</p>
<h2>Embedding CFM templates into WordPress / PHP</h2>
<p>I don’t know a great deal about PHP, but I can’t find any equivalent to CFINCLUDE – even if I could it would be safe to assume that the PHP version wouldn’t be able to parse the CFML code contained in my CFM pages – what’s needed is some equivalent to CFHTTP that can hit the CFM page as a standard HTTP request, let the CFML server parse the code and return HTML that is then displayed within the PHP template.</p>
<p>Currently I’m using a function in PHP which wraps around ‘fsockopen’ to do exactly this. I found this function a while ago on another project – I’m not sure who wrote it.</p>
<p>[php]<br />
<?php
 function fetchURL( $url ) {
   $url_parsed = parse_url($url);
   $host = $url_parsed["host"];
   $port = $url_parsed["port"];
   if ($port==0)
       $port = 80;
   $path = $url_parsed["path"];
   if ($url_parsed["query"] != "")
       $path .= "?".$url_parsed["query"];

   $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";

   $fp = fsockopen($host, $port, $errno, $errstr, 30);

   fwrite($fp, $out);
   $body = false;
   while (!feof($fp)) {
       $s = fgets($fp, 1024);
       if ( $body )
           $in .= $s;
       if ( $s == "\r\n" )
           $body = true;
   }
 
   fclose($fp);
 
   return $in;
} 
  
 ?><br />
[/php]</p>
<p>With that function set up at the top of the php template, you can use the following code to embed a parsed CFM template.</p>
<p>[php]<br />
echo fetchURL(http://pathto.your.cfm);<br />
[/php]</p>
<p>Now the only issue remaining is session data. As it’s the PHP server hitting your CFML template and not the user’s browser, the ColdFusion server is assigning a new session to PHP, and so any session specific data such as the contents of the user’s cart or login status, is lost in the displayed page.<br />
So to combat this, we’ll need to check the user’s browser for a session cookie using PHP, and pass that along as a URL parameter to the CFML template.</p>
<p>[php]<br />
<?php
	$sURL = "http://pathto.your.cfm?CFID=" . $_COOKIE['CFID'] . "&#038;CFTOKEN=" . $_COOKIE['CFTOKEN'];
	echo fetchURL($sURL);
?><br />
[/php]</p>
<p>Now we should find that the contents of the CFML page is parsed correctly, using the current CF session.</p>
<p>It’s worth noting that while this technique could be used to pull in your CFML header and footer template, providing a quick way to skin the blog without delving too deeply into the WordPress theme you’re using, this is not the ideal way to go. WordPress themes use variables in the head section of the document to deal with Meta information and other internal functionality, and these often provide hooks for WordPress plugins. If you replace this information with parsed HTML from your CFML templates, you may run into difficulties down the line.<br />
A better method is to abstract individual elements of your site into separate CFML templates, and allow WordPress to create the finished page, pulling in elements where needed.</p>
<p>I’d love to hear what people think of these techniques and if anyone has a better way of integrating WordPress into their ColdFusion apps. Specifically, I’d be interested to know if anyone has combined the login functionality of WordPress with their CFML system – the holy grail, if you will!</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/cache-and-display-multiple-twitter-feeds-in-coldfusion-cfc-131.html" rel="bookmark" title="Cache and display multiple Twitter feeds in ColdFusion &#8211; CFC">Cache and display multiple Twitter feeds in ColdFusion &#8211; CFC </a> <small>CFC to easily pull in and cache multiple Twitter feeds....</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/new-site-live-1.html" rel="bookmark" title="New site live&#8230; Vertical rhythm FTW!">New site live&#8230; Vertical rhythm FTW! </a> <small>After many sleepless nights, the new Simian Enterprises site is...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/if-coldfusion-is-dead-its-adobe-that-killed-it-118.html" rel="bookmark" title="If ColdFusion is dead, it&#8217;s Adobe that killed it.">If ColdFusion is dead, it&#8217;s Adobe that killed it. </a> <small>You can't call yourself a CFML developer unless you have...</small></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/integrate-wordpress-into-your-coldfusion-app-148.html/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>If ColdFusion is dead, it&#8217;s Adobe that killed it.</title>
		<link>https://www.simianenterprises.co.uk/blog/if-coldfusion-is-dead-its-adobe-that-killed-it-118.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/if-coldfusion-is-dead-its-adobe-that-killed-it-118.html#comments</comments>
		<pubDate>Wed, 15 Sep 2010 11:08:55 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Railo]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=118</guid>
		<description><![CDATA[You can't call yourself a CFML developer unless you have a CF state of union style blog post, so this is mine. ;)<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/setting-up-a-production-windows-2008-server-with-railo-96.html" rel="bookmark" title="Tutorial: Setting up a production Windows 2008 server with IIS7 &amp; Railo">Tutorial: Setting up a production Windows 2008 server with IIS7 &#038; Railo </a> <small>A complete beginner's step by step guide to setting up...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html" rel="bookmark" title="Combatting misinformation in web design">Combatting misinformation in web design </a> <small>I received an email from a client recently, informing me...</small></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<h3>(Or, &#8216;Controvertial ColdFusion post #34124&#8242;)</h3>
<p>I&#8217;ve been using ColdFusion happily for the last 6 years. I can honestly say that if it weren&#8217;t for the ease of learning ColdFusion, and the instant gratification to be gained from rapidly developing apps that interact with databases, I&#8217;d have never found my way into backend development.</p>
<p>Like any language however, ColdFusion is not without its problems. We can compare functionality until the proverbial cattle return to their domiciles, but what I&#8217;d like to talk about is the culture of elitism that surrounds ColdFusion.</p>
<p><em>&#8216;Elitism?!&#8217; </em>I hear you cry, <em>&#8216;But ColdFusion is so easy to pick up, and the community is so friendly and welcoming! That&#8217;s hardly elitist, is it?&#8217;</em>.</p>
<p>Yes. You&#8217;re right&#8230; but what I&#8217;m concerned with is the difficulty ColdFusion developers face in the environment in which they work. Adobe have done a very good job of making ColdFusion inaccessible to the masses by focussing on enterprise clients, inadvertently turning ColdFusion into quite an exclusive club.<br />
Don&#8217;t believe me? Reel off the names of some well known ColdFusion celebrities&#8230; Ray Camden, Ben Nadel, Ben Forta, Et al. I&#8217;ll bet if you&#8217;re a ColdFusion developer, you&#8217;ll know who those people are. You&#8217;ll have read their blog posts, be aware of projects they&#8217;ve done. You&#8217;ll probably be able to list 10 more without too much trouble&#8230;<br />
Well, you shouldn&#8217;t be able to do that &#8211; because the list should be huge. If we were talking about PHP, there&#8217;d be maybe 5,000 people in that list. In ColdFusion there&#8217;s maybe 20.</p>
<p>Let me explain&#8230;<span id="more-118"></span><br />
I&#8217;m a freelance web developer, who happens to favour ColdFusion as my back end language of choice. It should be as simple as deciding which language is right for the task, or which you feel most comfortable using, but with ColdFusion there&#8217;s more to consider.<br />
First and foremost, I have to think about hosting the websites I create. If I were a PHP developer, I&#8217;d have the pick of pretty much any host you can think of. Hundreds of thousands of web hosting companies the world over and every single one of them offer PHP as standard with all their packages, right? For us ColdFusion developers though, it&#8217;s a much tougher choice. We have to find hosting companies that specifically cater to ColdFusion developers. Not an easy task. I&#8217;ve had accounts with ColdFusion hosting companies both here and in the US, and in my experience they&#8217;ve nearly all been so unreliable as to be detrimental to my business and reputation. It&#8217;s an issue we all face and I&#8217;ve had numerous conversations with other ColdFusion developers on the subject; finding a reliable ColdFusion hosting company is difficult. It&#8217;s a case of getting what you pay for, and a reliable CF host costs far more than a reliable PHP host, because a CF license is expensive for a hosting company to invest in.</p>
<h2>CFML Developer = Part time sysadmin</h2>
<p>The conclusion most of us come to eventually, is that it&#8217;s far easier to host our sites ourselves, getting a dedicated server or VPS with a reliable host, and installing ColdFusion onto it.<br />
Now, aside from the huge cost of a ColdFusion licence, what this means for us is that nearly every ColdFusion developer has to have a sideline as a sysadmin. I&#8217;ve learned from experience that being a good sysadmin is a full time job on its own. This means there are a bunch of novice sysadmins out there, running their own servers through necessity &#8211; novice sysadmins mean insecure systems. Before you know it, we have &#8216;<em>ColdFusion is insecure</em>&#8216; rumours floating about the web. Just what we need.</p>
<p>What this also means is less choice for our clients. With every new client, I have to have the same conversation: &#8220;<em>I need to let you know that if you take up my services, we will need to move your site to another hosting company, or host the site on my own servers</em>&#8220;. This isn&#8217;t so much of a problem for enterprise clients, but at my end of the scale, speaking to small companies with even smaller budgets and a knowledge of how the web works that is even smaller still, these words are strange and daunting and often a dealbreaker.</p>
<p>Most of my clients have never heard of ColdFusion. They&#8217;ve never heard of PHP either, but wheras with a PHP developer they could continue to live in blissful ignorance, with a ColdFusion based solution they will quickly learn that ColdFusion requires a hefty licence fee or at least more expensive hosting.</p>
<p>The situation gets worse too, because apparently ColdFusion cannot reliably be run in a shared hosting environment. &#8220;<em>What?? That&#8217;s ridiculous!!!</em>&#8221; Yes it is, and I would never have thought it were it not for a conversation I was having recently with Andy Allan of Fuzzy Orange. (We all know who he is too, right? See? CF&#8230; good if you want to be famous, bad if you want an easy life.) All this time I was thinking that most CF hosting companies were complete morons, incapable of offering a reliable service, but in fact it seems that they&#8217;re at a disadvantage right from the beginning because CF Enterprise sandboxing has numerous problems that plague the everyday plight of the sysadmin.</p>
<p>Now, it&#8217;s my contention that if this is the case, it should be a <em>huge</em> priority for Adobe, but apparently it&#8217;s not.</p>
<h2>The big picture</h2>
<p>ColdFusion is less used than PHP and ASP. That&#8217;s a fact. I&#8217;ve heard a million arguments about enterprise users and fortune 500 companies, etc. We as a community are constantly battling against the &#8216;Coldfusion is Dead&#8217; bullshit and frankly, I&#8217;m with you guys. It&#8217;s very much alive, very much out there and being used all over the place&#8230; great, but you can&#8217;t deny that PHP is the most widely used back end language.</p>
<p>This has a knock-on effect for us. It makes it more difficult to sell ColdFusion as a solution to clients. It&#8217;s easy for our competition to mis-inform. I&#8217;ve lost clients to PHP because of higher hosting costs, I&#8217;ve even lost a client to an SEO cowboy who <a title="Misinformation in web design" href="http://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html">claimed that ColdFusion was &#8216;Bad for SEO&#8217;</a>.  The fact is that ColdFusion is less known and less used than the free alternatives, and we as a community are constantly trying to raise awareness, spread the word and in many cases, defend our beloved language.</p>
<p>How exactly can we make ColdFusion more prevalent when so few hosting companies offer it as an option? How can we encourage new developers towards CFML, when they&#8217;ll also need to learn about how to set up and manage servers in order to use it reliably?<br />
The answer I usually hear is that if there&#8217;s enough demand for ColdFusion, then bigger hosting companies will offer it as a service. But that&#8217;s a chicken / egg argument. How will the demand grow, unless it&#8217;s there as an option for the masses? How many PHP developers began their learning solely because they needed to update or configure a PHP app they were using such as WordPress or PHPBB. Why are there no real CF &#8216;killer apps&#8217; like WordPress and PHPBB?</p>
<p>The way I see it, CF will remain mostly at enterprise level, behind the scenes, until such time as it comes as standard with many, many more hosting packages. And this won&#8217;t happen as long as it&#8217;ll cause a support headache for the big hosting companies. We can all argue about the price of CF, but that&#8217;s not really the concern for the big hosts, they can get bulk discounts anyway&#8230; their problem is that if they offer CF in a shared hosting environment, they will have reliability problems, and will eventually have someone like me announcing to the world that they&#8217;re a bunch of useless wankers.</p>
<h2>Railo to the rescue!</h2>
<p>Sure, I know there are a lot of people out there who will tell me that <a title="Railo" href="http://getrailo.org">Railo</a> is the answer to all of this. It&#8217;s free, it&#8217;s fast, it&#8217;s open source and the community are great. I agree on all counts, and indeed I&#8217;m now offering reliable hosting to my clients with my own servers running  Railo. Brilliant.<br />
But it&#8217;s not the answer to everything.</p>
<p>Firstly, Railo has only really come into its own, at least in my opinion, over the last year. About 18 months ago I tried to make the move to Railo and there were just too many bugs and inconsistencies for it to be a viable solution. It simply wasn&#8217;t capable of running my apps, or at least not without some serious reworking of a lot of functionality. V3.1.2.001 has changed all that, and it&#8217;s now able to handle damn near everything I throw at it &#8211; but it still contains bugs. The Railo community are great and bugs, once identified, are fixed quickly &#8211; but this means that I as a developer have to spend some of my time testing &amp; reporting. Sometimes I run into a brick wall with something I&#8217;m working on, and have to wait for a fix from the Railo team before I can move forward with it. That&#8217;s fine, it&#8217;s the nature of open source and I&#8217;m very happy to be contributing to the project, finding issues in a live real-world environment &#8211; but it&#8217;s still unpaid man-hours that I wouldn&#8217;t have to deal with, were I using Adobe ColdFusion.</p>
<p>Secondly, while there are community members out there doing great work on installer projects, posting tutorials and the like, there&#8217;s still a much steeper learning curve in the setup of Railo compared to ColdFusion. What you&#8217;re rewarded with is a <em>much</em> faster CFML engine, Railo&#8217;s lighting fast compared to ACF, but the point I&#8217;ve been making throughout this post rant is that I don&#8217;t <em>want</em> to be a sysadmin, I don&#8217;t want to have to learn about application servers and web servers, I just want to code bloody CFML!</p>
<h2>What&#8217;s the answer?</h2>
<p>Hell, I don&#8217;t know&#8230; but it occurs to me that the CF community is fighting a constant war against misinformation, defending CFML to clients and colleagues alike. The community as a whole seems to want to raise awareness of ColdFusion, and if indeed this is the case, then I think Adobe needs to take a serious look at who they&#8217;re aiming at.<br />
As Andy pointed out, most of Adobe&#8217;s CF customers are enterprise, so they may not see hosting companies as a big sales generator&#8230; but it never will be be unless the sandboxing issues are resolved. Meanwhile, it&#8217;s people like us who suffer. This isn&#8217;t a concern if you&#8217;re a CF developer working in a bluechip traded company with a huge IT budget, but if you&#8217;re a freelance developer with a love of ColdFusion, this should <em>matter</em> to you and I think it&#8217;s time Adobe looked at the big picture &#8211; A lack of reliable CF hosts is a barrier to entry, which means less CF developers in the wild, and a harder time for those already out there.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/setting-up-a-production-windows-2008-server-with-railo-96.html" rel="bookmark" title="Tutorial: Setting up a production Windows 2008 server with IIS7 &amp; Railo">Tutorial: Setting up a production Windows 2008 server with IIS7 &#038; Railo </a> <small>A complete beginner's step by step guide to setting up...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html" rel="bookmark" title="Combatting misinformation in web design">Combatting misinformation in web design </a> <small>I received an email from a client recently, informing me...</small></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/if-coldfusion-is-dead-its-adobe-that-killed-it-118.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Mercurial tool to export changed files</title>
		<link>https://www.simianenterprises.co.uk/blog/mercurial-export-changed-files-80.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/mercurial-export-changed-files-80.html#comments</comments>
		<pubDate>Tue, 27 Apr 2010 15:58:08 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=80</guid>
		<description><![CDATA[Recently, my friend Chris Brown convinced me to move my source control from SVN to Mercurial (or more specifically, Kiln). I found Mercurial to be infinitely better than SVN in almost all resepects, but there was one thing missing that I could do with Tortoise SVN but not Tortoise HG, and that was to export [&#8230;]<div class='yarpp-related-rss yarpp-related-none'>

No related posts.
</div>
]]></description>
				<content:encoded><![CDATA[<p>Recently, my friend <a title="Chris Brown on Twitter" href="http://www.twitter.com/cb46">Chris Brown</a> convinced me to move my source control from SVN to <a title="Mercurial" href="http://mercurial.selenic.com/">Mercurial</a> (or more specifically, <a title="Kiln" href="http://www.fogcreek.com/kiln/">Kiln</a>).<br />
I found Mercurial to be infinitely better than SVN in almost all resepects, but there was one thing missing that I could do with Tortoise SVN but not Tortoise HG, and that was to export any changed files from one revision to the next &#8211; something which as a web developer, I have to do very often.</p>
<p>Well, Chris came to the rescue and created a simple program to do exactly that. So here&#8217;s Chris to explain the program and how it works:<br />
Download links are at the bottom of the page.<br />
<span id="more-80"></span></p>
<blockquote><p>Hi,</p>
<p>My name is Chris Brown and I am a big fan of FogBugz so when FogCreek announced Kiln (a mercurial client) I immediately jumped on the bandwagon moved to Kiln and have never looked back. The Kiln Mercurial solution solved all the issues I had with merging and speed in Subversion and I was a very happy man indeed.</p>
<p>Then one day whilst chatting to my good friend Gary @ Simian Enterprises (who has kindly let me blog via his site on this occasion) I mentioned Kiln to him and proceeded to wax lyrical about how great it was until his ears were bleeding and to my surprise I had convinced him to give Kiln a try.</p>
<p>Now Gary was at first very happy and was as thrilled as me at the beautiful Kiln web experience and TortoiseHg integration, however there was one nagging feature he used a lot in Subversion which does not exist within the Mercurial system, and after doing a bit of googling it seems a few other people hit the same snag.</p>
<p>It is not possible with TortoiseHg to export a copy of all files changed since a specified revision. Now to most this would not cause much of an issue, I myself have never had this need, and do not think I will, but for those working on big complex websites like Gary does this is a big issue.</p>
<p>When uploading the new version of a site (usually by FTP) this can take some time, and I am sure most people will agree that uploading files with no changes is nothing but a waste of time. Being able to export just the files changed since the last update and only updating these makes a lot more sense and will result in far fewer files being transferred and as mentioned TortoiseSVN has this capability as standard.</p>
<p>With any luck one day the TortoiseHg system can also have this command, until then I have written a small application in Visual Studio 2010 which does what Gary needed and hopefully it will be of use to other Kiln/Mercurial users too.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-92" title="Mercurial Changed Files Exporter" src="http://www.simianenterprises.co.uk/blog/wp-content/uploads/2010/04/mercurialchangedfilesexporter1.gif" alt="Mercurial Changed Files Exporter" width="631" height="312" /></p>
<p>Please note: this is one of those programs I knocked up very quickly, it does not have much error handling and the code is not that tidy, however it does work and I have provided both an installer for the app and the original Source Code, please feel free to amend as needed or build on this to meet your needs.</p>
<p>Below are details of each input and what it is used for and what the buttons do, this currently checks for changes between a revision and tip and assumes the current working folder is updated to Tip.</p>
<p><strong>Root Directory of mercurial repository:</strong> should point to the path of the root of your repo (where .hg lives)<br />
<strong>From Revision #:</strong> the revision number to check from<br />
<strong>Export target folder:</strong> the folder to copy changed files to (must be blank)<br />
<strong>List Changed Files:</strong> lists the files in the list box that will be copied based on current settings.<br />
<strong>Export Changed Files:</strong> same as above but also copied to the target folder/<br />
<strong>Close:</strong> does what it says on the tin.</p>
<p>If you like this little utiity and would like to make any comments you can find me on Twitter (<a title="Chris Brown on Twitter" href="http://www.twitter.com/cb46">@CB46</a>)<br />
Thanks<br />
Chris Brown</p>
<p><strong>Download: <a title="Mercurial Changed Files Exporter" href="/blog/wp-content/uploads/2010/04/mercurialchangedfilesexporter.zip">Windows Installer</a> | <a title="Mercurial Changed Files Exporter (Source)" href="/blog/wp-content/uploads/2010/04/mercurialchangedfilesexportersource.zip">Source</a></strong></p></blockquote>
<div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/mercurial-export-changed-files-80.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Combatting misinformation in web design</title>
		<link>https://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:40:30 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=76</guid>
		<description><![CDATA[I received an email from a client recently, informing me that they have hired someone to redevelop their entire website in php, as they have been informed by their SEO company that ColdFusion is 'bad for search engines'.<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/the-uncomfortable-truth-about-seo-16.html" rel="bookmark" title="The uncomfortable truth about SEO">The uncomfortable truth about SEO </a> <small>I'm simply amazed that there are still people out there...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/where-do-they-find-the-time-45.html" rel="bookmark" title="Where do they find the time?!">Where do they find the time?! </a> <small>The web industry is so fast moving that it's all...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/jack-jill-and-hill-of-all-trades-40.html" rel="bookmark" title="Jack, Jill and Hill of all trades.">Jack, Jill and Hill of all trades. </a> <small>Specialising may be essential if you want to get picked...</small></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I received an email from a client recently, informing me that they have hired someone to redevelop their entire website in php, as they have been informed by their SEO company that ColdFusion is &#8216;bad for search engines&#8217;.</p>
<p>Frankly, I think it&#8217;s astounding that any SEO company could make such an assertion, anyone in the industry would immediately understand just how ridiculous this statement is &#8211; but unfortunaty our clients are not experts and can only make their decisions based on the advice they receive from the people who claim to be. My clients in this case have made an informed choice, based on patently false information&#8230;</p>
<p>So I&#8217;d like to state definitively: <strong>ColdFusion has nothing whatsoever to do with SEO</strong>&#8230; Neither does php, asp, ruby, python, perl, or in fact any back end language at all&#8230;<br />
<span id="more-76"></span><br />
Search engines read the &#8216;mark-up&#8217; of a website, that is to say the HTML that anyone can see by clicking &#8216;view source&#8217; in the browser&#8230; A back end language such as ColdFusion, php or asp, will generate HTML mark-up according to the templates that have been coded by a developer. It is entirely possible for any of these back end languages to generate identical mark-up.<br />
My clients in this case have paid to have their website recoded, but the HTML produced will be exactly the same as their existing website and so their search engine results will be completely unaffected&#8230; In fact, since the file extensions will change on every page, many incoming links will no longer work, so unless their new developer puts 301 redirects in place, they will most likely drop in the rankings.</p>
<p>As a developer working primarily with ColdFusion, it&#8217;s easy to feel angry that my clients have been mislead into believing that the work I have done for them is somehow inferior because of the language used, and indeed if I knew the name of the SEO company involved I would be in contact with them directly to argue the issue as well as naming them here&#8230; But what&#8217;s worrying is that it&#8217;s really the clients that are suffering. Through ignorance of how the Internet works, they have been led down a route that is both costly and futile, by a company that either has no knowledge of their own industry, or even more worrying, is ruthless enough to take advantage of the ignorance of their clients.</p>
<p>I only want what&#8217;s best for the people I work for. I want their sites to work well, to become popular, to generate revenue &#8211; and I try to give the best advice I can to help clients understand what can be<br />
gained from their web presence. I&#8217;m sure we all do&#8230; But in a technical industry such as ours, one that combines so many different disciplines, one that every virtually every business needs to interact<br />
with and yet very few understand, how can we combat misinformation like this?</p>
<p>The average client doesn&#8217;t need or want to understand how the Internet works. Mention CSS, JavaScript, back end software, web standards, etc. to the average client and they will at best, stare at<br />
you blankly&#8230; At worst pretend they know what you&#8217;re talking about when in fact they haven&#8217;t a clue. In my experience, the best clients to work with are those that have enough knowledge of the web to understand that user experience is key, that copy is important, and that their website is an ongoing project. They don&#8217;t need to know the intricacies of code, servers and the like, but they need to trust<br />
us to make certain decisions on their behalf.</p>
<p>Perhaps it&#8217;s time we tried to educate our clients. I don&#8217;t know how much information is out there to explain the basics. Maybe we should have a simple guide explaining how websites are put together that we can give to clients at the beginning of new projects&#8230; Either that or perhaps SEO companies should be licensed and regulated!!!</p>
<p>As I write, I&#8217;m not entirely sure what the point of this post is, but I feel it&#8217;s an issue not generally discussed and I&#8217;d be interested to know what others think. Perhaps the larger agencies don&#8217;t run into<br />
this problem due to their reputation as experts or their tendency to work with bigger clients; but at my level, developing for small companies with little or no online strategy, half the battle is guiding them in the right direction.</p>
<p>So how do we compete with liars???</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/the-uncomfortable-truth-about-seo-16.html" rel="bookmark" title="The uncomfortable truth about SEO">The uncomfortable truth about SEO </a> <small>I'm simply amazed that there are still people out there...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/where-do-they-find-the-time-45.html" rel="bookmark" title="Where do they find the time?!">Where do they find the time?! </a> <small>The web industry is so fast moving that it's all...</small></li>
<li><a href="https://www.simianenterprises.co.uk/blog/jack-jill-and-hill-of-all-trades-40.html" rel="bookmark" title="Jack, Jill and Hill of all trades.">Jack, Jill and Hill of all trades. </a> <small>Specialising may be essential if you want to get picked...</small></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/combatting-misinformation-in-web-design-76.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Pixels vs. Ems – my proverbial 2 cents</title>
		<link>https://www.simianenterprises.co.uk/blog/pixels-vs-ems-50.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/pixels-vs-ems-50.html#comments</comments>
		<pubDate>Fri, 19 Jun 2009 01:36:58 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=50</guid>
		<description><![CDATA[As a consciences web developer, I aim to create clean, accessible code using currently accepted best practices. Unfortunately no-one can seem to agree on what those best practices might be, and in any case they keep changing, so it's difficult to keep up.<div class='yarpp-related-rss yarpp-related-none'>

No related posts.
</div>
]]></description>
				<content:encoded><![CDATA[<p><strong>A wise man once said: &#8220;A moving target is not so easy to hit&#8221;.<br />
At least, I think that&#8217;s what he said. He was running past me rather quickly at the time.</strong></p>
<p>As a conscientious web developer, I aim to create clean &amp; accessible code, using currently accepted best practices. Unfortunately no-one can seem to agree on what those best practices might be and in any case they keep changing, so it&#8217;s difficult to keep up.</p>
<p><span id="more-50"></span><strong>In the 90&#8217;s<br />
</strong>We all made websites using tables. They allowed for absolute positioning of elements and enabled us to create beautiful websites that looked exactly like the Photoshop mock ups we&#8217;d lovingly crafted. The world rejoiced and everything was fine for a while, until someone told us this was completely wrong.</p>
<p><strong>Then came CSS&#8230;<br />
</strong>Having been informed that actually, we should be separating style from content for a myriad of very good reasons, we all set about forgetting everything we knew about creating websites  and started again from scratch.</p>
<p><strong>But it didn&#8217;t stop there<br />
</strong>Gradually, we came to understand that there are various &#8216;right&#8217; and &#8216;wrong&#8217; ways to build sites even if we&#8217;re using CSS to style our content. Phrases such as &#8216;Semantic Markup&#8217; and &#8216;Progressive Enhancement&#8217; began to emerge and simultaneously excite and terrify.</p>
<p><strong>Accessibility<br />
</strong>Of course, there&#8217;s a genuine reason for all this mucking about behind the scenes &#8211; making our content accessible to the widest possible audience, on any device, under any condition. To that end, we were told that we should be using relative units for our text sizes, (and if the design calls for it, our layout as well) allowing users to zoom in and out at will. Helpful for those with high resolutions, with visual impairments, with small screens. Whatever.</p>
<p><strong>A return to the Old Skool<br />
</strong>Lately however, browser manufacturers have taken it upon themselves to create page zooming functionality that zooms the entire page, regardless of whether relative units have been used.</p>
<p>No sooner have we all got our heads around calculating Ems, and everyone&#8217;s talking about going back to pixels&#8230; because it&#8217;s easier.<br />
Apparently we were only using Ems in the first place, to take advantage of the text zooming functionality of browsers.</p>
<p><strong>I disagree, for a number of reasons<br />
</strong>Ems are relative to the default font size of the browser. This is usually 16 pixels, but many people with visual impairments will have this default set higher. Possibly, they&#8217;ll have set the font size at the operating system level. Some people using high resolutions on small screens will have changed this setting also. I attended <a title="Jon Tan: 80% Science, 20% Art" href="http://huffduffer.com/skillswap/4117">Jon Tan&#8217;s talk on typography</a> a few months back and a member of the audience recounted his experience of using a laptop with the font size increased at the OS level. He was unable to click a button on a high profile website, because at his text size, the button was hidden underneath another element. Clearly if we disregard the possibility of text being resized, if we assume we have total control over the size of text in our layouts, we&#8217;ll come unstuck pretty quickly.</p>
<p>In any case, not everyone is a fan of the new style page zooming. Personally I find that many layouts break fairly quickly using page-zoom, and even if they don&#8217;t, it&#8217;s very quick to display the dreaded horizontal scroll bar. In Firefox, I&#8217;ve set my zooming to &#8216;text only&#8217;. I can&#8217;t be the only one, or the option wouldn&#8217;t be there.</p>
<p>Above all though, I won&#8217;t be changing back to pixel font sizes because Ems are better suited to the job. Pixel sizing may be easier, but a correctly executed complex Em layout gives me a zen-like feeling of satisfaction. I just like being a web-ninja.</p>
<div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/pixels-vs-ems-50.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jack, Jill and Hill of all trades.</title>
		<link>https://www.simianenterprises.co.uk/blog/jack-jill-and-hill-of-all-trades-40.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/jack-jill-and-hill-of-all-trades-40.html#comments</comments>
		<pubDate>Wed, 25 Mar 2009 15:31:49 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Website Development]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=40</guid>
		<description><![CDATA[Specialising may be essential if you want to get picked up by a large agency, but I think there's still room for the 'Jack of all trades' website creators. We are the small-time heroes of the internet, armed with ideas, passion, experience and vision. We'll exceed all expectations and all will be right with the world.<div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/7-copyright-tips-for-your-designs-30.html" rel="bookmark" title="7 copyright tips for your designs">7 copyright tips for your designs </a> <small>Getting our designs and ideas ripped off is a worry...</small></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>When the likes of the Oliver Twins and David Brayben were writing video games in their bedrooms back in the mid-eighties, I&#8217;ll bet they had no idea just how advanced the world of games development was to become. These days a commercial video game takes a team of hundreds, with a budget of millions (which incidentally, is why there are very few original games released these days &#8211; nobody wants to bank roll an unproven idea).</p>
<p>In recent years, the web industry has begun to wander down a similar path. With the scope of the average web project being so much greater than a decade ago, the most successful web agencies are those housing multiple specialists.<br />
These days a web project needs information architecture, copy writing, user experience &amp; interface design, database design and development, back end coding, front end coding, user testing, a dash of marketing and some project management to tie it all together.</p>
<p>So where does this leave the &#8216;Jack of all trades&#8217;? With the recent economic &#8216;apocalypse&#8217;, a lot of people and especially freelancers, are wondering where their next paycheck may be coming from&#8230; How do we weather the storm?<br />
<span id="more-40"></span><br />
In a <a title="Andy Budd on 'How to recession proof your business'" href="http://boagworld.com/podcast/148/#expertT">recent interview</a>, Andy Budd suggested that in today&#8217;s climate we all need to specialise or die. He makes a compelling argument, but I don&#8217;t entirely agree. I think it depends what you&#8217;re looking to achieve.<br />
Sure, specialising in one aspect of the industry is essential if you want to get picked up by a large agency, or if you want to talk on the conference circuit, publish a book or work for one of the big players&#8230; But I think there&#8217;s still room in this industry for the multi-skilled &#8216;website creators&#8217;. Our target market is the small business. Not everyone can afford to hire a big agency and in my experience they wouldn&#8217;t see the value of the investment even if they could.</p>
<p>There are quite literally millions of businesses out there that have no idea how much a good web presence would benefit them. This is where we step in, the small-time heroes of the internet. We come armed with ideas and with passion, with experience and vision. We know that our website project can revolutionise their business. It will generate enquiries, or a new revenue stream. It will save them time and money. It will exceed their expectations and all will be right in the world.</p>
<p>It probably seems over the top, but this is the level of enthusiasm I have at the start of every new project. I think that at this, the smaller end of the scale, we have an opportunity to create things of real value to our clients.</p>
<p>I may never do work for the BBC or Google. I may not invent the next Facebook or be revered amongst my peers as the best in my field&#8230; But I&#8217;ll change the life of Jason, the locksmith who lives around the corner.</p>
<p>That&#8217;s rewarding&#8230; Hell, that&#8217;s <em>exciting</em>&#8230;<br />
When Jason calls to tell me that I&#8217;ve saved him five man-hours a day in admin time with an invoicing system I built him for a few grand&#8230; that&#8217;s the best damned feeling in the world.<br />
It might not make it onto an awards site and be featured in .NET magazine &#8211; but Jason spends more time with his kids and tells all his friends what a wonderful job I&#8217;ve done.</p>
<p>Jason, of course, had no idea this was possible &#8211; he was just looking for a website to advertise his business. He didn&#8217;t have an online strategy or a marketing budget, and he didn&#8217;t invite several high profile web agencies to tender for his business. He asked his friend who&#8217;d created their website and he gave me a call.</p>
<p>There are plenty of Jasons out there.<br />
Find them, make their lives better and get paid for it&#8230; and keep smiling&#8230; life is awesome.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href="https://www.simianenterprises.co.uk/blog/7-copyright-tips-for-your-designs-30.html" rel="bookmark" title="7 copyright tips for your designs">7 copyright tips for your designs </a> <small>Getting our designs and ideas ripped off is a worry...</small></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/jack-jill-and-hill-of-all-trades-40.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The uncomfortable truth about SEO</title>
		<link>https://www.simianenterprises.co.uk/blog/the-uncomfortable-truth-about-seo-16.html</link>
		<comments>https://www.simianenterprises.co.uk/blog/the-uncomfortable-truth-about-seo-16.html#comments</comments>
		<pubDate>Tue, 17 Mar 2009 13:29:35 +0000</pubDate>
		<dc:creator><![CDATA[Gary]]></dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Website Development]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.simianenterprises.co.uk/blog/?p=16</guid>
		<description><![CDATA[I'm simply amazed that there are still people out there disseminating crackpot ideas of what SEO is.
So here, in an attempt to enlighten as well as entertain, is my compendium of uncomfortable truths about the world of SEO in 2009.<div class='yarpp-related-rss yarpp-related-none'>

No related posts.
</div>
]]></description>
				<content:encoded><![CDATA[<p>Let me preface this by saying that I&#8217;m not an <abbr title="Search Engine Optimisation">SEO</abbr> professional. I don&#8217;t work for an <abbr title="Search Engine Optimisation">SEO</abbr> company and I don&#8217;t charge for <abbr title="Search Engine Optimisation">SEO</abbr> in any way. But I <em>have</em> been developing websites for a long time, and in that time I&#8217;ve been involved in a lot of <abbr title="Search Engine Optimisation">SEO</abbr> projects. I&#8217;ve had sites at the top of Google, and I&#8217;ve had sites blacklisted. I&#8217;ve been shafted by black-hat <abbr title="Search Engine Optimisation">SEO</abbr> companies, and I&#8217;ve employed black-hat techniques myself. I&#8217;ve witnessed the rise of <abbr title="Cost Per Click">CPC</abbr> advertising, I saw the demise of &#8216;Top-Pile&#8217;, and I&#8217;ve voted for the &#8216;<a title="President of the internet on Google" href="http://www.google.co.uk/search?hl=en&amp;q=president+of+the+internet&amp;btnG=Google+Search&amp;meta=">president of the internet</a>&#8216;&#8230; In short, I&#8217;ve learned a few things&#8230;</p>
<p>Having just had a conversation with yet another &#8216;<abbr title="Search Engine Optimisation">SEO</abbr> consultancy&#8217;, I&#8217;m simply amazed that there are still people out there disseminating these crackpot ideas of what <abbr title="Search Engine Optimisation">SEO</abbr> is. That clients of mine, unsuspecting business owners with little or no knowledge of the intricacies of <abbr title="Search Engine Optimisation">SEO</abbr>, are still parting with inordinate, over-inflated lumps of cash to these cowboy companies for a service they don&#8217;t understand, and are therefore unable to accurately gauge the effectiveness of, simply angers me.</p>
<p>So here, in an attempt to enlighten as well as entertain, is my compendium of uncomfortable truths about the world of <abbr title="Search Engine Optimisation">SEO</abbr> in 2009.</p>
<p><span id="more-16"></span></p>
<h2>Google has got it right</h2>
<p><span class="smallText">(Or: &#8216;How your favourite search engine is smarter than your <abbr title="Search Engine Optimisation">SEO</abbr> company&#8217;.)</span></p>
<p>Google has been around for a long time. Since its inception in 1996, Google&#8217;s main goal has been to crawl and rank every website on the internet according to the relevance of its content. This is for the benefit of the public, not the owner of said website.</p>
<p>Google is <em>very </em>good at this, and has some of the brightest minds in the industry working hard at refining their ranking algorithm to do just that.</p>
<p>It doesn&#8217;t take a genius to see that being at the top of Google for any particular key-phrase would have a lot of money making potential, and so from very early on, lots of &#8216;non-genius&#8217; people crawled out from under various rocks and offered their services doing just that &#8211; getting their clients to the top of Google.</p>
<p>For a while, they were fairly successful and their clients, on the whole, happy. But as more and more companies realised the potential of #1 rankings, and more <abbr title="Search Engine Optimisation">SEO</abbr> companies (often from Lancaster, ever notice that?)  cropped up ready to take their money, a virtual arms race ensued with <abbr title="Search Engine Optimisation">SEO</abbr> companies trying more and more ingenious ways to trick poor Google into ranking their clients higher than their competitors.</p>
<p>Many techniques emerged over the years, including keyword stuffing, gateway pages, micro-sites, gateway domains, link triangulation, bombing, cloaking, etc.</p>
<p>Of course all of this was very much against the spirit of the whole thing and Google spent most of its time refining its algorithm to identify these &#8216;Black-Hat&#8217; (read: cheating) tactics and penalise sites accordingly.</p>
<p>Google was always bound to triumph in the end and the turning point came around 2004, when they finally tipped the scales and managed to make the <abbr title="Search Engine Optimisation">SEO</abbr> industry implode in one fell swoop.<br />
Many high profile businesses were wiped out from the listings overnight.</p>
<p>With the old black-hat techniques causing massive penalisation, a huge percentage of &#8216;have-a-go&#8217; <abbr title="Search Engine Optimisation">SEO</abbr> companies went bust immediately. Those that were left were quick to claim they had never used those techniques in the first place. (They did&#8230; They all did.)</p>
<p>The bottom line is that Google doesn&#8217;t want <abbr title="Search Engine Optimisation">SEO</abbr> companies to dictate where your website ranks in their listings. They want to deliver the most relevant <strong>content</strong> to their users for any given search and that&#8217;s exactly what you should want too&#8230; Because your website is better than your competitor&#8217;s, right? So what good is it if after putting all that effort to create the perfect online resource for your target market, your inferior competitor can just simply hire a better <abbr title="Search Engine Optimisation">SEO</abbr> company to outrank you?</p>
<p>Where does it all end?!</p>
<p>Thankfully, Google has become very good at sorting out the wheat from the chaff and right now, the best way to rank well in their listings is to develop good quality, regularly updated content. Just look at the BBC&#8230;</p>
<h2>There is no such thing as guaranteed rankings</h2>
<p>That&#8217;s right, I said it.</p>
<p>If any <abbr title="Search Engine Optimisation">SEO</abbr> company offers you any kind of guarantee, including of the ever attractive &#8216;or your money back&#8217; variety, politely (or impolitely depending on your demeanour and how pushy their salesperson is) decline and go about your day.</p>
<p>This seems obvious, yet people are taken in by it every day: If every <abbr title="Search Engine Optimisation">SEO</abbr> company offering &#8216;guaranteed top five rankings&#8217; was actually able to deliver, tens if not hundreds of competing companies would have to share those top five positions. It&#8217;s clearly not possible.</p>
<p>The fact is that <abbr title="Search Engine Optimisation">SEO</abbr> is not an exact science, or indeed a science of any kind. It&#8217;s educated guesswork at best. There are so many factors that influence a site&#8217;s ranking that it is impossible to make any kind of guarantee&#8230; The fact that many <abbr title="Search Engine Optimisation">SEO</abbr> companies actually offer a guarantee is simply because this is what their clients want to hear. ANY <abbr title="Search Engine Optimisation">SEO</abbr> company that offers a guarantee is unscrupulous, and is to be avoided.</p>
<p>And while we&#8217;re on the subject, 20 top five rankings &#8216;across the major search engines&#8217; is useless. Trust me &#8211; No-one is searching for &#8216;<strong>[your product&#8217;s stock code]</strong> from <strong>[your company name]</strong> buy online from <strong>[your city]</strong> in <strong>[your country]</strong>&#8216; on <em>Lycos</em>. They&#8217;re searching for &#8216;<strong>[your product name]</strong>&#8216; or &#8216;<strong>[your industry name]</strong>&#8216; &#8211; possibly with an area modifyer &#8211; and that&#8217;s about it.</p>
<p>If you&#8217;re not already ranking for &#8216;<strong>[your company name]</strong>&#8216; then you&#8217;ve got problems with your website that go way beyond the remit of your <abbr title="Search Engine Optimisation">SEO</abbr> company.</p>
<h2>New sites are at a disadvantage</h2>
<p>Sorry, but it&#8217;s true. The more popular a site is, the more people will link to it. Google loves to see lots of incoming links to your site. Now, that doesn&#8217;t mean you should immediately start signing up to link directories, banner farms and exchanging links with anyone and everyone &#8211; Google only really cares about &#8216;relevant links&#8217; &#8211; that is to say, links from sites with content that is similar, or relevant to yours. If you run a site about bowling, Google isn&#8217;t going to be too interested in that link from your friend&#8217;s fishing site; but one from your bowling league would be rather handy.</p>
<p>The idea is simple: Google wants to know that your industry/community/peers &#8216;approve&#8217; of your content and find it valuable to them. This is an organic process and usually takes time, effort and patience.</p>
<p>There are of course, exceptions. If for instance, your site offers a genuine cure for cancer, you can bet that as soon as one media outlet picks up on it, the news will spread like wildfire and you&#8217;ll find yourself with links from news sites, blogs &amp; social networking sites all over the globe. The news sites especially are considered &#8216;authorative sources&#8217; and will generally hold a lot of clout with Google.</p>
<p>But for the most part, you&#8217;ll have to wait around for your site to be found and linked to by the masses &#8211; for it to grow organically. It certainly can&#8217;t hurt to contact relevant sites to ask them to link to you, but the bottom line is that the competitor of yours that&#8217;s been online for five years is going to have many more links, reviews, and general &#8216;buzz&#8217; about their site and it will take you a long time to gain that kind of a reputation.</p>
<p>The best thing you can do is the same as any offline business/venture:  offer a better service, cheaper rates, better content and a website that people want to link to. Short of some very clever marketing tricks, there&#8217;s no shortcut for this &#8211; certainly chucking a couple of grand at an <abbr title="Search Engine Optimisation">SEO</abbr> company isn&#8217;t going to cut it.</p>
<h2>There is no place for your <abbr title="Search Engine Optimisation">SEO</abbr> company in today&#8217;s web</h2>
<p>A controversial statement, I&#8217;m sure &#8211; but one I believe is true.</p>
<p>The fact is that good rankings come from good content and well developed sites. What&#8217;s required is a fundamental shift in the way companies view their online offerings. Rather than spending money on competing for better positions for their content, companies should be spending money on developing <em>better content </em>for their sites.</p>
<p>An <abbr title="Search Engine Optimisation">SEO</abbr> company may be able to write copy laced with your key-phrases, but a good copywriter will create insightful, thought provoking content that people will link to and pass on.</p>
<p>An <abbr title="Search Engine Optimisation">SEO</abbr> company may add code to your site that is designed to be picked up by search engines, but a better web developer will create semantic, valid and accessible code that will be easily digested by the search engine spiders, and will be much better for your visitors.</p>
<p>Your company and search engines have one common factor: You both have human beings as customers. You should be creating sites for them, not for the search engines.</p>
<p>Dump your <abbr title="Search Engine Optimisation">SEO</abbr> company today, and make the web a better place.</p>
<h2><abbr title="Search Engine Optimisation">SEO</abbr> is not the same as marketing</h2>
<p><span class="smallText">(Or, &#8216;Gary does a bit of backtracking&#8217;)</span></p>
<p>A lot of people I&#8217;ve spoken to recently, consider these views to be something akin to heresy. To be fair, most of them run <abbr title="Search Engine Optimisation">SEO</abbr> companies&#8230; but still I think it&#8217;s worth pointing out that what I&#8217;m referring to here is specifically search engine optimisation &#8211; the art of getting your site to the top of the organic search listings for specific phrases using good meta data, content with a high keyword density, external links, and in many cases, hidden bits of code and whatnot. It&#8217;s my contention that you shouldn&#8217;t need a separate company to achieve this &#8211; a developer and a copywriter will do the trick nicely. The argument that developers don&#8217;t understand how to optimise a site for search engines is defunct: Hire better developers.</p>
<p>There are of course other avenues of marketing, and specifically search engine marketing, which are best left to professionals. Anyone can run a CPC advertising campaign, but you&#8217;ll find more success with an expert who can create multiple campaigns with individual landing pages, specifically aimed at niche areas of your target market &#8211; and more importantly, analyse the results.</p>
<p><a title="Bill Hicks on Marketing" href="http://www.youtube.com/watch?v=gDW_Hj2K0wo">The evils of marketing</a> as a concept are way beyond the scope of this post, but it&#8217;s important to note that there is a difference and I don&#8217;t want to undermine the job done by people who know far more about it than I.</p>
<div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.simianenterprises.co.uk/blog/the-uncomfortable-truth-about-seo-16.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
