<!DOCTYPE rss PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<rss version="2.0">
  <channel>
    <title>Mark Hesketh</title>
    <link>http://www.markhesketh.co.uk/</link>
    <description>Ramblings of a Web Designer &amp; Developer from Lancashire, England.</description>
    <generator>Symphony</generator>
    <item>
      <title>Portfolio 1.1</title>
      <link>http://www.markhesketh.co.uk/blog/portfolio-one-point-one/</link>
      <description>&lt;p&gt;At the tail end of January this year I &lt;a href="http://www.markhesketh.co.uk/blog/portfolio-goes-live/"&gt;finally launched this website&lt;/a&gt; as my portfolio.&lt;/p&gt;

&lt;p&gt;The original launch was a personal milestone, not only because I&amp;#8217;d had this domain for 4 years prior to putting anything worthwhile online, but mostly because I learnt a lot.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d learnt to &lt;a href="http://www.markhesketh.co.uk/blog/linode/"&gt;configured my own VPS with Linode&lt;/a&gt;, picked up &lt;a href="http://www.markhesketh.co.uk/blog/symphony-cms-nginx-rewrite-rules/"&gt;nginx rather than Apache&lt;/a&gt;, discovered &lt;a href="http://www.markhesketh.co.uk/blog/symphony-cms/"&gt;Symphony CMS&lt;/a&gt; over &lt;a href="http://www.markhesketh.co.uk/blog/replacing-wordpress/"&gt;WordPress&lt;/a&gt; (for this project at least), tried my hand at responsive web design, and experimented with &lt;a href="http://lesscss.org/"&gt;LESS&lt;/a&gt; on a live website.&lt;/p&gt;

&lt;p&gt;Since then, I&amp;#8217;ve found there were little details I just wasn&amp;#8217;t happy with.&lt;/p&gt;

&lt;h2&gt;Version 1.1&lt;/h2&gt;

&lt;p&gt;Bits of the previous design were simply too loose with occasional artifacts of ideas I&amp;#8217;d had and later rejected. The typography in blog posts was difficult to read at times too, which was worrying.&lt;/p&gt;

&lt;p&gt;Additionally the CSS was, quite frankly, terrible. As I mentioned I was getting to grips with reponsive design as well as LESS, and this could all be done better.&lt;/p&gt;

&lt;p&gt;Early evening on Friday I decided to start again.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d designed the January layout using in Fireworks. I had the &amp;#8216;basic look&amp;#8217; of my design already, so this time I did everything in browser.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m now much more familiar with LESS. Built my own grid.less loosely based on &lt;a href="http://semantic.gs/"&gt;semantic.gs&lt;/a&gt;, various LESS mixins for typography and structure, and it was all very painless.&lt;/p&gt;

&lt;p&gt;I was able to redesign the entire website in an evening. The markup was already in place (with a few changes here and there), and I&amp;#8217;ve become quite fond of &lt;a href="http://www.markhesketh.co.uk/blog/symphony-cms/"&gt;Symphony CMS&lt;/a&gt; so no need to rebuild the CMS.&lt;/p&gt;

&lt;p&gt;The final result in my opinion is much better.&lt;/p&gt;

&lt;h2&gt;What next?&lt;/h2&gt;

&lt;p&gt;I intend on writing some posts on what I&amp;#8217;ve learnt over the last 3 months which led to the redesign, such as my better understand of LESS and responsive web design.&lt;/p&gt;

&lt;p&gt;As before, there&amp;#8217;s still stuff to do here. The responsiveness of the website is by no means perfect, in fact, its not finished.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The best time to start was last year. Failing that, today will do.&lt;br /&gt;
  &lt;a href="http://chrisguillebeau.com/"&gt;Chris Guillebeau&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I&amp;#8217;ve become a big believer of &lt;a href="http://ma.tt/2010/11/one-point-oh/"&gt;getting it shipped&lt;/a&gt;. Thats what I did in January, so this redesign was probably inevitable.&lt;/p&gt;

&lt;p&gt;But this has meant at least I&amp;#8217;ve had a portfolio online for 4 months, and it hasn&amp;#8217;t been sat in my Dropbox unpublished as I&amp;#8217;m too busy working on client projects.&lt;/p&gt;

&lt;p&gt;Looking forward to the next re-design in August.&lt;/p&gt;
</description>
      <pubDate>Wed, 18 Apr 2012 14:52:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/portfolio-one-point-one/</guid>
    </item>
    <item>
      <title>WordPress Multisite Domain Mapping on MediaTemple (dv)</title>
      <link>http://www.markhesketh.co.uk/blog/wordpress-multisite-domain-mapping-mediatemple/</link>
      <description>&lt;p&gt;I recently moved a &lt;strong&gt;WordPress Multisite to a MediaTemple (dv)&lt;/strong&gt; server. It was a very simple 2 website network but I was having issues with a &lt;strong&gt;redirect loop while domain mapping&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This will probably also work for other hosting providers using Plesk, with slight variations on the process.&lt;/p&gt;

&lt;h2&gt;The Plan&lt;/h2&gt;

&lt;p&gt;The network contained the following URLS:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;http://www.example.com/&lt;/li&gt;
&lt;li&gt;http://www.example.com/exampletwo/&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I want to change &lt;strong&gt;http://www.example.com/exampletwo/&lt;/strong&gt; to &lt;strong&gt;http://www.exampletwo.com/&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Before we begin&lt;/h3&gt;

&lt;p&gt;Before you get started make sure that you&amp;#8217;ve done the following as required:&lt;/p&gt;

&lt;h4&gt;1. You&amp;#8217;ve set up your WordPress Multisite&lt;/h4&gt;

&lt;p&gt;I&amp;#8217;m going to assume you&amp;#8217;ve successfully &lt;a href="http://codex.wordpress.org/Create_A_Network"&gt;installed WordPress multisite following the WordPress Codex instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;2.You&amp;#8217;ve installed the WordPress MU Domain Mapping Plugin&lt;/h4&gt;

&lt;p&gt;I also assume you&amp;#8217;re using the &lt;a href="http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/"&gt;WordPress MU Domain Mapping&lt;/a&gt; plugin installed following the instructions in the readme.&lt;/p&gt;

&lt;p&gt;Sorted? Great, let&amp;#8217;s get started.&lt;/p&gt;

&lt;h2&gt;The Fix&lt;/h2&gt;

&lt;p&gt;I found a &lt;a href="http://wordpress.org/support/topic/domain-mapping-mediatemple-dv#post-1839510"&gt;solution in this post&lt;/a&gt; and its very simple.&lt;/p&gt;

&lt;p&gt;Basically, &lt;strong&gt;do not set up a subscription for your second domain in Plesk&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you have set up a subscription for http://www.exampletwo.com/ then remove it.&lt;/p&gt;

&lt;p&gt;Then, go to the original domain&amp;#8217;s Control Panel in Plesk and set up a domain alias.&lt;/p&gt;

&lt;p&gt;Your domain mapping set up in WordPress should now work fine!&lt;/p&gt;

&lt;p&gt;If you need some more details, continue reading&amp;#8230;&lt;/p&gt;

&lt;h2&gt;The Fix: Detailed Version&lt;/h2&gt;

&lt;p&gt;The problem I found was that many tutorials were aimed at users rather than adminstrators, or hosted wordpress.com blogs rather than self-hosted wordpress.org.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These instructions relate to our new domain, http://www.exampletwo.com/.&lt;/p&gt;

&lt;h4&gt;1. Point your Nameservers to MediaTemple&lt;/h4&gt;

&lt;p&gt;If you registered your domain with MediaTemple skip ahead to step 3.&lt;/p&gt;

&lt;p&gt;If you used another service such as 123-reg, Misk, GoDaddy etc you&amp;#8217;ll need to log into your registrar&amp;#8217;s control panel and change the &lt;strong&gt;Nameservers&lt;/strong&gt; to the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ns1.mediatemple.net&lt;/li&gt;
&lt;li&gt;ns2.mediatemple.net&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This will probably be under &lt;strong&gt;DNS Settings&lt;/strong&gt; or &lt;strong&gt;Domain Settings&lt;/strong&gt; or similar. Consult their support if you can&amp;#8217;t find it.&lt;/p&gt;

&lt;h4&gt;2. Add your domain to MediaTemple&lt;/h4&gt;

&lt;p&gt;Log into your MediaTemple control panel.&lt;/p&gt;

&lt;p&gt;Click &amp;#8216;Add New Domain&amp;#8217;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-add-domain-1334665893.jpg" alt="Media Temple Add Domain" /&gt;&lt;/p&gt;

&lt;p&gt;Click the &amp;#8216;Add Domain&amp;#8217; button&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-add-domain2-1334665919.jpg" alt="Media Temple Add Domain" /&gt;&lt;/p&gt;

&lt;p&gt;Enter your domain name, click &amp;#8216;I already own this domain&amp;#8217;, and then click the &amp;#8216;Next Step&amp;#8217; button.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-add-dns-1334665939.jpg" alt="MediaTemple add DNS Rule" /&gt;&lt;/p&gt;

&lt;p&gt;Domain names take varying times to &amp;#8216;Propagate&amp;#8217;. This means it could be anything from 5 minutes to 72 hours before your domain will be associated with your MediaTemple account.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Usually&lt;/em&gt; this is done within a few hours. Use a tool such as &lt;a href="http://dnscheck.pingdom.com/"&gt;Pingdom&amp;#8217;s brilliant DNS Checker&lt;/a&gt; to see when your domain&amp;#8217;s DNS information has been updated.&lt;/p&gt;

&lt;h4&gt;3. Set up a domain alias&lt;/h4&gt;

&lt;p&gt;Normally at this point you would create a &amp;#8216;subscription&amp;#8217; in Plesk for your websites hosting, e-mail etc. But as the website is actually a subdirectory of http://www.example.com we don&amp;#8217;t do this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you have already set up a subscription for http://www.exampletwo.com/, delete it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Plesk,  go to &lt;strong&gt;Subscriptions&lt;/strong&gt; and open the Control Panel of your original WordPress website (http://www.example.com/).&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-subscription-1334665960.jpg" alt="Plesk subscription link" /&gt;&lt;/p&gt;

&lt;p&gt;Click the Websites &amp;amp; Domains tab.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-website-domains-1334665982.jpg" alt="Plesk Websites &amp;amp; Domains Tab" /&gt;&lt;/p&gt;

&lt;p&gt;Scroll down to the bottom of the page and click Add New Alias.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-add-alias-1334666007.jpg" alt="Plesk Add Domain Alias" /&gt;&lt;/p&gt;

&lt;p&gt;Add the domain of your second website, without the http://. Click Ok.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-add-domain-alias-1334666023.jpg" alt="Plesk Add Domain Alias" /&gt;&lt;/p&gt;

&lt;h4&gt;4. Set up domain mapping in WordPress&lt;/h4&gt;

&lt;p&gt;Go to your WordPress website&amp;#8217;s network admin, and under &lt;strong&gt;Settings &gt; Domains&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enter your domain name, without the http:// and in all lower case.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-multisite-mediatemple-domain-mapping-1334666048.jpg" alt="WordPress Multisite Domain Mapping" /&gt;&lt;/p&gt;

&lt;p&gt;Your Site ID is the row your website appears in Sites &gt; All Sites.&lt;/p&gt;

&lt;p&gt;Click save and you should see your Domain settings in a table below. You can check you&amp;#8217;ve associated the the domain with the correct &amp;#8216;site&amp;#8217; by looking at Sites &gt; All sites and reviewing the &amp;#8216;Mapping&amp;#8217; column.&lt;/p&gt;

&lt;h4&gt;5. Thats it!&lt;/h4&gt;

&lt;p&gt;You should now be set up! I was tearing my hair out for a couple of hours over this. &lt;strong&gt;The key is to not set up a subscription in Plesk&lt;/strong&gt;, but instead &lt;strong&gt;use a Domain alias on the original domain&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hopefully this will save you a couple of hours of muttering &amp;#8216;but it &lt;em&gt;should&lt;/em&gt; be working!&lt;/p&gt;
</description>
      <pubDate>Tue, 17 Apr 2012 13:28:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/wordpress-multisite-domain-mapping-mediatemple/</guid>
    </item>
    <item>
      <title>Proudly Powered</title>
      <link>http://www.markhesketh.co.uk/blog/proudly-powered/</link>
      <description>&lt;p&gt;I recently wrote about how I was &lt;a href="http://www.markhesketh.co.uk/blog/replacing-wordpress/"&gt;replacing WordPress&lt;/a&gt; when it came to my personal projects, depending on the project.&lt;/p&gt;

