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

<channel>
	<title>Dave McDermid &#187; Headscape</title>
	<atom:link href="http://www.davemcdermid.co.uk/category/headscape/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davemcdermid.co.uk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 19 Jan 2010 00:59:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AIR time</title>
		<link>http://www.davemcdermid.co.uk/2009/01/air-time/</link>
		<comments>http://www.davemcdermid.co.uk/2009/01/air-time/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 22:00:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Headscape]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.davemcdermid.co.uk/?p=37</guid>
		<description><![CDATA[Christmas eve. Work was off to a slow start, hindered first by the office Wii, then by table football, and it was only 9.30am. While the rest of the company was at home winding down and preparing for Christmas, Craig &#38; I decided to spend our last few hours on a side project, an Adobe [...]]]></description>
			<content:encoded><![CDATA[<p>Christmas eve. Work was off to a slow start, hindered first by the office Wii, then by table football, and it was only 9.30am. While the rest of the company was at home winding down and preparing for Christmas, <a href="http://cargowire.net/">Craig</a> &amp; I decided to spend our last few hours on a side project, an <a href="http://www.adobe.com/air/">Adobe AIR</a> app. We&#8217;re the life and soul of Headscape, there&#8217;s no doubt.</p>
<p>Although I&#8217;d delved into the world of AIR before, I hadn&#8217;t really had a proper reason to create something. Our idea was simple, a site watcher. All it had to do was fire off requests to various sites and check the response code. Easy. We could build this with HTML and Javascript no problem. Throw in <a href="http://jquery.com/">JQuery</a> and you&#8217;re laughing.</p>
<p>The great thing about writing for AIr is that you&#8217;re coding for one rendering engine, and it&#8217;s webkit. This means writing webkit specific CSS rules completely guilt free. Rounded corners and RGBA can make your design pretty without many images. JQuery&#8217;s AJAX library is fantastic, it takes the pain out of requests and helps the code stay clean and readable. Within an hour we had a simple app running.</p>
<p>So we kept going. Using a plugin for JQuery the list became sortable, and the list of sites to watch was imported from an XML file. We created a private twitter account to keep a history of changes, and allow notifications via any standard twitter client. We also added a notification window so the app could be run in the background.</p>
<p>The experience was quite enjoyable, and relatively pain free. The only minor annoyances are having to develop CSS / JS without Firebug, but we managed. <a href="http://aptana.com/">Aptana</a> studio made for a competent IDE, and it&#8217;s code assistance is handy. Would definitely recommend giving it a whirl if you&#8217;re at all interested.</p>
<p>The AIR app is now available to download form <a href="http://boagworld.com/technology/our_first_air_app/">Boagworld.com</a>: <a href="http://www.boagworld.com/downloads/sitewatcher.air">Download site watcher AIR application</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davemcdermid.co.uk/2009/01/air-time/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The beauty of XML</title>
		<link>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/</link>
		<comments>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 17:22:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Headscape]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.davemcdermid.co.uk/?p=30</guid>
		<description><![CDATA[Here at Headscape we&#8217;re quite keen on XML, in fact our CMS is heavily based on it, to the point of ignoring a few relational (normal form) database rules. This gives us a lot of flexibility, along with a number of interesting problems. This will no doubt be the first in a series looking at [...]]]></description>
			<content:encoded><![CDATA[<p>Here at <a href="http://www.headscape.co.uk">Headscape</a> we&#8217;re quite keen on XML, in fact our CMS is heavily based on it, to the point of ignoring a few relational (normal form) database rules. This gives us a lot of flexibility, along with a number of interesting problems. This will no doubt be the first in a series looking at how we tackle these issues, and why.</p>
<p>First off, a brief introduction to how we manage our data. Fragments of data that are used to build a web page are stored as XML in separate records in one table and associations are stored in another. That&#8217;s the basics. Meta data (such as created dates, published flags etc) are fields in the table, but the page data itself (title, category, body) is stored in a single XML field. To generate a web page, the required XML is collected, nested, transformed, and returned. Simple.</p>
<p>This allows us to deploy a generic database for a website and customise the fields that the user wants to use in XML schemas that we define. We have a nifty CMS that reads our XML schemas and provides the user with the forms to manipulate the data. The XML schemas are file system based, so are easily source controlled and transferred between projects.</p>
<p>When it comes round to styling the front-end site we transform the data in whatever format is required. We can create HTML, RSS, Atom or bespoke pages by defining new transforms. The hidden benefit here is that the XML, regardless of content, follows consistent patterns across our sites, allowing developers to switch between projects with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davemcdermid.co.uk/2008/11/the-beauty-of-xml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Managing Knowledge</title>
		<link>http://www.davemcdermid.co.uk/2008/10/managing-knowledge/</link>
		<comments>http://www.davemcdermid.co.uk/2008/10/managing-knowledge/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 19:51:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Headscape]]></category>
		<category><![CDATA[organisation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wikis]]></category>

		<guid isPermaLink="false">http://www.davemcdermid.co.uk/?p=20</guid>
		<description><![CDATA[Over the years, Headscape has built and worked on a lot of websites, probably somewhere in the hundreds, no-ones counting. I, on the other hand, have been with Headscape for just 16 months. Currently we have 4 full time developers plus a contractor. Usually we are all working on different projects, each with their peculiarities [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years, Headscape has built and worked on a lot of websites, probably somewhere in the hundreds, no-ones counting. I, on the other hand, have been with Headscape for just 16 months. Currently we have 4 full time developers plus a contractor. Usually we are all working on different projects, each with their peculiarities and oddities. Often a client requires us to make changes to an old site, upgrade hosting or change the way features work, and without knowing the history of a project, this can be a minefield.</p>
<p>So we needed a solution. Turn&#8217;s out wiki&#8217;s are quite nifty at this.</p>
<p>We tried out a few, and being a .NET company, experimented with a few free or open source options, but ended up settling on <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a>. It&#8217;s easy to setup and get started, reliable, and there are heaps of plugins floating around. The hardest part is content population, but once a couple of us got excited about the idea, we soon had the foundations of a knowledge base.</p>
<p>The benefits of a wiki are clear, being able to link information together and categorise it is invaluable, and the principle of quick editing is ideal. This allows us to gradually build up the fragments of information that hold a project together. Projects that are linked by a technology or hosting platform can be easily referenced, enabling a developer to solve problems faster and track down solutions smarter. Eventually, maybe. The experiment is too early to see how well it&#8217;s going to work, but it should be interesting.</p>
<p>The downsides to this approach are learning curves and structure. MediaWiki is designed for managing large numbers of isolated pages, so naming conventions are crucial to finding information and avoiding confusion. Fortunately, wikipedia has already developed conventions ready for adoption, so this is a good starting point.</p>
<p>Before installing MediaWiki, I had little experience with wikis, so it took some learning to get up to speed with formatting, but it soon came naturally. This can be a stumbling block for others, so the next step is to ensure everyone has a basic understanding of editing a page. Having knowledge of wiki editing is a skill in it&#8217;s own right, so the time spent learning is worth it.</p>
<p>We&#8217;ll see how things pan out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davemcdermid.co.uk/2008/10/managing-knowledge/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
