<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Harvey Nick</title>
	<atom:link href="http://harveynick.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://harveynick.wordpress.com</link>
	<description>The thoughts and feelings of Dr. Nick Johnson</description>
	<lastBuildDate>Wed, 28 Dec 2011 09:07:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='harveynick.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Harvey Nick</title>
		<link>http://harveynick.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://harveynick.wordpress.com/osd.xml" title="Harvey Nick" />
	<atom:link rel='hub' href='http://harveynick.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Simplifying the Landscape</title>
		<link>http://harveynick.wordpress.com/2011/12/01/simplifying-the-landscape/</link>
		<comments>http://harveynick.wordpress.com/2011/12/01/simplifying-the-landscape/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 09:28:05 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[clockwork aphid]]></category>
		<category><![CDATA[fractal landscape]]></category>
		<category><![CDATA[procedural]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[simplification]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=735</guid>
		<description><![CDATA[At the end of the last post I wrote about the actual implementation of my Clockwork Aphid project, I said the next step was going to be display simplification. At that point I&#8217;d generated a few landscapes which were just starting barely starting to test the limits of my computer, though they were nothing like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=735&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At the end of the <a title="Now In Eye Popping 3D!" href="http://harveynick.wordpress.com/2010/10/22/now-in-eye-popping-3d/">last post</a> I wrote about the actual implementation of my Clockwork Aphid project, I said the next step was going to be display simplification. At that point I&#8217;d generated a few landscapes which were just starting barely starting to test the limits of my computer, though they were nothing like the size or complexity I had in mind. That said, it was looking at landscapes containing 1579008 polygons and it was obvious that not all of these needed to be put on screen. Moreover, because my landscapes are essentially made up of discrete samples (or nodes): I needed to reduce the number of samples which were displayed to the user, otherwise my performance was really going to tank as the landscapes increased in size.</p>
<p>Shamus Young talked about terrain simplification <a href="http://www.shamusyoung.com/twentysidedtale/?p=142">some time ago</a> during his original terrain project. This seemed as good a place as any to start, so I grabbed a copy of <a href="http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.4771">the paper</a> he used to build his algorithm. I didn&#8217;t find it as complicated as it appears he did, but this is probably because I&#8217;m more used to reading papers like this (I must have read hundreds during my PhD, and even wrote a couple), so I&#8217;m reasonably fluent in academicese. It was, as I suspected, a good starting point, though I wouldn&#8217;t be able to use the algorithm wholesale as it&#8217;s not directly compatible with the representation I&#8217;m using. Happily, my representation does make it very simple to use the core idea, though.</p>
<p>If you <a href="http://harveynick.wordpress.com/2010/10/19/youre-speaking-my-landscape-baby/">remember</a>, my representation stores the individual points in a sparse array, indexed using fractional coordinates. This makes it very flexible, and allows me to use an irregular level of detail (more on that later). Unlike the representation used in the paper, this means a can&#8217;t make optimisations based on the assumption that my data is stored in a regular grid. Thankfully, the first stage of the simplification algorithm doesn&#8217;t care about this and examines points individually. Also thankfully, the simplification algorithm uses the same parent/child based tessellation strategy that I do.</p>
<p>The first step is decide which points are &#8220;active&#8221;. This is essentially based on two variables:</p>
<ul>
<li>The amount of &#8220;object space error&#8221; a point has (i.e. how much it differs from its parents);</li>
<li>The distance between the point and the &#8220;camera&#8221;.</li>
</ul>
<p>A local constant is also present for each point:</p>
<ul>
<li>The point&#8217;s bounding radius, or the distance to its furthest child (if it has children);</li>
</ul>
<p>I&#8217;m not sure if I actually need this last in my current implementation (my gut says no, I&#8217;ll explain why later), but I&#8217;m leaving it in for the time being. Finally, two global constants are used for tuning, and we end up with this:</p>
<p style="text-align:center;"><img class="aligncenter" style="display:block;border-color:initial;border-style:initial;border-width:0;" title="simplificationEquation2.png" src="http://harveynick.files.wordpress.com/2011/12/simplificationequation21.png?w=382&#038;h=71" alt="SimplificationEquation2" width="382" height="71" border="0" /></p>
<p>Where:</p>
<ul>
<li><em>i</em> = the point in question</li>
<li><em>λ</em> = a constant</li>
<li><em>ε<sub>i</sub></em> = the object space error of i</li>
<li>d<em><sub>i</sub></em> = the distance between i and the camera</li>
<li>r<em><sub>i</sub></em> = the bounding radius of i</li>
<li><em>τ</em> = another constant</li>
</ul>
<p>This is not entirely optimal for processing, but a little bit of maths wizardry transforms this like so:</p>
<p style="text-align:center;"><img class="aligncenter" style="display:block;border-color:initial;border-style:initial;border-width:0;" title="simplificationEquation3.png" src="http://harveynick.files.wordpress.com/2011/12/simplificationequation31.png?w=434&#038;h=75" alt="SimplificationEquation3" width="434" height="75" border="0" /></p>
<p>This looks more complicated, and it&#8217;s less intuitive to see what it actually does, but from the point of view of the computer it&#8217;s a lot simpler, as it avoids the square root needed to calculate the distance between the point and the camera. Now we get to the fun part: diagrams! Consider the following small landscape, coloured as to the granularity of each of the points (aka the distance to the node&#8217;s parents, see <a href="http://harveynick.wordpress.com/2010/10/22/fractal-errata/">this post</a>):</p>
<p style="text-align:center;"><img style="display:block;margin-left:auto;margin-right:auto;" title="AllPoints.jpg" src="http://harveynick.files.wordpress.com/2011/12/allpoints.jpg?w=268&#038;h=268" alt="AllPoints" width="268" height="268" border="0" /></p>
<p>Next, we&#8217;ll pick some arbitrary values for the constants mentioned above (ones which work well for explanatory purposes), and place the viewpoint in the top left hand corner, and we end up with this the following active points (inactive points are hidden):</p>
<p style="text-align:center;"><img style="display:block;margin-left:auto;margin-right:auto;" title="ActivePoints.jpg" src="http://harveynick.files.wordpress.com/2011/12/activepoints.jpg?w=268&#038;h=268" alt="ActivePoints" width="268" height="268" border="0" /></p>
<p>Now, we take the active points with the smallest granularity, and we have them draw their polygons, <a href="http://harveynick.wordpress.com/2010/10/22/now-in-eye-popping-3d/">exactly as before</a>, which looks like this:</p>
<p style="text-align:center;"><img style="display:block;margin-left:auto;margin-right:auto;" title="SmallestPolygons.jpg" src="http://harveynick.files.wordpress.com/2011/12/smallestpolygons.jpg?w=268&#038;h=268" alt="SmallestPolygons" width="268" height="268" border="0" /></p>
<p>When we come to draw the polygons of the next highest granularity you&#8217;ll see that we have a problem, though. The previous set of polygons have encroached on their territory. To avoid this, each node informs its parents that it is active and then the parent doesn&#8217;t draw any polygons in the direction of its active children. If we add in the polygons drawn by the each of the other levels of granularity, we now end up with this:</p>
<p style="text-align:center;"><img title="FilledPolygons.jpg" src="http://harveynick.files.wordpress.com/2011/12/filledpolygons.jpg?w=268&#038;h=268" alt="FilledPolygons" width="268" height="268" border="0" /></p>
<p>Oh no! There&#8217;s a hole in my landscape! I was actually expecting that my simplistic approach would lead to more or less this result, but it was still a little annoying when it happened. If I was a proper analytical type I would next have sat down and worked over the geometry at play here, then attempted to find a formulation which would prevent this from happening. Instead, though, I stared at it for a good long while, displaying it in various different ways, and waited for something to jump out at me.</p>
<p>Eventually it did, and thankfully it was a very simple rule. Each parent stores a list of the directions in which it has active children in order to prevent overdrawing (as mentioned above). The new rule is that a node is also considered active if this list is non-empty. With this addition, our tessellated landscape now look alike this:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="BackfIlledPolygons.jpg" src="http://harveynick.files.wordpress.com/2011/12/backfilledpolygons.jpg?w=268&#038;h=268" alt="BackfIlledPolygons" width="268" height="268" border="0" /></p>
<p>Presto! A nice simple rule which fills in all of the gaps in the landscape without any over or under simplification, or any overdrawing. I suspect this rule also negates the need for the bounding radius mentioned above, though I have not as yet tested that thought. To recap, we have three simple rules:</p>
<ol>
<li>A node is active if the object space error/distance equation says it is;</li>
<li>A node is active if any of its children are active;</li>
<li>Polygons are tessellated for each active point, but not in the direction of any active children.</li>
</ol>
<p>But what does this look like in actual eye poppingly 3D landscapes? Well, here&#8217;s an example, using the height based colouring I&#8217;ve used before:</p>
<p style="text-align:center;"><img style="display:block;margin-left:auto;margin-right:auto;" title="SimplifiedLandscape.jpg" src="http://harveynick.files.wordpress.com/2011/12/simplifiedlandscape.jpg?w=579&#038;h=579" alt="SimplifiedLandscape" width="579" height="579" border="0" /></p>
<p>I quite pleased with this, though what I&#8217;m doing here is still quite inefficient and in need of some serious tuning. There are a couple of further simplification tricks I can try (including the next step from the (paper) paper). More to come later. Honest.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/735/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/735/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/735/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=735&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/12/01/simplifying-the-landscape/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/simplificationequation21.png" medium="image">
			<media:title type="html">simplificationEquation2.png</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/simplificationequation31.png" medium="image">
			<media:title type="html">simplificationEquation3.png</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/allpoints.jpg" medium="image">
			<media:title type="html">AllPoints.jpg</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/activepoints.jpg" medium="image">
			<media:title type="html">ActivePoints.jpg</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/smallestpolygons.jpg" medium="image">
			<media:title type="html">SmallestPolygons.jpg</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/filledpolygons.jpg" medium="image">
			<media:title type="html">FilledPolygons.jpg</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/backfilledpolygons.jpg" medium="image">
			<media:title type="html">BackfIlledPolygons.jpg</media:title>
		</media:content>

		<media:content url="http://harveynick.files.wordpress.com/2011/12/simplifiedlandscape.jpg" medium="image">
			<media:title type="html">SimplifiedLandscape.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Mercury Rising</title>
		<link>http://harveynick.wordpress.com/2011/09/20/mercury-rising/</link>
		<comments>http://harveynick.wordpress.com/2011/09/20/mercury-rising/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 10:00:44 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Films]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[action movies]]></category>
		<category><![CDATA[freddie mercury]]></category>
		<category><![CDATA[movies]]></category>
		<category><![CDATA[queen]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=706</guid>
		<description><![CDATA[Monday the 5th of September was Freddie Mercury day. The day he would have turned 65, had he lived. This makes me feel a little old, but that&#8217;s not the point. The day&#8217;s Google doodle (pointed out to me with furious glee by one of my coworkers) led me to YouTube and numerous videos of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=706&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Monday the 5th of September was Freddie Mercury day. The day he would have turned 65, had he lived. This makes me feel a little old, but that&#8217;s not the point. The day&#8217;s <a href="http://www.youtube.com/watch?v=KX2BQM0D01M">Google doodle</a> (pointed out to me with furious glee by one of my coworkers) led me to YouTube and numerous videos of Queen performing live. As I often do, I&#8217;d forgotten just how good they were. I spent much of the day fighting the urge to pump my fist and throw shapes at my desk*. Since I had so much fun with this, I&#8217;m going to pepper this post with some of the videos I found the most fun. Anything under the videos and written in italics is a comment on the video itself, and not strictly related to the rest of this post.</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/09/20/mercury-rising/"><img src="http://img.youtube.com/vi/LncAQR47eZo/2.jpg" alt="" /></a></span></p>
<p style="text-align:center;"><em>If you have to start somewhere, you might as well start here. File under: moments which made history.</em></p>
<p>As I was walking to the cinema yesterday to see <a href="http://ohsohumbleopinion.tumblr.com/post/10360864080/tinker-tailor-soldier-spy">Tinker Tailer Soldier Spy</a>, I found myself thinking back to the Queen videos, but also to the <a title="Film Related Blog Post" href="http://harveynick.wordpress.com/2011/08/07/film-related-blog-post/">post</a> I previously wrote about how much I hated the last two Transformers films, and how much I adored Fast 5. I started wondering if a person&#8217;s taste in music might be reflected in their taste in film. I have fairly eclectic fast in music. I like a bit of <em>Dido</em>, a bit of <em>Bjork</em>. I love me some <em>Avenged Sevenfold</em> and some <em>In Flames</em>. I&#8217;m as likely to throw on a bit of <em>Massive Attack</em> as I am a bit of <em>Linkin Park</em>. Today I might be listening to <em>At The Drive-In</em>, where as on my walk yesterday my choice of backdrop was <em>Spiritual Beggars</em>. Like my mother before me, I&#8217;m also a bit of a Queen fan.</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/09/20/mercury-rising/"><img src="http://img.youtube.com/vi/oozJH6jSr2U/2.jpg" alt="" /></a></span></p>
<p style="text-align:center;"><em>Obviously I have to include this one. Queen at their operatic best.</em></p>
<p>When challenged to name my favourite films, I&#8217;ve been picking the same five for quite some time (in no particular order):</p>
<ul>
<li>Fight Club;</li>
<li>American Beauty;</li>
<li>Donnie Darko;</li>
<li>Amelie;</li>
<li>The Matrix.</li>
</ul>
<p>I might also offer up three others I really love:</p>
<ul>
<li>Out of Sight;</li>
<li>Pitch Black;</li>
<li>X-Men**.</li>
</ul>
<p>Perhaps I might also add the first <em>Pirates of the Caribbean</em> film (or maybe <em>Zoolander</em>) to that list. Be that as it may, I&#8217;d say the list is reasonably eclectic. Not entirely evident in this list is my love of a really good action movie. <em>Bad Boys</em>. <em>The Transporter. Rambo (2008). Fast 5. Demolition Man. Army of Darkness. Welcome to the Jungle. The Long Kiss Goodnight. Die Hard.</em> I&#8217;m not going to try and match items from my musical taste to each of the films I&#8217;ve named here, because I don&#8217;t think the analogy is that exact, but I think Queen serves as an excellent peer to these action films.</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/09/20/mercury-rising/"><img src="http://img.youtube.com/vi/kXOOwNS2qk0/2.jpg" alt="" /></a></span></p>
<p style="text-align:center;"><em>I love this intro. That is how you work a crowd.</em></p>
<p>Freddie Mercury did not so much walk around the stage as stay perfectly still at the centre of everyone&#8217;s vision while the stage moved around him. He worked the crowd like a master while knocking every single note right out of the stadium. It wasn&#8217;t just about him, though. The band behind him was as tight as a gnat&#8217;s arse. Everything clicked together like the internals of a cuckoo clock. Queen songs were not generally high art, but they flowed brilliantly and they just <em>took hold</em> of you.</p>
<p>This is how a good action film should be. I want the characters to chew the scenery and have it feel right. I want the characters to be fleshed out enough to feel worthwhile. They don&#8217;t have to be Lester Burnham or Jack Foley, but I do need to give a shit about what happens to them. The plot should feel, if not possible, then plausible. If something doesn&#8217;t quite make sense then it should be okay because I&#8217;m having too much fun to care. I want to laugh joyously at the outrageousness of it. I want to feel like pumping my fist along with the protagonists&#8217; success and then leave the cinema with a huge smile on my face. I&#8217;ll listen to some Emilíana Torrini soon, there&#8217;ll be time enough for that later. Right now, <em>we are the champions</em>, baby!</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/09/20/mercury-rising/"><img src="http://img.youtube.com/vi/pCA6b36pCro/2.jpg" alt="" /></a></span></p>
<p style="text-align:center;"><em>A beautiful, melancholic and very appropriate song. Seems like a good place to stop.</em></p>
<p>* For the record: conversation with my coworkers has revealed to me that had I done so, I could simply have told them I was listening to a bit of Queen and this otherwise odd behaviour would have become at least marginally understandable.</p>
<p>** Yes, the first one. It has a wonderful lightness of touch and flow, which (though it doesn&#8217;t excuse the film&#8217;s complete lack of a third act) does make it very dear to me.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/706/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=706&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/09/20/mercury-rising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>Revisiting the Language Issue</title>
		<link>http://harveynick.wordpress.com/2011/09/14/revisiting-the-language-issue/</link>
		<comments>http://harveynick.wordpress.com/2011/09/14/revisiting-the-language-issue/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 10:00:14 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Implementation]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[go]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=697</guid>
		<description><![CDATA[Some time ago, I wrote a series of posts about language choice for my Clockwork Aphid project. In the end I decided to start the project in Java, this being the language I&#8217;m most comfortable with. Once the project reaches a stable state, with some minimum amount of functionality, the plan is to port it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=697&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I wrote a <a title="You’re Speaking my Language, Baby. Part 1: Introduction." href="http://harveynick.wordpress.com/2010/10/09/youre-speaking-my-language-baby-part-1-introduction/">series</a> <a title="You’re Speaking my Language, Baby. Part 2: Java." href="http://harveynick.wordpress.com/2010/10/10/youre-speaking-my-language-baby-part-2-java/">of</a> <a title="You’re Speaking my Language, Baby. Part 3: C++." href="http://harveynick.wordpress.com/2010/10/11/youre-speaking-my-language-baby-part-3-c/">posts</a> <a title="You’re Speaking my Language, Baby. Part 4: Objective-C." href="http://harveynick.wordpress.com/2010/10/12/youre-speaking-my-language-baby-part-4-objective-c/">about</a> <a title="You’re Speaking my Language, Baby. Part 5: Conclusion." href="http://harveynick.wordpress.com/2010/10/13/youre-speaking-my-language-baby-part-5-conclusion/">language</a> choice for my Clockwork Aphid project. In the end I decided to start the project in Java, this being the language I&#8217;m most comfortable with. Once the project reaches a stable state, with some minimum amount of functionality, the plan is to port it to C++ for comparison purposes, this being the language which is likely to provide the best performance.</p>
<p>I still plan on doing this, but I&#8217;ve also decided to add a couple of extra candidate languages to the melting pot and get an even broader comparison. The first of these languages is Go, a relatively new language developed at Google. This is not coincidence. I&#8217;ve been doing some reading about it lately and finding a lot of things I really like. It has the potential to provide the benefits of both Java <em>and</em> C++, whilst avoiding many of the pitfalls. This is definitely a good thing. It will also give me chance to dogfood (there&#8217;s <a title="Dogfood, Nom Nom Nom" href="http://harveynick.wordpress.com/2011/08/26/dogfood-nom-nom-nom/">that word</a> again!) some more Google technology.</p>
<p>One of Go&#8217;s features which I really like is implicit interfaces. Allow me to explain. In most regular statically typed object orientated languages, such as Java (which I&#8217;ll use for this example), you can abstract functionality using something like an interface. For example, let&#8217;s say I have a class which looks like this:</p>
<pre><span style="color:#800080;">class</span> Counter {
  <span style="color:#800080;">int</span> value;
  <span style="color:#800080;">int</span> get() {
    <span style="color:#800080;">return</span> value;
  }
}</pre>
<p>Here we have defined an class which declares a single method which returns an integer value. I might then make use of this an instance of this class elsewhere:</p>
<pre><span style="color:#800080;">class</span> Printer {
  <span style="color:#800080;">void</span> update(Counter counter) {
    System.out.println(counter.get());
  }
}</pre>
<p>All is good with the world, unless I decide I want to change the behaviour of the code. Perhaps I want the value to increment after each call, for example. I could extend the Counter class and change its behaviour that way:</p>
<pre><span style="color:#800080;">class</span> IncrementingCounter <span style="color:#800080;">extends</span> Counter {
  <span style="color:#800080;">int</span> get() {
    <span style="color:#800080;">return</span> value++;
  }
}</pre>
<p>I can now pass an instance of this new class into the update method of the Handler. Done. Right? Well&#8230; no. This is a bit of a clumsy way to go about this. It doesn&#8217;t scale and it&#8217;s not always possible. A better way to handle this is to use an interface:</p>
<pre><span style="color:#800080;">interface</span> CounterInterface {
  <span style="color:#800080;">int</span> get();
}</pre>
<p>This specifies the interface of the methods, but not their implementation. We can then change the Printer class to use this interface, rather than the concrete class:</p>
<pre><span style="color:#800080;">class</span> Printer {
  <span style="color:#800080;">void</span> update(CounterInterface counter) {
    System.out.println(counter.get());
  }
}</pre>
<p>Now any class which implements this interface can be passed to the Printer. So, going to back to our original example:</p>
<pre><span style="color:#800080;">class</span> Counter <span style="color:#800080;">implements</span> CounterInterface {
  <span style="color:#800080;">int</span> value;
  <span style="color:#800080;">int</span> get() {
    <span style="color:#800080;">return</span> value;
  }
}</pre>
<p>We can now make any number of alternative implementations (incrementing, decrementing, random, fibronatchi…) and as long as they implement the interface they can be passed to the printer. This is fine if you&#8217;re in control of the implementation, and even more fine if you&#8217;re in control of the interface as well. There are times, however, when you&#8217;re in change of neither. Things can get a little messy and you may have to find a way of pushing a round peg through a square hole.</p>
<p>In dynamically typed languages, such as Python and Ruby, things work a little differently. These languages are often referred to as being &#8220;duck&#8221; typed, as they make the assumption that if something &#8220;looks like a duck and quacks like a duck, treat it as though it&#8217;s a duck.&#8221; In this case we wouldn&#8217;t bother with any of the interfaces and our Printer class would look more like this:</p>
<pre><span style="color:#800080;">class</span> Printer:
  <span style="color:#800080;">def</span> update(counter):
    print counter.get()</pre>
<p>So long as the counter object has a method called get() we don&#8217;t have a problem. Everything will be fine. This is much simpler, and is one of the things which makes Python very quick to program in, but it does have problems. The main problem (for me, at least) is specification. Without examining the source code, I can&#8217;t see what sort of object I have to pass into the update method. If the method has been manually commented then there&#8217;s no problem, but this is an incredible tedious thing to have to do. In the Java code I can see the type right there in the auto-generated documentation, and even if the writer has written no comments at all (what a bastard!) I can still get a good idea of what I need to pass into the method.</p>
<p>Go takes a different approach. It&#8217;s statically typed, and it has interfaces, but a class doesn&#8217;t need to state that it implements an interface. This is implicit and automatic. If a class has the methods defined in an interface, then it is automatically considered to implement it. You get the flexibility of Python with the specification and predicability of Java. This is just one of the things in Go which I think is a really good idea.</p>
<p>On the other hand, I think functional programming is a really stupid idea. I find the languages to be completely horrendous. I feel they must be created by the sort of people who think Linux is user friendly. I consider them curiosities whose only merit is academic. It appears to me that their major use case is to make programming appear more obscure than it actually is and to abstract way the programmer&#8217;s knowledge of what the computer is actually doing.</p>
<p>You may be surprised to learn, then, that the third language I&#8217;m going to be trying to port Clockwork Aphid into is Scala, a functional programming language. The reason for this is simple: while I personally believe that functional programming (FP) is rubbish, many people disagree. Not a majority, but certainly a very vocal minority. Within Google this minority is very vocal in indeed. The word &#8220;fundamentalists&#8221; might be appropriate to describe them. When someone believes something that hard it makes me very curious. This is turn tends to lead me towards testing my own beliefs. Sometimes I discover something new and exciting which I was missing out on previously*, and sometimes my initial suspicions are confirmed**. We&#8217;ll see which way it goes with Scala.</p>
<p>* Such as the Harry Potter books, which I had stubbornly refused to read until just before the first film was released.</p>
<p>** Such as when I noticed that the Twilight books had taken up the first four places on the Waterstone&#8217;s chart and decided I aught to find out what all the fuss was about.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/697/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=697&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/09/14/revisiting-the-language-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>Separation of Concerns</title>
		<link>http://harveynick.wordpress.com/2011/09/13/separation-of-concerns/</link>
		<comments>http://harveynick.wordpress.com/2011/09/13/separation-of-concerns/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 10:00:37 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Fifteen Words or Less]]></category>
		<category><![CDATA[fifteen words or less]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=698</guid>
		<description><![CDATA[It&#8217;s seemed to me for a little while that the fifteen word film reviews I&#8217;ve been writing on this blog don&#8217;t really fit in with the rest of the content. They feel too short compared to everything else, and WordPress feels like way too much infrastructure for writing them. I love WordPress&#8217; power and flexibility, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=698&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s seemed to me for a little while that the fifteen word film reviews I&#8217;ve been writing on this blog don&#8217;t really fit in with the rest of the content. They feel too short compared to everything else, and WordPress feels like way too much infrastructure for writing them. I love WordPress&#8217; power and flexibility, but a lot of it seems to get in the way when all you want to do is quickly post a short paragraph.</p>
<p>I&#8217;ve been curious about Tumblr for quite a while, and seems like a good fit, so from here on out that&#8217;s where I&#8217;m going to be posting my short film reviews. They&#8217;ll on a blog called &#8220;Oh So Humble Opinion&#8221; which you can find <a href="http://ohsohumbleopinion.tumblr.com">here</a>. You may also notice that <em>this</em> blog has a new element in the sidebar to the right, which shows the most recent of them.</p>
<p>You may also have noticed that I said &#8220;short&#8221; film reviews, rather than &#8220;fifteen word&#8221; film review just then. That&#8217;s because I&#8217;m boosting the word count to twenty five. After doing this for a while now, I&#8217;ve come to the conclusion that fifteen words is just too constricting. Too many times I&#8217;ve been unable to say what I wanted to without mangling my English. No more!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/698/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=698&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/09/13/separation-of-concerns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>The Ol&#8217; Homestead</title>
		<link>http://harveynick.wordpress.com/2011/09/11/the-ol-homestead/</link>
		<comments>http://harveynick.wordpress.com/2011/09/11/the-ol-homestead/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 16:59:41 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[monty python]]></category>
		<category><![CDATA[roche abbey]]></category>
		<category><![CDATA[yorkshire]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=687</guid>
		<description><![CDATA[You may or may not be aware that, though I now lived in London and previously lived in Edinburgh, I&#8217;m originally from South Yorkshire. Since I visited my parents this weekend for my father&#8217;s 60th birthday*, I though I&#8217;d take a moment to talk about a couple of Yorkshire related titbits which have crossed my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=687&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You may or may not be aware that, though I now lived in London and previously lived in Edinburgh, I&#8217;m originally from South Yorkshire. Since I visited my parents this weekend for my father&#8217;s 60th birthday*, I though I&#8217;d take a moment to talk about a couple of Yorkshire related titbits which have crossed my mind recently.</p>
<p>The first is the fact that no matter how far you go from your your roots, they have a way of inserting themselves into your life in unexpected places. The other day (or &#8220;t&#8217;other day&#8221; if we&#8217;re going to be properly Yorkshire about this) I was walking through Waterloo train station on my way to meet some friends for dinner. There&#8217;s a theatre attached to the station which is showing &#8220;The Railway Children&#8221;, and thus it has been named &#8220;The Yorkshire Theatre&#8221;. Next to the theatre is a booth organised by &#8220;Visit Yorkshire&#8221;, which is essentially the Yorkshire Tourist Board. As is often the case with these booths, it has a couple of large posters showing sights intended to entice you to… well… visit Yorkshire.</p>
<p>So far, so normal, but the beautiful yet ruined abbey in one of the pictures looked very familiar indeed. In fact, it looked a lot like the very beautiful yet ruined abbey just outside my otherwise almost entirely unremarkable home town. A little bit of Googling later and I confirmed that, sure enough, there was a great big picture of Roche Abbey sitting in Waterloo train station. See for yourself:</p>
<p><img style="display:block;margin-left:auto;margin-right:auto;" title="ffba50d6-a214-4204-8fe8-9562dae62447.jpg" src="http://www.ntopsearch.com/media/images/f/f/ffba50d6-a214-4204-8fe8-9562dae62447/ffba50d6-a214-4204-8fe8-9562dae62447.jpg" alt="ffba50d6-a214-4204-8fe8-9562dae62447.jpg" border="0" /></p>
<p>Maltby was once a proud coal mining town, but those days are very much gone. Now it&#8217;s mostly a hub for people who commute into the surrounding larger towns and cities. There&#8217;s not a lot here. To my knowledge, not even a Starbucks or Subway. Thus, it was a pleasant surprise to see one of the local sights held up next to the Jorvic Viking Centre as one of the main attractions in Yorkshire. Go us.</p>
<p>Something which is potentially less of an attraction in Yorkshire is the people. They&#8217;re not unfriendly, but but they can seem a little cold, and don&#8217;t aways warm to a person as quickly as they might. Know this, though: if I Yorkshireman calls you friend, he <em>means</em> it**. There is also strong streak on competitiveness in the Yorkshire folk, and a fierce pride in working class roots, though it feels as though this is being eroded in Yorkshire as it is everywhere in the UK. Some years ago, Monty Python sent this up almost perfectly in what I consider to be the finest comedy sketch every written:</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/09/11/the-ol-homestead/"><img src="http://img.youtube.com/vi/Xe1a1wHxTyo/2.jpg" alt="" /></a></span></p>
<p style="text-align:center;">(There&#8217;s also an alternative version <a href="http://www.youtube.com/watch?v=-eDaSvRO9xA">here</a>)</p>
<p>I say best written because the performance does not, in my opinion, quite live up to the writing. The delivery is fantastic, but most of the accents aren&#8217;t quite right. But still, <em>beggars can&#8217;t me choosers</em>. Also: <em>waste not, want not</em>, and <em>close your mouth, there&#8217;s a bus coming</em>.</p>
<p>* This makes me feel old, but I suspect it makes him feel older&#8230;</p>
<p>** The same, of course, goes for the ladies of Yorkshire, but &#8220;Yorkshireman&#8221; scans so much better than any unisex pronoun I could think of.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/687/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=687&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/09/11/the-ol-homestead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>

		<media:content url="http://www.ntopsearch.com/media/images/f/f/ffba50d6-a214-4204-8fe8-9562dae62447/ffba50d6-a214-4204-8fe8-9562dae62447.jpg" medium="image">
			<media:title type="html">ffba50d6-a214-4204-8fe8-9562dae62447.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Dogfood, Nom Nom Nom</title>
		<link>http://harveynick.wordpress.com/2011/08/26/dogfood-nom-nom-nom/</link>
		<comments>http://harveynick.wordpress.com/2011/08/26/dogfood-nom-nom-nom/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 09:00:04 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Clockwork Aphid]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[clockwork aphid]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[dogfood]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=684</guid>
		<description><![CDATA[Dog food, the common noun, is reasonably self explanatory (pro tip: it&#8217;s food for dogs). Dogfood the verb or dogfooding the verbal noun, though, might require a little bit of explanation. At the root of it is this: if you make dog food, you should feed it to your own dogs. There are essentially two [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=684&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dog food, the common noun, is reasonably self explanatory (pro tip: it&#8217;s food for dogs). Dogfood the verb or dogfooding the verbal noun, though, might require a little bit of explanation.</p>
<p>At the root of it is this: if you make dog food, you should feed it to your own dogs. There are essentially two reasons for this:</p>
<ol>
<li>If you don&#8217;t personally test it, how will know if it&#8217;s any good?</li>
<li>If your dogs don&#8217;t eat it, why the hell should anyone else&#8217;s?</li>
</ol>
<p>The same principle applies to software. Even more so in fact, as it&#8217;s something you&#8217;re more able to test directly. As a simple example: in Google, we use Google docs for most documentation purposes (design docs, presentations, etc.). I&#8217;m willing to bet that folks at Apple use iWork for much the same purpose. I&#8217;m absolutely certain that Microsoft employes use Office, excepting those times when it&#8217;s necessary to write a document in the blood of a green eyed virgin upon the pressed skin of an albino goat.</p>
<p>This process is called dogfooding. You use the software internally before it&#8217;s released to users, ensuring that it gets a lot more test usage. As an added bonus, developers who actually use the software they create are more likely to create software that&#8217;s actually worth using. That&#8217;s not always the case, of course, since most developers don&#8217;t really fall into the &#8220;average users&#8221; category. Case in point: upgrading my computer to Lion broke my installation of Steam. I fixed it with a quick command line incantation, then performed a couple more in order to make <a href="http://www.moddb.com/mods/the-stanley-parable">The Stanley Parable</a> functional under OSX. Most computer users would not be comfortable doing something like this, nor should they have to.</p>
<p>As well as using your company&#8217;s products at work, it&#8217;s generally a good idea to use them at home. It&#8217;s always good to have a feel for what your company actually does and get more experience with it. I&#8217;ve used Google search more or less exclusively for at least ten years. That&#8217;s not really a hard choice. It gives the best results. Likewise, I started using Google Chrome is my main web browser pretty much as soon as it was available for the platforms I used (in my last job that was actually Windows, OSX and Linux). I use iPhone in preference to Android, however, though I do have an upgrade due me towards the end of the year and it&#8217;s not completely inconceivable that I might switch. For the time being at least, I&#8217;m definitely sticking with WordPress, so I won&#8217;t get to play with Blogger, Google Analytics or AdSense, either.</p>
<p>As well as dogfooding Google products at work, we also dogfood technologies and platforms. This sounds fairly obvious, but it&#8217;s not always the case with companies who create platform technology. Microsoft, for instance, used to be famous for not using the technologies they provided to developers internally, though they are getting better now. Some of Google&#8217;s technologies are open source, and thus available for everyone to use. <a href="http://code.google.com/p/google-guice/">Guice</a> and <a href="http://code.google.com/p/protobuf/">Protocol Buffers</a> are pretty good examples of this. Guice is amazing, by the way. This being the case, there&#8217;s nothing to stop me using them on personal projects, should that be appropriate. Personal projects such as Clockwork Aphid, for example.</p>
<p>I&#8217;ll talk about which particular Google technologies I think might be useful in later blog posts, but since I brought it up, I suppose I should probably say something about Clockwork Aphid. I&#8217;ve blown the dust off the code, tweaked a couple of things and got a feature I&#8217;d left half finished back on track. I tried switching my current implementation from jMonkeyEngine version 2 to version 3, only to find that while it does appear a lot faster and improved in several other ways, the documentation is pretty crappy, and it&#8217;s less… functional.</p>
<p>I&#8217;ll talk about that more later, but for now just know that things are once again happening.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/684/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/684/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/684/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=684&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/08/26/dogfood-nom-nom-nom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>Who Likes Short Shorts?</title>
		<link>http://harveynick.wordpress.com/2011/08/24/who-likes-short-shorts/</link>
		<comments>http://harveynick.wordpress.com/2011/08/24/who-likes-short-shorts/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 11:38:07 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Computer Games]]></category>
		<category><![CDATA[Films]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Dan Trachtenburg]]></category>
		<category><![CDATA[Danielle Rayne]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[short film]]></category>

		<guid isPermaLink="false">http://harveynick.wordpress.com/?p=681</guid>
		<description><![CDATA[I think I love almost everything about this short film. That being the case, I&#8217;ll quit my chin wagging and just get on with showing it: Mucho kudos to Dan Trachtenburg, Danielle Rayne, and everyone else envolved. No get back to it. I want more!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=681&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think I love almost everything about this short film. That being the case, I&#8217;ll quit my chin wagging and just get on with showing it:</p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://harveynick.wordpress.com/2011/08/24/who-likes-short-shorts/"><img src="http://img.youtube.com/vi/4drucg1A6Xk/2.jpg" alt="" /></a></span></p>
<p>Mucho kudos to Dan Trachtenburg, Danielle Rayne, and everyone else envolved. No get back to it. I want more!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/681/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/681/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/681/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=681&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/08/24/who-likes-short-shorts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>Book Related Blog Post</title>
		<link>http://harveynick.wordpress.com/2011/08/23/book-related-blog-post/</link>
		<comments>http://harveynick.wordpress.com/2011/08/23/book-related-blog-post/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 10:00:02 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[manhattan in reverse]]></category>
		<category><![CDATA[neal stephenson]]></category>
		<category><![CDATA[peter f hamilton]]></category>
		<category><![CDATA[reamde]]></category>
		<category><![CDATA[snuff]]></category>
		<category><![CDATA[terry pratchett]]></category>

		<guid isPermaLink="false">https://harveynick.wordpress.com/?p=672</guid>
		<description><![CDATA[I finally broke. I’ve been saying for some time that if the Kindle, or a similarly capable eReader, went under the £100 mark I would splash out and buy one. Until quite recently I had been quite tempted, but this condition was never satisfied. Had I seen one for sale in a bricks and mortar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=672&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I finally broke.</p>
<p>I’ve been saying for some time that if the Kindle, or a similarly capable eReader, went under the £100 mark I would splash out and buy one. Until quite recently I had been quite tempted, but this condition was never satisfied. Had I seen one for sale in a bricks and mortar store while I was over in the US of A, I think I probably would have just snapped it up, dollar to stirling exchange rates and relative prices being what they are. But I didn’t, so I didn’t.</p>
<p>Then, suddenly, out of the blue, I just happened to be on the Amazon Kindle page by shear chance, in no way fighting the urge to just say “sod it” and bloody well buy one, when I noticed the word “refurbished” in the pricing options. More interesting to me were the numerals to the right of the word. Eighty of your British pounds.</p>
<p>Snap.</p>
<p>To cut a fairly short story down to the bare minimum: I have a Kindle now. The fact that it’s refurbished doesn’t bother me in the slightest. In actual fact this would tend to mean that it has passed a more rigorous set of tests, and still has the full guarantee. Also, it was cheaper. Did I mention that?</p>
<p>So what do I think of this bit of kit? It’s very pleasing indeed, and plays very nicely with my tendency to read books which might more accurately be called “tomes”. Right now that’s George R. R. Martins long and impatiently awaited “A Dance With Dragons”, a book which, if you fell asleep whilst holding it above your face, might conceivably knock you into some sort of Inception esque deeper dream. The kindle, however, has about the size and weight of a molskine journal, making it small enough to fit into some pockets, and light enough to be carried comfortably in the hand or slung in a bag.</p>
<p>It has that slightly strange blinky page turn which is common to the current generation of eInk displays, but that doesn’t really bother me at all. At times it reminds me of shifting black and white sand, particularly when changing to and from the screen savers, which I actually find quite pleasing. I’d like it if they play this up in future versions, rather than just making the page turn quicker, but I suspect that would be a bit of a waste of resou… I mean… er… valuable functionality indicative of a mature company sure of its own capabilities and comfortable with its place in the world. It seems only right that such a company should furnish us with an eReader which acts like something straight out of the <a href="http://www.amazon.co.uk/Diamond-Age-Neal-Stephenson/dp/0241953197/ref=ntt_at_ep_dpt_12">Diamond Age</a>, no?</p>
<p>It’s not all sweetness and light, though. I do have two significant complaints. Firstly, when you turn the device off it shifts into a randomly selected screen saver image from a pool which is preloaded on the device. This is not what I want it to do. I want it to show the cover of the book which I’m actually reading. At this point you may have figured out that my complaints are not, in fact, all that significant at all. This one does annoy me a disproportionate amount though. It just seems so obvious.</p>
<p>The second, equally earth shaking, complaint relates to the progress information along the bottom of the screen. This gives the percentage progress through the book together with a progress bar. I’m told the dots on the progress bar represent chapters, but when the book you’re reading is about a bazillion pages long this is less than helpful. Something iBooks does which I really like is tell you how many pages remain of the current chapter. If I’m reading in bed, for instance, then this is  exactly the information I’m looking for. I suspect there is a way of showing more information here, but I haven’t found it yet.</p>
<p>Something else which pushed me towards the purchase of this particular object of desire was the imminent release of new books by three of my favourite authors.</p>
<p>The first is &#8220;<a href="http://www.amazon.co.uk/Reamde-Neal-Stephenson/dp/1848874480/ref=sr_1_1?ie=UTF8&amp;qid=1314052707&amp;sr=8-1">Reamde</a>&#8221; by Neal Stephenson. I usually love Stephenson, and the synopsis really makes it sound as though he might be firing on all cylinders:</p>
<blockquote><p>Across the globe, millions of computer screens flicker with the artfully coded world of T&#8217;Rain &#8211; an addictive internet role-playing game of fantasy and adventure. But backstreet hackers in China have just unleashed a contagious virus called Reamde, and as it rampages through the gaming world spreading from player to player &#8211; holding hard drives hostage in the process &#8211; the computer of one powerful and dangerous man is infected, causing the carefully mediated violence of the on-line world to spill over into reality. A fast-talking, internet-addicted mafia accountant is brutally silenced by his Russian employers, and Zula &#8211; a talented young T&#8217;Rain computer programmer &#8211; is abducted and bundled on to a private jet. As she is flown across the skies in the company of the terrified boyfriend she broke up with hours before, and a brilliant Hungarian hacker who may be her only hope, she finds herself sucked into a whirl of Chinese Secret Service agents and gun-toting American Survivalists; the Russian criminal underground and an al-Qaeda cell led by a charismatic Welshman; each a strand of a connected world that devastatingly converges in T&#8217;Rain.</p></blockquote>
<p>Sounds insane, right? This is another monster of a book, but right now there is no Kindle edition listed, disappointingly. Still, I have my fingers crossed. The next is Terry Pratchett&#8217;s latest. I hate to say it, but Pratchett&#8217;s last couple of books haven&#8217;t really been up to his usual standard, in my opinion. &#8220;<a href="http://www.amazon.co.uk/Snuff-Discworld-Sir-Terry-Pratchett/dp/038561926X/ref=pd_sim_b_6">Snuff</a>&#8221; is a Vimes book, though, so I have high hopes:</p>
<blockquote><p>It is a truth universally acknowledged that a policeman taking a holiday would barely have had time to open his suitcase before he finds his first corpse.</p>
<p>And Commander Sam Vimes of the Ankh-Morpork City Watch is on holiday in the pleasant and innocent countryside, but not for him a mere body in the wardrobe. There are many, many bodies and an ancient crime more terrible than murder.</p>
<p>He is out of his jurisdiction, out of his depth, out of bacon sandwiches, and occasionally snookered and out of his mind, but never out of guile. Where there is a crime there must be a finding, there must be a chase and there must be a punishment.</p>
<p>They say that in the end all sins are forgiven.</p>
<p>But not quite all&#8230;</p></blockquote>
<p>Finally, we have &#8220;<a href="http://www.amazon.co.uk/Manhattan-Reverse-Peter-F-Hamilton/dp/0230750303/ref=pd_sim_b_1">Manhattan in Reverse</a>&#8220;, a book of short stories by Peter F. Hamilton. No one does overblown space opera quite so well as Hamilton, in my opinion, but his short stories can be a little spotty. I have no complaints about getting a bit more Paula Mayo, though, so count me in.</p>
<p>The fun thing, though, is that I found the second two books on the suggestions list for the first. Amazon, methinks you have a little too much the measure of me.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/672/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/672/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/672/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=672&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/08/23/book-related-blog-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>The Inbetweeners &lt;= 15 Words</title>
		<link>http://harveynick.wordpress.com/2011/08/22/the-inbetweeners-15-words/</link>
		<comments>http://harveynick.wordpress.com/2011/08/22/the-inbetweeners-15-words/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 23:18:34 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Fifteen Words or Less]]></category>
		<category><![CDATA[Film Reviews]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[film review]]></category>
		<category><![CDATA[the inbetweeners]]></category>

		<guid isPermaLink="false">http://harveynick.wordpress.com/?p=675</guid>
		<description><![CDATA[Speaking as an English former sixth form student: painfully, hilariously and very true to life.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=675&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Speaking as an English former sixth form student: painfully, hilariously and very true to life.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/675/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=675&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/08/22/the-inbetweeners-15-words/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
		<item>
		<title>Cowboys and Aliens &lt;= 15 Words</title>
		<link>http://harveynick.wordpress.com/2011/08/18/cowboys-and-aliens-15-words/</link>
		<comments>http://harveynick.wordpress.com/2011/08/18/cowboys-and-aliens-15-words/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 16:09:36 +0000</pubDate>
		<dc:creator>harveynick</dc:creator>
				<category><![CDATA[Fifteen Words or Less]]></category>
		<category><![CDATA[Film Reviews]]></category>
		<category><![CDATA[cowboys and aliens]]></category>
		<category><![CDATA[daniel craig]]></category>
		<category><![CDATA[film review]]></category>
		<category><![CDATA[harrison ford]]></category>
		<category><![CDATA[john favreau]]></category>

		<guid isPermaLink="false">http://harveynick.wordpress.com/?p=670</guid>
		<description><![CDATA[Starts like Carpenter, ends like Bruckheimer, with wrist mounted deus ex machina. Bad? No: Unspectacular.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=670&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Starts like Carpenter, ends like Bruckheimer, with wrist mounted deus ex machina. Bad? No: Unspectacular.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/harveynick.wordpress.com/670/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/harveynick.wordpress.com/670/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/harveynick.wordpress.com/670/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=harveynick.wordpress.com&amp;blog=4405948&amp;post=670&amp;subd=harveynick&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://harveynick.wordpress.com/2011/08/18/cowboys-and-aliens-15-words/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eb55935486442c1e2b2455f85b9a771?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">harveynick</media:title>
		</media:content>
	</item>
	</channel>
</rss>