&lt;p&gt;I also last month made the switch from WordPress to &lt;a href="http://www.markhesketh.co.uk/blog/symphony-cms/"&gt;Symphony CMS&lt;/a&gt;, while &lt;a href="http://www.markhesketh.co.uk/blog/portfolio-goes-live/"&gt;rebuilding my portfolio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With that in mind I have tonight launched my latest &amp;#8216;project&amp;#8217;, &lt;a href="http://proudlypowered.com/"&gt;Proudly Powered&lt;/a&gt;, another WordPress resource for writers and developers.&lt;/p&gt;

&lt;h2&gt;Just another WordPress site&lt;/h2&gt;

&lt;p&gt;The website, as you&amp;#8217;d expect, will focus on regular blog posts related to WordPress such as news, tutorials and snippets.&lt;/p&gt;

&lt;p&gt;While I mentioned that I would be dropping WordPress as my &amp;#8216;go to CMS&amp;#8217; I haven&amp;#8217;t completely turned my back on it. It is of course a very nice tool.&lt;/p&gt;

&lt;h3&gt;Staying up to date&lt;/h3&gt;

&lt;p&gt;By regularly maintaining a WordPress site, which i no longer do as my portfolio is now using Symphony CMS, I&amp;#8217;m able to stay in the loop regarding WordPress developments.&lt;/p&gt;

&lt;p&gt;This is of course very hand for my client work, in which WordPress driven websites are a common request, and so it&amp;#8217;s good to be able to rely on first hand experience.&lt;/p&gt;

&lt;h3&gt;Shamless Plugging&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.twitter.com/#!/boagworld"&gt;Paul Boag&lt;/a&gt; makes no excuses about taking full advantage of his &lt;a href="http://boagworld.com/"&gt;popular web design blog&lt;/a&gt; to drive potential clients to &lt;a href="http://www.headscape.co.uk/"&gt;his business&lt;/a&gt;, this is no different.&lt;/p&gt;

&lt;p&gt;I hope that writing about WordPress will not only improve my knowledge and my content writing skills, but also potential generate interest in my &lt;a href="http://www.markhesketh.co.uk/"&gt;web design work&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m not saying I will spamming the hell out of blog posts by any means, but getting some recognition is no ad thing.&lt;/p&gt;

&lt;h3&gt;Running websites, not building them&lt;/h3&gt;

&lt;p&gt;The simple fact is that it&amp;#8217;s nice to actually be running a website of my own rather than building someone else&amp;#8217;s. Running fan sites in my teens is what actually got me into Web Design.&lt;/p&gt;

&lt;p&gt;Using the many &amp;#8216;best practice&amp;#8217; theories, from schemas to the latest and greatest CSS3 techniques into on a production website I own is a real pleasure.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m also my own client, which is nice too.&lt;/p&gt;

&lt;p&gt;I hope to make a real go of &lt;a href="http://proudlypowered.com/"&gt;Proudly Powered&lt;/a&gt;, alongside my &lt;a href="http://www.prestadb.com"&gt;Prestashop tutorials and news website&lt;/a&gt;, which I enjoy running.&lt;/p&gt;

&lt;h2&gt;Lots to do&lt;/h2&gt;

&lt;p&gt;For now, the website is using the default Twenty Eleven theme&amp;#8230; lazy I know.&lt;/p&gt;

&lt;p&gt;But as far as I&amp;#8217;m concerned it&amp;#8217;s a fully functioning, responsive WordPress theme that is not an eyesore (some may disagree, of course).&lt;/p&gt;

&lt;p&gt;By not fixating on the design or &amp;#8216;brand&amp;#8217; I intend to jump write in  with the content, and get things rolling.&lt;/p&gt;

&lt;p&gt;I can work on a design over time as the website grows into something.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s the plan anyway.&lt;/p&gt;
</description>
      <pubDate>Fri, 24 Feb 2012 23:41:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/proudly-powered/</guid>
    </item>
    <item>
      <title>Symphony CMS nginx rewrite rules</title>
      <link>http://www.markhesketh.co.uk/blog/symphony-cms-nginx-rewrite-rules/</link>
      <description>&lt;p&gt;If you&amp;#8217;re looking to use Symphony CMS on your nginx powered web server then the default Apache &lt;code&gt;.htaccess&lt;/code&gt; rewrites will need to translated to nginx&amp;#8217;s syntax.&lt;/p&gt;

&lt;p&gt;I recently &lt;a href="http://www.markhesketh.co.uk/blog/symphony-cms/"&gt;wrote about Symphony CMS&lt;/a&gt; and have since had a few people asking about the specific nginx rewrite rules I use, so I thought I&amp;#8217;d share them here.&lt;/p&gt;

&lt;p&gt;My rules are taken from &lt;a href="https://gist.github.com/259580"&gt;Nick Dunn&amp;#8217;s Gist postin&lt;/a&gt;g I found on the &lt;a href="http://symphony-cms.com/discuss/thread/35629/"&gt;Symphony forums&lt;/a&gt;, so all credit goes to Nick and the guys over there.&lt;/p&gt;

&lt;p&gt;These rules need to be included in your nginx config file often found in &lt;code&gt;/etc/nginx/sites-available/example.com&lt;/code&gt;, and you&amp;#8217;ll need to adjust &lt;strong&gt;&amp;#8216;example.com&amp;#8217; to your URL and the server root settings&lt;/strong&gt; as appropriate.&lt;/p&gt;

&lt;h2&gt;Symphony CMS nginx rewrite rules&lt;/h2&gt;

