<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" 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/" version="2.0">

<channel>
	<title>Glen Scott - Keeping it simple</title>
	
	<link>http://www.glenscott.co.uk/blog</link>
	<description>Thoughts on software development and other geeky pursuits.</description>
	<lastBuildDate>Thu, 02 Feb 2012 11:35:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GlenScott-KeepingItSimple" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="glenscott-keepingitsimple" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Map invoke errors when using MongoDB MapReduce</title>
		<link>http://www.glenscott.co.uk/blog/2012/02/02/map-invoke-errors-when-using-mongodb-mapreduce/</link>
		<comments>http://www.glenscott.co.uk/blog/2012/02/02/map-invoke-errors-when-using-mongodb-mapreduce/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 11:34:33 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[mongodb]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=732</guid>
		<description><![CDATA[When running MapReduce operations on your data, you must make sure that any fields you refer to within your map operation are available for every document in your collection. If you try a map operation and some documents do not have the required field, you will get the following assertion error when running the command: [...]]]></description>
			<content:encoded><![CDATA[<p>When running MapReduce operations on your data, you must make sure that any fields you refer to within your map operation <strong>are available for every document</strong> in your collection.  If you try a map operation and some documents do not have the required field, you will get the following assertion error when running the command:</p>
<pre>map invoke failed: JS Error: TypeError: this.fieldname has no properties</pre>
<p><code>fieldname</code> in this case is a field that does not exist in all of the documents.</p>
<p>To prevent this error, you can pass the optional <code>query</code> parameter to the command to make sure that only documents with this field are queried.  For example, in PHP, add the following to the command operation:</p>
<pre name="code" class="php">

$db->command(
    'mapreduce' => 'collection',
    'map'       => $map,
    'reduce'    => $reduce,
    'out'       => array( 'inline' => 1 ),
    'query'     => array( "fieldname" => array( '$exists' => true, ) )
);
</pre>
<p>This makes sure that MapReduce operations are only run on a subset of the collection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2012/02/02/map-invoke-errors-when-using-mongodb-mapreduce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complaining to Virgin Media</title>
		<link>http://www.glenscott.co.uk/blog/2012/01/18/complaining-to-virgin-media/</link>
		<comments>http://www.glenscott.co.uk/blog/2012/01/18/complaining-to-virgin-media/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 09:01:01 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[broadband]]></category>
		<category><![CDATA[complain]]></category>
		<category><![CDATA[virgin]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=725</guid>
		<description><![CDATA[Yesterday, the 17th January 2012, Virgin Media broadband customers experienced partial or total loss of connectivity throughout the afternoon and evening. As one of those customers affected by the outage, I am making a formal complaint to the company. As I work from home and require internet connectivity at all times, this outage had a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/raver_mikey/3570914819/" title="&quot;Broadband power to all the people&quot; by Gene Hunt, on Flickr"><img src="http://farm4.staticflickr.com/3623/3570914819_1c2251f513.jpg" width="500" height="375" alt="&quot;Broadband power to all the people&quot;"></a></p>
<p>Yesterday, the 17th January 2012, Virgin Media broadband customers experienced partial or total loss of connectivity throughout the afternoon and evening.  As one of those customers affected by the outage, I am making a formal complaint to the company.  As I work from home and require internet connectivity at all times, this outage had a serious affect on my business.</p>
<p>For others that are considering complaining, here is how you can do it &#8212; it took me a fair bit of searching to find this, so I hope this is helpful to others.</p>
<p>Firstly, you may wish to read <a href="http://shop.virginmedia.com/content/dam/allyours/pdf/Consumer%20Complaint%20code%20Jan%2011.pdf">Virgin Media&#8217;s Code of Practice for complaints</a>.</p>
<p>To submit a complaint, you can use the web form located here:</p>
<p><a href="https://help.virginmedia.com/system/selfservice.controller?CONFIGURATION=1002&#038;PARTITION_ID=1&#038;TIMEZONE_OFFSET=&#038;USERTYPE=1&#038;VM_CUSTOMER_TYPE=Cable&#038;CMD=ESCALATION_REQUEST">Virgin Media &#8211; Contact Us</a></p>
<ol>
<li>Select <strong>General Enquiry</strong></li>
<li>Choose <strong>I have cable services</strong></li>
<li>Select <strong>Make a customer services complaint</strong></li>
<li>Click the red <strong>Next</strong> button at the bottom of the page</li>
</ol>
<p>This leads you to a contact form where you can submit your complaint.  You will also need you Virgin Media account number and the password you use for logging into the site.</p>
<p>Good luck!</p>
<p><small>Photo credit: Gene Hunt</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2012/01/18/complaining-to-virgin-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Freelance – Part 3</title>
		<link>http://www.glenscott.co.uk/blog/2012/01/09/going-freelance-part-3/</link>
		<comments>http://www.glenscott.co.uk/blog/2012/01/09/going-freelance-part-3/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 09:29:15 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[freelancing]]></category>
		<category><![CDATA[accounting]]></category>
		<category><![CDATA[freeagent]]></category>
		<category><![CDATA[invoicing]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=721</guid>
		<description><![CDATA[In Part 2, I mentioned how I used Google Docs as a way of managing business records. Although this turned out to be a reasonable solution, I soon found myself wanting something more bespoke. Enter FreeAgent. I heard a few other freelancers recommending this service, so I signed up for a free 30 day trial [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/teegardin/5913014568/" title="Balancing The Account By Hand by kenteegardin, on Flickr"><img src="http://farm7.staticflickr.com/6052/5913014568_a1f3148bf7.jpg" width="500" height="347" alt="Balancing The Account By Hand"></a></p>
<p>In <a href="/blog/2011/09/23/going-freelance-part-2/">Part 2</a>, I mentioned how I used <a href="http://docs.google.com/">Google Docs</a> as a way of managing business records.  Although this turned out to be a reasonable solution, I soon found myself wanting something more bespoke.</p>
<p>Enter <a href="http://www.freeagent.com">FreeAgent</a>.  I heard a few other freelancers recommending this service, so I signed up for a free 30 day trial to see what the fuss was about.  FreeAgent provides a way of managing your client details, invoices and tax affairs.  The interface is very slick and friendly, and means keeping on top of record keeping is now much less of a chore!</p>
<p>I&#8217;ve now been using the paid service for 2 months and I can heartily recommend it.  If you want to give it a go, you can <a href="http://fre.ag/41if4gaa">use this link to get 10% off the subscription price of FreeAgent</a>.</p>
<p><small>(photo credit: <a href="http://www.seniorliving.org/">www.seniorliving.org</a>)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2012/01/09/going-freelance-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exporting specific documents from MongoDB</title>
		<link>http://www.glenscott.co.uk/blog/2012/01/05/exporting-a-single-document-from-mongodb/</link>
		<comments>http://www.glenscott.co.uk/blog/2012/01/05/exporting-a-single-document-from-mongodb/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 12:29:34 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[mongodb]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=710</guid>
		<description><![CDATA[MongoDB comes with a useful tool, mongoexport, for exporting collections. However, you can also use it to export specific documents by utilising the query parameter. You can export a single document using it&#8217;s ObjectId using a command similar to the following: mongoexport -h "host_name" -u "username" -d "database_name" -c "collection_name" -q '{"_id":ObjectId("4f045677a1ef264746000011")}' -o output.js -p [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/crodas/4941192194/" title="Mongodb by Cesar Rodas, on Flickr"><img src="http://farm5.staticflickr.com/4078/4941192194_b3b2f39653.jpg" width="500" height="333" alt="Mongodb"></a></p>
<p>MongoDB comes with a useful tool, <code>mongoexport</code>, for exporting collections.  However, you can also use it to export specific documents by utilising the <code>query</code> parameter.  You can export a single document using it&#8217;s ObjectId using a command similar to the following:</p>
<pre name="code" class="shell">
mongoexport -h "host_name" -u "username" -d "database_name" -c "collection_name" -q '{"_id":ObjectId("4f045677a1ef264746000011")}' -o output.js -p
</pre>
<ul>
<li>Replace host_name, username, database_name and collection_name with the appropriate values.
</li>
<li>Replace <code>4f045677a1ef264746000011</code> with the ObjectID that you wish to export</li>
</ul>
<p>You will be prompted for a password, and then the document will be written to <code>output.js</code>. </p>
<p>To export multiple documents, you can utilise an <code>$in</code> clause in the query parameter like this:</p>
<pre name="code" class="shell">
-q '{"_id":{"$in" :[ ObjectId("4f048dc6a1ef26da4b000008"),ObjectId("4ed8ee16a1ef26085600001a"),ObjectId("4efc46e0a1ef26b73d0007be")]}}'
</pre>
<p>To import these exported documents into another MongoDB server, you can use the <code>mongoimport</code> like so:</p>
<pre class="shell">
mongoimport -h "host_name" -u "username" -p -d "database_name" -c "collection_name" output.js
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2012/01/05/exporting-a-single-document-from-mongodb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iCal 502 error when syncing with Yahoo! Calendar</title>
		<link>http://www.glenscott.co.uk/blog/2011/10/26/ical-502-error-when-syncing-with-yahoo-calendar/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/10/26/ical-502-error-when-syncing-with-yahoo-calendar/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 08:43:59 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[webapps]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[calendar]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=672</guid>
		<description><![CDATA[In the last few days, my iCal has been giving me the following error message when trying to access my Yahoo! Calendar via CalDAV: The request for account "Yahoo! Calendar" failed. The server responded with "502" to operation CalDAVAccountRefreshQueueableOperation. Yahoo! have acknowledged this is a problem on their side: We are aware of a Calendar [...]]]></description>
			<content:encoded><![CDATA[<p>In the last few days, my iCal has been giving me the following error message when trying to access my Yahoo! Calendar via CalDAV:</p>
<p><code>The request for account "Yahoo! Calendar" failed.</p>
<p>The server responded with<br />
"502"<br />
to operation<br />
CalDAVAccountRefreshQueueableOperation.<br />
</code></p>
<p><img src="/images/ical-502-error.png" width="534" height="312" alt="iCal error message when syncing with yahoo! calendar"></p>
<p>Yahoo! have acknowledged this is a problem on their side:</p>
<blockquote><p>
We are aware of a Calendar (Proxy error) and our engineering team is working to resolve this issue. We apologize for the inconvenience and hope to have it resolved soon.
</p></blockquote>
<p>(source: <a href="http://help.yahoo.com/l/us/yahoo/calendar/yahoocalendar/sync/">Syncing / Mobile Sync | Yahoo! Calendar Help</a>)</p>
<p><strong>update 2nd November 2011:</strong> I am no longer seeing this error message, and Yahoo! have removed the notice from their help page.  Looks like the issue has been resolved!</p>
<p><strong>update 3rd November 2011:</strong> Seems like I spoke too soon, the error is back!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/10/26/ical-502-error-when-syncing-with-yahoo-calendar/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Camera and photo improvements in iOS5</title>
		<link>http://www.glenscott.co.uk/blog/2011/10/14/camera-and-photo-improvements-in-ios5/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/10/14/camera-and-photo-improvements-in-ios5/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 14:49:54 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=638</guid>
		<description><![CDATA[The camera functionality in the iPhone has always been one of my most used features. iOS5 brings some enhancements, which are listed below: Camera improvements Double-click the Home button when device is asleep to bring up a camera shortcut on iPhone 4S, iPhone 4, iPhone 3GS and iPod touch (4th generation) Volume Up button to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/nicokaiser/5718296862/" title="iPhone Camera by Nico Kaiser, on Flickr"><img src="http://farm3.static.flickr.com/2710/5718296862_4b58e7bcbb.jpg" width="500" height="333" alt="iPhone Camera"></a></p>
<p>The camera functionality in the iPhone has always been one of my most used features.  iOS5 brings some enhancements, which are listed below:</p>
<h2>Camera improvements</h2>
<ul>
<li>Double-click the Home button when device is asleep to bring up a camera shortcut on iPhone 4S, iPhone 4, iPhone 3GS and iPod touch (4th generation)</li>
<li>Volume Up button to take a picture</li>
<li>Optional grid lines to line up shots</li>
<li>Pinch to zoom in the preview screen</li>
<li>Swipe to camera roll from preview screen</li>
<li>Tap and hold to lock focus and exposure; iPad 2 and iPod touch (4th generation) only support exposure lock</li>
</ul>
<h2>Photo improvements</h2>
<ul>
<li>Crop and rotate</li>
<li>Red-eye removal</li>
<li>One-tap enhance</li>
<li>Organise photos into albums</li>
</ul>
<p>This list was taken from the official release notes, which were accessible via iTunes pre-installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/10/14/camera-and-photo-improvements-in-ios5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting started with MongoDB and PHP on Mac OS X</title>
		<link>http://www.glenscott.co.uk/blog/2011/10/06/getting-started-with-mongodb-and-php-on-mac-os-x/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/10/06/getting-started-with-mongodb-and-php-on-mac-os-x/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 21:16:18 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=633</guid>
		<description><![CDATA[Introduction MongoDB is a document-orientated database written with scalability and high-performance in mind. It is one of a growing number of NoSQL systems &#8211; a database that does not rely on SQL or relational theory at all. Getting a MongoDB server working with PHP on Mac OS X is relatively straightforward, and this tutorial shows [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/sooey/5745780202/" title="NYã¿ã‚„ã’ã®Mongo goodsè²°ã£ãŸï¼ by junojp, on Flickr"><img src="http://farm3.static.flickr.com/2707/5745780202_154a6256c0.jpg" width="500" height="500" alt="NYã¿ã‚„ã’ã®Mongo goodsè²°ã£ãŸï¼"></a></p>
<h2>Introduction</h2>
<p><a href="http://www.mongodb.org/">MongoDB</a> is a document-orientated database written with scalability and high-performance in mind.  It is one of a growing number of NoSQL systems &#8211; a database that does not rely on SQL or relational theory at all.</p>
<p>Getting a MongoDB server working with PHP on Mac OS X is relatively straightforward, and this tutorial shows you how.</p>
<h2>Installing the MongoDB Server</h2>
<p>The first step requires you to download and install the actual MongoDB system.  The example shown below downloads v2.0.0 64 bit binaries for OS X.  For other binaries, please check out the <a href="http://www.mongodb.org/downloads">MongoDB Downloads</a> page.</p>
<pre class="brush: shell;">
cd /tmp
curl -O http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.0.0.tgz
tar zxvf mongodb-osx-x86_64-2.0.0.tgz
sudo mv mongodb-osx-x86_64-2.0.0 /usr/local/mongodb
mkdir /usr/local/mongodb/data
</pre>
<h2>Configuring the MongoDB server</h2>
<p>We need to create a small configuration file so that MongoDB knows where its data files reside.  Create the file <code>/usr/local/mongodb/mongod.conf</code> and add the following line:</p>
<pre class="brush: shell;">
dbpath = /usr/local/mongodb/data
</pre>
<h2>Starting MongoDB</h2>
<p>To manually start the MongoDB server, use the following command:</p>
<pre class="brush: shell;">
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongod.conf
</pre>
<p>This will start the server and will by default log all output to STDOUT.</p>
<h2>Installing the MongoDB PHP Extension</h2>
<p>Installing the PHP extension is simple:</p>
<pre class="brush: shell;">
sudo pecl install mongo
</pre>
<p>Once this has completed, add the following line to your <code>/etc/php.ini</code> file:</p>
<pre class="brush: shell;">
extension=mongo.so
</pre>
<p>Restart apache using <code>sudo apachectl restart</code>, and the extension should be available.  This can be verified with the <code>phpinfo</code> call:</p>
<p><img src="/images/mongo-php.png" width="600" height="372" alt="MongoDB extension for PHP" /></p>
<h2>Example PHP script</h2>
<p>To test your setup, the following simple script can be used to create a new collection and add two new records:</p>
<pre name="code" class="php">
    &lt;?php

    // connect
    $m = new Mongo();

    // select a database
    $db = $m->comedy;

    // select a collection (analogous to a relational database's table)
    $collection = $db->cartoons;

    // add a record
    $obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
    $collection->insert($obj);

    // add another record, with a different "shape"
    $obj = array( "title" => "XKCD", "online" => true );
    $collection->insert($obj);

    // find everything in the collection
    $cursor = $collection->find();

    // iterate through the results
    foreach ($cursor as $obj) {
        echo $obj["title"] . "\n";
    }

    ?&gt;
</pre>
<p>The script should output the following:</p>
<pre>
Calvin and Hobbes
XKCD
</pre>
<p>And that&#8217;s it!  You now have a working MongoDB setup on Mac OS X.</p>
<p>For more information on the PHP extension for MongoDB, please see the following pages in the PHP Manual:</p>
<p><a href="http://php.net/manual/en/book.mongo.php">PHP: Mongo &#8211; Manual</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/10/06/getting-started-with-mongodb-and-php-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve Jobs, 1955 – 2011</title>
		<link>http://www.glenscott.co.uk/blog/2011/10/06/steve-jobs-1955-2011/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/10/06/steve-jobs-1955-2011/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 10:12:25 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=640</guid>
		<description><![CDATA[For me, it wasn&#8217;t the iPod, iPhone or iPad but the Mac that was Steve Jobs&#8217; greatest success. After buying an indigo iMac in 2000, it reignited my passion for computing and I never looked back. The Mac made computing pleasurable, and for that I will be eternally grateful to Steve&#8217;s vision and passion. A [...]]]></description>
			<content:encoded><![CDATA[<p>For me, it wasn&#8217;t the iPod, iPhone or iPad but the Mac that was Steve Jobs&#8217; greatest success.  After buying an indigo iMac in 2000, it reignited my passion for computing and I never looked back.  The Mac made computing pleasurable, and for that I will be eternally grateful to Steve&#8217;s vision and passion.  A truly inspiring man.</p>
<p>Thanks, Steve.</p>
<p><img src="/images/steve-jobs-m.png" width="600" alt="Steve Jobs on Apple homepage" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/10/06/steve-jobs-1955-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Freelance – Part 2</title>
		<link>http://www.glenscott.co.uk/blog/2011/09/23/going-freelance-part-2/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/09/23/going-freelance-part-2/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 14:35:17 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=593</guid>
		<description><![CDATA[In the first part of this post, I looked at a few essentials that need to be considered when moving to a freelance role, including motivation, company structure, banking and marketing. This time we look at the slightly less glamourous, but just as important, subjects of tax and record keeping, invoicing and useful software. Again, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mukumbura/4052671706/" title="Look after the pennies and the pounds will look after themselves by Mukumbura, on Flickr"><img src="http://farm3.static.flickr.com/2680/4052671706_914d50505b.jpg" width="500" height="400" alt="Look after the pennies and the pounds will look after themselves"></a></p>
<p><a href="/blog/2011/09/21/going-freelance/">In the first part of this post</a>, I looked at a few essentials that need to be considered when moving to a freelance role, including <em>motivation</em>, <em>company structure</em>, <em>banking</em> and <em>marketing</em>.  This time we look at the slightly less glamourous, but just as important, subjects of <em>tax and record keeping</em>, <em>invoicing</em> and <em>useful software</em>.  Again, I hope this post is useful for any other software developers considering going freelance.</p>
<h2>Tax and record keeping</h2>
<p>Whether you decide to use an accountant or not, it&#8217;s essential to keep records relating to your incoming and outgoing transactions.  The Business Link site has an excellent guide on <a href="http://www.businesslink.gov.uk/bdotg/action/layer?topicId=1073860617">setting up a basic record-keeping system</a>, and have some sample spreadsheets that you can use as a starting point.  The records include:</p>
<ol>
<li>Cash sales and purchases/expenses book</li>
<li>Sales ledger</li>
<li>Purchase ledger</li>
</ol>
<p>These records will give you a thorough overview of any money going into, and out of, your business account.</p>
<p>When you open your business account, it is likely that you will also have the option to open a <em>deposit account</em> at the same time.  This can be used to set aside money to pay your tax bill each year.  For sole traders, income tax will be calculated when you fill in the annual Self Assessment form.</p>
<p>You can reduce your tax bill by claiming tax relief on business expenses.  Business expenses could include advertising, travel costs and legal fees.  If you work from home, it can also include <em>part</em> relief on costs such as broadband and even electricity.  The following links on the HMRC site give further details:</p>
<ul>
<li><a href="http://www.hmrc.gov.uk/incometax/relief-self-emp.htm">Tax allowances and reliefs if you&#8217;re self-employed</a></li>
<li><a href="http://www.hmrc.gov.uk/manuals/bimmanual/bim47820.htm">Types of allowable expenditure when working from home</a></li>
</ul>
<h2>Invoicing</h2>
<p>If you&#8217;re not invoicing, you&#8217;re not going to get paid.  Therefore, you must keep on top of your invoice management.  Freelance Advisor has a set of <a href="http://www.freelanceadvisor.co.uk/invoice-templates/">invoice templates</a> that can be used as a starting point for creating your own.  Make sure you issue invoices promptly, and be clear about your payment terms.  Standard terms are 28 days, but you may wish to shorten this if you are just starting so you can get money into your business more quickly.  Don&#8217;t be afraid of chasing late or non-payment of invoices.</p>
<p>As your business grows, you may wish to consider using a software package that manages both accounts and invoicing.  Currently topping <a href="http://www.freelancesupermarket.com/league-tables/asps.aspx#main">freelancesupermarket&#8217;s league table of accountants</a> is <a href="http://www.crunch.co.uk/">Crunch</a>.  Crunch can handle both accounting and invoicing for a flat monthly or yearly fee.  If you are a sole trader you need to switch to a limited company to use their service, a task which they will advise you on.</p>
<h2>Useful software</h2>
<p>There is a plethora of free software available to make freelance life easier.  </p>
<p><a href="http://docs.google.com/">Google Docs</a> is an excellent way of organising documents, spreadsheets and databases for your business.  One big advantage of using this is that your documents will be available from any machine that has internet access.  The screen grab below shows a simple collection that I have put together to organise my documents.  The top level collections are Accounts, Invoices and Quotes.  </p>
<p><img src="http://www.glenscott.co.uk/images/google-docs-business.png" alt="Google Docs for business record keeping" width="462" height="336" /></p>
<p><a href="http://www.skype.com/">Skype</a> is a great way of keeping in touch with your clients by instant messenger, voice or video call.</p>
<p><a href="http://tadalist.com/">Ta-da List</a> is a simple list manager, great for managing your &#8220;to do&#8221; list of day-to-day tasks.</p>
<p><a href="http://slimtimer.com/">SlimTimer</a> is a simple browser-based application for tracking time spent on tasks.  If you are billing by the hour, this is an excellent way of recording time spent working on a client&#8217;s project.</p>
<p><img src="http://www.glenscott.co.uk/images/slimtimer.png" alt="SlimTimer popup window recording time spent on a "blogging" task" width="289" height="365" /></p>
<h2>Summing up</h2>
<p>One of the major challenges of freelancing is being able to juggle the actual work with the business administration side of things.  As long as you are able to set aside a few hours each week to keep on top of the administration, you will have no problems.  I hope that my experiences thus far can be of use to others setting out on the freelance path.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/09/23/going-freelance-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Freelance</title>
		<link>http://www.glenscott.co.uk/blog/2011/09/21/going-freelance/</link>
		<comments>http://www.glenscott.co.uk/blog/2011/09/21/going-freelance/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 13:45:39 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://www.glenscott.co.uk/blog/?p=530</guid>
		<description><![CDATA[I have reached a natural fork in the road of my career as a software developer. Having been a full-time employee for the last 11 years, I have decided to take the plunge and start offering my services on a freelance basis. After spending the last couple of years managing an engineering team, I am [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/abnelgonzalez/2058764760/" title="Freedom by abnelphoto.com, on Flickr"><img src="http://farm3.static.flickr.com/2206/2058764760_e6862d7913.jpg" width="500" height="335" alt="Freedom"></a></p>
<p>I have reached a natural fork in the road of my career as a software developer.  Having been a full-time employee for the last 11 years, I have decided to take the plunge and start offering my services on a freelance basis.  </p>
<p>After spending the last couple of years managing an engineering team, I am going back to hands-on development.  The following post captures the experiences of my first month of freelancing, which I hope will be helpful to anyone else considering moving in the same direction.</p>
<h2>Motivation</h2>
<p>It&#8217;s worth considering the main motivating factors behind my move into the freelance world.  There have been two major life events that have led me into choosing this path:</p>
<ol>
<li>Being made redundant from my last job</li>
<li>The birth of my first child</li>
</ol>
<p>Being made redundant has given me the opportunity to try freelancing for the first time:  I now feel that I have the experience necessary to venture out on my own.  I also want to spend as much time around <a href="http://instagr.am/p/M49PS/">my newborn son</a>, so the option of working from home is very appealing.  Furthermore, I wanted increased flexibility of my working hours, rather than being tied to a 9 to 5 routine &#8212; if baby is not sleeping, then I don&#8217;t want to worry about having to wake up early for work!</p>
<h2>Company structure</h2>
<p>After deciding to freelance for a living, I had two immediate decisions to make:</p>
<ol>
<li>Choosing a business name</li>
<li>Deciding upon a business structure &#8211; sole trader or limited company</li>
</ol>
<p>To keep things simple, I have decided to trade under my own name and set up as a sole trader.  Setting up as a sole trader is very simple, and has less administrative overhead than a limited company.  However, some larger companies <em>may</em> not hire freelancers that are self-employed.</p>
<p>Details on registering as being self-employed can be found on the HMRC website:</p>
<p><a href="http://www.hmrc.gov.uk/selfemployed/register-selfemp.htm">HM Revenue &#038; Customs: First steps to register as self-employed</a></p>
<h2>Banking</h2>
<p>It&#8217;s essential to separate your personal and business finances, and that means getting a business account.  Most high street banks offer business facilities for start-ups, usually without any fees for a certain period of time.  Many also offer other perks such as free accountancy software or free business training.  The most popular business accounts from the high street branches are:</p>
<ul>
<li><a href="http://www.barclays.co.uk/Businessbankaccounts/BusinessAccounts/Startupbusinessaccounts/P1242558530035">Barclays</a></li>
<li><a href="http://www.lloydstsbbusiness.com/accounts/businessaccountforstartups.asp">Lloyds TSB</a></li>
<li><a href="http://www.natwest.com/business/starting-a-business.ashx">Natwest</a></li>
<li><a href="http://www.business.hsbc.co.uk/1/2/start-up-business">HSBC</a></li>
</ul>
<p>I went for an account with Natwest as they were offering 2 years with no fees, and also one years access to <a href="http://www.regus.co.uk/products/business-lounges/index.aspx">Regus business lounges</a> which may come in handy for client meetings.</p>
<h2>Marketing</h2>
<p>Marketing is all about bringing in work.  I am in a fortunate position to already have a few contacts that require my services.  However, it is crucial to be able to bring in new clients, and this is where marketing comes in.  One thing that I have kept in mind as a freelancer is this golden rule:</p>
<blockquote><p>Everyone you meet as a freelancer is a potential client
</p></blockquote>
<p>Potential clients could be your previous company, your friends, your family, your neighbours &#8212; the pool really is vast!  </p>
<p>Another important point to remember:  as a freelancer, you are marketing <strong>your skills</strong>.  So, it&#8217;s important to highlight these whenever you come into contact with potential clients.  Get business cards with your details and hand them out to everybody!    <a href="http://www.moo.com/share/shdgt2">Moo</a> do a great range of designs, and are priced at a reasonable Â£10.99 per 50.</p>
<p>Spread the word via social networks.  Updating your profile on sites such as LinkedIn, Facebook and Twitter can help market your skills for free.</p>
<p>Make sure you have a website with, at the very least:</p>
<ul>
<li>Details of the skills you have</li>
<li>Examples of the kind of projects you have worked on, or are able to work on</li>
<li>How people can contact you</li>
</ul>
<p>I have started with a simple page containing the above details, that I expect to expand over time:</p>
<p><a href="http://www.glenscott.co.uk/freelance-software-development/">Glen Scott &#8211; Freelance Software Development</a></p>
<p>If you can, start a blog.  Writing posts can be an excellent way of highlighting your own skills and attracting new clients.  Make sure that it&#8217;s clear from your blog posts that you are available for hire.  For example, I have inserted the following small ad on all of my <a href="http://www.glenscott.co.uk/blog/">existing blog posts</a>:</p>
<p><img src="http://www.glenscott.co.uk/images/glen-freelance-ad.png" alt="advert for freelancing services" /></p>
<p>If you have specialised in a particular area, make sure that you are clear about this.  For example, is there a particular language that you prefer to work with?  A favourite framework?</p>
<h2>Useful resources</h2>
<p>One book I can thoroughly recommend is <em>Brilliant Freelancer</em> by Leif Kendall.  This covers all the main aspects of freelance life, and is written in a very accessible manner.  The author also uses some many real-life experiences from other freelancers to highlight various aspects which is very useful.</p>
<p>    <iframe src="http://rcm-uk.amazon.co.uk/e/cm?t=glenscott-21&#038;o=2&#038;p=8&#038;l=as1&#038;asins=0273744631&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1<1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>Many sites are available to help freelancers:  here are a few that I&#8217;ve found useful:</p>
<ul>
<li><a href="http://www.freelanceadvisor.co.uk/">Freelance Advisor</a></li>
<li><a href="http://www.pcg.org.uk/">Professional Contractors Group</a></li>
</ul>
<h2>Summing up</h2>
<p>Going freelance is a huge change from what I have been used to, but a challenge I am already thoroughly enjoying.</p>
<p>Next time, I&#8217;ll look at these aspects of freelancing:</p>
<ul>
<li>Tax and record keeping</li>
<li>Invoicing</li>
<li>Useful software</li>
</ul>
<p><a href="http://www.glenscott.co.uk/blog/2011/09/23/going-freelance-part-2/">Read part two of this post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.glenscott.co.uk/blog/2011/09/21/going-freelance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.384 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-02 12:05:53 -->

