<?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>The Misadventures of a Pagan Geek</title>
	<atom:link href="http://www.mikepreston.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikepreston.org</link>
	<description>Tech, Fun and all things Quirky...</description>
	<lastBuildDate>Sun, 10 Mar 2013 00:32:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Hosting Infrastructure</title>
		<link>http://www.mikepreston.org/2013/03/10/hosting-infrastructure/</link>
		<comments>http://www.mikepreston.org/2013/03/10/hosting-infrastructure/#comments</comments>
		<pubDate>Sun, 10 Mar 2013 00:32:44 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=140</guid>
		<description><![CDATA[I&#8217;ve worked for/with many companies over the years &#8211; many of them start-ups and from time to time I get asked where I host my own projects or have I got any experience with x company. Don&#8217;t look at this &#8230; <a href="http://www.mikepreston.org/2013/03/10/hosting-infrastructure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve worked for/with many companies over the years &#8211; many of them start-ups and from time to time I get asked where I host my own projects or have I got any experience with x company.</p>
<p>Don&#8217;t look at this list as a set of recommendations, just as a brain-dump of some of my experiences with various providers.</p>
<h4>Cheap and cheerful hosting &#8211; <a href="http://www.dreamhost.com/" target="_blank">Dreamhost</a></h4>
<p>There are many times that you need to host something quickly and cheaply. A VPS or dedicated server is probably overkill for this. You will need nothing fancy in DNS and for development purposes probably don&#8217;t care if it is on its own domain or not.</p>
<p>For this type of hosting I personally use <a title="Dreamhost" href="http://www.dreamhost.com/" target="_blank">Dreamhost</a>.<br />
<em>(Promo-code CHEAPERHOSTING for $87 signup discount)</em></p>
<p>I have been a customer for 7 years and have had very few issues with them. The only two issues were the extended downtime a while back due to a core router failure (approx 6 hours for me over both times it failed) and the double billing issue that they promptly refunded.</p>
<p>They aren&#8217;t perfect, but for the price I find them very hard to beat. Their support is fast and courteous and their systems are generally kept up to date and features added. (eg. Option of PHP 5.2 or 5.3 CGI, FastCGI and mod_security).</p>
<p>Domain registration works well, I&#8217;ve had domains live with DNS working in under 10 minutes, although 20 is more typical. If you want good shared hosting, give them a try.</p>
<h4><a title="1&amp;1" href="http://www.1&amp;1.co.uk/" target="_blank">1 &amp; 1</a></h4>
<p>I used to use these in Germany. Pretty good network and fairly good value dedicated boxes with unmetered bandwidth, but support is lacking unless you phone them (expect to queue). Also, domain stuff (transfers, registrations etc) takes ages to process (6-24 hours).</p>
<p>That said, if you don&#8217;t require any real support besides your box replacing when hardware fails, they aren&#8217;t a bad choice. Their control panel allows serial access (unless they forget to plug it in as happened to a collegue), booting to a rescue system and reinstalling without needing to talk to support. Just make sure you backup your data.</p>
<h4><a title="Amazon Web Services" href="http://aws.amazon.com/" target="_blank">Amazon</a></h4>
<p>I&#8217;ve been stung by Amazon a couple of times, once for a multiple availability zone failure and once for charges on a business account when no services were used.</p>
<p>That said, they aren&#8217;t a bad place to host. Performance is okay (but expensive for what you get). The disadvantages for me have been the lack of support,  disappearing machines, their static-NAT configuration and charging for simple things like requests for a GET, POST or PUT etc to many of their services. This soon adds up and has bitten companies I have worked with a couple of times.</p>
<p>The main advantages are the number of geographic locations and the sheer number of images on the marketplace, but if you don&#8217;t know the publisher, why would you bother using an image from them? Do you know it is secure?</p>
<p><a title="Rackspace Cloud" href="http://www.rackspace.com/cloud/" target="_blank">Rackspace Cloud</a> &#8211; (<a href="http://www.rackspace.co.uk/cloud-servers/" target="_blank">UK Site</a>)</p>
<p>I like Rackspace, the cloud is sane in configuration (persistant servers with separate private (ServiceNet) and public interfaces with a public IP), decent in performance and cheap in price. Admittedly not as cheap as Amazon on some things, but they don&#8217;t charge you for little things like GET requests to CloudFiles and have far smaller (256 and 512Meg) and cheaper CloudServers available.</p>
<p>Their support is great. They say they are fanatical about support and I have never found otherwise.</p>
<p>The two downsides are the lack of additional services (these are being fixed with acquisitions (<a href="http://docs.objectrocket.com/rackspace" target="_blank">ObjectRocket</a>) and additional services coming out of beta (CloudDatabases, CloudBlockstorage etc) and slightly higher cost than Amazon like-for-like. Although if you are using them the same way then you are probably doing something wrong. Both have strengths and weaknesses and you are wise to use these.</p>
<h4><a title="Digital Ocean" href="https://www.digitalocean.com" target="_blank">Digital Ocean</a></h4>
<p>A fairly new player on the scene and only recently out of beta, they are gaining ground quickly.</p>
<p>The main selling points are the fact that all machines come with an SSD and that they bundle a fair amount of bandwidth with your monthly rental.</p>
<p>Their pricing model isn&#8217;t cheap for short term adhoc machines, but for months at a time it is very competitive. They charge per hour up to a cap of their monthly cost. This resets at the start of each month.</p>
<p>The main disadvantage for me is the lack of an internal network which means all server to server transfers come out of your allowance. They say they will be fixing this soon. That said, the bandwidth charges are extremely competitive compared to both Amazon and Rackspace.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2013/03/10/hosting-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web developer tools</title>
		<link>http://www.mikepreston.org/2013/03/09/web-developer-tools/</link>
		<comments>http://www.mikepreston.org/2013/03/09/web-developer-tools/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 21:50:10 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=138</guid>
		<description><![CDATA[I rarely have to touch HTML and CSS the majority of the time &#8211; one of the things that comes with being an infrastructure engineer and dealing with back-end systems on a day to day basis. However, when I do &#8230; <a href="http://www.mikepreston.org/2013/03/09/web-developer-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I rarely have to touch HTML and CSS the majority of the time &#8211; one of the things that comes with being an infrastructure engineer and dealing with back-end systems on a day to day basis. However, when I do need to build something, it is often that I don&#8217;t have all the pieces needed to do so. Perhaps I don&#8217;t have the images or text and have to use placeholders for them.</p>
<p>So here is a roundup of some useful bits and pieces that I sometimes use when I am building stuff online.</p>
<h4><a title="LoremPixel" href="http://lorempixel.com/" target="_blank">Lorempixel</a></h4>
<p>Put simply, lorempixel provides placeholder images for your designs.For example:</p>
<p><img alt="" src="http://lorempixel.com/400/200/" /></p>
<p>It automatically slices the images to the correct size which rocks for quick mockups of layouts. The images used are all creative-commons (BY-SA) licensed, so there shouldn&#8217;t be a problem using them in your layouts for mockups (if you are selling the layouts, copying the images locally or putting them live on the net then please do understand the license terms)</p>
<p>This isn&#8217;t the only option for placeholder images though&#8230;</p>
<h4><a title="Placehold It" href="http://placehold.it/" target="_blank">Placehold.it</a></h4>
<p>Another alternative is placehold.it, the images are simple rectangles in various colours and with whatever text you desire, but for some layouts this is better since you can see at a glance which images still need replacing.</p>
<p><img alt="" src="http://placehold.it/350x150" /></p>
<p>These don&#8217;t have the same limitations on licensing, they appear to be 100% free for whatever use you want to use them for, which is nice&#8230;</p>
<p>Images aren&#8217;t the only things you may want placeholder data for though&#8230;</p>
<h4><a title="Lipsum.com" href="http://lipsum.com/" target="_blank">Lipsum.com</a></h4>
<p>Lorem ipsum text has been a staple placeholder text in the printing industry for the last few centuries. The basic idea is that by having text that is not human readable (few people read latin) then the user wont get hung up on the content and will pay more attention to the layout.</p>
<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam condimentum turpis eu dolor aliquam non lacinia metus scelerisque. Mauris commodo lobortis commodo. Vivamus non lectus odio. Quisque suscipit est congue massa dictum at feugiat mi tincidunt. Aliquam risus metus, rhoncus sit amet elementum nec, dignissim at enim. Morbi lacinia sagittis lacus et auctor. Mauris ac metus metus, dictum pulvinar velit. Aliquam quis viverra est. Aenean at nisl non velit tristique venenatis. Maecenas semper, justo in condimentum ultricies, massa lectus dapibus nulla, ut cursus metus elit non quam. Pellentesque tristique eleifend lorem, id tincidunt purus varius quis.</p></blockquote>
<p>This is great for static content, but what if you want to retrieve stuff dynamically?</p>
<h4><a title="Bacon Ipsum API" href="http://baconipsum.com/api/" target="_blank">Bacon ipsum</a></h4>
<p>This is a humorous attempt at something a little different. Bacon ipsum is an api that produces JSON encoded content on demand. This is ideal where you are wanting to test pulling of content via AJAX. (linebreaks added for readability)</p>
<pre>["Bacon ipsum dolor sit amet short loin biltong prosciutto
tenderloin jowl bresaola sausage rump. Jerky doner pastrami
venison, tail meatball sirloin biltong."]</pre>
<p>I hope that you have found these site useful. I am aiming to produce a few more lists of useful sites soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2013/03/09/web-developer-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Font Squirrel font downloader</title>
		<link>http://www.mikepreston.org/2013/02/10/font-squirrel-font-downloader/</link>
		<comments>http://www.mikepreston.org/2013/02/10/font-squirrel-font-downloader/#comments</comments>
		<pubDate>Sun, 10 Feb 2013 13:18:41 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=136</guid>
		<description><![CDATA[I&#8217;ve used fontsquirrel.com for a long time and really respect the work it does. I recently found that they had an api available and thought I would take a quick crack at it. I haven&#8217;t added much error checking and &#8230; <a href="http://www.mikepreston.org/2013/02/10/font-squirrel-font-downloader/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve used <a title="Font Squirrel" href="http://www.fontsquirrel.com/">fontsquirrel.com</a> for a long time and really respect the work it does.</p>
<p>I recently found that they had an <a title="Fontsquirrel.com api" href="http://www.fontsquirrel.com/blog/2010/12/the-font-squirrel-api">api available</a> and thought I would take a quick crack at it.</p>
<p><script src="https://gist.github.com/Darkflib/4749530.js"></script></p>
<p>I haven&#8217;t added much error checking and ideally you would be checking for the font already being downloaded before overwriting it, but it works.<br />
You can find an archive with both the script and downloaded fonts below.</p>
<p><a title="fontsquirrel fonts and download script." href="http://www.technomonkpublishing.com/fontsquirrel.tgz">Download the archive with the fonts included. </a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2013/02/10/font-squirrel-font-downloader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just the tonic</title>
		<link>http://www.mikepreston.org/2012/10/28/just-the-tonic/</link>
		<comments>http://www.mikepreston.org/2012/10/28/just-the-tonic/#comments</comments>
		<pubDate>Sun, 28 Oct 2012 16:32:33 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=134</guid>
		<description><![CDATA[Still getting fallout on twitter (see it on @justhetonic or @darkflib ) after the issues at just the tonic comedy club in Leicester. It seems that the two free tickets offered by them on twitter weren&#8217;t valid (fine didn&#8217;t want &#8230; <a href="http://www.mikepreston.org/2012/10/28/just-the-tonic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Still getting fallout on twitter (see it on <a title="justthetonic" href="http://twitter.com/@justthetonic" target="_blank">@justhetonic</a> or <a title="darkflib" href="http://twitter.com/@darkflib" target="_blank">@darkflib</a> ) after the issues at just the tonic comedy club in Leicester.</p>
<p>It seems that the two free tickets offered by them on twitter weren&#8217;t valid (fine didn&#8217;t want them anyway) as the member of staff that posted isn&#8217;t authorised to do so&#8230;</p>
<p>Okay, fine&#8230; the why let your staff play on the internet when they aren&#8217;t allowed to do so?</p>
<p>Now the manager (I assume the same guy who was compering that night) is trying to say it was all my fault&#8230;<br />
That the person who placed the food order for 13 of us (who was eating at the time) and not me should have sorted out the problem (that their staff can&#8217;t read a long list of orders correctly)<br />
That I was rude to their staff. &#8211; I was only rude to the compere *when* he singled me out after asking me if I had a problem&#8230;</p>
<p>&#8230;and the answer was yes, I did have a problem and I was trying to sort it out with their staff when he picked on me.</p>
<p>*** Things that irritated me (excluding the compere) ***</p>
<p>After being open since March they still only accept card only for pre-booked tickets. You can&#8217;t pay by card on the door, you can&#8217;t pay by card at the bar&#8230; okay, fine&#8230;</p>
<p>If you go in and want to set a tab up they will take a card in security, but you can&#8217;t pay by card&#8230;. hmm&#8230; okay&#8230;</p>
<p>If you order food, you can&#8217;t put it on your tab&#8230;</p>
<p>If you order food it will take 45 minutes and arrive cold&#8230;</p>
<p>If you order food that isn&#8217;t a simple order they may omit some items (although not charged for them)</p>
<p>*** Things that I liked ***</p>
<p>Their staff were friendly (excluding the compere) and tried to fix the problem quickly &#8211; and would have done so if the compere hadn&#8217;t intervened&#8230;</p>
<p>The venue was clean (although a little shabby looking and cramped)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/10/28/just-the-tonic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qwikshortener on github</title>
		<link>http://www.mikepreston.org/2012/09/30/qwikshortener-on-github/</link>
		<comments>http://www.mikepreston.org/2012/09/30/qwikshortener-on-github/#comments</comments>
		<pubDate>Sun, 30 Sep 2012 13:14:58 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=131</guid>
		<description><![CDATA[I have OpenSourced the original code for my tinyurl system. It has been clocked at 200 requests/second on the 256Meg Cloud Servers on Rackspace Cloud and is fairly simple to extend. Repo is here: https://github.com/Darkflib/qwikshortener]]></description>
				<content:encoded><![CDATA[<p>I have OpenSourced the original code for my tinyurl system. It has been clocked at 200 requests/second on the 256Meg Cloud Servers on Rackspace Cloud and is fairly simple to extend.</p>
<p>Repo is here: <a title="Qwikshortener" href="https://github.com/Darkflib/qwikshortener" target="_blank">https://github.com/Darkflib/qwikshortener</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/09/30/qwikshortener-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Life-p (My move to Synety and coming blog posts)</title>
		<link>http://www.mikepreston.org/2012/09/30/life-p-my-move-to-synety-and-coming-blog-posts/</link>
		<comments>http://www.mikepreston.org/2012/09/30/life-p-my-move-to-synety-and-coming-blog-posts/#comments</comments>
		<pubDate>Sun, 30 Sep 2012 10:59:36 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=128</guid>
		<description><![CDATA[For those that are in contact with me regularly, you will be aware that about 2 months back I took a position with an established startup called Synety. I needed more stability in my life and while I dislike working &#8230; <a href="http://www.mikepreston.org/2012/09/30/life-p-my-move-to-synety-and-coming-blog-posts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>For those that are in contact with me regularly, you will be aware that about 2 months back I took a position with an established startup called <a title="Synety Group plc." href="https://www.synety.com/" target="_blank">Synety</a>.</p>
<p>I needed more stability in my life and while I dislike working in a corporate hierarchy with all the politics that go with it, I felt that Synety and its small size was a good fit for my move back into the that world.</p>
<p>I am pleased to say that 2 months in and I am enjoying the role. I am being challenged on a daily basis, but  I also have the support of a great team who make these challenges manageable and the support of a great management team who are willing to allocate resources to do things right, rather than having to cobble something together using whatever odds and sods are lying around at the time. It is a refreshing change from some of my previous roles which were beset by political huddles at every turn and budgets that were inflexible.</p>
<p>I hope to share some of the knowledge I am gaining (nothing proprietary obviously) in the coming months in a series of posts that help explain some of the technologies behind some of the changes that I am making within Synety by applying the same techniques and technologies to my own projects.</p>
<p>This will probably include some details of the use of Jenkins, FPM, RabbitMQ and other technologies and how they can be used effectively to build more efficient workflows, application architectures and to reduce technical debt through automated code checks.</p>
<p>If there is anything in particular that you would like me to cover, then please drop me a line at mike at technomonk dot com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/09/30/life-p-my-move-to-synety-and-coming-blog-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exit Strategies &#8211; Flipping Evil?</title>
		<link>http://www.mikepreston.org/2012/08/15/exit-strategies-flipping-evil-2/</link>
		<comments>http://www.mikepreston.org/2012/08/15/exit-strategies-flipping-evil-2/#comments</comments>
		<pubDate>Wed, 15 Aug 2012 11:09:03 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=123</guid>
		<description><![CDATA[Note: this is a draft that has been lingering in the drafts folder for a few months, I am posting it here incomplete as I feel it is worth doing so&#8230; Over the last few weeks I&#8217;ve heard a number &#8230; <a href="http://www.mikepreston.org/2012/08/15/exit-strategies-flipping-evil-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><em>Note: this is a draft that has been lingering in the drafts folder for a few months, I am posting it here incomplete as I feel it is worth doing so&#8230;</em></p>
<p>Over the last few weeks I&#8217;ve heard a number of opinions from friends and acquaintances about how having an exit strategy when you go into a new business is a bad thing. I&#8217;m not so sure.</p>
<p>I think you really need to consider it as a whole. It comes down to that age old answer &#8211; It depends.</p>
<p>If the sole reason to start the business is to exit as fast as possible, then sure that from my perspective is generally a bad idea. The business should be built in the most cost-effective way possible and to start getting as many users as possible. (Users that may or may not be paying for the service, but that can be monetised at a later date&#8230;)<br />
To this end, building infrastructure for the long term (ie an architecture that can work across a multiple servers and support growth longterm) is generally an outlay that you don&#8217;t want to make in the initial stages if your single goal is to sell the business for as much as you can for as little cost as possible. Most buyers wont know the difference between a fault tolerant configuration and a configuration that is creaking under the load, and so you are rewarded for skimping on this stage in the majority of cases.</p>
<p>However, if your sole goal is to sell the business, what happens if you don&#8217;t manage to do that? You haven&#8217;t put any resources into building a sustainable business and so it is quite likely to fail if not given an injection of resources to bolster the areas that were omitted during the initial stages.</p>
<p>If you haven&#8217;t got those resources and can&#8217;t sell it you are pretty stuck.</p>
<p>It is also rather morally ambiguous to not disclose the short-comings of the infrastructure if you are selling it as a viable business opportunity.  I feel that buyers should always be cautious about purchasing a business, but if the seller is intentionally mis-selling the business as having growth potential when they know that the infrastructure wont support it without re-engineering then this is just fraudulent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/08/15/exit-strategies-flipping-evil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rock Cakes</title>
		<link>http://www.mikepreston.org/2012/06/21/rock-cakes/</link>
		<comments>http://www.mikepreston.org/2012/06/21/rock-cakes/#comments</comments>
		<pubDate>Thu, 21 Jun 2012 11:40:30 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[baking]]></category>
		<category><![CDATA[cakes]]></category>
		<category><![CDATA[cooking]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[rock]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=125</guid>
		<description><![CDATA[I don&#8217;t follow recipes well, I use my eyes to see how stuff looks and if I feel it needs some more liquid or is too fluid I compensate. Don&#8217;t be scared, worst that can happen is you lose a &#8230; <a href="http://www.mikepreston.org/2012/06/21/rock-cakes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I don&#8217;t follow recipes well, I use my eyes to see how stuff looks and if I feel it needs some more liquid or is too fluid I compensate.</p>
<p>Don&#8217;t be scared, worst that can happen is you lose a batch&#8230;</p>
<p>Ingredients</p>
<ul>
<li>8 oz self rising flour</li>
<li>4 oz soft butter or margarine &#8211; I used olive spread because I had some around)</li>
<li>2 oz granulated sugar</li>
<li>4 0z mixed dried fruit (the mixed peel gives it a more tangy flavour, substitute for sultanas if you prefer)</li>
<li>2 oz raisins</li>
<li>1 medium egg</li>
<li>1 &#8211; 3 tbsp milk (if you are lactose intolerent use water instead, it doesn&#8217;t change it much)</li>
<li>Granulated sugar for sprinkling</li>
<li>butter/spread for greasing the trays</li>
</ul>
<p>Heat the oven to 400F/200C/Gas 6<br />
Grease two baking sheets.<br />
Sieve (if you can be bothered) the flour into a mixing bowl<br />
add the softened butter or margarine (I tend to slice it into small bits with a knife first since I have very hot hands)<br />
lightly rub together with fingertips until the mixture looks like breadcrumbs.<br />
Add the sugar and the dried fruit and mix so all ingredients are well mixed.<br />
Add the egg and 1 tbsp of the milk (or water) and mix to create a stiff dough. If the mixture is still dry add milk a tbsp at a time until required consistency.<br />
Using a spoon divide the mixture into 8 mounds (original recipe says 12, but who likes tiny cakes?) evenly spaced on the 2 baking sheets.<br />
Bake in the oven for 15 mins or until golden brown.<br />
Sprinkle the sugar as soon as you remove them &#8211; it means that the sugar isn&#8217;t stuck to the baking sheet and a pain to clean.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/06/21/rock-cakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A look at the new rackspace cloud</title>
		<link>http://www.mikepreston.org/2012/05/05/a-look-at-the-new-rackspace-cloud/</link>
		<comments>http://www.mikepreston.org/2012/05/05/a-look-at-the-new-rackspace-cloud/#comments</comments>
		<pubDate>Sat, 05 May 2012 19:19:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloudservers]]></category>
		<category><![CDATA[huddle]]></category>
		<category><![CDATA[nextgen]]></category>
		<category><![CDATA[rackspace]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=115</guid>
		<description><![CDATA[I have been very lucky to be included in the first rollout of the new rackspace cloud and while it has been live (to me) for a few days, I have only just had a few minutes to have a &#8230; <a href="http://www.mikepreston.org/2012/05/05/a-look-at-the-new-rackspace-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I have been very lucky to be included in the first rollout of the new rackspace cloud and while it has been live (to me) for a few days, I have only just had a few minutes to have a play with it.<span id="more-115"></span></p>
<p>First the good stuff&#8230;</p>
<p>We have a new control panel which seems to be quite a bit more responsive than the old panel, all Ajax-y and everything&#8230;</p>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 510px"><img class="size-large wp-image-118" title="New Cloud Servers - Rackspace" src="http://www.mikepreston.org/wp-content/uploads/2012/05/test-Cloud-Servers-Rackspace-1024x562.png" alt="New Control Panel" width="500" height="274" /><p class="wp-caption-text">The new control panel is all Ajax-y</p></div>
<p>This isn&#8217;t the only new thing, under the hood we now have IPv6 support (it seems as standard) for any new servers created via the new system and both the IPv6 address and the ServiceNet address are shown in your server details.</p>
<p>This is a big improvement over IPv6 support only being available via the LoadBalancer service or via a 6to4 tunnel.</p>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 273px"><img class="size-medium wp-image-119" title="ipv6-rackspace" src="http://www.mikepreston.org/wp-content/uploads/2012/05/ipv6-rackspace-263x300.jpg" alt="Native IPv6 Support" width="263" height="300" /><p class="wp-caption-text">Native IPv6 Support on a freshly provisioned Rackspace CloudServer on the new cloud</p></div>
<p>I haven&#8217;t had that much time to play so far, but a couple of things jump out at me. The ServiceNet between this new server and my existing Rackspace CloudServers wouldn&#8217;t allow the two to communicate even though they are both supposed to be US CloudServers. This could be an isolated fault or down to the way they are provisioned (my guess would be that the ServiceNet on these Next-gen CloudServers  aren&#8217;t connected to the legacy CloudServers ServiceNet)</p>
<p>The second thing that was implied (but I haven&#8217;t tested so far) is that to provision servers on the Next-gen cloud you need to use the updated API. I will be testing this in the coming couple of weeks as I rewite some of my provisioning tools.</p>
<p>[Edit: Another thing that seems to be missing is access to diagnostic tools. You can't see the load of the host server, ping your server or access the console from the new control panel. This might end up being one of the real lows of the migration if they don't add them in soon... ]</p>
<p>If anyone has any concrete info or additional thoughts then please comment or drop me a line at mike at technomonk dot com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/05/05/a-look-at-the-new-rackspace-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 things any newbie web developer needs to know</title>
		<link>http://www.mikepreston.org/2012/03/17/10-things-any-newbie-developer-needs-to-know/</link>
		<comments>http://www.mikepreston.org/2012/03/17/10-things-any-newbie-developer-needs-to-know/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 14:15:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Improvement]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[10 things]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.mikepreston.org/?p=61</guid>
		<description><![CDATA[PHP or other language I&#8217;m not going to preach about the pros and cons of different languages, suffice to say that any sufficiently advanced website is indistinguishable from magic requires more than just just static files to make it work. &#8230; <a href="http://www.mikepreston.org/2012/03/17/10-things-any-newbie-developer-needs-to-know/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>PHP or other language</strong></p>
<p>I&#8217;m not going to preach about the pros and cons of different languages, suffice to say that any sufficiently advanced website is <span style="text-decoration: line-through;">indistinguishable from magic</span> requires more than just just static files to make it work. PHP is my language of choice (and has been for over a decade) but there are plenty of other options out there (Python, Ruby or even (shudder) .net)</p>
<p>Which you choose depends more on what is most comfortable to you and what support network you have to call upon. It isn&#8217;t generally a good idea to learn Python in a Microsoft shop for example unless there are other pressing reasons to do so.</p>
<p>Whatever you end up learning, you need to be competent in its use, make use of the extensions available (no point reinventing the wheel when there are dozens already made for you) and know how to use the online documentation. Coding style helps, but as long as you are consistent really isn&#8217;t that pressing unless you are working with others.</p>
<p><strong>XHTML/CSS</strong></p>
<p>Even if you don&#8217;t deal with much front-end code yourself, perhaps you use templates, you still need to understand at least the basics of XHTML and CSS to make it easier for the front-end developers to deal with your output. At the very least your code needs to output well formed, correctly nested code. We mea<code>n </code></p>
<p><code>&lt;div&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;hello world&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;<br />
</code></p>
<p>rather than</p>
<p><code>&lt;div&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;hello world&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;<br />
</code></p>
<p>(note the lack of ending &lt;p&gt; tag and improperly nested &lt;i&gt; and &lt;b&gt; tags) an XHTML validator will help, but only on the finished output. They don&#8217;t work on fragments of code like this.</p>
<p><strong>MVCs, frameworks and libraries</strong></p>
<p>As stated above, and especially if you are getting paid on a per project basis, you want to reduce the number of times you want to reinvent the wheel. This is known as Don&#8217;t Repeat Yourself or DRU. There is no point writing yet another PDF library for example when FPDF, Zend_PDF, Pdflib and many others already exist (or docbook/ps via converters etc) and do an adequate job for most tasks. MVC or Model-View-Controllers to give them their full name are a concept (or design pattern) that allows you to separate the data access parts from the actual logic and the templates used in your projects. This is useful in a team based environment because the designer can design, the coders can code and the coders and DBAs can control the models and how they interact with the databases &#8211; it just tends to separate the roles more cleanly and make modifications at a later date easier. If you want to add sharding to the database, you can simply modify the models while keeping the interface the same and suddenly your app can be cluster aware. It&#8217;s really a win-win situation.</p>
<p>I use Zend Framework under PHP to provide a MVC and other libraries. I&#8217;ve tried Code-Igniter and Kohana and while they work, they either feel dated (in the case of Code Igniter) or just are poorly documented (in the case of Kohana). Zend Framework, while not trivial to get up and running for the novice, worked well for the way I work.</p>
<p><strong>OOP</strong></p>
<p>OOP is one of those things, you either love it or hate it. I personally tolerate it with a mild distain &#8211; but that is just me. (I predate the whole OOP revolution.) Put simply, OOP allows a set of related variables and functions to be pulled together into a single package called a class. You then can either extend the class in your own projects overriding or extending the various functions (called methods) or use it as is. The biggest advantage, especially when you are importing a lot of libraries is that unless you are careful, two libraries may have a function or variable with the same name. (This is solved with namespaces in the latest PHP versions) At best the interpreter or compiler throws an error, at worst one library may end up calling a function or trampling over the data from another unintentionally.</p>
<p><strong>Regex</strong></p>
<p>At its simplest level a regex is a way of matching patterns within strings. When used to their full ability, a regex can sometimes replace 10-20 lines of non regex code with a single line. They are often used in Mod_rewrite rules, input validation and searching for certain things within quanities of text. Learn them, use them and master them &#8211; they will save you a lot of time.</p>
<p><strong>Source Control</strong></p>
<p>Even when working on your own projects, you sometimes wish you could turn back time and undo something stupid you did a month ago in some code. Your backups have been recycled and a lot of changes have been made since &#8211; it sounds like a lost cause. This is where version control comes in. Everytime you are happy with a set of modifications you check them in. The difference between the old version and the current version are worked out and saved. At a later date you can go back and see who made the change, when it was done and exactly what was changed. If you want to checkout a copy of the code as it was at this time, you can do that. This is almost essential in a team-based environment as it allows auditing of code in a more detailed way than simply looking at backups from a particular point in time. What if one of the coders inserted a backdoor into your code? Wouldn&#8217;t you want to be able to identify every other change that was made and check them for similar nefariousness?</p>
<p><strong>Google-fu</strong></p>
<p>As a developer you will often find questions and problems that you don&#8217;t have the answers for. You can try to puzzle through it yourself, but there is a whole world of people out there, many of whom have already solved similar issues and put their answers online. Being able to search effectively puts these answers at your fingertips.</p>
<p><strong>Accessibility</strong></p>
<p>Not everyone in this world has perfect vision, perfect hearing or the ability to use a mouse. Many sites are designed in such a way that every user is assumed to have adequate abilities. If your site assumes that all readers can use your fixed-sized font, will have Javascript enabled and have will be read rather than listened to using a screen reader then it probably wont be accessible. There are many tools and concepts that don&#8217;t take much effort to make your site easier for users with impaired abilities, some are listed below.</p>
<p><strong>Monitoring and SEO</strong></p>
<p>A site is a success if it reaches its goals. It is hard to know if you are hitting them if you have no way of measuring the values the goals specify. Are you being seen by 100 people a day? Are you selling at least 3 widgets from your site a week? Does your advertising campaign result in increased sales and traffic? You need to measure anything that you need if you are going to try to set goals on these things &#8211; simple idea, but it&#8217;s suprising how few people &#8216;get it&#8217;.</p>
<p>SEO is related to monitoring your traffic in a similar way to energy efficiency is related to watching how much power you use. Unless you know where you are starting from and where you are now, you can&#8217;t know how much you have improved by and if you are paying for adwords or similar advertising, then how much each extra visitor or sale is costing you.</p>
<p><strong>JQuery and other JS toolkits</strong></p>
<p>It is all well and good being able to produce dynamic pages and process forms from the server-side, but sometimes you really need something extra on the clientside as well. Enter JavaScript.</p>
<p>JavaScript or JS has been around since the mid 90s and is standard on all major browsers. The big problem comes when certain features exposed to Javascript (Ajax, Storage, Location, DOMs/BOMs etc) vary from browser to browser.</p>
<p>The easy solution to this is to take a library that hides these differences and make it easy to write code once that will run on most other browsers. Jquery is one option, but not the only one.</p>
<p>In addition to this there are many libraries, shims and other utilities that make doing more complex things easier. JQuery for example has the UI library which makes certain tasks such as tabs and date pickers trivial to add to your page.</p>
<p>This isn&#8217;t an exhaustive list and I&#8217;m sure there are many things could be added to the list. If you feel I have missed something, please add it below in the comments section.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikepreston.org/2012/03/17/10-things-any-newbie-developer-needs-to-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