&lt;p&gt;These are the rules you&amp;#8217;ll need to for everything to work:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;location / {
    index index.php;

    # serve static files directly
    if (-f $request_filename) {
      access_log        off;
      expires           30d;
      break;
    }

    ### BACKEND
    if ($request_filename ~ /symphony/) {
      rewrite ^/symphony/?$ /index.php?mode=administration&amp;amp;$query_string last;
      rewrite ^/symphony(/(.*/?))?$ /index.php?symphony-page=$1&amp;amp;mode=administration&amp;amp;$query_string last;
    }

    ### IMAGE RULES
    rewrite ^/image/(.+.(jpg|gif|jpeg|png|bmp|JPG|GIF|JPEG|PNG|BMP))$ /extensions/jit_image_manipulation/lib/image.php?param=$1 last;

    ## Add trailing slash
    rewrite ^(.*[^/])$ $1/ permanent;

    ### MAIN REWRITE - This will ignore directories
    if (!-d $request_filename) {
        rewrite ^/(.*)$ /index.php?symphony-page=$1 last;
    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Complete nginx config file&lt;/h2&gt;

&lt;p&gt;If you need a full working example of an nginx server config &lt;strong&gt;including PHP, Symphony CMS&amp;#8217;s rewrites and a simple http://example.com to http://www.example.com rewrite&lt;/strong&gt;, you can use the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# rewrite from example.com to www.example.com
server { 
    listen 80;
    server_name example.com;
    rewrite ^(.+?)/?$ http://www.example.com$1 permanent;
}

server {
    listen 80;
    server_name www.example.com;
    access_log /var/www/example.com/logs/access.log;
    error_log /var/www/example.com/logs/error.log;
    root /var/www/example.com/public_html;

    location / {
        index index.php;

        # serve static files directly
        if (-f $request_filename) {
          access_log        off;
          expires           30d;
          break;
        }

        ### BACKEND
        if ($request_filename ~ /symphony/) {
          rewrite ^/symphony/?$ /index.php?mode=administration&amp;amp;$query_string last;
          rewrite ^/symphony(/(.*/?))?$ /index.php?symphony-page=$1&amp;amp;mode=administration&amp;amp;$query_string last;
        }

        ### IMAGE RULES
        rewrite ^/image/(.+.(jpg|gif|jpeg|png|bmp|JPG|GIF|JPEG|PNG|BMP))$ /extensions/jit_image_manipulation/lib/image.php?param=$1 last;

        ## Add trailing slash
        rewrite ^(.*[^/])$ $1/ permanent;

        ### MAIN REWRITE - This will ignore directories
        if (!-d $request_filename) {
            rewrite ^/(.*)$ /index.php?symphony-page=$1 last;
        }

    }   

    location ~ .php {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/example.com/public_html$fastcgi_script_name;
    }
}
&lt;/code&gt;&lt;/pre&gt;
</description>
      <pubDate>Sun, 12 Feb 2012 22:33:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/symphony-cms-nginx-rewrite-rules/</guid>
    </item>
    <item>
      <title>Symphony CMS</title>
      <link>http://www.markhesketh.co.uk/blog/symphony-cms/</link>
      <description>&lt;p&gt;Following up on the new tools and techniques I&amp;#8217;ve picked up recently while &lt;a href="http://www.markhesketh.co.uk/blog/portfolio-goes-live/"&gt;putting my portfolio and blog live&lt;/a&gt; such as &lt;a href="http://www.markhesketh.co.uk/blog/linode/"&gt;moving my hosting to Linode VPS&lt;/a&gt; and &lt;a href="http://www.markhesketh.co.uk/blog/replacing-wordpress/"&gt;exploring alternative CMS systems&lt;/a&gt;, I&amp;#8217;d like to introduce &lt;a href="http://www.symphony-cms.com/"&gt;Symphony CMS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-logo-1328805110.jpg" alt="Symphony CMS Logo" /&gt;&lt;/p&gt;

&lt;p&gt;Symphony CMS, as the name suggests, is an XLST powered open-source content management system that goes beyond allowing you to create and manage websites, but complete web applications.&lt;/p&gt;

&lt;p&gt;You could create a simple blog such as this to a bustling community website. You could even use it to power the data of an iOS app, or Flash website &lt;em&gt;(if you&amp;#8217;re that way inclined)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;As you might have guessed, this website is built upon Symphony, however this is a relatively basic implementation of what it is capable of.&lt;/p&gt;

&lt;p&gt;You can see more &lt;a href="http://symphony-cms.com/explore/showcase/"&gt;examples on the showcase&lt;/a&gt;, but I&amp;#8217;d hastily remind you that you&amp;#8217;re only limited by your own skills (design and coding) when it comes to developing with Symphony.&lt;/p&gt;

&lt;h2&gt;What is Symphony CMS?&lt;/h2&gt;

&lt;p&gt;Symphony is a CMS much like &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; and &lt;a href="http://expressionengine.com/"&gt;ExpressionEngine&lt;/a&gt;, but it wouldn&amp;#8217;t be foolish to see similarities to frameworks such as &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; and &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s not many projects I could think of that Symphony wouldn&amp;#8217;t be suitable for.&lt;/p&gt;

&lt;h3&gt;Symphony is open-source&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-download-1328805516.jpg" alt="Symphony CMS Download" /&gt;&lt;/p&gt;

&lt;p&gt;Symphony is open-source. It is &lt;a href="http://symphony-cms.com/download/"&gt;freely available for you to download&lt;/a&gt;, and anything you build is entirely yours to distribute, sell or hide away as you see fit.&lt;/p&gt;

&lt;p&gt;You could create a &amp;#8216;white label&amp;#8217; CMS for your agency built upon Symphony, tailored to your exact needs ready to use on client websites.&lt;/p&gt;

&lt;h3&gt;Lightweight&lt;/h3&gt;

&lt;p&gt;Being open-source also means that there is a large community drive in improving the software from core fixes and updates, to extending the software through &lt;a href="http://symphonyextensions.com/"&gt;Symphony extensions&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If it’s not essential, it’s an extension. This keeps the system small, lean, and precise. Swiss Army knives are nice, but a surgeon wouldn’t operate with one. With Symphony, you craft exactly the tool you need.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#8216;Out of the box&amp;#8217; Symphony comes with just some basic features. The Symphony team take the view of &amp;#8216;if it&amp;#8217;s not essential, it&amp;#8217;s an extension&amp;#8217;. This is a real strength in my opinion, and is something thats been &lt;a href="http://www.markhesketh.co.uk/blog/replacing-wordpress/"&gt;driving me away from WordPress&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This means that if you need a WYSIWYG Editor, its an extension. If you prefer to use &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt;, thats an extension too. Neither? Don&amp;#8217;t install any, keeping your website as agile as possible and not burdened by features you don&amp;#8217;t need.&lt;/p&gt;

&lt;h3&gt;XSLT and XML driven&lt;/h3&gt;

&lt;p&gt;Symphony driven websites are built upon XLST and XML, an open-standard templating language &lt;a href="http://www.w3.org/TR/xslt"&gt;developed by the W3C&lt;/a&gt; that includes everything you need such as conditionals, parameters and functions.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;XSLT (Extensible Stylesheet Language Transformations) is a declarative, XML-based language used for the transformation of XML documents.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is great news as you needn&amp;#8217;t learn &lt;strong&gt;&lt;em&gt;even more&lt;/em&gt;&lt;/strong&gt; custom template tags from a new CMS, instead you learn a &lt;strong&gt;transferrable skill&lt;/strong&gt; in XSLT.&lt;/p&gt;

&lt;p&gt;Using XSLT you can output your XML content to any format you wish, be it standard (x)HTML, HTML5, RSS/Atom feeds to PDF documents and SVG spreadsheets. Symphony is capable of driving the content behind near limitless types of formats and applications.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s a wealth of information regarding XSLT, but I&amp;#8217;d recommend &lt;a href="http://symphony-cms.com/learn/tutorials/beginners/"&gt;Symphony&amp;#8217;s Tutorials&lt;/a&gt; or &lt;a href="http://designprojectx.com/"&gt;Stephen Bau&amp;#8217;s DesignProjectX&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Symphony CMS Features&lt;/h2&gt;

&lt;h3&gt;No assumptions&lt;/h3&gt;

&lt;p&gt;Symphony is built on &amp;#8216;&lt;a href="http://symphony-cms.com/explore/open-architecture/"&gt;Open Architecture&lt;/a&gt;&amp;#8217; and doesn&amp;#8217;t dictate what kind of content it&amp;#8217;ll manage.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Symphony doesn’t tell you what kind of content to manage, or how. It doesn’t lock you into a rigid structure or dictate some silly URL schema. It just gives you the tools and stays out of your way. Trust us, you’ll like it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Symphony is not &amp;#8216;page based&amp;#8217; like a lot of CMS&amp;#8217;s you may be used to. It makes no assumptions about your content. It doesn&amp;#8217;t insist on there being a title, nor does it expect to it to have it&amp;#8217;s own &amp;#8216;page&amp;#8217; or even appear on the &amp;#8216;front&amp;#8217; of your website at all.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-projects-1328805731.jpg" alt="Symphony CMS Projects Admin" /&gt;&lt;/p&gt;

&lt;p&gt;You&amp;#8217;re free to model your content, building one input at a time, allowing you incredible control over your project. As Symphony says &amp;#8216;create what you need, and only what you need.&lt;/p&gt;

&lt;h3&gt;Custom Fields&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;There are no custom fields when every field is custom.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Symphony provides some &lt;a href="http://symphony-cms.com/learn/concepts/view/field-types/"&gt;basic fields&lt;/a&gt; for you to work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Author&lt;/li&gt;
&lt;li&gt;Checkbox&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;File upload&lt;/li&gt;
&lt;li&gt;Select Box&lt;/li&gt;
&lt;li&gt;Select Box Link&lt;/li&gt;
&lt;li&gt;Tag List&lt;/li&gt;
&lt;li&gt;Textarea&lt;/li&gt;
&lt;li&gt;Text Input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don&amp;#8217;t see what you need? &lt;a href="http://symphony-cms.com/download/extensions/field-types/"&gt;There&amp;#8217;s probably an extension for that&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With planning and experimentation, you can build bespoke content models with appropriate selection of field types to &lt;a href="http://symphony-cms.com/learn/concepts/view/sections/"&gt;create a &amp;#8216;sections&amp;#8217;&lt;/a&gt; such as &amp;#8216;Blog Post&amp;#8217;, &amp;#8216;Recipe&amp;#8217;, &amp;#8216;Employee&amp;#8217;, &amp;#8216;Product&amp;#8217; etc.&lt;/p&gt;

&lt;h3&gt;Tailored Admin&lt;/h3&gt;

&lt;p&gt;Just as you tailor your content model through &lt;a href="http://symphony-cms.com/learn/concepts/view/sections/"&gt;Sections&lt;/a&gt; and &lt;a href="http://symphony-cms.com/learn/concepts/view/field-types/"&gt;Field Types&lt;/a&gt;, you&amp;#8217;re also able to tailor your admin interface, grouping sections such as &amp;#8216;Post&amp;#8217; and &amp;#8216;Categories&amp;#8217; into a &amp;#8216;&lt;a href="http://symphony-cms.com/learn/concepts/view/navigation-groups/"&gt;Navigation Group&lt;/a&gt;&amp;#8217; of &amp;#8216;Blog&amp;#8217;.&lt;/p&gt;

&lt;p&gt;In addition you can pick and choose what sections are actually visible to your authors. For example you may have a &lt;a href="http://symphony-cms.com/learn/concepts/view/sections/"&gt;Section&lt;/a&gt; of &amp;#8216;Threads&amp;#8217; and &amp;#8216;Posts&amp;#8217; for a forum, but wish to hide this from your authors as all forum moderation is done in the &amp;#8216;front-end&amp;#8217;.&lt;/p&gt;

&lt;p&gt;Symphony&amp;#8217;s settings, &lt;a href="http://symphony-cms.com/learn/concepts/view/sections/"&gt;Sections&lt;/a&gt;, &lt;a href="http://symphony-cms.com/learn/concepts/data-sources/"&gt;Data Sources&lt;/a&gt;, &lt;a href="http://symphony-cms.com/learn/concepts/view/pages/"&gt;Pages&lt;/a&gt;, &lt;a href="http://symphony-cms.com/learn/concepts/view/utilities/"&gt;Utilities&lt;/a&gt; and &lt;a href="http://symphony-cms.com/learn/concepts/view/events/"&gt;Events&lt;/a&gt; are all managed through the &amp;#8216;&lt;a href="http://symphony-cms.com/learn/concepts/view/blueprints/"&gt;Blueprint&lt;/a&gt;&amp;#8217; menu in the Symphony Admin. This menu is only shown to authors with the permission of &amp;#8216;Administrator&amp;#8217; so you can have peace of mind that an adventurous client won&amp;#8217;t dismantle their website&amp;#8217;s vitals.&lt;/p&gt;

&lt;h3&gt;Extensions&lt;/h3&gt;

&lt;p&gt;Extensions work a little like WordPress plugins in that they &amp;#8216;extend&amp;#8217; the core functionality. Extensions can take many forms such as additional field types, enhancements to the admin panel, XML sitemap integration and more.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-extensions-1328805922.jpg" alt="Symphony CMS Extensions" /&gt;&lt;/p&gt;

&lt;p&gt;Unlike WordPress plugins however they often solve a problem rather than add a feature. For instance, they would enable a way to embed &lt;code&gt;&amp;lt;object&amp;gt;&lt;/code&gt;s into your content rather than target YouTube videos specifically.&lt;/p&gt;

&lt;p&gt;This allows you retain fine control over your project&amp;#8217;s development rather than relying on an extension developer. It&amp;#8217;s left to you exactly how a new feature is implemented.&lt;/p&gt;

&lt;h3&gt;Aggregate XML&lt;/h3&gt;

&lt;p&gt;As Symphony uses XSLT, and XSLT uses XML, you&amp;#8217;re able to aggregate feeds and content from other sources with ease.&lt;/p&gt;

&lt;p&gt;A classic example of this would be displaying your latest Tweets from &lt;a href="https://twitter.com/statuses/user_timeline.xml?screen_name=markyhesketh&amp;amp;count=10"&gt;an XML response&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You could tie this external XML to a &lt;a href="http://symphony-cms.com/learn/concepts/view/data-sources/"&gt;data source&lt;/a&gt; in Symphony, and output it in just the same way you would any of your content. No plugins or mess required.&lt;/p&gt;

&lt;h3&gt;Debugging console&lt;/h3&gt;

&lt;p&gt;Symphony comes with a useful debugging utility available by adding &lt;code&gt;?debug&lt;/code&gt; to the end of your &amp;#8216;front-end&amp;#8217; URL.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-debug-1328806075.jpg" alt="Symphony CMS Debugging console" /&gt;&lt;/p&gt;

&lt;p&gt;Using this screen you&amp;#8217;re able to see exactly what XML is being output to your pages based on your custom set of rules (date, URL parameters etc).&lt;/p&gt;

&lt;p&gt;You can also see other useful information such as performance, allowing you to fine-tune your datasources and make sure they&amp;#8217;re not firing needlessly and wasting resources.&lt;/p&gt;

&lt;h3&gt;Markdown&lt;/h3&gt;

&lt;p&gt;Not necessarily a feature of Symphony, but by default your textarea fields can format content using &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt;. I&amp;#8217;ve found this feature useful combined with &lt;a href="http://mouapp.com/"&gt;Mou&lt;/a&gt;  &lt;em&gt;(OSX)&lt;/em&gt;, &lt;a href="http://markdownpad.com/"&gt;MarkdownPad&lt;/a&gt; &lt;em&gt;(Win)&lt;/em&gt; and &lt;a href="http://getwritingkit.com/"&gt;Writing Kit&lt;/a&gt; &lt;em&gt;(iPad)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m able to write freely without worrying about misplaced and invalid HTML markup such as rogue spans and open tags.&lt;/p&gt;

&lt;h2&gt;Using Symphony CMS&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://symphony-cms.com/learn/tutorials/beginners/"&gt;Symphony CMS Tutorials&lt;/a&gt; are a great starting point to get up and running. Once completed, you can use the &lt;a href="http://symphony-cms.com/learn/concepts/"&gt;Concepts&lt;/a&gt; and &lt;a href="http://symphony-cms.com/learn/api/2.2.5/"&gt;API&lt;/a&gt; sections as a regular reference point while developing.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://designprojectx.com/tutorials/"&gt;Stephen Bau&amp;#8217;s Symphony-related XSLT tutorials&lt;/a&gt; have also been incredibly useful.&lt;/p&gt;

&lt;h3&gt;Symphony&amp;#8217;s Community&lt;/h3&gt;

&lt;p&gt;As you&amp;#8217;re working with open software there are many people around if you get stuck. &lt;a href="http://symphony-cms.com/discuss/"&gt;The community forums&lt;/a&gt; are &lt;em&gt;relatively&lt;/em&gt; small compared to say WordPress, but the members are very active, helpful and skilled.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/symphony-cms-forums-1328806464.jpg" alt="Symphony CMS Community Forums" /&gt;&lt;/p&gt;

&lt;h3&gt;GitHub Development&lt;/h3&gt;

&lt;p&gt;If you&amp;#8217;re a GitHub user you&amp;#8217;ll be happy to know that Symphony is actively developed on a &lt;a href="https://github.com/symphonycms/symphony-2"&gt;GitHub repository&lt;/a&gt;, while community extensions being encouraged to be developed as &lt;a href="http://speirs.org/blog/2009/5/11/understanding-git-submodules.html"&gt;submodules&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This means you can very quickly &amp;#8216;fork&amp;#8217; your own copy of the software and begin developing your latest project.&lt;/p&gt;

&lt;p&gt;You can also then merge your local repositary, automatically staying up to date with all developments and ensuring you&amp;#8217;re running the latest version.&lt;/p&gt;

&lt;p&gt;Not into GitHub? You can &lt;a href="http://symphony-cms.com/download/"&gt;download the zip package&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;A marathon, not a sprint&lt;/h2&gt;

&lt;p&gt;As I mentioned, this website is running Symphony. It&amp;#8217;s a simple blog / portfolio with&lt;a href="http://www.markhesketh.co.uk/about/"&gt; an about me page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I could have created this website quite comfortably with WordPress, and probably &lt;strong&gt;much quicker&lt;/strong&gt; due to my familiarity with WordPress and the nature of this website&amp;#8217;s content.&lt;/p&gt;

&lt;p&gt;However, I&amp;#8217;m glad I didn&amp;#8217;t. Besides the fact that this has been a great learning exercise, if I&amp;#8217;d decided to resist change and use WordPress I would have had to make a number of compromises.&lt;/p&gt;

&lt;p&gt;The markup for this website site is all my own doing, good or bad, its mine. I&amp;#8217;ve been able to tailor it exactly to my needs. I haven&amp;#8217;t had to remove unneeded features as they were never there to begin with, everything has been built from the ground up with a purpose.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been able to build myself a platform, something truly customised, with the ability to expand on it in the future. If I decide I want a custom &amp;#8216;client login&amp;#8217; section to my portfolio, handled by the same CMS as my blog, I can do that quite easily.&lt;/p&gt;

&lt;h2&gt;Try Symphony CMS&lt;/h2&gt;

&lt;p&gt;You should give it a go. &lt;a href="http://symphony-cms.com/"&gt;Visit the official Symphony CMS website&lt;/a&gt; for much more &lt;em&gt;(better written)&lt;/em&gt; information.&lt;/p&gt;

&lt;p&gt;If you try it, &lt;a href="http://www.twitter.com/markyhesketh/"&gt;let me know how it goes&lt;/a&gt;. If you get stuck, take a look at the &lt;a href="http://symphony-cms.com/discuss/"&gt;Symphony CMS forums&lt;/a&gt; as I&amp;#8217;ve yet to have a problem that they haven&amp;#8217;t covered and solved.&lt;/p&gt;
</description>
      <pubDate>Thu, 09 Feb 2012 16:21:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/symphony-cms/</guid>
    </item>
    <item>
      <title>Replacing WordPress</title>
      <link>http://www.markhesketh.co.uk/blog/replacing-wordpress/</link>
      <description>&lt;p&gt;Following up on the new tools and techniques I&amp;#8217;ve picked up recently while &lt;a href="http://www.markhesketh.co.uk/blog/portfolio-goes-live/"&gt;putting my portfolio and blog live&lt;/a&gt; such as &lt;a href="http://www.markhesketh.co.uk/blog/linode/"&gt;moving my hosting to Linode VPS&lt;/a&gt;, I&amp;#8217;m just writing to outline my decision to stop using WordPress as my &amp;#8216;go to&amp;#8217; CMS.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-logo-1328706635.jpg" alt="WordPress Logo" /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been using WordPress almost exclusively for client brochure websites for nearly 3 years, and will continue to do so as its a great piece of software, but I&amp;#8217;m now learning it&amp;#8217;s not always the right tool for the job.&lt;/p&gt;

&lt;p&gt;This website was recently built using &lt;a href="http://www.symphony-cms.com"&gt;Symphony CMS&lt;/a&gt;. I could have quite easily used WordPress, in fact it probably would had been much faster, but I wouldn&amp;#8217;t have had as much freedom to really tailor everything how I wanted it, and I really do mean &lt;strong&gt;everything&lt;/strong&gt;. It&amp;#8217;s also been a nice learning activity, but that&amp;#8217;s all for another post.&lt;/p&gt;

&lt;h2&gt;WordPress Pros&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.wordpress.org/"&gt;WordPress&lt;/a&gt; is a fantastic CMS there&amp;#8217;s no doubt about it, and if figures are to be believed &lt;a href="http://techcrunch.com/2011/08/19/wordpress-now-powers-22-percent-of-new-active-websites-in-the-us/"&gt;it now powers 22% of websites in the US&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Quick setup&lt;/h3&gt;

&lt;p&gt;Getting a WordPress website up and running, with a custom design and a few additional features is very fast. This is partly down to my own familiarity with the software, but mostly due to WordPress being very feature rich &amp;#8216;out the box&amp;#8217;.&lt;/p&gt;

&lt;p&gt;For example, I recently set up a client&amp;#8217;s blog, based on their current websites design in about an hour using &lt;a href="http://clean-start-theme.com/"&gt;a freely available WordPress starter theme&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Pretty admin&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-admin-1328706992.jpg" alt="WordPress Admin Ui" /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve developed many client websites with WordPress, and never really had a problem with the client not understanding the admin panel. Sure, there is an initial learning curve, but this is often very small.&lt;/p&gt;

&lt;p&gt;I also do a lot of e-commerce work using &lt;a href="http://www.prestashop.com/"&gt;Prestashop&lt;/a&gt;, and find client&amp;#8217;s have more problems with the Prestashop admin panel, than they do with WordPress&amp;#8217;.&lt;/p&gt;

&lt;h3&gt;Large plugin / theme repository&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-plugins-directory-1328707250.jpg" alt="WordPress Plugins" /&gt;&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re not too bothered about your website design being unique premium theme sellers such as &lt;a href="http://premiumpixels.com/"&gt;Orman Clark&lt;/a&gt; do great work selling great looking themes on websites such as &lt;a href="http://themeforest.net/"&gt;Theme Forest&lt;/a&gt;. You really could have a great looking website online in a morning.&lt;/p&gt;

&lt;p&gt;There is also a &lt;a href="http://www.google.co.uk/search?sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=wordpress+plugins"&gt;mass of plugins available&lt;/a&gt; to enhance your website from great authors such as &lt;a href="http://yoast.com/"&gt;Yoast&lt;/a&gt; and &lt;a href="http://www.elliotcondon.com/"&gt;Elliot Condon&lt;/a&gt;, who create two of my favourite plugins, &lt;a href="http://yoast.com/wordpress/seo/"&gt;WordPress SEO&lt;/a&gt; and &lt;a href="http://www.advancedcustomfields.com/"&gt;Advanced Custom Fields&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;WordPress cons&lt;/h2&gt;

&lt;p&gt;WordPress &lt;strong&gt;makes a lot of assumptions&lt;/strong&gt; about what you would like to do. This is prevalent throughout creating a WordPress website.&lt;/p&gt;

&lt;p&gt;While this is one of the huge reasons WordPress websites can be deployed so quickly, it can soon become a hinderance if you need something even &lt;em&gt;slightly&lt;/em&gt; more bespoke. I&amp;#8217;m not talking a Ruby on Rales or PHP framework app here.&lt;/p&gt;

&lt;h3&gt;Content&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/wordpress-add-new-page-1328707359.jpg" alt="WordPress Add New Page" /&gt;&lt;/p&gt;

&lt;p&gt;WordPress is a &amp;#8216;page-based&amp;#8217; CMS, and if the content goes beyond a simple Title+Content structure things start to get a little messy.&lt;/p&gt;

&lt;p&gt;Yes, with &lt;a href="http://codex.wordpress.org/Custom_Fields"&gt;custom fields&lt;/a&gt; you can do some pretty neat things, eventually, but ultimately you&amp;#8217;re bending WordPress to near breaking point and it&amp;#8217;s never felt intuitive to me.&lt;/p&gt;

&lt;p&gt;I recently built a car importer&amp;#8217;s website in WordPress, which including their car listings categorised by manufacturer, pricing, image galleries etc. It was doable, but wasn&amp;#8217;t a whole lot of fun working with WordPress custom fields and could have been much better.&lt;/p&gt;

&lt;h3&gt;Admin&lt;/h3&gt;

&lt;p&gt;The admin is pretty and intuitive, thats in the &amp;#8216;pro&amp;#8217; column, but a lot of it is often needless.&lt;/p&gt;

&lt;p&gt;If I have a brochure website that doesn&amp;#8217;t include a blog, the &amp;#8216;Posts&amp;#8217;, &amp;#8216;Comments&amp;#8217; and &amp;#8216;Links&amp;#8217; menus then all become a little redundant.&lt;/p&gt;

&lt;p&gt;I can hide them in the &lt;code&gt;functions.php&lt;/code&gt; or using a plugin, but its this sort of thing that makes me starting thinking &amp;#8216;is this the right tool for the job?&amp;#8217;.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s more examples of this, such as editors being able to change themes, and it all means I spend a decent chunk of development time bending the WordPress defaults rather than improving or optimising the project.&lt;/p&gt;

&lt;h3&gt;Markup&lt;/h3&gt;

&lt;p&gt;WordPress adds a whole bunch of functions into your &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, often the first thing I do is remove them all in the &lt;code&gt;functions.php&lt;/code&gt; using one of the many reusable WordPress function snippets I have saved.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wordpress.com/windows-live-writer/"&gt;Windows Live Writer&lt;/a&gt; shouldn&amp;#8217;t be made available by default in my opinion, and should instead be an optional plugin. Its this sort of thinking Symphony does very well.&lt;/p&gt;

&lt;h2&gt;WordPress projects in the future&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/prestadb-header-tabs-1328707652.jpg" alt="PrestaDB Header Design" /&gt;&lt;/p&gt;

&lt;p&gt;I run a modest &lt;a href="http://www.prestadb.com/"&gt;Prestashop tutorial and news website&lt;/a&gt;, and while WordPress has been superb controlling the news/posts side of things, I&amp;#8217;ve hit a brick wall when trying to tie in a Wiki and Community portion to the website.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d rather not use &lt;a href="http://buddypress.org/"&gt;BuddyPress&lt;/a&gt;, or continually worry about bridging something like &lt;a href="http://vanillaforums.org/"&gt;Vanilla Forums&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are &lt;a href="http://nenuno.co.uk/creative/design/15-wordpress-wiki-plugins/"&gt;Wiki plugins available,&lt;/a&gt; but then you&amp;#8217;re tied to what the plugin developer defines as a Wiki, and what features it should include.&lt;/p&gt;

&lt;p&gt;It has quickly become apparent that WordPress isn&amp;#8217;t the horse for this particular course, and I am underway redesigning/redeveloping the website using &lt;a href="http://www.symphony-cms.com"&gt;Symphony CMS&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;A decision&lt;/h2&gt;

&lt;p&gt;As I say, I am not dropping my use of WordPress, and much like how I recently started designing in Fireworks rather than Photoshop, merely recognising when it is and isn&amp;#8217;t the right tool for the job.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll be using WordPress exclusively for quick brochure websites, and client&amp;#8217;s who specifically ask for WordPress as their CMS (unless its definitely the wrong option!), but for more bespoke jobs I&amp;#8217;ll turn to &lt;a href="http://www.symphony-cms.com"&gt;Symphony CMS&lt;/a&gt;, or finally get round to &lt;a href="http://railsforzombies.org/"&gt;learning some damned Ruby on Rails&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 08 Feb 2012 12:54:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/replacing-wordpress/</guid>
    </item>
    <item>
      <title>Linode</title>
      <link>http://www.markhesketh.co.uk/blog/linode/</link>
      <description>&lt;p&gt;I recently &lt;a href="http://www.markhesketh.co.uk/blog/portfolio-goes-live/"&gt;put my portfolio live&lt;/a&gt; and along the way embraced a lot of change and new tools. One of these changes was my recent decision to move my hosting from &lt;a href="http://www.mediatemple.net"&gt;MediaTemple&lt;/a&gt; to &lt;a href="http://www.linode.com/?r=374e1313f69ae277bb749ec13b9665876d906c16"&gt;Linode&lt;/a&gt;. &lt;em&gt;(that&amp;#8217;s my referral, please consider using it if this post is useful to you!)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/media-temple-linode-1328540416.gif" alt="Media Temple and Linode Brands" /&gt;&lt;/p&gt;

&lt;p&gt;Linode, if you&amp;#8217;ve not heard, offer VPS hosting at varying levels, from 512mb to a staggering 20gb RAM. I won&amp;#8217;t go into too much detail as you can find out more on their &lt;a href="http://www.linode.com/features.cfm"&gt;Features&lt;/a&gt; and &lt;a href="http://www.linode.com/why.cfm"&gt;Why Linode?&lt;/a&gt; pages.&lt;/p&gt;

&lt;h2&gt;Why move?&lt;/h2&gt;

&lt;p&gt;I&amp;#8217;ve been a MediaTemple customer for a couple of years, they&amp;#8217;re a great service and I personally found the customer support helpful and very quick to respond (via Twitter at least).&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s pretty obvious they have a great brand. I&amp;#8217;d seen developers proudly proclaiming their website was hosted by MediaTemple in footer. It was like designer label hosting.&lt;/p&gt;

&lt;p&gt;I soon outgrew my previous host, &lt;a href="http://krystal.co.uk/"&gt;Krystal&lt;/a&gt;, and their basic packages and at the time couldn&amp;#8217;t offer anything quite like the bells and whistles of MediaTemple.&lt;/p&gt;

&lt;p&gt;Its come to a point however where I was again re-evaluating my hosting needs. Rather than outgrowing MediaTemple, I felt I didn&amp;#8217;t need the handholding and wanted something a bit more surgical than swiss-army.&lt;/p&gt;

&lt;h3&gt;Reviews and recommendations&lt;/h3&gt;

&lt;p&gt;Late last year I&amp;#8217;d read a &lt;a href="http://mattgemmell.com/2009/11/15/linode/"&gt;post on Linode by Matt Gemmell&lt;/a&gt;. His post was from a few years ago so &lt;a href="https://twitter.com/#!/mattgemmell/status/143707480214601730"&gt;I asked Matt over Twitter if he&amp;#8217;d still recommend Linode&lt;/a&gt;, he would.&lt;/p&gt;

&lt;p&gt;I googled around a little to find popular opinion for &lt;a href="http://www.linode.com/?r=374e1313f69ae277bb749ec13b9665876d906c16"&gt;Linode&lt;/a&gt;&amp;#8217;s service, and it was a universal thumbs up from seemingly everyone.&lt;/p&gt;

&lt;p&gt;This was a good sign as even with MediaTemple, a host I had been very happy with, for every good review there was also someone keen to share their displeasure with downtime or poor customer service.&lt;/p&gt;

&lt;h3&gt;Price&lt;/h3&gt;

&lt;p&gt;Linode&amp;#8217;s basic &lt;a href="https://manager.linode.com/signup/#plans"&gt;512mb VPS comes in at $19.95/mo&lt;/a&gt;. This to me is an absolute bargain.&lt;/p&gt;

&lt;p&gt;I currently have &lt;a href="http://mediatemple.net/webhosting/dv/"&gt;(dv) hosting at $50/mo&lt;/a&gt; and &lt;a href="http://mediatemple.net/webhosting/gs/"&gt;(gs) at $20/mo&lt;/a&gt; with MediaTemple, and while these are not the same services, the equivalent &lt;a href="http://mediatemple.net/webhosting/ve/pricing.php"&gt;(ve) service is $30/mo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You get nearly double the bandwidth with the (ve) (350gb vs 200gb), but with Linode this is an optional extra , so you only pay if you require it.&lt;/p&gt;

&lt;h3&gt;London, UK data centre&lt;/h3&gt;

&lt;p&gt;Over the last year or so I&amp;#8217;ve become quite obsessed with page speed. Its good for your users, and its good for Google.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/linode-datacentres-1328541128.jpg" alt="Google's Worldwide Datacentres" /&gt;&lt;/p&gt;

&lt;p&gt;Linode allow you to choose from &lt;a href="http://www.linode.com/avail/"&gt;6 different data centres&lt;/a&gt;, and the option to &lt;a href="http://www.linode.com/speedtest/"&gt;test the speed of each centre with a basic download trial&lt;/a&gt;. Naturally, I chose London&lt;/p&gt;

&lt;p&gt;I try to pay attention to best practices regarding Page Speed in my websites, GZipping, CSS sprites, combined and minified scripts, optimised images etc, but the response time from the US data centres on my MediaTemple websites always felt like a let down.&lt;/p&gt;

&lt;h3&gt;VPS Freedom&lt;/h3&gt;

&lt;p&gt;I realise MediaTemple offer the (ve) service, but due to the 3 points above this wasn&amp;#8217;t really an option.&lt;/p&gt;

&lt;p&gt;I loathe Plesk, it feels like unnecessary bloat and made tasks more difficult as you were wrestling with the software, bending it to do &lt;em&gt;what you actually wanted&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I felt I&amp;#8217;d outgrown the control panels and pre-written software of the (dv) server, and the shared hosting of (gs). Although in fairness MediaTemple&amp;#8217;s control panel is excellent.&lt;/p&gt;

&lt;h3&gt;Too much to mention&lt;/h3&gt;

&lt;p&gt;I could go over everything but instead I&amp;#8217;d recommend you take a close look at &lt;a href="http://www.linode.com/features.cfm"&gt;Linode&amp;#8217;s features&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;My Linode setup&lt;/h2&gt;

&lt;p&gt;I opted for the basic 512mb VPS to begin with as Linode make it very easy to upgrade via your Dashboard as your requirements change.&lt;/p&gt;

&lt;p&gt;Following the straight forward &lt;a href="http://library.linode.com/getting-started"&gt;Getting started&lt;/a&gt; and &lt;a href="http://library.linode.com/lemp-guides/ubuntu-10.04-lucid"&gt;Set up a LEMP Server on Ubuntu 10.04&lt;/a&gt; guides in the &lt;a href="http://library.linode.com/"&gt;Linode Library&lt;/a&gt; I was quickly up and running.&lt;/p&gt;

&lt;p&gt;My setup is as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu 10.04&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nginx.org/"&gt;Nginx web server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;&lt;a href="http://php-fpm.org/"&gt;PHP-FPM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;E-mail hosted by &lt;a href="http://www.google.com/apps/intl/en-GB/business/index.html"&gt;Google Apps&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Ubuntu 10.04&lt;/h3&gt;

&lt;p&gt;Being new to all this I chose to use the widely recommended Ubuntu 10.04 as my OS, which was as easy as selecting it from a drop down menu in Linode&amp;#8217;s dashboard.&lt;/p&gt;

&lt;p&gt;I have no preference to any particular Linux distro, I know very little about the differences, but Linode offer many different flavours in many different versions and your server is ready to use almost instantly after selection.&lt;/p&gt;

&lt;h3&gt;Nginx&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://wiki.nginx.org/WhyUseIt"&gt;Nginx is a lightweight web server&lt;/a&gt;. I&amp;#8217;d had memory problems using Apache in the past, even having just a handful of visitors on a site at any one time and my web server would become cumbersome.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d done various optimisations but things still weren&amp;#8217;t ideal, and I couldn&amp;#8217;t justify the large jump in price to a more hefty (dv).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&amp;#8220;Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache.&amp;#8221;&lt;br /&gt;
  &lt;a href="http://maisonbisson.com/blog/post/12249/chris-lea-on-nginx-and-wordpress/"&gt;Chris Lea&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As Chris describes, I&amp;#8217;ve found this to be the case. The memory footprint is &lt;strong&gt;much&lt;/strong&gt; lower with the same traffic, and I&amp;#8217;ve been able to do everything in Nginx that&amp;#8217;d previously needed from Apache.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve had to make a few modifications to the &lt;a href="http://www.symphony-cms.com"&gt;Symphony CMS&lt;/a&gt; rewrite rules, translating them from Apache to Nginx, but this was the only change that was needed. As a personal side note, I&amp;#8217;ve also found the Nginx configuration to be much more intuitive.&lt;/p&gt;

&lt;p&gt;As my Linode server is only 512mb, Nginx seemed a logical choice.&lt;/p&gt;

&lt;h3&gt;MySQL&lt;/h3&gt;

&lt;p&gt;Obvious choice really. I&amp;#8217;d like to look into areas such as &lt;a href="http://www.mongodb.org/"&gt;MongoDB&lt;/a&gt; in the future, but as a lot of my work uses open-source CMS systems and frameworks supporting MySQL only, I&amp;#8217;ll stick with what I know.&lt;/p&gt;

&lt;h3&gt;PHP-FPM&lt;/h3&gt;

&lt;p&gt;PHP-FPM is a FastCGI implementation of PHP that cleverly adapts its processes based on traffic load. You can &lt;a href="http://php-fpm.org/"&gt;find out more on their website&lt;/a&gt;, and there&amp;#8217;s various guides around for installing this as a package.&lt;/p&gt;

&lt;h3&gt;E-mail hosted by Google Apps&lt;/h3&gt;

&lt;p&gt;This was a bit of a no-brainer, and I&amp;#8217;ve been meaning to do it for a while now.&lt;/p&gt;

&lt;p&gt;Rather than hosting your own memory hungry mail server, spam filter, IMAP processes etc, &lt;a href="http://www.google.com/apps/intl/en/group/index.html"&gt;Google will do this for you for free&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/google-apps-1328541144.jpg" alt="Google Apps Website" /&gt;&lt;/p&gt;

&lt;p&gt;They allow you to have up to 10 e-mail accounts, all integrated with Google calendars and Google docs. You can Sync your contacts too, making them accessible from all your devices.&lt;/p&gt;

&lt;p&gt;Connect to your e-mail using traditional POP3/IMAP clients such as Apple Mail/Outlook/Thunderbird, or use the webmail service (the slick Gmail interface). You can even setup a custom domain such as &lt;a href="http://mail.example.com/"&gt;http://mail.example.com/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Simply point your MX records in your DNS to their servers and they&amp;#8217;ll take care of everything. All for free, I honestly can&amp;#8217;t see many reasons why you wouldn&amp;#8217;t want to do this.&lt;/p&gt;

&lt;h2&gt;Try Linode&lt;/h2&gt;

&lt;p&gt;In summary, I&amp;#8217;m only a few days in and I&amp;#8217;d &lt;a href="http://www.linode.com/?r=374e1313f69ae277bb749ec13b9665876d906c16"&gt;highly recommend trying Linode&lt;/a&gt;. Setup was quick, migration was painless, and my website appears to be &lt;em&gt;stupidly&lt;/em&gt; fast.&lt;/p&gt;
</description>
      <pubDate>Mon, 06 Feb 2012 13:41:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/linode/</guid>
    </item>
    <item>
      <title>Prestashop Starter Theme / Boilerplate</title>
      <link>http://www.markhesketh.co.uk/blog/prestashop-starter-theme-boilerplate/</link>
      <description>&lt;p&gt;I do a lot of work using both &lt;a href="http://www.prestashop.com"&gt;Prestashop&lt;/a&gt; and &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt;. A big difference I find between the two is support for developers.&lt;/p&gt;

&lt;p&gt;As it stands, Prestashop Theme developers have to hack away at the default theme each time they begin a new project. In contrast WordPress Theme developers have a choice of &lt;a href="http://wordpress.org/extend/themes/boilerplate"&gt;several&lt;/a&gt; &lt;a href="http://wordpress.org/extend/themes/toolbox"&gt;starter&lt;/a&gt;  &lt;a href="http://clean-start-theme.com/"&gt;themes&lt;/a&gt; &lt;a href="http://themble.com/bones/"&gt;available&lt;/a&gt; if they&amp;#8217;d prefer to not work on TwentyEleven &lt;em&gt;yet again&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;Developing a Prestashop Theme&lt;/h2&gt;

&lt;p&gt;This got me thinking about a starter theme or &amp;#8216;boilerplate&amp;#8217; for Prestashop, a starting point for theme development featuring reusable code and best practice methods related to Prestashop theming.&lt;/p&gt;

&lt;h3&gt;Using the default theme&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/prestashop-default-theme-1328109868.jpg" alt="Prestashop Default Theme" /&gt;&lt;/p&gt;

&lt;p&gt;Though the default theme demonstrates the functionality of Prestashop very well, I&amp;#8217;ve never liked it as a theme.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s many parts of it that I think are a complete mess. Using this as a baseline for a new theme hinders creativity, and this can be seen on the &lt;a href="http://addons.prestashop.com/"&gt;Prestashop Addons store&lt;/a&gt; where so many themes have stuck to the default blueprint.&lt;/p&gt;

&lt;h3&gt;Prestashop&amp;#8217;s proposed &amp;#8216;Skeleton Theme&amp;#8217;&lt;/h3&gt;

&lt;p&gt;Last summer Prestashop wrote on their blog that they were to include a &lt;a href="http://www.prestashop.com/blog/article/prestashop_v15_revealeddiscover_the_skeleton_theme_by_vincent_augagneur/"&gt;&amp;#8216;Skeleton Theme&amp;#8217;&lt;/a&gt; alongside the upcoming &lt;a href="http://www.prestadb.com/prestashop-1-5-new-features/"&gt;Prestashop 1.5&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is great news and a step in the right direction, and while there&amp;#8217;s some nice looking features such as multiple template layouts (think Templates in WordPress) and configuration variables, there was a couple of things I wasn&amp;#8217;t so thrilled about.&lt;/p&gt;

&lt;h4&gt;Unnecessary bloat&lt;/h4&gt;

&lt;p&gt;Vincent Augagneur mentions that the theme would include the &lt;a href="http://960.gs/"&gt;960gs&lt;/a&gt; and &lt;a href="http://jqueryui.com/"&gt;jQuery UI&lt;/a&gt;. Both are great tools, but in my opinion this makes an assumption about what the designer/developer will be creating and working with.&lt;/p&gt;

&lt;p&gt;The theme developer may wish to use a grid they&amp;#8217;re familiar with, something custom built as I did for this website, or no grid at all. The 960gs then becomes bloat, and something extra to remove.&lt;/p&gt;

&lt;p&gt;The same is true if you don&amp;#8217;t actually use jQuery UI&amp;#8217;s features, it&amp;#8217;s just slowing down your theme and another thing to remove.&lt;/p&gt;

&lt;p&gt;At a certain point you may find yourself removing features of the &amp;#8216;starter&amp;#8217; theme, as you would have done with the default theme.&lt;/p&gt;

&lt;h4&gt;HTML5 Support&lt;/h4&gt;

&lt;p&gt;I&amp;#8217;m making an assumption here as the Skeleton Theme has yet to be released, but based on the &lt;a href="http://www.prestadb.com/prestashop-releases-new-default-store-theme/"&gt;new default Prestashop theme&lt;/a&gt; there&amp;#8217;s a good chance that it won&amp;#8217;t be utilising HTML5.&lt;/p&gt;

&lt;p&gt;This isn&amp;#8217;t a huge deal, just a personal preference, as I have been using HTML5 on production websites for some time now, including Prestashop stores.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/html5-boilerplate-1328110568.jpg" alt="HTML5 Boilerplate Logo" /&gt;&lt;/p&gt;

&lt;p&gt;Ideally I&amp;#8217;d like to see a starter theme that utilises all the HTML5 goodness that is ready to use right away, and get people off on the right foot, just as &lt;a href="http://www.html5boilerplate.com"&gt;HTML5 Boilerplate&lt;/a&gt; does.&lt;/p&gt;

&lt;h2&gt;A Prestashop Starter Theme / Boilerplate&lt;/h2&gt;

&lt;p&gt;In response to this I&amp;#8217;ve &lt;a href="https://github.com/heskethm/Prestashop-Theme-Boilerplate"&gt;set up a GitHub repository&lt;/a&gt;, to build a (re)usable starting point for developing Prestashop Themes.&lt;/p&gt;

&lt;h4&gt;Some key points &amp;amp; ideas&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Semantic and valid HTML5 markup.&lt;/li&gt;
&lt;li&gt;Stripped of any &lt;em&gt;optional&lt;/em&gt; CSS / Javascript so the developer is free to use the tools they are comfortable with.&lt;/li&gt;
&lt;li&gt;Encourage &amp;#8216;best practices&amp;#8217; for speed/performance.&lt;/li&gt;
&lt;li&gt;Complete documentation on each template file, and default variables available to each.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Currently I&amp;#8217;m focusing on Prestashop 1.4 as a release date for Prestashop 1.5 has yet to be officially announced.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d previously asked Prestashop about a 1.5 released date and they said they were aiming for November 2011. As that&amp;#8217;s now long been and gone, I thought it best to get started rather than wait for what might be on the horizon. When Prestashop 1.5 becomes available I will  adapt the theme as appropriate.&lt;/p&gt;

&lt;p&gt;You can follow the progress and download the theme on GitHub: &lt;a href="https://github.com/heskethm/Prestashop-Theme-Boilerplate"&gt;https://github.com/heskethm/Prestashop-Theme-Boilerplate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m at very early stages at the moment, but I hope to get things underway and push out a working version over the next month.&lt;/p&gt;

&lt;h3&gt;Get involved&lt;/h3&gt;

&lt;p&gt;If you create Prestashop Themes I&amp;#8217;d love to hear any ideas you may have regarding what should be implemented or removed.&lt;/p&gt;

&lt;p&gt;Additionally, I&amp;#8217;d like to encourage you to get involved, if you&amp;#8217;re a Git/GitHub user fork the Repository and you can contribute to the project.&lt;/p&gt;

&lt;h3&gt;Get in touch&lt;/h3&gt;

&lt;p&gt;If you have any thoughts the Starter Theme, get in touch with me either via my e-mail listed address below, &lt;a href="http://www.twitter.com/markyhesketh/"&gt;Twitter&lt;/a&gt;, or &lt;a href="https://github.com/heskethm"&gt;message me via GitHub&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 01 Feb 2012 15:24:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/prestashop-starter-theme-boilerplate/</guid>
    </item>
    <item>
      <title>Portfolio goes live</title>
      <link>http://www.markhesketh.co.uk/blog/portfolio-goes-live/</link>
      <description>&lt;p&gt;9 months ago I put the &lt;a href="http://www.markhesketh.co.uk/blog/and-were-off/"&gt;first version of this website online&lt;/a&gt;. The idea at the time was I&amp;#8217;d have the blog online, throw in a contact page and finish off adding the portfolio / home page at a later date.&lt;/p&gt;

&lt;p&gt;Yup, that never happened.&lt;/p&gt;

&lt;p&gt;The usual story of client work, and lets be honest, laziness got in the way of finishing it. Sometime in June I gave the layout a bit of a &lt;a href="http://www.markhesketh.co.uk/blog/facelift/"&gt;Facelift&lt;/a&gt;, but there was still no portfolio.&lt;/p&gt;

&lt;h2&gt;Get it shipped&lt;/h2&gt;

&lt;p&gt;I made a New Years resolution to get off my backside and sort it out. I couldn&amp;#8217;t write about this resolution of course as I had no blog I liked using to use (sorry, WordPress).&lt;/p&gt;

&lt;p&gt;What you&amp;#8217;re seeing, assuming you&amp;#8217;re reading this in early 2012, is the new website I&amp;#8217;ve been working on. As usual there&amp;#8217;s still some things to complete, but I really wanted to get it online so i could actually start &lt;em&gt;using&lt;/em&gt; it.&lt;/p&gt;

&lt;h2&gt;What&amp;#8217;s changed?&lt;/h2&gt;

&lt;p&gt;The design is very similar but there&amp;#8217;s a few twists. There was a lot of experimenting with new techniques, programs and CMS systems, but now I feel I&amp;#8217;ve settled on a combination that I like.&lt;/p&gt;

&lt;h3&gt;Symphony CMS&lt;/h3&gt;

&lt;p&gt;Notably I&amp;#8217;ve decided to &lt;strong&gt;not&lt;/strong&gt; use WordPress for once and instead opted for &lt;a href="http://www.symphony-cms.com"&gt;Symphony CMS&lt;/a&gt;. I&amp;#8217;ll no doubt write more about this decision and Symphony in a later post, but basically I really like it.&lt;/p&gt;

&lt;h3&gt;Markdown&lt;/h3&gt;

&lt;p&gt;Up until about 2 months ago I&amp;#8217;d not heard of &lt;a href="http://daringfireball.net/projects/markdown/"&gt;John Gruber&amp;#8217;s Markdown&lt;/a&gt;, now I notice it mentioned everywhere and its great.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/mou-markdown-editor-1327942281.gif" alt="Mou Markdown Editor" /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m current writing this post using &lt;a href="http://mouapp.com/"&gt;Mou&lt;/a&gt;, a Markdown editor for Mac, and it really allows me get my thoughts down without worrying if I&amp;#8217;ve got a rogue &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; in my code.&lt;/p&gt;

&lt;h3&gt;Fireworks&lt;/h3&gt;

&lt;p&gt;In addition to all this change/revolution I&amp;#8217;ve recently been using &lt;a href="http://www.adobe.com/products/fireworks.html"&gt;Fireworks&lt;/a&gt; instead of &lt;a href="http://www.adobe.com/products/photoshop.html"&gt;Photoshop&lt;/a&gt; as my primary tool for web design. This is now the 3rd site that I&amp;#8217;ve designed in Fireworks and I&amp;#8217;m really enjoying it.&lt;/p&gt;

&lt;p&gt;Photoshop still has many, &lt;em&gt;many&lt;/em&gt; uses for me, but it&amp;#8217;s been mostly relegated to touching up individual images rather than designing entire layouts. Some might even agree this is exactly where it belongs.&lt;/p&gt;

&lt;h3&gt;Responsive&lt;/h3&gt;

&lt;p&gt;I&amp;#8217;ve finally been getting clued up on responsive web design, too.&lt;/p&gt;

&lt;p&gt;Sooo 2010 I know.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d read a lot, known why it is such a good idea, but never had the project or time to put it into practice until now.&lt;/p&gt;

&lt;p&gt;Though I&amp;#8217;m not quite there yet… I still have to do the actual media queries, I&amp;#8217;ve built the site on a custom flexible grid using &lt;a href="http://lesscss.org/"&gt;LESS&lt;/a&gt;, percentage based type and &lt;code&gt;max-width&lt;/code&gt; images.&lt;/p&gt;

&lt;p&gt;This will probably be the next thing I finish off in the coming days.&lt;/p&gt;

&lt;h2&gt;Summing up&lt;/h2&gt;

&lt;p&gt;I still have a few things to finish, and will do so over the next week, but I&amp;#8217;m very happy to be &lt;strong&gt;properly&lt;/strong&gt; online, with a portfolio to showcase my work and a blog I enjoy using to write about it.&lt;/p&gt;
</description>
      <pubDate>Mon, 30 Jan 2012 16:39:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/portfolio-goes-live/</guid>
    </item>
    <item>
      <title>Silk Icon Set</title>
      <link>http://www.markhesketh.co.uk/blog/silk-icon-set/</link>
      <description>&lt;p&gt;Okay, so maybe I’m a little late to the party here.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/icons1.gif" alt="Silk Icon Set" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.famfamfam.com/archive/silk-icon-set-released/"&gt;Released back in August 2005&lt;/a&gt;, ’Silk’ is an open-source icon pack containing around 700 16×16 .png icons by Birmingham-based developer &lt;a href="http://www.famfamfam.com/"&gt;Mark James&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;‘“Silk” is a smooth, free icon set, containing over 700 16-by-16 pixel icons in strokably-soft PNG format. Containing a large variety of icons, you’re sure to find something that tickles your fancy. And all for a low low price of $0.00. You can’t say fairer than that.’&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you browse through the icon set, they may even look familiar to you. Lots of projects such as &lt;a href="http://www.prestashop.com/"&gt;Prestashop&lt;/a&gt; have taken on the icons within their applications, even right down to recently noticing various icons from the set being subtly used on gaming websites such as &lt;a href="http://www.wowheadnews.com/"&gt;Wowhead News&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The icon sets are licensed under the &lt;a href="http://creativecommons.org/licenses/by/2.5/"&gt;Creative Commons Attribution License 2.5&lt;/a&gt; but can also be used under the &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;Creative Commons Attribution License 3.0&lt;/a&gt;. Mark explains:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“This means you may use it for any purpose, and make any changes you like. All I ask is that you include a link back to this page in your credits (although a giant link on every page of your website really isn’t needed, contact me to discuss specifics).”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mark also has a few other icon sets in &lt;a href="http://famfamfam.com/lab/icons/mint/"&gt;Mint&lt;/a&gt;, &lt;a href="http://famfamfam.com/lab/icons/flags/"&gt;Flags&lt;/a&gt; and &lt;a href="http://famfamfam.com/lab/icons/mini/"&gt;Mini&lt;/a&gt; that may also be of interest to you.&lt;/p&gt;

&lt;h2&gt;Download the icon set&lt;/h2&gt;

&lt;p&gt;Visit the &lt;a href="http://famfamfam.com/lab/icons/silk/"&gt;Silk Icon set download page&lt;/a&gt; on Mark’s website to grab over 700 great icons to use in your next project.&lt;/p&gt;
</description>
      <pubDate>Thu, 16 Jun 2011 13:19:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/silk-icon-set/</guid>
    </item>
    <item>
      <title>Lorem Pixum</title>
      <link>http://www.markhesketh.co.uk/blog/lorem-pixum/</link>
      <description>&lt;p&gt;&lt;a href="http://lorempixum.com/"&gt;Lorem Pixum&lt;/a&gt; is to images, as Lorem Ipsum is to copy. Where you would use lorem ipsum text as a filler to act as copy in a document or website, Lorem Pixum allows you to easily generate placeholder images for your design work.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/lorempixum.jpg" alt="Lorem Pixum logo" /&gt;&lt;/p&gt;

&lt;p&gt;The beauty of this useful tool is its simplicity. You’re presented with a couple of slider bars, representing X and Y dimensions, image categories, and coloured or grayscale image options.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-06-06-at-10.18.24-620x203.png" alt="Lorem Pixum Example" /&gt;&lt;/p&gt;

&lt;p&gt;Select your options, hit the colour button and you’re instantly served an image you can copy straight into your design.&lt;/p&gt;

&lt;p&gt;This works great for Photoshop, but what if you’re already into the coding side of things? There’s no need to go copy/pasting your placeholder images to your website’s directory, you can hotlink straight to the files.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!-- to get a random picture of 400 x 200 pixels--&amp;gt;
http://lorempixum.com/400/200

&amp;lt;!-- to get a random gray picture of 400 x 200 pixels--&amp;gt;
http://lorempixum.com/g/400/200

&amp;lt;!-- to get a random picture of the sports category--&amp;gt; 
http://lorempixum.com/400/200/sports

&amp;lt;!-- to get picture no. 1/10 from the sports category--&amp;gt;
http://lorempixum.com/400/200/sports/1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Overall, &lt;a href="http://lorempixum.com/"&gt;Lorem Pixum&lt;/a&gt; is great tool for speeding up your design process. There’s no need to worry about creating the perfect image as you lay out your design, even right into the development stages of a project if you’re still waiting on images from your client.&lt;/p&gt;

&lt;h2&gt;Give it a go&lt;/h2&gt;

&lt;p&gt;Try the tool now at &lt;a href="http://lorempixum.com/"&gt;http://lorempixum.com/&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Mon, 06 Jun 2011 13:13:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/lorem-pixum/</guid>
    </item>
    <item>
      <title>PrestaDB</title>
      <link>http://www.markhesketh.co.uk/blog/prestadb/</link>
      <description>&lt;p&gt;I have used Prestashop as my e-commerce platform of choice for around 2 years now. Over this time I’ve created several complete stores (and accompanying themes), a number of custom modules, a bunch of core changes and so forth all while tearing my hair out because of a lack of documentation.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/prestadb.jpg" alt="PrestaDB Header Design" /&gt;&lt;/p&gt;

&lt;p&gt;This has long been a problem, and although Prestashop has come a long way in terms of its MVC pattern, overrides, Smarty 3 etc, clear documentation about Prestashop’s API has not just been lacking, its been absent.&lt;/p&gt;

&lt;p&gt;I’ve also noticed a growing number of community members becoming more and more disgruntled that complete, and useful documentation is hard to find.&lt;/p&gt;

&lt;h2&gt;My proposal&lt;/h2&gt;

&lt;p&gt;I propose to create a clear and concise website featuring API Documentation, tutorials and news for the Prestashop open-source e-commerce platform that the community can use as an aid while developing.&lt;/p&gt;

&lt;h2&gt;Features&lt;/h2&gt;

&lt;p&gt;I will update each feature as we introduce or disregard new ideas.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Documentation

&lt;ul&gt;
&lt;li&gt;Controllers&lt;/li&gt;
&lt;li&gt;Classes&lt;/li&gt;
&lt;li&gt;Smarty&lt;/li&gt;
&lt;li&gt;Templates/Themes (and the variables available to each file)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Tutorials (including those submitted by the community)

&lt;ul&gt;
&lt;li&gt;Text articles&lt;/li&gt;
&lt;li&gt;Video tutorials&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;News / Updates / Blog&lt;/li&gt;
&lt;li&gt;Stack overflow style questions/answers (?)&lt;/li&gt;
&lt;li&gt;User accounts

&lt;ul&gt;
&lt;li&gt;Commenting&lt;/li&gt;
&lt;li&gt;Content submission / editing&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Multiple languages&lt;/li&gt;
&lt;li&gt;Retain support for earlier versions as new releases become available.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Vitals&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt;: PrestaDB&lt;br /&gt;
&lt;strong&gt;Domain&lt;/strong&gt;: &lt;a href="http://www.prestadb.com/"&gt;http://www.prestadb.com/&lt;/a&gt; (registered, hosted, primed and ready).&lt;br /&gt;
&lt;strong&gt;Platform&lt;/strong&gt;: &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The website will be fairly large, with many inter-linking features I’ve decided to step away from trying to shoehorn it into a framework such as WordPress, Drupal or MODx and instead decided to use the project as an opportunity to create a live website using &lt;a href="http://cakephp.org/"&gt;CakePHP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: &lt;em&gt;It’s also my intention to keep an ongoing journal on the website’s development. I believe that by putting my thoughts into writing I will be able to plan this project much more efficiently, as well as perhaps gaining the support of the Prestashop community along the way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post is the first in a series of posts on this project, I will update each post as we introduce or disregard new ideas.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Collaboration&lt;/h3&gt;

&lt;p&gt;I am very interested to hear your thoughts and ideas on this proposal. Please use the comments form below if you have any suggestions or questions!&lt;/p&gt;
</description>
      <pubDate>Thu, 02 Jun 2011 13:09:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/prestadb/</guid>
    </item>
    <item>
      <title>Google +1</title>
      <link>http://www.markhesketh.co.uk/blog/google-plus-1/</link>
      <description>&lt;p&gt;Google this week have released their long talk about +1 button. Much like the prominent Tweet This and Facebook Like buttons you will see all over the web, +1 buttons let people who love your content recommend it on Google search.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/googleplus1buttons.jpg" alt="Google +1 Buttons examples" /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;‘The +1 button is shorthand for “this is pretty cool” or “you should check this out.”&lt;/p&gt;
  
  &lt;p&gt;Click +1 to publicly give something your stamp of approval. Your +1?s can help friends,  contacts, and others on the web find the best stuff when they search.’ - &lt;strong&gt;Google&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Recommendations will appear in relevant search results as a friend’s recommendation, much like how Google Reader can include results from your RSS feeds in your searches.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/googleplus1search.jpg" alt="Google +1 in search results" /&gt;&lt;/p&gt;

&lt;p&gt;Google explains the mechanics behind this:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Sometimes it’s easier to find exactly what you’re looking for when someone you know already found it. Get recommendations for the things that interest you, right when you want them, in your search results.&lt;/p&gt;
  
  &lt;p&gt;The next time you’re trying to remember that bed and breakfast your buddy was raving about, or find a great charity to support, a +1 could help you out. Just make sure you’re signed in to your Google Account.” – &lt;strong&gt;Google&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It looks like this could be Google’s first step towards a social networking platform to rival Facebook which has worked the rumour mill for sometime. I guess these buttons would then also work like the current Facebook Like buttons, in terms of being included then in your friends’ “Feed”.&lt;/p&gt;

&lt;h2&gt;Get it on your website&lt;/h2&gt;

&lt;p&gt;Head over to the &lt;a href="http://www.google.com/webmasters/+1/button/"&gt;+1 Button Generator&lt;/a&gt; to grab the code for your website. I added them to this blog in a matter of minutes, it was all pretty painless.&lt;/p&gt;

&lt;p&gt;You can also find more information about the &lt;a href="http://www.google.com/+1/button/"&gt;+1 button on Google’s official website&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 02 Jun 2011 13:01:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/google-plus-1/</guid>
    </item>
    <item>
      <title>Prestashop 1.4.2 released</title>
      <link>http://www.markhesketh.co.uk/blog/prestashop-1-4-2-released/</link>
      <description>&lt;p&gt;Over the weekend the Prestashop team released Prestashop 1.4.2, and the &lt;a href="http://www.prestashop.com/download/changelog_1.4.2.5.txt"&gt;changelog&lt;/a&gt; suggests that the update is more focused upon fixes not features. This is great news in my opinion. Prestashop 1.4 has so far been a step in the right direction, with features such as the overrides and the MVC pattern which are big improvements on Prestashop 1.2.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/presta1425.jpg" alt="Prestashop 1.4.2 released" /&gt;&lt;/p&gt;

&lt;p&gt;At first glance it looks faster than 1.4.1, which even with the new performance features enabled could feel a little sluggish, so it’s worth an update for this alone if anything.&lt;/p&gt;

&lt;p&gt;There’s also an eBay export module which I will be taking a look at this afternoon.&lt;/p&gt;

&lt;p&gt;The update process as a whole since 1.4 has been made much less of a headache too, so there really is no reason to not update. Tools such as the &lt;a href="http://prestanotes.com/2011/05/prestashop-theme-validator/"&gt;Prestashop Theme Validator&lt;/a&gt; give peace of mind if you’re unsure whether your current theme will be compatible (if its built for 1.4, then it’ll likely be fine).&lt;/p&gt;

&lt;h2&gt;What Prestashop have to say&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;“The entire team is mobilized to improve PrestaShop version 1.4.2. It’s already been tested and approved by more than 300 merchants, who are all delighted with it. I advise all PrestaShop users to download this version and to use it.”
  Nebojsa Stojanovic, &lt;em&gt;PrestaShop Technical Director.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;Some features&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Simplifying the transition from versions 1.3.x and older&lt;/li&gt;
&lt;li&gt;Improving stability and backwards compatibility&lt;/li&gt;
&lt;li&gt;Optimized performance (for example, our search engine is now 30% faster)&lt;/li&gt;
&lt;li&gt;Integrating the eBay module, so you can export your product catalog to eBay&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Download it now&lt;/h3&gt;

&lt;p&gt;You can download it right away over at the &lt;a href="http://www.prestashop.com/en/downloads/"&gt;Prestashop downloads&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;Read Prestashop’s announcement too: &lt;a href="http://www.prestashop.com/blog/article/prestashop_version_142_is_available_for_download/"&gt;PrestaShop version 1.4.2 is available for download&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Dont forget: Be sure to report any bugs, or see the status on upcoming features in 1.4.3 and 1.5 over at&lt;a href="http://forge.prestashop.com/secure/Dashboard.jspa"&gt; Prestashop Forge&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;The changelog&lt;/h4&gt;

&lt;p&gt;You can see every change in detail within the &lt;a href="http://www.prestashop.com/download/changelog_1.4.2.5.txt"&gt;changelog&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 02 Jun 2011 12:58:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/prestashop-1-4-2-released/</guid>
    </item>
    <item>
      <title>Facelift</title>
      <link>http://www.markhesketh.co.uk/blog/facelift/</link>
      <description>&lt;p&gt;I finally kicked myself into gear back in March &lt;a href="http://www.markhesketh.co.uk/blog/2011/03/and-were-off/"&gt;when I put something online&lt;/a&gt;, which I’d been putting off for some time with excuses such as ‘I’m too busy’, ‘The design isn’t finished yet’.. the usual stuff. It took Matt Mullenweg’s&lt;a href="http://ma.tt/2010/11/one-point-oh/"&gt; 1.0 is the Loneliest Number&lt;/a&gt; post to make me realise the layout doesn’t need to be perfect, just get it shipped. Something is better than nothing, content is king etc.&lt;/p&gt;

&lt;p&gt;So I did. I put up the design that I’d been working on over multiple revisions created months apart when I had spare time.&lt;/p&gt;

&lt;p&gt;A couple of months have gone by and I’ve had time to sit down and revisit the design. I’d like to think I’ve improved it.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/original-blog-design.png" alt="Original Blog Design" /&gt;&lt;/p&gt;

&lt;p&gt;Blog design from March 2011&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/blog-redesign.png" alt="Blog Redesign" /&gt;&lt;/p&gt;

&lt;p&gt;The &amp;#8216;new and improved&amp;#8217; Blog design from June 2011&lt;/p&gt;

&lt;p&gt;I prefer the newer design. I kept getting feeling the previous one with its grey gradient background made it looked smudged, or even dirty.&lt;/p&gt;

&lt;p&gt;‘Clean’ is a word that’s often easily thrown around but the newer design is much cleaner. I also think the various spacing is much more defined, things generally seem more solid.&lt;/p&gt;

&lt;p&gt;As I say I hope to have the full portfolio side of this domain online come the end of the month, intending on blogging about my various projects on this site, and leaving Prestashop related posts to &lt;a href="http://www.prestanotes.com/"&gt;PrestaNotes&lt;/a&gt; and the upcoming &lt;a href="http://www.prestadb.com/"&gt;PrestaDB&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 01 Jun 2011 12:46:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/facelift/</guid>
    </item>
    <item>
      <title>The Vamoose blog goes live</title>
      <link>http://www.markhesketh.co.uk/blog/the-vamoose-blog-goes-live/</link>
      <description>&lt;p&gt;&lt;a href="http://www.thevamoose.com/"&gt;The Vamoose&lt;/a&gt; is a one-woman operation created and maintained by &lt;a href="http://www.kathrynblackmore.com/"&gt;Kathryn Blackmore&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-05-10-at-17.13.33-600x81.png" alt="The Vamoose Logo" /&gt;&lt;/p&gt;

&lt;p&gt;I’ve worked closely with Kathryn on her various websites, including &lt;a href="http://www.thevamoose.com/"&gt;her shop&lt;/a&gt;, since she started retailing online. The latest addition to her growing range of various online presences is her &lt;a href="http://www.thevamoose.com/blog/"&gt;new blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A few days ago I put the finishing touches on her new blog design, crossed my fingers, closed my eyes and got it online. This wouldn’t be that huge of a deal but the plan was to move away from Kathryn’s original ‘Blogger’ blog, to a hosted WordPress blog on her domain, taking all her feeds, subscribers, posts and comments with it.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-05-10-at-17.12.51-600x442.png" alt="The Vamoose Blog" /&gt;&lt;/p&gt;

&lt;p&gt;Thankfully all went well, and &lt;a href="http://www.thevamoose.com/blog/2011/05/developments.html"&gt;Kathryn has official announced it’s online status.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-05-10-at-17.13.11-600x458.png" alt="The Vamoose Blog Archive" /&gt;&lt;/p&gt;

&lt;p&gt;The blog also has a nice little feature in the &lt;a href="http://www.thevamoose.com/blog/archive"&gt;Image Archive&lt;/a&gt;, where all the images from every post can be seen as a collage. There’s a few other features in there too such as the Random Post.&lt;/p&gt;

&lt;p&gt;If you’re looking to move your blog over from Blogger to a hosted WordPress blog, then I’d highly recommend &lt;a href="http://bloggertowp.org/"&gt;BloggerToWP.org&lt;/a&gt; which had a bunch of useful information on their blog, including a plugin.&lt;/p&gt;

&lt;h3&gt;Links&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.thevamoose.com/blog/"&gt;The Vamoose Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thevamoose.com/"&gt;The Vamoose&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Tue, 10 May 2011 00:52:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/the-vamoose-blog-goes-live/</guid>
    </item>
    <item>
      <title>StayFocusd</title>
      <link>http://www.markhesketh.co.uk/blog/stayfocusd/</link>
      <description>&lt;p&gt;StayFocusd is a productivity extension for Google Chrome by Transfusion Media.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/stayfocusd.jpg" alt="StayFocusd" /&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“You sit down at the computer, and you swear you’ll be productive. Next thing you know, it’s twelve hours later. You’ve checked your email, updated your Facebook status, browsed the trending topics on Twitter, read your RSS feeds, looked up your favorite band on Wikipedia, vanity googled yourself, cyber-stalked your ex, looked at all your high-school crushes’ Facebook photos, watered your plants on Farmville, and lost a week’s pay playing online poker. What you haven’t done is WORK.”  - Transfusion Media&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The extension allows you to restrict the amount of time you spend on websites you could regard as ‘time-wasting’ such as Facebook, Twitter, BBC News etc. allowing you to stay focused on what’s more important – your work.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/stayfocusd2-600x231.jpg" alt="StayFocusd App" /&gt;&lt;/p&gt;

&lt;p&gt;When you visit your blacklisted sites, the Eyeball/Clock icon will turn red, indicating that time is ticking away. There is even a setting to include sites visited via a blacklisted website, so there’s no cheating while reading Twitter referrals.&lt;/p&gt;

&lt;p&gt;Once your time is up, those sites are blocked for the day. That’s right, they’re gone. This may seem extreme but I’ve found this extension to greatly increase my productivity as I’m much more aware of how much of the day I’m wasting.&lt;/p&gt;

&lt;p&gt;You can blacklist, or whitelist any sites you wish either on the go or from within the extension’s tongue-in-cheek settings panel, which questions your motives if you try to increase your allowed procrastination time.&lt;/p&gt;

&lt;p&gt;Download link
You can &lt;a href="https://chrome.google.com/webstore/detail/laankejkbhbdhmipfmgcngdelahlfoji?hl=en-US#"&gt;download the extension&lt;/a&gt; on the &lt;a href="https://chrome.google.com/webstore?hl=en-US"&gt;Chrome Web Store&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Tue, 03 May 2011 00:45:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/stayfocusd/</guid>
    </item>
    <item>
      <title>Ecommerce Templates emailfriend.php : spam prevention and detection</title>
      <link>http://www.markhesketh.co.uk/blog/oscommerce-emailfriend-php-spam-prevention-and-detection/</link>
      <description>&lt;p&gt;Recently a company I work for was having a huge issue with spam. Not incoming, but outgoing. Their server was being used to fire out spam emails at an alarming rate, resulting in them being temporarily blacklisted by services such as Google Mail.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/spam-e1303931781199.gif" alt="Spam in Mail Queue" /&gt;&lt;/p&gt;

&lt;p&gt;After a bit of investigation, I narrowed the problem down to one of the larger websites, an online store running &lt;a href="http://www.ecommercetemplates.co.uk/"&gt;Ecommerce Templates&lt;/a&gt;, an open source e-commerce platform that the company had been using for many years.&lt;/p&gt;

&lt;h2&gt;Ecommerce Template’s emailfriend.php&lt;/h2&gt;

&lt;p&gt;If you’re encountering this problem, and have a website running &lt;a href="http://www.ecommercetemplates.co.uk/"&gt;Ecommerce Templates&lt;/a&gt; than I suggest you take a closer look at the &lt;code&gt;emailfriend.php&lt;/code&gt; script.&lt;/p&gt;

&lt;p&gt;This file can be found in the root directory of &lt;a href="http://www.ecommercetemplates.co.uk/"&gt;Ecommerce Templates&lt;/a&gt;, usually in the folder ‘www’ or ‘httpdocs’ depending on your web server setup. The script can usually be found at the address &lt;code&gt;http://www.example.com/emailfriend.php&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/emailfriend.gif" alt="Email script used" /&gt;&lt;/p&gt;

&lt;p&gt;The script allows visitors to put in a your name, your friend’s email, and a comment with no sort of validation, or spam prevention apparent (CAPTCHA codes and such, see below under ‘Prevent it’).&lt;/p&gt;

&lt;p&gt;A script had been targeted to hit the file, putting in a bogus title for &lt;strong&gt;Your Name&lt;/strong&gt;, the recipient’s (read victim) email in &lt;strong&gt;Your Friend’s Email&lt;/strong&gt; and a whole host of spammy goodness in &lt;strong&gt;Your comments&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;Detect it&lt;/h2&gt;

&lt;p&gt;Now this particular website has been around a number of years now, and so it is very possible that this particular oversight does not feature within more updated versions of &lt;a href="http://www.ecommercetemplates.co.uk/"&gt;Ecommerce Templates&lt;/a&gt;. However if you are unlucky enough to be faced with this problem on your online store, let’s go through ways to detect if your store has a problem.&lt;/p&gt;

&lt;p&gt;Open the file &lt;code&gt;/emailfriend.php&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;At the bottom of the file, underneath the &lt;code&gt;&amp;lt;/HTML&amp;gt;&lt;/code&gt; tag add the following code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php
    // Get the IP of the visitor
    $ip = $_SERVER['REMOTE_ADDR'];

    // The name of the file being requested, this means the script can be used on other files too.
    $file = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

    // Prepare the information for the log
    $text = date("F j, Y, g:i a").' '.$ip.' via '.$file.'
';
    // Open the log file
    $file = fopen("spam.txt", "a");

    // Write the infomation to the log
    fwrite($file,$text);

    // Close the file
    fclose($file);
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now create a blank text file and name it &lt;code&gt;spam.txt&lt;/code&gt; (You can create this using Notepad on Windows, or TextEdit on Mac).&lt;/p&gt;

&lt;p&gt;Place this file in the &lt;strong&gt;same directory as your&lt;/strong&gt; &lt;code&gt;emailfriend.php&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Make sure you set the CHMOD permissions for the file to be writeable (777). If this makes no sense, &lt;a href="http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php"&gt;follow this link to learn how to set permissions on your FTP&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;What happens?&lt;/h3&gt;

&lt;p&gt;This code will log visitor’s ip addresses, the time of their visit, and the file in which they visited (in this case emailfriend.php).&lt;/p&gt;

&lt;p&gt;All being well, the information will be written to the spam.txt file for your review. You will be able to see any unusual activity with the script, as well as note the IP address of repeated visitors to the form.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/spam1.gif" alt="Spam activity logs" /&gt;&lt;/p&gt;

&lt;p&gt;On the site I was working on, this happened to be about 30 attempts a minute. This is quite a staggering amount as this had apparently been an issue for almost 3 months! As you can see in the image above, there was a lot of activity from a single IP address.&lt;/p&gt;

&lt;h2&gt;Prevent it&lt;/h2&gt;

&lt;p&gt;This script is severely lacking in any sort of validation or spam protection. There are many solutions out there.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You &lt;a href="http://www.techiecorner.com/95/block-ip-from-accessing-website-using-htaccess/"&gt;go ahead and blacklist the logged IP Address from your web server&lt;/a&gt;. Speak to your hosting provider if you are unsure about this. However this would be a temporary fix, as the spammer can simply change their IP if required.&lt;/li&gt;
&lt;li&gt;Services such as &lt;a href="http://www.captcha.net/captchas/"&gt;CAPTCHA&lt;/a&gt; have their own advantages and disadvantages that I won’t go into here.&lt;/li&gt;
&lt;li&gt;You could also try &lt;a href="http://mrarrowhead.com/index.php?page=stop_form_spam_captcha.php#rand"&gt;randomising the input names&lt;/a&gt; of your Send To Friend form, though this would require a little knowledge of PHP and such.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My solution was to simply disable the feature entirely. The logs showed the feature was very much underused, especially for the product range the store offered, and simply wasn’t worth the time required to be absolutely sure this wouldn’t occur again.&lt;/p&gt;
</description>
      <pubDate>Wed, 27 Apr 2011 00:35:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/oscommerce-emailfriend-php-spam-prevention-and-detection/</guid>
    </item>
    <item>
      <title>A standard, universal blog icon</title>
      <link>http://www.markhesketh.co.uk/blog/a-standard-universal-blog-icon/</link>
      <description>&lt;p&gt;Back in 2008 &lt;a href="http://blog.brendanmitchell.com/"&gt;Brendan Mitchell&lt;/a&gt; sat down and decided the world needed a ‘standard’ blog icon, one that would be recognised and used regardless of blogging platform adopted.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2012-01-15-at-00.32.16.png" alt="The Blog Icon" /&gt;&lt;/p&gt;

&lt;p&gt;Brendan tinkered in Illustrator and came up with this. &lt;a href="http://www.theblogicon.com/"&gt;The icon&lt;/a&gt; is nothing groundbreaking, but that’s what makes it great.&lt;/p&gt;

&lt;p&gt;Mixing a styled ‘b’ for blog, with a part of the well-known, recognised, and blog associated &lt;a href="http://www.feedicons.com/"&gt;RSS icon&lt;/a&gt;, the icon does a great job of conveying it’s meaning.&lt;/p&gt;

&lt;p&gt;The icon has, and needs, no reference to any particular platform such as &lt;a href="http://www.theblogicon.com/"&gt;WordPress&lt;/a&gt;, &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, &lt;a href="http://www.tumblr.com/"&gt;Tumblr&lt;/a&gt; or &lt;a href="http://www.tumblr.com/"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.feedicons.com/"&gt;The RSS icon&lt;/a&gt; is now standardised, e-mails are synonymous with ‘@’ symbols and envelope icons. Why not blogs? They’ve been around for a while now, and are getting more and more recognition as a valuable source of content rather than a soapbox for internet weirdos.&lt;/p&gt;

&lt;p&gt;I came across the icon while designing this layout, to utilise in the button navigation in the upper-right of this page. Works a treat.&lt;/p&gt;

&lt;p&gt;Download the pack
Downloadable packs containing the icon in various formats (original Photoshop and Illustrator files, PNG and GIF) and sizes can be found over at &lt;a href="http://www.theblogicon.com/"&gt;http://www.theblogicon.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or you can read &lt;a href="http://blog.brendanmitchell.com/2009/03/20/standard-blog-icon/"&gt;Brendan’s original blog post&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 27 Apr 2011 00:30:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/a-standard-universal-blog-icon/</guid>
    </item>
    <item>
      <title>Prestashop Forge</title>
      <link>http://www.markhesketh.co.uk/blog/prestashop-forge/</link>
      <description>&lt;p&gt;The Presta team have released a new collaborative tool, for Prestashop developers and contributors to track issues and solutions to the PrestaShop core software, replacing the original bug tracker.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-04-26-at-09.50.09-600x429.png" alt="Created vs Resolved Chart" /&gt;&lt;/p&gt;

&lt;p&gt;The tool has a bunch of features such as SVN manager, feature requests, issue tracking and &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;agile planning&lt;/a&gt;, based on tools developed by &lt;a href="http://www.atlassian.com/"&gt;Atlassian&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This set of tools and tracking will hopefully propel PrestaShop’s development, getting updates to the community much faster, with more transparency regarding updates and the status of new features, which have been severely lacking for some time.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.markhesketh.co.uk/image/uploads/posts/screen-shot-2011-04-26-at-10.01.43-600x319.png" alt="Prestaforge Homepage" /&gt;&lt;/p&gt;

&lt;p&gt;This will allow developers such as myself to track Prestashop and be prepared for upcoming features and updates, ensuring modules, themes and such are compliant. For instance, the tool has put a release date of 11th May for Prestashop 1.4.2, information that has not been so readily available in the past.&lt;/p&gt;

&lt;p&gt;Find PrestaShop Forge over at: &lt;a href="http://forge.prestashop.com/"&gt;http://forge.prestashop.com/&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 26 Apr 2011 00:24:00 +0100</pubDate>
      <guid>http://www.markhesketh.co.uk/blog/prestashop-forge/</guid>
    </item>
  </channel>
</rss>
