<?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>Max Manders &#187; Development</title>
	<atom:link href="http://maxmanders.co.uk/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://maxmanders.co.uk</link>
	<description>thoughts of a web developer</description>
	<lastBuildDate>Mon, 16 Jan 2012 22:29:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Highland Fling 2011 &#8211; Web Standard In Scotland</title>
		<link>http://maxmanders.co.uk/2011/07/13/the-highland-fling-2011-web-standard-in-scotland/</link>
		<comments>http://maxmanders.co.uk/2011/07/13/the-highland-fling-2011-web-standard-in-scotland/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 20:25:59 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=385</guid>
		<description><![CDATA[July 8th 2011 saw the welcome and eagerly anticipated return of &#8220;The Highland Fling &#8212; Web Standards in Scotland&#8221;.  Set up and organised by Alan White in 2007 to increase awareness of web standards and best practice, it&#8217;s the only conference of it&#8217;s kind in Scotland.  I&#8217;ve been fortunate enough to have been able to [...]]]></description>
			<content:encoded><![CDATA[<p>July 8th 2011 saw the welcome and eagerly anticipated return of <a href="http://thehighlandfling.com/">&#8220;The Highland Fling &#8212; Web Standards in Scotland&#8221;</a>.  Set up and organised by <a href="http://www.azcazandco.com/">Alan White</a> in 2007 to increase awareness of web standards and best practice, it&#8217;s the only conference of it&#8217;s kind in Scotland.  I&#8217;ve been fortunate enough to have been able to attend each conference, although there was a hiatus in 2009/2010.  The inaugural event really set the bar high for what could be achieved by a dedicated developer passionate about his work.<span id="more-385"></span></p>
<p>I thoroughly enjoyed the day, which got under way with an opening by Alan and the host for the day, <a href="http://www.wait-till-i.com/">Christian Heilmann</a>.  The presentations were all of an extremely high standard, and I took something away from each of them.  Perhaps however because of my preference for getting my hands dirty with PHP and tinkering with Linux gubbins I found some of the talks a little high-level and abstract.  That should nevertheless detract from the outstanding talks and the wonderful day I had.  I do believe though that I may have got more out of the day were I more of a freelance front-end developer.  I&#8217;m impatiently waiting for next year&#8217;s conference, which can&#8217;t come soon enough!</p>
<p>With an overarching theme of back-to-basics, <a href="http://nascentguruism.com/">Steve Marshall</a> kicked things off with a very interesting discussion about keeping things as simple as they need to be.  From getting lead astray by cognitive biases to avoiding over complicating and thinking too far ahead Steve hammered home the point that if we don&#8217;t take that next step, we&#8217;ll get nowhere fast.</p>
<p>Steve was followed by <a href="http://rachelandrew.co.uk/">Rachel Andrew</a> who <a href="http://www.rachelandrew.co.uk/archives/2011/07/08/your-cms-as-curator-of-your-design-and-content/">discussed</a> <a href="http://www.slideshare.net/rachelandrew/choosing-the-right-content-management-system-8542709">choosing</a> the right CMS.  Everyone has their own set of favourite applications, and this applies equally to web applications.  However, when developing a stand-alone CMS, or deploying one as part of a larger system, it pays to choose the right tool for the job.  Sometimes a simple solution is what is required, other times something more &#8216;enterprise&#8217; will be required.  Ultimately though, the choice should enable the user to publish their content without hindering them.  The content should be front-and-centre, with the CMS seamlessly facilitating publication of great content.</p>
<p>The next talk before lunch was given by Glasgow developer <a href="http://jackosborne.co.uk/">Jack Osbourne</a>, one of the contributors to <a href="http://html5doctor.com/">HTML5 Doctor</a>.  Jack offered a whistle-stop tour through the key new elements defined by the HTML5 specification, given as a novel &#8216;live&#8217; presentation where each element was demoed in place as part of the HTML5 rendered slides.</p>
<p>After lunch, the wonderfully entertaining <a href="http://remysharp.com/">Remy Sharp</a> kicked the afternoon off with a presentation that by his own admission, was a little out of his comfort zone.  Rather than what one might expect from Remy; a rather technical discussion about JavaScript and it&#8217;s proper application, he shared his personal workflow for fulfilling specifications.  It wasn&#8217;t what I had expected but I really enjoyed it!  It&#8217;s always interesting to see how other people work, and to learn from those who are clearly successful!</p>
<p>Next up was <a href="http://flyosity.com/">Mike Rundle</a>; clearly a passionate designer/developer particularly with respect to all things Apple!  Mike&#8217;s presentation elaborated on why the Mac design works so well.  He explored Apple&#8217;s use of real world textures and their use application of consistent light sources to create a consistent, polished interface.  Not usually my cup of tea; I&#8217;ve never really been the creative type.  An interested talk nonetheless.</p>
<p>The final presentation of the day came courtesy of <a href="http://www.brothercake.com/">James Edwards</a> who discussed the issue of whether the use of AJAX had become any more &#8216;accessible&#8217; over the last five years. The conclusion was a resounding &#8216;meh&#8217;. However, some problems can be mitigated by employing the WAI-ARIA spec to aid those viewing the web using technologies other than the traditional web browser. What followed was a slightly tangential discussion of using ARIA attributes to customise web forms to make them more useful for those experiencing the web through less traditional methods. Quite a technical discussion on a subject that isn&#8217;t well understood by most.  An excellent talk!</p>
<p>In summary, although not a particular creative type I found this conference enjoyable and informative and commend Alan and his minions who made it all possible.  If there were some slightly more technically oriented topics in future, that would be a big plus for me.  A massive thank you to the speakers who took the time to head north of the border.  I&#8217;m genuinely excited by the future of The Highland Fling and look forward to next year&#8217;s conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2011/07/13/the-highland-fling-2011-web-standard-in-scotland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Internet Explorer VPC Images On VirtualBox</title>
		<link>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/</link>
		<comments>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 21:55:05 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=306</guid>
		<description><![CDATA[In order to facilitate testing of websites in different browsers, Microsoft have released what they call their &#8216;Application Compatibility Virtual PC Images&#8216;.  These time-limited V12n solutions are great for quickly bringing up a VM for a particular version of Internet Explorer but they are built for Microsoft&#8217;s Virtual PC (VPC) software. I work predominantly with Linux and [...]]]></description>
			<content:encoded><![CDATA[<p>In order to facilitate testing of websites in different browsers, Microsoft have released what they call their &#8216;<a title="Microsoft Application Compatibility VPC Images" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;displaylang=en" target="_blank">Application Compatibility Virtual PC Images</a>&#8216;.  These time-limited <a title="Virtualization (V12n)" href="en.wikipedia.org/wiki/Virtualization" target="_blank">V12n</a> solutions are great for quickly bringing up a VM for a particular version of Internet Explorer but they are built for Microsoft&#8217;s Virtual PC (VPC) software.</p>
<p>I work predominantly with Linux and use <a title="Virtual Box" href="http://www.virtualbox.org" target="_blank">Virtual Box</a> as my V12n application of choice.  Later versions of Virtual Box support VPC&#8217;s VHD disk image format.  This means it&#8217;s possible to run these VPC images under VirtualBox, but it involves downloading and extracting files from the win32 executables; downloading drivers for the ethernet adapter and other time consuming steps that I&#8217;d rather not repeat every time my IE VM expires.  I&#8217;m a programmer, therefore I&#8217;m lazy and don&#8217;t like doing things more than once; I&#8217;d rather script something to do it for me.  In keeping with this virtue, I&#8217;ve written <a title="msie2vbox" href="http://maxmanders.co.uk/msie2vbox">msie2vbox</a> to automate this stuff for me.  It&#8217;s on <a title="msie2vbox on Github" href="https://github.com/maxmanders/msie2vbox/" target="_blank">Github</a> with a GPLv3 license.  There&#8217;s some outstanding todo items but it does the job for me, and I thought it might be of use to others.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Manage Your Home Directory With Subversion</title>
		<link>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/</link>
		<comments>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 21:16:28 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=275</guid>
		<description><![CDATA[Revision control systems serve their purpose well for managing codebases, but they can also be used to good effect for configuration management.  I&#8217;ll discuss how I&#8217;ve used Subversion to manage the configuration of my home directory.  The same goal could probably be achieved just as easily with Git.  While I use Git and Github for [...]]]></description>
			<content:encoded><![CDATA[<p>Revision control systems serve their purpose well for managing codebases, but they can also be used to good effect for configuration management.  I&#8217;ll discuss how I&#8217;ve used Subversion to manage the configuration of my home directory.  The same goal could probably be achieved just as easily with Git.  While I use Git and Github for personal projects, I have employed this solution at work where we use Subversion.<span id="more-275"></span></p>
<p>I&#8217;m often jumping on and off of a number of different servers where I use a variety of programs such as Gnu Screen and Vim.  If I tweak <em>~/.vimrc</em> for example, I have to remember to copy the changed file to all of the other servers I use, which is a pain.  I could request that home directories be auto-mounted using autofs, but this solution is something I can implement myself in isolation without effecting any other users.  The idea is to store configuration files in SVN so that when I make a change on one server, I can push that change to SVN and pull the change down to any other server I happen to be on.  The approach I&#8217;m taking here is to have a local working copy in my home directory, and to have configuration files symlinked into that working copy.  This could be made more flexible by having different configurations stored in a separate branch and switching branches depending on your needs.</p>
<p>I&#8217;m sure there are better ways to do this, such as having the entire home directory in subversion, and automatically updated on login.  Perhaps you could use SVN externals to provide a modular approach to managing your configuration.  The great thing about SVN, and more generally Linux is that there are plenty of different ways to achieve your goal.</p>
<p>Before I go on, I&#8217;ve made a few assumptions based on my server configuration &#8211; Ubuntu 10.04 with Apache 2.2.14 and Subversion already installed.  The first thing we need to do is enable SVN over HTTP.</p>
<pre class="brush: bash">sudo apt-get install libapache2-svn</pre>
<p>Once installed, we need to configure the module in <em>/etc/apache2/mods-enabled/dav_svn.conf<br />
</em></p>
<pre class="brush: bash">
DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user</pre>
<p>This configuration will allow you to refer to your repositories via e.g. http://example.com/svn, where the actual location of your repositories on the filesystem is <em>/var/lib/svn</em>.  We&#8217;re also using basic authentication here, so we&#8217;ll need to add a valid user.</p>
<pre class="brush: bash">sudo htpasswd -c /etc/apache2/dav_svn.passwd username</pre>
<p>Next, we need to create our SVN directory and create a first repository</p>
<pre class="brush: bash">sudo mkdir -p /var/lib/svn
sudo svnadmin create /var/lib/svn/homedir
sudo chown -R :www-data /var/lib/svn
sudo chmod 700 /var/lib/svn
sudo chmod -R 755 /var/lib/svn/homedir
</pre>
<p>Now, on a server that has a good baseline set of configuration files, we can check out a working copy</p>
<pre class="brush: bash">svn co http://example.com/svn/homedir .</pre>
<p>Add some configuration files</p>
<pre class="brush: bash">cp ~/.bashrc ~/.vimrc ~/.vimrc ~/homedir
cd ~/homedir
svn st | awk '/\?/ {print $2}' | xargs svn add
svn commit -m "Initial Commit"</pre>
<p>We can now symlink our files to those in the working copy</p>
<pre class="brush: bash">ln -sf ~/homedir/.bashrc ~/.bashrc
ln -sf ~/homedir/.vimrc ~/.vimrc
ln -sf ~/homedir/.screenrc ~/.screenrc</pre>
<p>If we do this on all the servers we use, we can make a change in one place, commit it to SVN, and then update our working copy somewhere else to get the most up-to-date version of the files.  As I said before, I&#8217;m sure this can be enhanced and tweaked to be more efficient, but this serves my needs for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion And The Entropy Pool</title>
		<link>http://maxmanders.co.uk/2010/10/04/subversion-and-the-entropy-pool/</link>
		<comments>http://maxmanders.co.uk/2010/10/04/subversion-and-the-entropy-pool/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 20:05:13 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=265</guid>
		<description><![CDATA[I ran into an interesting little subversion problem earlier.  I was trying to commit a change, and the commit just seemed to hang indefinitely.  I couldn&#8217;t sent an interrupt, and eventually resorted to killing the process.  I tried all sorts of command line options in case there was an authentication problem &#8211; with no luck.  [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an interesting little subversion problem earlier.  I was trying to commit a change, and the commit just seemed to hang indefinitely.  I couldn&#8217;t sent an interrupt, and eventually resorted to killing the process.  I tried all sorts of command line options in case there was an authentication problem &#8211; with no luck.  I then thought I had made a mistake when switching my working copy to a different branch.  I checked the logs on the server to find nothing pertinent; it seemed as though svn didn&#8217;t get as far as taking to the server.  At a loss, I thought there was nothing for it but to run the command with strace.  Bingo!</p>
<p>Strace showed that subversion reads from /dev/random as part of the commit, and that&#8217;s where the problem seemed to be happening.  After doing some research, I discovered that /dev/random generates random numbers using the so-called <em>entropy pool</em>.  This <em>entropy pool</em> is just random bits of noise generated from things such as mouse movements, time between keystrokes and so on.  For whatever reason, on the client server, this <em>entropy pool</em> was empty!  Using /dev/random is cryptographically <em>more random</em> than using /dev/urandom; and /dev/random blocks when the <em>entropy pool</em> is empty, whereas /dev/urandom is non-blocking.  Moving /dev/random to /dev/random.old and linking /dev/urandom to /dev/random solved the problem.  There may be a better solution to this, and depending on your cryptographic requirements it might be better to find an alternative, but this did the trick for me.  One svn commit later and all was well.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2010/10/04/subversion-and-the-entropy-pool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Display Query Results Vertically With PostgreSQL</title>
		<link>http://maxmanders.co.uk/2010/05/04/display-query-results-vertically-with-postgresql/</link>
		<comments>http://maxmanders.co.uk/2010/05/04/display-query-results-vertically-with-postgresql/#comments</comments>
		<pubDate>Tue, 04 May 2010 13:03:55 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/general/display-query-results-vertically-with-postgresql/</guid>
		<description><![CDATA[Those who are familiar with MySQL may be used to terminating a query with &#8216;\G&#8217; to have the client output the query results vertically with each column/value pair a line at a time. There is in a equivalent in PostgreSQL too. The psql client uses &#8216;\x&#8217; to toggle vertical output, and &#8216;\g&#8217; to send the [...]]]></description>
			<content:encoded><![CDATA[<p>Those who are familiar with MySQL may be used to terminating a query with &#8216;\G&#8217; to have the client output the query results vertically with each column/value pair a line at a time.  There is in a equivalent in PostgreSQL too.  The psql client uses &#8216;\x&#8217; to toggle vertical output, and &#8216;\g&#8217; to send the current buffer to the server for processing.  To get the same effect in psql as &#8216;\G&#8217; in MySQL, just end your query with &#8216;\x\g\x&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2010/05/04/display-query-results-vertically-with-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

