<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Dark Liquid</title>
	
	<link>http://darkliquid.co.uk</link>
	<description>Rainy Days</description>
	<lastBuildDate>Mon, 09 Apr 2012 06:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DarkLiquid" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="darkliquid" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>My First “Proper” Node.js app</title>
		<link>http://darkliquid.co.uk/2012/04/09/my-first-proper-node-js-app/</link>
		<comments>http://darkliquid.co.uk/2012/04/09/my-first-proper-node-js-app/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 06:50:45 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[radio]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/?p=544</guid>
		<description><![CDATA[<p>So over the weekend I cranked out my first proper node.js application. It&#8217;s a very simple frontend for controlling MPD (the music playing daemon). When I say simple, I mean just a start and stop button and a button to ask it to update its track database. It&#8217;s designed as a simple tool for G3 [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>So over the weekend I cranked out my first proper node.js application. It&#8217;s a very simple frontend for controlling MPD (the music playing daemon). When I say simple, I mean just a start and stop button and a button to ask it to update its track database. It&#8217;s designed as a simple tool for <a href="http://g3-radio.net">G3 Radio</a> to control the automated jukebox they run between their live DJ shows. More features are on the cards as per the wiki for the project, but at the moment it does the job. </p>
<p>It&#8217;s using express.js as the webservers and mpd-socket for talking to MPD. I have it load JSON files for its configs. I&#8217;m using the lovely everyauth middleware for auth against a flat file, which takes all the pain out of that process. It was pretty easy to write after I wrapped my brain around some annoying issues I was having. </p>
<p>Anyway, if you fancy seeing some bumbling attempt to make a node.js application and/or need something like what I&#8217;ve described,  check it out on github: <a href="http://github.com/g3radio/g3hal">g3hal on g3radio @ github</a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=aJz5WWfgIR8:Vk0IBccA5RE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=aJz5WWfgIR8:Vk0IBccA5RE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=aJz5WWfgIR8:Vk0IBccA5RE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/aJz5WWfgIR8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/04/09/my-first-proper-node-js-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automated Web Testing With Cucumber, Selenium and a custom fixtures server</title>
		<link>http://darkliquid.co.uk/2012/03/31/automated-web-testing-with-cucumber-selenium-and-a-custom-fixtures-server/</link>
		<comments>http://darkliquid.co.uk/2012/03/31/automated-web-testing-with-cucumber-selenium-and-a-custom-fixtures-server/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 21:28:47 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/?p=525</guid>
		<description><![CDATA[<p>Recently I&#8217;ve been working on a website that is a single page AJAX driven application that&#8217;s essentially just a frontend to an API, rather than doing any of it&#8217;s own processing. For testing it I wanted to be able to test without hitting the API but since the application is so javascript heavy and makes [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been working on a website that is a single page AJAX driven application that&#8217;s essentially just a frontend to an API, rather than doing any of it&#8217;s own processing. </p>
<p>For testing it I wanted to be able to test without hitting the API but since the application is so javascript heavy and makes use of various complex workarounds for various browser issues, testing it using the usual methods never worked and only &#8220;real&#8221; browsers cut the mustard. </p>
<p>I&#8217;ve tried a number of headless browsers such as <a href="http://zombie.labnotes.org">zombie.js</a> but they&#8217;ve all had issues so I&#8217;ve settled on using selenium for testing in a real browser. The other issue is that most web application testing systems assume at least some kind of backend system that you can then mock the http calls of. However in my case the entire app is client side and has no server at all, so doing that wasn&#8217;t an option. </p>
<p>The solution I came up with was a cobbled together selection of <a href="http://rake.rubyforge.org/">rake</a> tasks, shell scripts, a custom <a href="http://nodejs.org/">node.js</a> server and some hooks in cucumber to set up fixtures.&nbsp; I run my tests against a live server through a recording proxy to get the results of the API calls, then format the results into little fixture files to get loaded by the fixtures server based on tags on my cucumber scenarios. It&#8217;s quite a flexible setup now it&#8217;s running, the only chore is writing the fixtures, though hopefully I can knock up a quick script to generate the fixtures automatically from my proxy recordings.</p>
<p>I wont go into the details of running <a href="http://cukes.info/">cucumber</a> with <a href="https://github.com/jnicklas/capybara">capybara</a> and <a href="http://seleniumhq.org/">selenium</a>, since those are already well documented elsewhere, such as on the <a href="https://github.com/jnicklas/capybara">capybara github page</a>. However, I&#8217;ll run through my scripts.</p>
<p>First off, I have my bash script to actually setup my server and run all my tests, it goes a little something like this:<br />
<strong>UPDATE:</strong> Made some amendments thanks to suggestions from Ralph Corderoy in the comments.<br />
<strong>UPDATE 2:</strong> Removed set -eu line since breaking out on errors means not shutting down the fixture server when tests fail.</p>
<p></p><pre class="crayon-plain-tag">#!/bin/bash
echo &quot;Starting fixtures server...&quot;
node ./fixture-server.js &amp;
PID=$!
sleep 1

echo &quot;Running tests...&quot;
rake features

echo &quot;Shutting down fixtures server...&quot;
curl http://127.0.0.1:7357/_fixtures/shutdown &amp;&gt; /dev/null
sleep 1

echo &quot;Force shutdown of fixtures server...&quot;
kill $PID &amp;&gt; /dev/null || true</pre><p></p>
<p>What is happening in the above should be fairly obvious, but essentially I&#8217;m running my fixtures server and capture it&#8217;s PID so I can shut it down later. I wait for a bit, then execute my tests via a Rakefile, then I send a command to the fixture server to shutdown, wait for a bit, then force a shutdown in case it&#8217;s not done it already. Simples!</p>
<p>The fixture server can be found in <a href="https://github.com/darkliquid/random-scripts">my random scripts repository on github</a>. It&#8217;s hard-coded to run on port <abbr title="7357 in l33t is test, hardy har har">7357</abbr> but that&#8217;s easy to change. I&#8217;ve tried to document how it works in the code but a gist of it is that the fixture server will server static assets but fall through on all other requests to look at whatever fixtures it has loaded. By default, it will have loaded no fixtures so will 404. However, it has some special URLs for loading in fixtures. On <code>/_fixtures/load/:fixture</code> the server will load a json fixture file with the name <code>:fixture.json</code>. Multiple fixtures can be loaded for the same path and the server will work it&#8217;s way through them, serving each one once until it has no more where it will then 404 again. Fixtures can be cleared from memory with a call to <code>/_fixtures/clear</code> and you can inspect the currently loaded fixtures by calling <code>/_fixtures/inspect</code>. A call to <code>/_fixtures/shutdown</code> will instruct the server to shut itself down. At the moment the fixture server only supports loading fixtures for GET and POST requests as that&#8217;s all I&#8217;ve needed, but it&#8217;s easy to extend that.</p>
<p>The fixture files themselves are very simple. Here is an example one:</p>
<p></p><pre class="crayon-plain-tag">[
	{
		&quot;method&quot;: &quot;GET&quot;,
		&quot;path&quot;: &quot;/test&quot;,
		&quot;status&quot;: 403,
		&quot;headers&quot;: {
			&quot;Content-Type&quot;: &quot;application/json; charset=utf-8&quot;
		},
		&quot;content&quot;: &quot;{\&quot;success\&quot;:false,\&quot;error\&quot;:true,\&quot;error_code\&quot;:403,\&quot;error_message\&quot;:\&quot;Unauthorized\&quot;}&quot;
	},
	{
		&quot;method&quot;: &quot;POST&quot;,
		&quot;path&quot;: &quot;/test/post&quot;,
		&quot;status&quot;: 302,
		&quot;headers&quot;: {
			&quot;Location&quot;: &quot;/&quot;
		},
		&quot;content&quot;:&quot;&quot;
	},
	{
		&quot;method&quot;: &quot;GET&quot;,
		&quot;path&quot;: &quot;/test&quot;,
		&quot;status&quot;: 200,
		&quot;headers&quot;: {
			&quot;Content-Type&quot;: &quot;application/json; charset=utf-8&quot;
		},
		&quot;content&quot;: &quot;{\&quot;success\&quot;:true,\&quot;message\&quot;:\&quot;Authorized\&quot;}&quot;
	}
]</pre><p></p>
<p>In the above fixture file, the server is setup to respond with a failure message the first time it is accessed with a GET on <code>/test</code>, a redirect the first time it is accessed with a POST on <code>/test/post</code> and a success message the second time it is accessed with a GET on <code>/test</code>.</p>
<p>In cucumber, using the stuff I&#8217;ve mentioned above, we can now do cool stuff like configuring fixtures for each scenario. I use something like this to setup my fixtures:</p>
<p></p><pre class="crayon-plain-tag">require 'net/http'

module FixtureHelpers
	def load_fixture(fixture)
		Net::HTTP.get(::TEST_HOST, &quot;/_fixtures/load/#{fixture}&quot;, ::TEST_PORT)
	end

	def clear_fixtures
		Net::HTTP.get(::TEST_HOST, '/_fixtures/clear', ::TEST_PORT)
	end
end
World(FixtureHelpers)

Before('@notauthed') do
	load_fixture(:notauthed)
end

Before('@authed') do
	load_fixture(:authed)
end

After do
	clear_fixtures
end</pre><p></p>
<p>I slap that in a .rb file in my <code>features/support</code> directory and I can now use the <code>@authed</code> and <code>@notauthed</code> tags to load the appropriate fixtures into the server, like in the following feature:</p>
<p></p><pre class="crayon-plain-tag">Feature: Login page
	In order to access the site
	As a customer
	I want to be able to login

	@notauthed
	Scenario: Should get redirected to the login page when not logged in
		Given I am on the home page
		Then I should be on the login page

	@notauthed
	Scenario: Login without any details
		Given I am on the login page
		When I press &quot;Login &raquo;&quot;
		Then the &quot;Username&quot; field should have errors
		And the &quot;Password&quot; field should have errors
		And I should see &quot;Whoops!&quot;
		And I should see &quot;Your login details could not be authenticated&quot;

	@notauthed
	Scenario: Login with bad details
		Given I am on the login page
		And I fill in &quot;Username&quot; with &quot;invalid-user&quot;
		And I fill in &quot;Password&quot; with &quot;invalid-pass&quot;
		When I press &quot;Login &raquo;&quot;
		Then the &quot;Username&quot; field should have errors
		And the &quot;Password&quot; field should have errors
		And I should see &quot;Whoops!&quot;
		And I should see &quot;Your login details could not be authenticated&quot;

	@notauthed @authed
	Scenario: Login with valid details
		Given I am on the login page
		And I fill in &quot;Username&quot; with &quot;valid-user&quot;
		And I fill in &quot;Password&quot; with &quot;valid-pass&quot;
		When I press &quot;Login &raquo;&quot;
		Then I should be on the home page</pre><p></p>
<p>You&#8217;ll notice that I can do cool things like load multiple fixtures by specifying multiple tags. The fixtures get loaded in the order that that tags appear so I can create fairly complex fixture scenarios from simple individual fixtures.</p>
<p>All in all I&#8217;ve found it a reasonably nice simple way of being able to test client-side only apps that drive APIs without having to hit the actual API server. Obviously if you are developing your own API server as well, you should be writing tests for the API server in addition to the client, but this way to can keep them nicely de-coupled in your tests so you don&#8217;t have to hit live data, which based on your project might be impossible to test against anyway.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=E5o2Hmuwzz4:YcmHJb1mhcs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=E5o2Hmuwzz4:YcmHJb1mhcs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=E5o2Hmuwzz4:YcmHJb1mhcs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/E5o2Hmuwzz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/03/31/automated-web-testing-with-cucumber-selenium-and-a-custom-fixtures-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>http blog multiplay co uk 2012 03 using…</title>
		<link>http://darkliquid.co.uk/2012/03/09/http-blog-multiplay-co-uk-2012-03-using/</link>
		<comments>http://darkliquid.co.uk/2012/03/09/http-blog-multiplay-co-uk-2012-03-using/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 11:22:15 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[link]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2012/03/09/http-blog-multiplay-co-uk-2012-03-using/</guid>
		<description><![CDATA[<p>http://blog.multiplay.co.uk/2012/03/using-the-jquery-deferred-object-pipe-method-to-validate-success-data/</p>
 ]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.multiplay.co.uk/2012/03/using-the-jquery-deferred-object-pipe-method-to-validate-success-data/" rel="nofollow">http://blog.multiplay.co.uk/2012/03/using-the-jquery-deferred-object-pipe-method-to-validate-success-data/</a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=-toVAtZFF7Y:kEpkOgezoh0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=-toVAtZFF7Y:kEpkOgezoh0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=-toVAtZFF7Y:kEpkOgezoh0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/-toVAtZFF7Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/03/09/http-blog-multiplay-co-uk-2012-03-using/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates</title>
		<link>http://darkliquid.co.uk/2012/02/07/updates-3/</link>
		<comments>http://darkliquid.co.uk/2012/02/07/updates-3/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 07:00:26 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/?p=478</guid>
		<description><![CDATA[<p>So life has had some ups and downs recently but nothing I feel too inclined to elaborate on. None of my plans have really worked out so far, the exercise hasn&#8217;t really happened nor the writing or work on other projects. Driving is still going fine despite a busted alternator and other minor issues. Money, [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>So life has had some ups and downs recently but nothing I feel too inclined to elaborate on. None of my plans have really worked out so far, the exercise hasn&#8217;t really happened nor the writing or work on other projects. Driving is still going fine despite a busted alternator and other minor issues. Money, money, money. </p>
<p>I recently signed up for Netflix. Seems like a cool service but had such an appallingly poor selection I cancelled before my free trial ran out. Also, I couldn&#8217;t find a way of getting it working on the PS3 as there seemed to be no app available unlike LoveFilm. Speaking of which, I&#8217;m loving. Much better selection and nicely working on the PS3. Cheaper too for the streaming only package. I finally got to see the black and white French film Angel-A, a film I&#8217;ve been wanting to see for a long time. It was everything I had hoped for, a really beautiful, quirky film. I&#8217;m liking these streaming services, they are actually making me watch films again. CONVENIENCE, PEOPLE! This is what the industry needs to pick up on. People are cheap and lazy, make your damn products to fit instead of sticking your head in the sand and hoping everyone will change to suit. </p>
<p>Work is fun. I&#8217;ve been working on a big project for some time now, getting into UX as well as working with some interesting tech, playing with the new-ish HTML5 technologies. Fun stuff.  I still sucks though, just slightly less so.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=TSq5nJ2d_p4:0h52oimeres:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=TSq5nJ2d_p4:0h52oimeres:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=TSq5nJ2d_p4:0h52oimeres:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/TSq5nJ2d_p4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/02/07/updates-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Just wrote a quick article about setting up…</title>
		<link>http://darkliquid.co.uk/2012/01/16/just-wrote-a-quick-article-about-setting-up/</link>
		<comments>http://darkliquid.co.uk/2012/01/16/just-wrote-a-quick-article-about-setting-up/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 14:57:55 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[status]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2012/01/16/just-wrote-a-quick-article-about-setting-up/</guid>
		<description><![CDATA[<p>Just wrote a quick article about setting up contextual help in wordpress plugin on the Multiplay tech blog. Read it here: http://blog.multiplay.co.uk/2012/01/updated-contextual-help-in-wordpress/</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Just wrote a quick article about setting up contextual help in wordpress plugin on the Multiplay tech blog. Read it here: <a href="http://blog.multiplay.co.uk/2012/01/updated-contextual-help-in-wordpress/" rel="nofollow">http://blog.multiplay.co.uk/2012/01/updated-contextual-help-in-wordpress/</a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=aFOja7MmBog:omgzDsLGXxI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=aFOja7MmBog:omgzDsLGXxI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=aFOja7MmBog:omgzDsLGXxI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/aFOja7MmBog" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/01/16/just-wrote-a-quick-article-about-setting-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Years</title>
		<link>http://darkliquid.co.uk/2012/01/14/new-years/</link>
		<comments>http://darkliquid.co.uk/2012/01/14/new-years/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 09:30:28 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2012/01/14/new-years/</guid>
		<description><![CDATA[<p>So, it&#8217;s a New Year. This year starts off with me being poor having spent obscene amounts on being able to drive. Debts are mounting up across all the various accounts but hopefully everything will work itself out. I&#8217;m hardly in such a bad state that I can&#8217;t dig myself out of it. I generally [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>So, it&#8217;s a New Year. This year starts off with me being poor having spent obscene amounts on being able to drive. Debts are mounting up across all the various accounts but hopefully everything will work itself out. I&#8217;m hardly in such a bad state that I can&#8217;t dig myself out of it.</p>
<p>I generally don&#8217;t make resolutions for the New Year, but I am going to try and do some more exercise. Having spent the last 4 years or so essentially sat on my ass the whole time, I was shocked a few days ago when I did some simple exercise to find that pretty much all my strength has gone. Not really shocking, given my activity levels, but it really made the point that I need to do something before I turn into some fatty spherical lump that lift a fork without losing his breath. Taking the typical geek route, I&#8217;m focusing on statistics, statistics and more statistics. I&#8217;m hoping actually tracking and graphing staff might gave me some immediate visual goals to reach for, since just doing exercise, as a participant with no tracking, never feels like I&#8217;m making any progress, which is never encouraging. Hopefully Fitocracy and/or RunKeeper will provide some much needed guidance and motivation.</p>
<p>Since working for Multiplay, games have become a large part of my life again. Having now bought over 300 games in the last 2 years, I have quite a large back catalogue to play though. Typically these are all indie title but for a few more mainstream items, since that tends to be where my interests lie. [Generic FPS] just doesn&#8217;t interest me, though I will say that I&#8217;m enjoying the independent, single-player only Hard Reset immensely at the moment. I&#8217;ve played a lot of Skyrim recently, which has been a lot of fun. I&#8217;m always amazed by the things fans will do, and this beautiful track by <a href="http://www.malukah.com/">Malukah Fenix</a> certainly qualifies as amazing:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/4z9TdDCWN7g" frameborder="0" allowfullscreen></iframe></p>
<p>My writing has taken a bad hit this last year. I&#8217;ve barely written anything or read anything for that matter (well, barely read anything means less than 20 or so books in the year for my appetite <img src='http://darkliquid.co.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). There are many stories I want to finish and that a few people on Protagonize want to see the conclusions of, so I need to get back on the saddle. I had said to myself last year I would try and seriously pursue publication, but that hasn&#8217;t happened. I&#8217;m hoping this year, now I have more time due to driving to work, things will be different, but if I&#8217;m entirely honest with myself, I doubt I&#8217;ll put the required time or effort into making a serious attempt. Not only is it a lot of work, it&#8217;s quite intimidating. I do want to finish at least one novel though by the end of the year and hopefully get into the meat of editing it with an eye to publish it independently, for kicks, since I&#8217;m not sure I&#8217;m even interested in mainstream publication or actually making a living from writing.</p>
<p>I&#8217;d also like to try and get back into music again and I have a computer game I&#8217;ve been meaning to develop for some time. So many projects, so little time.</p>
<p>Lets hope the time thing changes this year. Or, more proactively, let&#8217;s actually try to change that this year.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=9LGJ5GOfPg0:AM4nIUuauxY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=9LGJ5GOfPg0:AM4nIUuauxY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=9LGJ5GOfPg0:AM4nIUuauxY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/9LGJ5GOfPg0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2012/01/14/new-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So NaNoWriMo is over though if I’m honest…</title>
		<link>http://darkliquid.co.uk/2011/12/02/so-nanowrimo-is-over-though-if-im-honest/</link>
		<comments>http://darkliquid.co.uk/2011/12/02/so-nanowrimo-is-over-though-if-im-honest/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 13:39:36 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[status]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[driving]]></category>
		<category><![CDATA[insurance]]></category>
		<category><![CDATA[nanowrimo]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2011/12/02/so-nanowrimo-is-over-though-if-im-honest/</guid>
		<description><![CDATA[<p>So NaNoWriMo is over, though if I&#8217;m honest it ended for me barely a day after I began so I reach December with barely 1 days worth of words written, let alone the whole 50k minimum. I wasn&#8217;t really expecting to have the time or energy to work on it, as the commute to work [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>So NaNoWriMo is over, though if I&#8217;m honest it ended for me barely a day after I began so I reach December with barely 1 days worth of words written, let alone the whole 50k minimum. I wasn&#8217;t really expecting to have the time or energy to work on it, as the commute to work after 2 years is starting to wear me down, so I&#8217;m not really too cut up about it.</p>
<p>And on the happy note of the commute, I finally passed my driving test. I passed it by the skin of my teeth, more by luck than I&#8217;d like, but hell, I&#8217;ll take the win after the umpteen failures I&#8217;ve already collected. Now I have the fun, fun, fun time of trying to get car insurance that isn&#8217;t cripplingly expensive. It&#8217;s looking might it actually might be cheaper to buy a brand new car on finance and pay the insurance on that, as the insurance on my current car (which depressingly I realise I&#8217;ve owned for almost a year without being able to drive it) is more than double the quotes I&#8217;m getting on new cars and the finance costs of new cars over 5 years or so are roughly equal to the insurance premium (which should hopefully drop after the first year) whilst also having better fuel economy. Kinda sad that I buy a used car, only to find almost a year later it&#8217;s as if not more expensive for me to own and run than a brand new one.</p>
<p>Money, money, money! Arrrrgh!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=G5PKj2iX-Io:Hw2x6JkMsFA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=G5PKj2iX-Io:Hw2x6JkMsFA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=G5PKj2iX-Io:Hw2x6JkMsFA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/G5PKj2iX-Io" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2011/12/02/so-nanowrimo-is-over-though-if-im-honest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NaNoWriMo Cometh!</title>
		<link>http://darkliquid.co.uk/2011/10/26/nanowrimo-cometh/</link>
		<comments>http://darkliquid.co.uk/2011/10/26/nanowrimo-cometh/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 17:43:46 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[nanowrimo]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2011/10/26/nanowrimo-cometh/</guid>
		<description><![CDATA[<p>NaNoWriMo is on the horizon once again. After putting out a call for suggestions on what story to develop via Google+, the story Crowd Dodging won out, so this years NaNoWriMo will be a tale of three teenagers inventing their own sport, losing control of it to big media and then fighting to take it [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p><a href="http://nanowrimo.org">NaNoWriMo</a> is on the horizon once again. After putting out <a href="https://plus.google.com/u/0/112188011911288100294/posts/jWuukVEyx96">a call for suggestions on what story to develop via Google+</a>, the story <a href="http://prt.ag/YWLk">Crowd Dodging</a> won out, so this years NaNoWriMo will be a tale of three teenagers inventing their own sport, losing control of it to big media and then fighting to take it back.</p>
<p>Or it will be, if I can actually get it written.</p>
<p>I&#8217;ve been having trouble outlining it, coming up with scenes, etc. The idea just don&#8217;t want to form in my head. This is typical of me, I&#8217;m not a great planner in any sphere, for example in programming I find it much easier to think through ways to do something by trying the actually code a solution, rather than by planning it all out with flow charts and everything else beforehand. However, I do like having lots of goals to meet, which, without a plan, is quite hard. I think instead I might have to outline as I go and use my notes more as a map to refer back to for consistency, rather than as a guide of where to go.</p>
<p>However, what I have done so far is working out well. I&#8217;m using <a href="http://zim-wiki.org/">Zim, a desktop wiki application</a> to keep notes, which I save to a dropbox folder so I can access them wherever I go. Mapping out my protagonists is going reasonably well, I&#8217;m currently using the <a href="http://www.dresdenfilesrpg.com/">Dresden Files RPG</a> character generation sheets to flesh them out a bit (the game uses FATE as a rule system, which is fairly story-focused and works very well). I&#8217;ve been doing with using <a href="http://www.bullypulpitgames.com/games/fiasco">Fiasco</a> or <a href="http://danielsolisblog.blogspot.com/2007/08/do-pilgrims-of-flying-temple.html">Do</a> as scene generators, but neither really suit the genre I&#8217;m writing for, so I&#8217;ve not bothered.</p>
<p>The worst thing though is that I&#8217;ve been quite busy recently since getting off holiday, so I doubt I&#8217;ll have much time to develop my outline further or even get any writing done. Which is why I&#8217;m worried about not having an outline, because without clearly defined goals, I&#8217;m likely to flounder in the limited time I do have!</p>
<p>But what the hell, lets have a go anyway.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=f_-5FhwKZJI:zB6JEDFWiEk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=f_-5FhwKZJI:zB6JEDFWiEk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=f_-5FhwKZJI:zB6JEDFWiEk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/f_-5FhwKZJI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2011/10/26/nanowrimo-cometh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Help me choose a project for NaNoWriMo</title>
		<link>http://darkliquid.co.uk/2011/10/18/https-plus-google-com-u-0-112188011911288100294-posts/</link>
		<comments>http://darkliquid.co.uk/2011/10/18/https-plus-google-com-u-0-112188011911288100294-posts/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 15:54:57 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[link]]></category>
		<category><![CDATA[nanowrimo]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2011/10/18/https-plus-google-com-u-0-112188011911288100294-posts/</guid>
		<description><![CDATA[<p>Help me choose a project for NaNoWriMo</p>
 ]]></description>
			<content:encoded><![CDATA[<p><a href="https://plus.google.com/u/0/112188011911288100294/posts/jWuukVEyx96">Help me choose a project for NaNoWriMo</a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=17jjj-uj8_4:kEP5Ce3IQhc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=17jjj-uj8_4:kEP5Ce3IQhc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=17jjj-uj8_4:kEP5Ce3IQhc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/17jjj-uj8_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2011/10/18/https-plus-google-com-u-0-112188011911288100294-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity</title>
		<link>http://darkliquid.co.uk/2011/10/15/unity/</link>
		<comments>http://darkliquid.co.uk/2011/10/15/unity/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 19:11:00 +0000</pubDate>
		<dc:creator>Dark Liquid</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://darkliquid.co.uk/2011/10/15/unity/</guid>
		<description><![CDATA[<p>So, I&#8217;ve been using Unity since it&#8217;s official release in the last update. With this new release, I though it about time to talk about it. Now, Unity gets a lot of mud thrown at it. The main complaints I&#8217;ve seen are it &#8216;dumbs down&#8217; Linux. I don&#8217;t think this is true. However, it does [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been using Unity since it&#8217;s official release in the last update. With this new release, I though it about time to talk about it.</p>
<p>Now, Unity gets a lot of mud thrown at it. The main complaints I&#8217;ve seen are it &#8216;dumbs down&#8217; Linux. I don&#8217;t think this is true. However, it does lack some things, things that for me define the Linux experience, and that annoys me.</p>
<p>These things mainly are configurability. This isn&#8217;t to say that it isn&#8217;t configurable, but rather that a lot of this configuration is hidden behind arcane, invisible methods like the gconf system for example. Linux for me has always been about providing an environment where the user is in control, where everything can be configured and where the configuration of those programs is relatively standardised and easy to do (easy being a relative term here, I doubt anyone would argue that the sendmail config file is easy, as an example of the bad end of the scale). I found Unity to fail at providing this kind of environment. Sure it gets out of your way and lets you &#8216;just work&#8217;, but it does it by hiding a lot of things unnecessarily, rather than being an elegant solution.</p>
<p>Now that the main negative is out of the way, it&#8217;s time to move on to the positives.</p>
<p>Generally, I found the workflow in Unity not much different to my usual one. I was annoyed to find my Win key hijacked away from my usual Synapse/Gnome-Do program but I got used to it. The global menu I found fairly easy to get to grips with and it didn&#8217;t cause any problems. I quickly learnt to always look up for options. This might be due to having some experience with OSX though for a number of years, so for a new user or one experienced in non-global menu systems, it might be more disconcerting.</p>
<p>Apart from it just &#8216;getting out of the way&#8217; I didn&#8217;t really find it did much for my workflow at all. Since I try to avoid using the mouse, I did basically what I did before &#8211; trigger the application search to run an app and use the keyboard to switch workspaces. I didn&#8217;t really use the icon bar as I could generally type the name of the app in the search before I could remember what the icons did or what Win+Num shortcut mapped to them. </p>
<p>The notification icons not showing was a massive problem as a lot of apps I used didn&#8217;t support the new system and so I had to hack around in the gconf settings, which I would have never discovered if not for others posting solutions. I found on my dual monitor system that the system tray icons would have issues &#8211; some would only work on the primary screen and not the other, the ones on the right never triggering or only flashing their menus intermittently only to whisk them away instantly.</p>
<p>I didn&#8217;t find it all bad though and I think for the mass market, the new user that only wants to use what&#8217;s provided through the ubuntu software centre and has one monitor, it does it&#8217;s job. However, I found it to be quite hostile towards customisation, something I&#8217;ve never associated with Linux before. It seems to me to be trying too hard to be OSX, providing a single end-to-end software eco-system and user experience. This isn&#8217;t a bad thing, after all, OSX is very popular for a reason and it does provide a very tight, well balanced system if you want to do things in the way it provides.</p>
<p>I think there is a place for Unity, but it&#8217;s not really for me. I&#8217;ve found Ubuntu have developed this OSX style philosophy further in 11.10 and I found myself not liking it at all. On my main desktop machine I&#8217;m now trying out GNOME Shell, in the hope that it provides a nice balance between what a Linux system means to me and a productive, uncluttered desktop that gets out of my way and just lets me work. After using it for a while, I&#8217;ll write up how I feel about it.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=fx5cND8fohs:DbCEgfoyoAo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DarkLiquid?a=fx5cND8fohs:DbCEgfoyoAo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DarkLiquid?i=fx5cND8fohs:DbCEgfoyoAo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DarkLiquid/~4/fx5cND8fohs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://darkliquid.co.uk/2011/10/15/unity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

