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

<channel>
	<title>Ghosthorses &#124; Web Design &#38; Development by Stephen Fairbanks - based in Manchester</title>
	<atom:link href="http://www.ghosthorses.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ghosthorses.co.uk</link>
	<description>HTML5, CSS3, Responsive, WordPress goodness.</description>
	<lastBuildDate>Fri, 22 Mar 2013 19:39:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Super Simple Responsive Progress Bar</title>
		<link>http://www.ghosthorses.co.uk/production-diary/super-simple-responsive-progress-bar/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/super-simple-responsive-progress-bar/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 19:27:02 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[progress bar]]></category>
		<category><![CDATA[responsive]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1517</guid>
		<description><![CDATA[Recently for a project I threw together a quick animated and responsive Progress Bar making use of the HTML5 data-attribute. It&#8217;s a nice and simple snippet which is easy to implement, though you&#8217;ll need jQuery. Example: HTML: &#60;div class="progress-wrap progress" data-progress-percent="25"&#62; &#60;div class="progress-bar progress"&#62;&#60;/div&#62; &#60;/div&#62; CSS: .progress { width: 100%; height: 50px; } .progress-wrap {...]]></description>
				<content:encoded><![CDATA[<p>Recently for a project I threw together a quick animated and responsive Progress Bar making use of the HTML5 data-attribute.</p>
<p>It&#8217;s a nice and simple snippet which is easy to implement, though you&#8217;ll need <a href="http://jquery.com/download/" target="_blank">jQuery</a>.</p>
<h4>Example:</h4>
<div class="demonstration">
<div class="progress-wrap progress" data-progress-percent="25">
<div class="progress-bar progress"></div>
</div>
</div>
<h4>HTML:</h4>
<p><code><br />
&lt;div class="progress-wrap progress" data-progress-percent="25"&gt;<br />
    &lt;div class="progress-bar progress"&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
</code></p>
<h4>CSS:</h4>
<p><code><br />
.progress {<br />
width: 100%;<br />
height: 50px;<br />
}<br />
.progress-wrap {<br />
background: #f80;<br />
margin: 20px 0;<br />
overflow: hidden;<br />
position: relative;<br />
}<br />
.progress-bar {<br />
background: #ddd;<br />
left: 0;<br />
position: absolute;<br />
top: 0;<br />
}<br />
</code></p>
<h4>JS:</h4>
<p><code><br />
// on page load...<br />
moveProgressBar();<br />
// on browser resize...<br />
$(window).resize(function() {<br />
moveProgressBar();<br />
});<br />
// SIGNATURE PROGRESS<br />
function moveProgressBar() {<br />
var getPercent = ($('.progress-wrap').data('progress-percent') / 100);<br />
var getProgressWrapWidth = $('.progress-wrap').width();<br />
var progressTotal = getPercent * getProgressWrapWidth;<br />
var animationLength = 2500;<br />
// on page load, animate percentage bar to data percentage length<br />
$('.progress-bar').animate({<br />
left: progressTotal<br />
}, animationLength);<br />
}<br />
</code></p>
<h4>Have a play&#8230;</h4>
<p><strong>CodePen:</strong> <a href="http://codepen.io/thathurtabit/pen/ymECf" title="See it on CodePen" target="_blank">http://codepen.io/thathurtabit/pen/ymECf</a><br />
<strong>Gist:</strong> <a href="https://gist.github.com/thathurtabit/5224126" title="See it on Gist" target="_blank">https://gist.github.com/thathurtabit/5224126</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/super-simple-responsive-progress-bar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing Grunt on OS X and Windows 7</title>
		<link>http://www.ghosthorses.co.uk/production-diary/installing-grunt-on-os-x-and-windows-7/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/installing-grunt-on-os-x-and-windows-7/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 12:01:53 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[grunt]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1490</guid>
		<description><![CDATA[Coming primarily from a PC-based development background, I thought it might be useful to provide a step by step guide to installing Grunt on a Mac as well as a Windows 7 PC. Firstly, Grunt (currently v0.4.0 at the time of writing) is a JavaScript-based task runner; it allows for the automation of repetitive coding...]]></description>
				<content:encoded><![CDATA[<p>Coming primarily from a PC-based development background, I thought it might be useful to provide a step by step guide to installing <a href="http://gruntjs.com/" title="Grunt - The JavaScript Task Runner" target="_blank">Grunt</a> on a Mac as well as a Windows 7 PC.</p>
<p>Firstly, Grunt (currently v0.4.0 at the time of writing) is a JavaScript-based task runner; it allows for the automation of repetitive coding tasks allowing you to spend more time on the parts of your project that needs it, or to give Grunt&#8217;s own definition:</p>
<blockquote><p>The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes.</p></blockquote>
<p> which sounds pretty great to me.</p>
<h4>Jump to</h4>
<ul>
<li><a href="#grunt_mac">Installing Grunt for Mac OS X</a></li>
<li><a href="#grunt_win7">Installing Grunt for Windows 7</a></li>
</ul>
<h3 id="grunt_mac">Installing Grunt for Mac OS X</h3>
<p>Firstly, you&#8217;ll need to install the <a href="http://nodejs.org/" title="Node JS" target="_blank">Node.js</a> package manager.</p>
<p>Hopefully this will be done automatically for you using the installer (.pkg) that can be downloaded from the <a href="http://nodejs.org/" title="Node JS" target="_blank">Node website</a>, but if you&#8217;re having problems, you might be able to install a <a href="http://howtonode.org/how-to-install-nodejs" target="_blank">different way</a>.</p>
<p>Open <a href="http://en.wikipedia.org/wiki/Terminal_(OS_X)" target="_blank">Terminal</a>, and make sure the Node package manager is installed by typing &#8216;npm&#8217; and hitting enter, i.e.</p>
<p><code>Macbook-Name:~ yournamehere$ npm</code></p>
<p>If installed correctly, it will give you a list of information such as: </p>
<p><code>Usage: npm < command></code></p>
<p>If Terminal is not recognising the &#8216;npm&#8217; command, you&#8217;ll need to try to install in again, perhaps using a different method.</p>
<p>Now, to install Grunt, you&#8217;ll need the Grunt CLI (Command Line Interface). In case you&#8217;ve installed Grunt before and forgot about it (it happens) it&#8217;s recommend that you remove it and start afresh for our purposes. In Terminal, type:</p>
<p><code>npm uninstall -g grunt</code></p>
<p>For me, as Grunt was not installed, I received the message:</p>
<p><code>npm WARN uninstall not installed in /usr/local/lib/node_modules: "grunt"</code> </p>
<p>I then needed to install Grunt CLI globally by typing:</p>
<p><code>npm install -g grunt-cli</code></p>
<p>For me this gave me the error code: EACCES, which is seemingly a permission error, so instead I tried:</p>
<p><code>sudo npm install -g grunt-cli</code></p>
<p>Which installed the Grunt CLI successfully.</p>
<p><strong>Note</strong>, that this only installs the Grunt CLI (not the Grunt task runner). The idea for this is that the Grunt CLI will look for the custom version of Grunt and the Grunt plugins for each project using the Gruntfile provided in the root directory of your project. For more information on setting up a new Grunt project or working with an existing Grunt project, see the official Grunt getting started guide <a href="http://gruntjs.com/getting-started#working-with-an-existing-grunt-project" target="_blank">here</a>.</p>
<h3 id="grunt_win7">Installing Grunt for Windows 7</h3>
<p>Firstly, you&#8217;ll need to install the <a href="http://nodejs.org/" title="Node JS" target="_blank">Node.js</a> package manager.</p>
<p>Hopefully this will be done automatically for you using the installer (.msi) that can be downloaded from the <a href="http://nodejs.org/" title="Node JS" target="_blank">Node website</a>, but if you&#8217;re having problems, you might be able to install a <a href="http://howtonode.org/how-to-install-nodejs" target="_blank">different way</a>.</p>
<p>Open <a href="http://en.wikipedia.org/wiki/Command_Prompt" title="Command Prompt (Windows 7)" target="_blank">Command Prompt</a> (to do this you can go to Start and type cmd.exe) and make sure the Node package manager is installed by typing &#8216;npm&#8217; and hitting enter, i.e.</p>
<p><code>C:\Users\YourName> npm</code></p>
<p>If installed correctly, it will give you a list of information such as: </p>
<p><code>Usage: npm < command></code></p>
<p>If Command Prompt is not recognising the &#8216;npm&#8217; command, you&#8217;ll need to try to install in again, perhaps using a different method.</p>
<p>Now, to install Grunt, you&#8217;ll need to install Grunt CLI (Command Line Interface). In case you&#8217;ve installed Grunt before and forgot about it (it happens) it&#8217;s recommend that you remove it and start afresh for our purposes. In Terminal, type:</p>
<p><code>npm uninstall -g grunt</code></p>
<p>For me, as Grunt was not installed, I received the message:</p>
<p><code>npm WARN uninstall not installed in C:\Users\MyName\AppData\Roaming\npm\node_modules: "grunt"</code> </p>
<p>I then needed to install Grunt CLI globally by typing:</p>
<p><code>npm install -g grunt-cli</code></p>
<p><strong>Note</strong>, that this only installs the Grunt CLI (not the Grunt task runner). The idea for this is that the Grunt CLI will look for the custom version of Grunt and the Grunt plugins for each project using the Gruntfile provided in the root directory of your project. For more information on setting up a new Grunt project or working with an existing Grunt project, see the official Grunt getting started guide <a href="http://gruntjs.com/getting-started#working-with-an-existing-grunt-project" target="_blank">here</a>.</p>
<h3>Sources:</h3>
<ul>
<li><a href="http://gruntjs.com" title="Grunt JS " target="_blank">Gruntjs.com</a></li>
<li><a href="http://nodejs.org/" title="NodeJs" target="_blank">Nodejs.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/installing-grunt-on-os-x-and-windows-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FretMap</title>
		<link>http://www.ghosthorses.co.uk/portfolio/fretmap/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/fretmap/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 12:02:27 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Personal Project]]></category>
		<category><![CDATA[Free]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=portfolio&#038;p=1468</guid>
		<description><![CDATA[FretMap - Learn guitar scales and notation with this free interactive fretboard. Grab a scale and get playin' It's free and stuff.]]></description>
				<content:encoded><![CDATA[<p>FretMap is  a tiny web application built to help people master the guitar.</p>
<p>The application works by allowing them to easily visualise the notes on a fretboard in all keys and in a number of different scale.</p>
<p>It&#8217;s also lightweight and responsive (and free!), allowing people to quickly reference FretMap on any device with an internet connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/fretmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy 2013!</title>
		<link>http://www.ghosthorses.co.uk/production-diary/happy-2013/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/happy-2013/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 16:32:28 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Personal Project]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1452</guid>
		<description><![CDATA[Today you may have dragged yourself back to your day job after living it up over Xmas and New Year (I hope you had a good’n). As many people do, I&#8217;ve set myself some goals to achieve in 2013 both in work-time and spare-time. Outside of work I&#8217;m hoping to complete my first (and possibly...]]></description>
				<content:encoded><![CDATA[<p>Today you may have dragged yourself back to your day job after living it up over Xmas and New Year (I hope you had a good’n).</p>
<p>As many people do, I&#8217;ve set myself some goals to achieve in 2013 both in work-time and spare-time.</p>
<p>Outside of work I&#8217;m hoping to complete my first (and possibly last) marathon run in Manchester in April, which means I need to get running RIGHT NOW. I also hope find the time further improve my perpetually below-average guitar playing skills after improving slightly over the last few months. I also need to make sure I manage my the work-time and spare-time better, keeping a healthy balance.</p>
<p>In work or work-related time, I need to continue to improve my scheduling and time-saving skills, making sure I keep myself motivated to get the best out of each day (I&#8217;ve bored friends and family over Xmas with how amazing and useful <a title="Google Drive" href="https://drive.google.com" target="_blank">Google Docs / Drive</a> can be in everyone’s daily routine and beyond).</p>
<p>On the subject of Google, I can’t stress how useful <a title="Google Reader" href="http://www.google.com/reader/" target="_blank">Google Reader</a> can be for gathering really awesome articles on whichever subject you’re interested in, particularly in my case keeping me abreast of the latest goings on in the digital word (as well as keeping me up to date on my fave film and music web-casts).</p>
<p>One of the longer term goals which has been rattling around in my head for a while which I&#8217;ve yet to find the time to act on is to properly learn and experiment with JS WebGL development and animation. I&#8217;m going to read through <a title="WebGL - Up and Running" href="http://shop.oreilly.com/product/0636920024729.do" target="_blank">WebGL: Up and Running</a> by <a title="Follow Tony Parisi on Twitter" href="https://twitter.com/auradeluxe" target="_blank">Tony Parisi</a> and hopefully get me going on building a small WebGL game that has gestating in my brain chambers for years.</p>
<p>Anyhoo, January is a great excuse to re-evaluate where you’re heading and how you’re doing it, the trick is keeping motivated and excited about what you’re doing. I wish you (and myself) the best of luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/happy-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rose Does Art</title>
		<link>http://www.ghosthorses.co.uk/portfolio/rose-does-art-2/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/rose-does-art-2/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 10:23:34 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Illustration]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=portfolio&#038;p=1438</guid>
		<description><![CDATA[Rose Does Art is a small, simple and responsive website I designed and built for Illustrator Rose Greenfield in between other recent projects. The main goal of the website is to allow the work of the illustrator to shine through as clearly as possible, allowing people to enjoy the content and move fluidly through the...]]></description>
				<content:encoded><![CDATA[<p>Rose Does Art is a small, simple and responsive website I designed and built for Illustrator Rose Greenfield in between other recent projects.</p>
<p>The main goal of the website is to allow the work of the illustrator to shine through as clearly as possible, allowing people to enjoy the content and move fluidly through the website information to the external online store on any device.</p>
<p>To allow the illustrator to have full control of their content, the website is built on the WordPress CMS. This not only allows for artwork to be added, edited or deleted, but also allows the artist to give her thoughts on her work through her blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/rose-does-art-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WeConvene Holding Page</title>
		<link>http://www.ghosthorses.co.uk/portfolio/weconvene-holding-page/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/weconvene-holding-page/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 10:24:27 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Launch]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=portfolio&#038;p=1417</guid>
		<description><![CDATA[This is the responsive holding page for the WeConvene project that I&#8217;m currently working on. It&#8217;s reasonably hush-hush at the moment, so I won&#8217;t go into much detail about the project itself (information can be found on the holding page), but the scope of the holding page was to design and create an engaging and...]]></description>
				<content:encoded><![CDATA[<p>This is the responsive holding page for the WeConvene project that I&#8217;m currently working on.</p>
<p>It&#8217;s reasonably hush-hush at the moment, so I won&#8217;t go into much detail about the project itself (information can be found on the holding page), but the scope of the holding page was to design and create an engaging and responsive teaser for the full project which will be appearing in the next few months.</p>
<p>The holding page makes the most of simple, bold typography and colour schemes as well as white-space and relatively targeted jQuery sections and CSS3 transitions and animations.</p>
<p><strong>UPDATE: </strong> The holding page has been shortened for the next few weeks and the full version will be back up again soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/weconvene-holding-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crumbs theme &#8211; &#8216;A placeholder for payment&#8217;</title>
		<link>http://www.ghosthorses.co.uk/production-diary/crumbs-theme-a-placeholder-for-payment/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/crumbs-theme-a-placeholder-for-payment/#comments</comments>
		<pubDate>Tue, 07 Aug 2012 17:08:29 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Personal Project]]></category>
		<category><![CDATA[annoyance]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[invoices]]></category>
		<category><![CDATA[late payment]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1402</guid>
		<description><![CDATA[I recently realised that a worrying number of clients I&#8217;ve worked with this year have been tardy with their invoice payments. This is nothing new, all freelancers have to go through the stress and annoyance of having to chase up late or non-paying clients, politely emailing and patiently waiting until the client decides to kick...]]></description>
				<content:encoded><![CDATA[<p>I recently realised that a worrying number of clients I&#8217;ve worked with this year have been tardy with their invoice payments.</p>
<p>This is nothing new, all freelancers have to go through the stress and annoyance of having to chase up late or non-paying clients, politely emailing and patiently waiting until the client decides to kick themselves into gear and clear their invoices for the all the hard work you&#8217;ve done for them. But what happens when they don&#8217;t?</p>
<p>If you&#8217;ve exhausted all methods of solving the issue amicably (i.e. friendly reminders, reissuing the invoices, alternative payment schedules, phone calls, etc.) it may be time to get tough.</p>
<p>So, today I&#8217;ve created the <a href="http://crumbs.thathurtabit.com" title="Crumbs Theme" target="_blank">Crumbs theme</a> &#8211; a free WordPress theme and/or static placeholder to be uploaded onto the clients server in place of their current website they have not yet paid for.</p>
<p>Crumbs aims to <em>politely</em> take down their website with no detrimental impact on their should-be-paid-for theme or website. As soon as the client has cleared their outstanding invoices, the Crumbs theme can be quickly and easily removed, just a click or two.</p>
<p>I&#8217;ve uploaded the theme onto <a href="http://github.com/thathurtabit/crumbs" title="Crumbs Theme on Github" target="_blank">github</a> where people can download or branch or do whateverthehelltheywant, really.</p>
<p>I hope it helps.</p>
<p><a href="http://crumbs.thathurtabit.com" title="View the Crumbs website" class="btn-blue" target="_blank">View Crumbs Theme</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/crumbs-theme-a-placeholder-for-payment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Qwota 2.0</title>
		<link>http://www.ghosthorses.co.uk/portfolio/qwota/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/qwota/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 08:35:55 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Personal Project]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[grey]]></category>
		<category><![CDATA[orange]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?p=762</guid>
		<description><![CDATA[Qwota's aim is to provide a method of collecting and displaying people’s favourite and most inspiring ‘one-liners’.]]></description>
				<content:encoded><![CDATA[<p>The concept behind Qwota is to provide a method of collecting and displaying people’s favourite and most inspiring ‘one-liners’, whether that be a lyric from a song, a line from a film, a snippet from a newspaper or just… anything that excites.</p>
<p>Qwota is an experimental website made from a mix of different open-source software, frameworks and plugins. Version 2.0 has been redesigned to be responsive to different browser types and to improve UI/UX as well as using the jQuery Isotope plugin to arrange the quotes.</p>
<p>Each quote comes with further information about who said it, when they said it, and hopefully a interesting link to where people can find out more information on the text. Also, as a finder’s fee, contributors can include their own name and website address to each quote they add. If people like and decide to vote for their contributed quote, then they and their quote can sit pretty at the top of either the Popular Quotes or Top Contributors leaderboard.</p>
<p>Qwota was made using <a title="Twitter Bootstrap" href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a>, <a href="www.rootstheme.com/" target="_blank" title="Roots WordPress Bootstrap">Roots</a>, <a href="http://fortawesome.github.com/Font-Awesome/" target="_blank" title="Font Awesome">Font Awesome</a>, <a title="HTML5" href="http://www.html5rocks.com/en/" target="_blank">HTML5</a>, <a title="CSS3" href="http://www.css3.info/" target="_blank">CSS3</a>, <a title="jQuery UI" href="http://jqueryui.com/" target="_blank">jQuery UI</a>, <a title="Modernizr" href="http://www.modernizr.com/" target="_blank">Modernizr</a>, <a href="http://isotope.metafizzy.co/" title="jQuery Isotope plugin" target="_blank">Isotope</a>, (Previously <a title="jQuery Quicksand Plugin" href="http://razorjack.net/quicksand/" target="_blank">Quicksand plugin</a>), <a title="WordPress" href="http://wordpress.org" target="_blank">WordPress</a>, and with help from the kindly <a title="Stackoverflow" href="http://stackoverflow.com/" target="_blank">Stackoverflow</a> community.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/qwota/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;We&#8217;ve Thought Up The Next Facebook.&#8221;</title>
		<link>http://www.ghosthorses.co.uk/production-diary/weve-thought-up-the-next-facebook/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/weve-thought-up-the-next-facebook/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 13:45:02 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Gripes]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[pro bono]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1379</guid>
		<description><![CDATA[The below text is an example of an email I &#8211; and I&#8217;m sure many of other Freelance Designers / Developers &#8211; get all too often. It goes a little something like this: Dear Sir / Madaaaam, We&#8217;ve just come across your work and we think you would be a good match to work on...]]></description>
				<content:encoded><![CDATA[<p>The below text is an example of an email I &#8211; and I&#8217;m sure many of other Freelance Designers / Developers &#8211; get all too often. It goes a little something like this:</p>
<blockquote class="letter"><p>
Dear Sir / Madaaaam,</p>
<p>We&#8217;ve just come across your work and we think you would be a good match to work on our super-exciting new project.</p>
<p>I&#8217;m sure you hear this all the time, but we really think we&#8217;ve thought up the next Facebook / Next-Huge-Thing. We really think it&#8217;s going to be worth billions.</p>
<p>We&#8217;d really love for you to spend months of your time working on a design and developing our half thought-out ideas in the hope that you will make us very, very rich.</p>
<p>Unfortunately we can&#8217;t afford to pay you anything.</p>
<p>Would this be of interest to you?</p>
<p>Sincerly,</p>
<p>Some Person.
</p></blockquote>
<p>Now I appreciate that some of these people will have legitimately awesome ideas and they&#8217;re genuinely looking for someone to help facilitate their dreams, but it seems these people care little for the time and effort required of the Designer / Developer they&#8217;re looking to hire / bleed dry.</p>
<p>Freelance Designers and Developers are just like every other small company on the planet in that we don&#8217;t have a huge amount of cash and are often going from job to job in the effort to pay the rent, pay taxes, pay the bills, feed the cat and we&#8217;re not always in the position to work pro bono on anything, least of all a lengthy project that will only seemingly benefit the non-paying client.</p>
<p>This is an old adage, but would you really approach an architect &#038; construction company and say: &#8220;Hey! I&#8217;ve had an AMAZING idea for a skyscraper that I want to create that will make me GAZILLIONS of pounds! I&#8217;d like you for you build it for me&#8230; but I&#8217;m not going to pay you. INTERESTED?&#8221;</p>
<p>Because if we did that, we would be being very disrespectful and well, pretty stupid.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/weve-thought-up-the-next-facebook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Incredibly Annoying Search Engine</title>
		<link>http://www.ghosthorses.co.uk/portfolio/the-incredibly-annoying-search-engine/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/the-incredibly-annoying-search-engine/#comments</comments>
		<pubDate>Wed, 30 May 2012 09:24:10 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Personal Project]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[search engine]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=portfolio&#038;p=1364</guid>
		<description><![CDATA[In my spare time recently I’ve been working on a experimental little side project which provides pretty much no beneficial outcome to anyone who would use it; I call it: The Incredibly Annoying Search Engine. The idea came earlier this year when I became very frustrated with a website that asked me to enter information...]]></description>
				<content:encoded><![CDATA[<p>In my spare time recently I’ve been working on a experimental little side project which provides pretty much no beneficial outcome to anyone who would use it; I call it: The Incredibly Annoying Search Engine.</p>
<p>The idea came earlier this year when I became very frustrated with a website that asked me to enter information and then refused to do anything with it… simply giving me an endless ‘loading’ image instead. AGH.</p>
<p>And so, I decided to use this incredibly annoying user experience and use it for good – or rather bad – and use it to experiment and learn about user interactions with the web, what they expect, and how websites can manipulate people into giving personal information simply through ‘looking trustworthy’. The site is also makes use of <a title="Google Analytics" href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> to gauge how well people are responding to the user interface and how long they are willing to remain on the website waiting for something to happen.</p>
<p>The website was also a chance to experiment more with CSS3 animations, responsive layouts, UI, UX as well as jQuery, Ajax and PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/the-incredibly-annoying-search-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding cropping support for WordPress medium thumbs</title>
		<link>http://www.ghosthorses.co.uk/production-diary/adding-cropping-support-for-wordpress-medium-thumbs/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/adding-cropping-support-for-wordpress-medium-thumbs/#comments</comments>
		<pubDate>Tue, 15 May 2012 11:03:30 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[thumbs]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1349</guid>
		<description><![CDATA[If you&#8217;re making the most out of WordPress&#8217;s media gallery for adding images and auto-lovely thumbnails to your site, you may notice there&#8217;s no option for cropping your medium sized thumbs. As of WordPress 3.0.2 and earlier, only the WordPress Thumbnail image property includes the functionality to crop the image down to the exact dimensions...]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re making the most out of WordPress&#8217;s media gallery for adding images and auto-lovely thumbnails to your site, you may notice there&#8217;s no option for cropping your medium sized thumbs.</p>
<p>As of WordPress 3.0.2 and earlier, only the WordPress Thumbnail image property includes the functionality to crop the image down to the exact dimensions referenced in your Settings > Media page; whereas quite often you&#8217;ll need to crop down your medium sizes images too to keep them consistent throughout your website.</p>
<p>I&#8217;ve just come across this little snippet in the WordPress forums which may be useful to others.</p>
<h4>Add the following code block to your Functions.php file:</h4>
<p><code>// Add support for cropping default WordPress medium images -<br />
  	if(!get_option("medium_crop"))<br />
  		add_option("medium_crop", "1");<br />
  	else<br />
    	update_option("medium_crop", "1");</code></p>
<h4>Sources:</h4>
<ul>
<li><a href="http://wordpress.org/support/topic/force-crop-to-medium-size" target="_blank">http://wordpress.org/support/topic/force-crop-to-medium-size</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/adding-cropping-support-for-wordpress-medium-thumbs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Auto update WordPress plugins on localhost XAMPP on Mac OSX</title>
		<link>http://www.ghosthorses.co.uk/production-diary/auto-update-wordpress-plugins-on-localhost-xampp-on-mac-osx/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/auto-update-wordpress-plugins-on-localhost-xampp-on-mac-osx/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 18:49:01 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?post_type=production-diary&#038;p=1336</guid>
		<description><![CDATA[Coming from a mainly PC background I rarely had any problems setting up a local version of a WordPress install through XAMPP, however, doing the same on a Mac seems far more problematic. The problem comes when trying to auto-update my local WordPress install along with its plugins on my Macbook (OSX 10.7.3). WordPress would...]]></description>
				<content:encoded><![CDATA[<p>Coming from a mainly PC background I rarely had any problems setting up a local version of a WordPress install through XAMPP, however, doing the same on a Mac seems far more problematic.</p>
<p>The problem comes when trying to auto-update my local WordPress install along with its plugins on my Macbook (OSX 10.7.3). WordPress would continue to request &#8216;Connection Information&#8217; with regards to my FTP details which I could not bypass.</p>
<p>After a bit of snooping around the web, I did the following:</p>
<h4>Open Terminal</h4>
<p>Navigate to your home directory and type:<br />
<code>ls -al</code></p>
<p>Note your username, i.e. &#8216;joebloggs&#8217;</p>
<p>Then type:<br />
<code>sudo open -e "/Applications/XAMPP/etc/httpd.conf"</code><br />
(making sure your quotemarks are not the fancy versions, but rather the standard &#8211; if you&#8217;ve installed XAMPP in another directory, update the above to your file structure)</p>
<p>This should hopefully open TextEdit, where you want to find the section:<br />
<code>User nobody<br />
Group admin</code><br />
(note: I had to scroll down the list using my keyboard down arrow)</p>
<p>You need to then update this section to say:<br />
<code> User joebloggs (or whatever your username is)<br />
Group staff</code></p>
<p>I had the problem where my Mac would not allow me to edit the &#8216;httpd.conf&#8217; file due to permissions and instead I had to create a duplicate version which I later used to save over the original. I also had the problem where although I told my TextEdit to save the file as &#8216;httpd.conf&#8217; it saved it as &#8216;httpd.conf.txt&#8217;. To correct this, I had find the file info in my Finder window and change the &#8216;Name and Extension&#8217; properties to the correct &#8216;httpd.conf&#8217;</p>
<p>Once your updated &#8216;httpd.conf&#8217; file is saved in your &#8216;/Applications/XAMPP/etc/httpd.conf&#8217; directory (or where ever you&#8217;ve installed XAMPP) you will then need to turn off and then turn on your Apache, MySQL, FTP functions through the XAMPP control panel. This should hopefully clear any permissions problems allowing you to auto update and download new version of your WordPress install and plugins.</p>
<h4>Sources:</h4>
<ul>
<li><a href="http://www.messaliberty.com/2010/04/how-to-fix-wordpress-automatic-upgrades-and-plugin-installs-on-xampp/" target="_blank">http://www.messaliberty.com/2010/04/how-to-fix-wordpress-automatic-upgrades-and-plugin-installs-on-xampp/</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/auto-update-wordpress-plugins-on-localhost-xampp-on-mac-osx/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Less CSS with Crunch App</title>
		<link>http://www.ghosthorses.co.uk/production-diary/less-css-with-crunch-app/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/less-css-with-crunch-app/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 11:57:51 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[less]]></category>

		<guid isPermaLink="false">http://gh6.ghosthorses.co.uk/?post_type=production-diary&#038;p=899</guid>
		<description><![CDATA[Like many web designers, I like the ease and the simplicity of CSS and have been very much of the thought; &#8220;if it ain&#8217;t broke, don&#8217;t go making it complicated&#8221;. That is until recently where I&#8217;ve found myself repeatedly writing 5 lots of vendor prefixes for something like CSS3&#8242;s rounded corners&#8230; so I decided to...]]></description>
				<content:encoded><![CDATA[<p>Like many web designers, I like the ease and the simplicity of <abbr title="Cascading Stylesheets">CSS</abbr> and have been very much of the thought; &#8220;if it ain&#8217;t broke, don&#8217;t go making it complicated&#8221;.</p>
<p>That is until recently where I&#8217;ve found myself repeatedly writing 5 lots of vendor prefixes for something like CSS3&#8242;s rounded corners&#8230; so I decided to experiment with <a href="http://lesscss.org/" target="_blank">LESS</a> - a &#8216;dynamic stylesheet language&#8217; that extends the capabilities of regular CSS to allow for sorely missed features such as variables, mixins, nested rules as well as functions and operations.</p>
<p>There are a couple of options on how to allow LESS to extend your CSS, but the best option I&#8217;ve found so far is using the <a href="http://crunchapp.net/" target="_blank">Crunch app</a>, which runs as stand-alone software on your computer (no server-side messing) and outputs your LESS into regular CSS as well as minimising it (to a degree) stripping out all your comments and superfluous line-breaks.</p>
<p>The most beneficial feature of LESS and one of the many reasons why I would be reluctant to go back to writing regular CSS, is that it allows for the fiddliest parts of CSS3 features to be wielded quickly and easily, potentially boosting your website&#8217;s awesomeness no end.</p>
<p>For example, for something as simple as a CSS transition, in standard CSS you would have to write out something like this:</p>
<h4>Regular CSS3 transition:</h4>
<p><code>div:hover {<br />
transition: all 2s ease-in-out; /* Standard */<br />
-moz-transition: all 2s ease-in-out; /* Firefox 4 */<br />
-webkit-transition: all 2s ease-in-out; /* Safari and Chrome */<br />
-o-transition: all 2s ease-in-out; /* Opera */<br />
-ms-transition: all 2s ease-in-out; /* IE */<br />
}</code></p>
<h4>CSS3 Transition with LESS:</h4>
<p>From LESS mixin file:<br />
<code>.transition(@type: all, @duration: 0.3s, @ease: ease-in-out) {<br />
transition: @type @duration @ease; /* Standard */<br />
-moz-transition: @type @duration @ease; /* Firefox 4 */<br />
-webkit-transition: @type @duration @ease; /* Safari and Chrome */<br />
-o-transition: @type @duration @ease; /* Opera */<br />
-ms-transition: @type @duration @ease; /* IE */<br />
}</code></p>
<p>Now my transition becomes:<br />
<code>div:hover {<br />
.transition(all, 0.5s, ease-out);<br />
}</code></p>
<p>Which outputs into CSS as:<br />
<code>div:hover {<br />
transition: all 0.5s ease-out; /* Standard */<br />
-moz-transition: all 0.5s ease-out; /* Firefox 4 */<br />
-webkit-transition: all 0.5s ease-out; /* Safari and Chrome */<br />
-o-transition: all 0.5s ease-out; /* Opera */<br />
-ms-transition: all 0.5s ease-out; /* IE */<br />
}</code></p>
<p>The beauty is you can quickly and easily call all vendor prefixes for the specific CSS3 transition as well as feeding it different parameters by simply writing a short line of code instead of maybe 8.</p>
<p>This is just the tip of the iceberg with regards to have much time and power LESS lends to CSS &#8211; I strongly urge everyone to have a play.</p>
<h4>Sources:</h4>
<ul>
<li><a href="http://lesscss.org/" target="_blank">http://lesscss.org/</a></li>
<li><a href="http://crunchapp.net/" target="_blank">http://crunchapp.net/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/less-css-with-crunch-app/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Removing inline img dimensions for responsive WordPress websites</title>
		<link>http://www.ghosthorses.co.uk/production-diary/removing-inline-img-dimensions-for-responsive-wordpress-websites/</link>
		<comments>http://www.ghosthorses.co.uk/production-diary/removing-inline-img-dimensions-for-responsive-wordpress-websites/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:33:10 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://gh6.ghosthorses.co.uk/?post_type=production-diary&#038;p=1063</guid>
		<description><![CDATA[This handy code snippet hooks into WordPress&#8217;s image_downsize function and removes the hardcoded img attributes width &#38; height, allowing images to scale with responsive websites: In your functions.php file&#8230; /** * This is a modification of image_downsize() function in wp-includes/media.php * we will remove all the width and height references, therefore the img tag *...]]></description>
				<content:encoded><![CDATA[<p>This handy code snippet hooks into WordPress&#8217;s image_downsize function and removes the hardcoded img attributes width &amp; height, allowing images to scale with responsive websites:</p>
<h4>In your functions.php file&#8230;</h4>
<p><code>/**<br />
* This is a modification of image_downsize() function in wp-includes/media.php<br />
* we will remove all the width and height references, therefore the img tag<br />
* will not add width and height attributes to the image sent to the editor.<br />
*<br />
* @param bool false No height and width references.<br />
* @param int $id Attachment ID for image.<br />
* @param array|string $size Optional, default is 'medium'. Size of image, either array or string.<br />
* @return bool|array False on failure, array on success.<br />
*/</p>
<p>function myprefix_image_downsize( $value = false, $id, $size ) {<br />
if ( !wp_attachment_is_image($id) )<br />
return false;<br />
$img_url = wp_get_attachment_url($id);<br />
$is_intermediate = false;<br />
$img_url_basename = wp_basename($img_url);<br />
// try for a new style intermediate size<br />
if ( $intermediate = image_get_intermediate_size($id, $size) ) {<br />
$img_url = str_replace($img_url_basename, $intermediate['file'], $img_url);<br />
$is_intermediate = true;<br />
}<br />
elseif ( $size == 'thumbnail' ) {<br />
// Fall back to the old thumbnail<br />
if ( ($thumb_file = wp_get_attachment_thumb_file($id)) &amp;&amp; $info = getimagesize($thumb_file) ) {<br />
$img_url = str_replace($img_url_basename, wp_basename($thumb_file), $img_url);<br />
$is_intermediate = true;<br />
}<br />
}<br />
// We have the actual image size, but might need to further constrain it if content_width is narrower<br />
if ( $img_url) {<br />
return array( $img_url, 0, 0, $is_intermediate );<br />
}<br />
return false;<br />
}</code></p>
<p>And then below the above in your functions.php file add the following to hook it into WordPress&#8217;s core:</p>
<p><code>/* Remove the height and width refernces from the image_downsize function.<br />
* We have added a new param, so the priority is 1, as always, and the new<br />
* params are 3.<br />
*/<br />
add_filter( 'image_downsize', 'myprefix_image_downsize', 1, 3 );</code></p>
<h4>Sourced from:</h4>
<ul>
<li><a href="http://wordpress.stackexchange.com/questions/29881/stop-wordpress-from-hardcoding-img-width-and-height-attributes" target="_blank">http://wordpress.stackexchange.com/questions/29881/stop-wordpress-from-hardcoding-img-width-and-height-attributes</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/production-diary/removing-inline-img-dimensions-for-responsive-wordpress-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thathurtabit.com</title>
		<link>http://www.ghosthorses.co.uk/portfolio/thathurtabit/</link>
		<comments>http://www.ghosthorses.co.uk/portfolio/thathurtabit/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 10:17:10 +0000</pubDate>
		<dc:creator>Stephen Fairbanks</dc:creator>
				<category><![CDATA[Publicity]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.ghosthorses.co.uk/?p=708</guid>
		<description><![CDATA[Thathurtabit.com is a one-page promo to help launch myself as a freelance Web Designer and Developer.]]></description>
				<content:encoded><![CDATA[<p>Thathurtabit.com is a one-page promo to help launch myself as a freelance Web Designer and Developer.</p>
<p>The main aim of the promotion was to get people to spread the word about my services, as well as play around with trending technologies such as jQuery parallax.</p>
<p>The website is also responsive and adapts to different browser sizes, and devices with mouse capabilities can see a &#8217;3D&#8217; kinda movement wherein the main image moves and seems to wave.</p>
<p>CSS techniques such as the awesome @media-queries and @font-face were used to include custom type-faces, in this case, &#8216;Satisfy&#8217;  available free from <a href="http://www.google.com/webfonts/specimen/Satisfy" target="_blank">Google&#8217;s Web Fonts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghosthorses.co.uk/portfolio/thathurtabit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
