<?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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Rob Searles</title>
	
	<link>http://www.robsearles.com</link>
	<description>Musing on the business of and development for "The Web"</description>
	<lastBuildDate>Sat, 31 Oct 2009 18:27:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RobSearles" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Two New Toys: First Impressions</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/n6-ByqqJi7A/</link>
		<comments>http://www.robsearles.com/2009/10/31/two-new-toys-first-impressions/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 18:27:44 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=210</guid>
		<description><![CDATA[First impressions of two new toys: the Microsoft Natural Ergonomic 4000 keyboard and the Sony Pocket Reader PRS-300 e-reader.]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-211 alignright" title="Microsoft Natural Ergonomic 4000 Keyboard" src="http://www.robsearles.com/wp-content/uploads/2009/10/mk_otherviews_nek4k_01.jpg" alt="Microsoft Natural Ergonomic 4000 Keyboard" width="358" height="228" />This week I purchased myself two new toys. I always do something like this around this time of year because it&#8217;s my birthday! This year I decided to get an ergonomic keyboard and an e-reader.</p>
<p>The ergonomic keyboard was the easier decision and I went with the <a href="http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=043" target="_blank">Microsoft Natural Ergonomic 4000</a>.One of the main reasons for this was the <a href="http://www.codinghorror.com/blog/archives/000400.html" target="_blank">Jeff Atwood blog post</a>.</p>
<p>The e-reader was much harder to choose. After much deliberation, googling, reading of reviews etc I eventually landed myself a <a href="http://www.sony.co.uk/product/rd-reader-ebook/prs-300" target="_blank">Sony Pocket Reader PRS-300</a>. I chose this over other e-readers for a number of reasons. Firstly the price was right, I didn&#8217;t really want to spend over £200 on what is effectively a fancy book. Secondly I only wanted it for reading, I didn&#8217;t care about taking notes, listening to music that kind of stuff. Finally I wanted to to be portable &#8211; obviously all readers are portable, but I wanted something that I could easily keep in a coat pocket for when I&#8217;m on a bus etc. or generally waiting around for something to happen.</p>
<p><strong>First Impressions</strong></p>
<p>The keyboard was huge! Much more so then I expected, but fortunately I have a big desk, so there was no problem there. I&#8217;ve never used an ergonomic keyboard before and I was suprised how comfortable it felt. I really thought I&#8217;d be able to enjoy typing. However, the space bar is a nightmare. Really sticky, hard to press down and very &#8220;clacky&#8221; Others have experienced this problem, but most suggested it gets &#8220;broken in&#8221; within a few days or week, so I&#8217;m not overly worried (yet).</p>
<p><img class="alignleft" title="Sony Pocket Reader PRS-300" src="../wp-content/uploads/2009/10/729001.jpeg" alt="Sony Pocket Reader PRS-300" width="136" height="193" />The Sony e-reader is just beautiful. The text is clear, navigation simple, weight nothing to speak of and the size is perfect. I am in love with it. One problem was I said I had to use Windows to connect to it, so I fired up Vista for the first time in about half a year, and after about 20 minutes of installing it crashed. It did this again a couple of times, until I found out a fix &#8211; something so do with VB script and premissions. Rather stupidly I forgot to save the link  that helped me fix the problem otherwise I would have posted it here. Sorry about that. However, it turns out I can connect to it within Ubuntu, and transfer books onto it &#8211; so that is good news.</p>
<p>I&#8217;m going to write a more substantial review for both after a couple of weeks usage, so stay tuned &#8211; <a href="http://feeds.feedburner.com/RobSearles">sign up to my RSS feed</a>.</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=210&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=n6-ByqqJi7A:FIb_6UAoabA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/n6-ByqqJi7A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/31/two-new-toys-first-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/31/two-new-toys-first-impressions/</feedburner:origLink></item>
		<item>
		<title>Emacs CSS-Mode Fix (adding to the chain!)</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/0VYAmnIE-K0/</link>
		<comments>http://www.robsearles.com/2009/10/29/emacs-css-mode-fix/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 13:52:25 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=202</guid>
		<description><![CDATA[After my week with Emacs I&#8217;m still struggling along. One of my main annoyances is the default way some of the modes indent the code. I think the worst offender of this is the default CSS-mode. After frustration when, yet again, I hit the tab key and the cursor rockets about 80 places to the [...]]]></description>
			<content:encoded><![CDATA[<p>After my <a href="http://www.robsearles.com/2009/10/19/a-week-with-emacs/" target="_blank">week with Emacs</a> I&#8217;m still struggling along. One of my main annoyances is the default way some of the modes indent the code. I think the worst offender of this is the default <a href="http://www.emacswiki.org/emacs/css-mode.el" target="_blank">CSS-mode</a>. After frustration when, yet again, I hit the tab key and the cursor rockets about 80 places to the right I decided to Google for a fix.</p>
<p><em>The internet is great!</em> Clearly it wasn&#8217;t just me having a problem, <a href="http://transcyberia.info/archives/50-fixing-emacs-css-mode.html" target="_blank">Guido Stevens</a> was also suffering and posted a fix, which he himself found on another <a href="http://www.chrisamiller.com/blog/2009/01/20/fix-css-mode-indention-in-emacs/" target="_blank">blog post by Chris Miller</a>, which Chris in turn <a href="http://www.stokebloke.com/wordpress/2008/03/21/css-mode-indent-buffer-fix/" target="_blank">found on StokeBloke.com</a> which had been found originally on a now dead post.</p>
<p>Not bad! Four people all having problems with the same thing and posting a fix for others to share. So I thought I&#8217;d join the chain, and write this blog post.</p>
<p>Oh yes, and the fix itself:</p>
<pre>;; fix css mode
(require 'css-mode)
(setq cssm-indent-level 2)
(setq cssm-newline-before-closing-bracket t)
(setq cssm-indent-function #'cssm-c-style-indenter)
(setq cssm-mirror-mode t)</pre>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=202&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=0VYAmnIE-K0:cnTf71zKm2A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/0VYAmnIE-K0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/29/emacs-css-mode-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/29/emacs-css-mode-fix/</feedburner:origLink></item>
		<item>
		<title>A week with Emacs: one week later</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/1SnkZhUy_Ao/</link>
		<comments>http://www.robsearles.com/2009/10/25/a-week-with-emacs-one-week-later/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:05:59 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=196</guid>
		<description><![CDATA[I spent a week using Emacs. I wasn't easy but I survived. Read more to find out how I did.]]></description>
			<content:encoded><![CDATA[<p>As promised in <a href="http://www.robsearles.com/2009/10/19/a-week-with-emacs/" target="_blank">my last post</a>, I have spent a whole week using <a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs</a>.   Apart from the odd foray with <a href="http://www.nano-editor.org/" target="_blank">Nano</a> and <a href="http://www.xfce.org/projects/mousepad/" target="_blank">Mousepad</a> I  haven&#8217;t touched <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> or <a href="http://www.netbeans.org/" target="_blank">Netbeans</a> or any other IDE and  managed to stick to Emacs for the full week.</p>
<p><strong>How did it go?</strong></p>
<p>To start off it was slow. Emacs has a <a href="http://xahlee.org/emacs/emacs_fun.html" target="_blank">notoriously high learning curve</a>, and I pretty much started at the bottom. One of the reasons for doing this was so I could move away from the mouse and it turns out that the mouse is an extremely hard habit to break. So to are the keyboard arrow keys. I kept on finding my hands would instinctively  jump off the keyboard and try to double click on something, or try to navigate around the page with the arrows. This is clearly <a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#Moving-Point" target="_blank">not the way it is done</a> in Emacs!</p>
<p>The next thing I found is that Emacs doesn&#8217;t let you indent code files as you want. It seems to have a preferred method and forces it on you. This is very annoying and being a n00b I still haven&#8217;t found a way around this.</p>
<p>However, after a couple of days I began to get the hang of it. Still painfully slow, but navigating around the page, buffers and windows was becoming gradually quicker. I began to enjoy using Emacs, even though my right hand kept on unceremoniously lurching to the right from time to time.</p>
<p>By a complete coincidence, on Wednesday I was invited to <a href="http://www.c-base.org/" target="_blank">C-Base here in Berlin</a> for a beginners&#8217; introduction to Emacs. Even though it was all in German, and my Deutsch ist nicht so gut I was blown away by not only the speed but also the huge amount of functionality within Emacs. To see someone who actually knew Emacs inside out was a revelation. I made a huge amount of notes (within Emacs before you ask!) ready to test out for myself. This insight into the &#8220;how the pros use Emacs&#8221; has really been an eye-opener and I am determined to learn just a fraction of what was on display at the tutorial.</p>
<p><strong>Summing up my week with Emacs.</strong></p>
<p>It was hard work, there was much and is even more left to learn. It is a vast landscape to negotiate, with many nooks and crannies. But once it is mastered I have no doubt that my productivity will be greatly increased.</p>
<p><strong>Other people diving into Emacs</strong></p>
<ul>
<li><a href="http://sodonnell.wordpress.com/2007/06/12/choosing-an-editor/" target="_blank">Stephen O’Donnell &#8211; Choosing an Editor</a></li>
<li><big><a href="http://johnbokma.com/mexit/2008/04/16/" target="_blank">John Bokma &#8211; Emacs it is</a><br />
</big></li>
</ul>
<p><strong>Some useful sites</strong></p>
<ul>
<li><a href="http://www.gnu.org/software/emacs/manual/" target="_blank">http://www.gnu.org/software/emacs/manual/</a></li>
<li><a href="http://www.emacswiki.org/" target="_blank">http://www.emacswiki.org/</a></li>
<li><a href="http://emacsblog.org/" target="_blank">http://emacsblog.org/</a></li>
</ul>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=196&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=1SnkZhUy_Ao:V8Vqh7YheyQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/1SnkZhUy_Ao" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/25/a-week-with-emacs-one-week-later/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/25/a-week-with-emacs-one-week-later/</feedburner:origLink></item>
		<item>
		<title>A week with Emacs</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/Yxndv54nbY0/</link>
		<comments>http://www.robsearles.com/2009/10/19/a-week-with-emacs/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 22:42:05 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=191</guid>
		<description><![CDATA[I have been toying around with the idea of using Emacs for a few months now. Emacs isn&#8217;t exactly a stranger to me, as I&#8217;ve been using it on and off for years, but I&#8217;ve never really tried to fully know it properly. However, recently I have been in front of the computer so long [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-192" title="Emacs" src="http://www.robsearles.com/wp-content/uploads/2009/10/emacs-300x271.png" alt="Emacs" width="300" height="271" />I have been toying around with the idea of using <a href="http://www.gnu.org/software/emacs/" target="_blank">Emacs</a> for a few months now. Emacs isn&#8217;t exactly a stranger to me, as I&#8217;ve been using it on and off for years, but I&#8217;ve never really tried to fully <strong>know</strong> it properly. However, recently I have been in front of the computer so long I feel like my <a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury" target="_blank">hands are going to fall off</a>! Which is why I&#8217;ve decided to try to move away from this point and click mouse nonsense towards a more streamline keyboard only work environment.</p>
<p>So I have decided to give Emacs a go for a <strong>full week</strong> as my single development editor. Previously I&#8217;ve been using <a href="http://www.eclipse.org/pdt/" target="_blank">Eclipse PDT</a> &#8211; which became so slow &#8211; and <a href="http://www.netbeans.org/features/php/" target="_blank">Netbeans</a> &#8211; which I like a lot, but it is still point and click. One of my inspirations for this was a <a href="http://intranation.com/entries/2009/06/week-using-emacs/" target="_blank">blog post by </a><span><a href="http://intranation.com/entries/2009/06/week-using-emacs/" target="_blank"><span>Bradley</span> </a><span><a href="http://intranation.com/entries/2009/06/week-using-emacs/" target="_blank">Wright</a>. Poor Bradley&#8217;s experience must have been so horrifying that he hasn&#8217;t posted a follow up for his weeks usage, and this is from several months ago. Brad, if you can hear me, please let me know how it went, I am dying to know! But until then, I am going to try it out for myself.</span></span></p>
<p><span><span>Wish me luck, and if you have any tips for <a href="http://sourceforge.net/projects/php-mode/" target="_blank">PHP development within</a> Emacs, please drop a comment below and help me along. </span></span></p>
<p><span><span>See you in a week.</span></span></p>
<p><span><span><strong>Update:</strong> My week is up &#8211; <a href="http://www.robsearles.com/2009/10/25/a-week-with-emacs-one-week-later/">read how I did</a>.<br />
</span></span></p>
<p><span><span><br />
</span></span></p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=191&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=Yxndv54nbY0:yoBFsgW77M0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/Yxndv54nbY0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/19/a-week-with-emacs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/19/a-week-with-emacs/</feedburner:origLink></item>
		<item>
		<title>Getting a Windows Refund</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/cFsrOKIXBgQ/</link>
		<comments>http://www.robsearles.com/2009/10/18/getting-a-windows-refund/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 10:29:30 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=184</guid>
		<description><![CDATA[If you don't want Windows, but can't buy a laptop without it pre-installed then claim a refund.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just read quite an interesting article on the <a href="http://www.linuxmint.com/blog/?p=1073" target="_blank">Linux Mint blog</a> courtesy of <a href="http://www.linuxtoday.com/infrastructure/2009101700335OSMSLL" target="_blank">Linux Today</a>. It describes how Clem, a Linux Mint user, managed to get a refund on Windows that was pre-installed on a Dell laptop they purchased, and then donated the money to Linux Mint!</p>
<p>One of the comments tries to argue that Clem shouldn&#8217;t have been entitled to a refund as they knew what they were buying. I don&#8217;t hold with this argument as last time I tried to purchase any laptop that wasn&#8217;t a netbook I found it <strong>impossible</strong> to buy one without Windows pre-installed &#8211; and to make it worse they were pretty much all <a href="http://digital-lifestyles.info/2007/11/22/vista-is-rubbish-comic-video/" target="_blank">Vista</a>!</p>
<p>With people like Clem engaging in this kind of action, and with Ubuntu trying to make <a href="http://www.nytimes.com/2009/01/11/technology/11iht-ubuntu.1.19248024.html" target="_blank">Linux more accessible</a> to the average user, hopefully one day I&#8217;ll be able to purchase a laptop and have a choice of what I put on it.</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=184&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=cFsrOKIXBgQ:0DkfTR84WXs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/cFsrOKIXBgQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/18/getting-a-windows-refund/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/18/getting-a-windows-refund/</feedburner:origLink></item>
		<item>
		<title>Upgraded Wordpress</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/Tmw_gmv2Y9U/</link>
		<comments>http://www.robsearles.com/2009/10/15/upgraded-wordpress/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 06:06:22 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=182</guid>
		<description><![CDATA[In my small and meandering steps to improve this blog I have now upgraded to the latest version of Wordpress. I has been about a year since I installed this blog, so I thought it was about time &#8211; and also I felt increasingly guilty as the Wordpress admin was screaming for me to upgrade. [...]]]></description>
			<content:encoded><![CDATA[<p>In my small and meandering steps to improve this blog I have now upgraded to the latest version of <a href="http://www.wordpress.org" target="_blank">Wordpress</a>. I has been about a year since I installed this blog, so I thought it was about time &#8211; and also I felt increasingly guilty as the Wordpress admin was screaming for me to upgrade. We&#8217;ll I&#8217;ve done it now, and hopefully everything is up and running and back to normal.</p>
<p>If you spot any oddities, please drop me a comment and let me know!</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=182&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=Tmw_gmv2Y9U:8M0zZLdxvWo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/Tmw_gmv2Y9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/15/upgraded-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/15/upgraded-wordpress/</feedburner:origLink></item>
		<item>
		<title>Thinking About Database Revision Control</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/pq8bhG_ex0w/</link>
		<comments>http://www.robsearles.com/2009/10/11/thinking-about-database-revision-control/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 17:24:19 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=180</guid>
		<description><![CDATA[In a current database driven project that has multiple developers the single biggest issue we have is version control for the database.
For us at ibrow, the number one practise that we engage in is Version Control/Revision Control. I personally use version control for almost everything and not using it when having multiple developers working on [...]]]></description>
			<content:encoded><![CDATA[<p>In a current database driven project that has multiple developers the single biggest issue we have is version control for the database.</p>
<p>For us at <a href="http://www.ibrow.com">ibrow</a>, the number one practise that we engage in is <a href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">Version Control/Revision Control</a>. I personally use version control for almost everything and not using it when having multiple developers working on a project sends shivers down my spine.We currently use <a href="http://subversion.tigris.org/" target="_blank">Subversion</a>, however I&#8217;m thinking of moving over to <a href="http://git-scm.com/" target="_blank">Git</a>, but there is also <a href="http://bazaar-vcs.org/en/" target="_blank">Bazaar</a> and <a href="http://mercurial.selenic.com/wiki/" target="_blank">Mercurial</a> plus <a href="http://en.wikipedia.org/wiki/List_of_revision_control_software" target="_blank">many, many others</a>.</p>
<p>Whilst there is this vast array of version control system for code, there doesn&#8217;t seem to be the focus on version control for database schemes. Jeff Atwood has a <a href="http://www.codinghorror.com/blog/archives/001050.html" target="_blank">couple</a> of <a href="http://www.codinghorror.com/blog/archives/000743.html" target="_blank">posts</a> espousing the virtues of version control for databases. There is <a href="http://guides.rubyonrails.org/migrations.html" target="_blank">Rail&#8217;s Migrations</a> which seems to be the most advanced version control for databases to date and there is a project to make a <a href="http://code.google.com/p/mysql-php-migrations/" target="_blank">PHP version of Migrations</a>. However, Migrations still has it&#8217;s flaws, which are discussed in <a href="http://adamblog.heroku.com/past/2009/3/2/database_versioning/" target="_blank">Adam Wiggins&#8217;s blog post about this very subject</a>. Adam offers some good insights into the problem and has a brain storm about possible solutions. But I think I&#8217;m coming to the problem from a slightly different angle to him.</p>
<p>As most of our projects are in constant development we do not, as such, have versions, but instead <strong>revisions</strong>. This is a key difference here. If we check in a database change to the version control, we don&#8217;t yet know it&#8217;s revision, especially if we have multiple developers working on the same project and possibly changing the scheme of the database at the same time.</p>
<p>The ideal solution would use the following steps:</p>
<ol>
<li>Developer finishes their chunk of code with any database changes, and are ready to commit. The database changes include UP and DOWN changes.</li>
<li>Developer commits their code changes, a revision number is assigned</li>
<li>Based on this revision number, the database changes are committed.</li>
</ol>
<p>Obviously the developer should update their working copy before committing, just to see if there are any conflicts and to make sure they have the latest copy of the code.</p>
<p>On the updating side, the following steps should occur when the developer updates their  code:</p>
<ol>
<li>The update process makes a note of their current revision number</li>
<li>Downloads all code changes via the SVN update command</li>
<li>Downloads all the database changes since their last revision</li>
<li>Update process applies all database changes to developer&#8217;s local database</li>
</ol>
<p>This process can be reversed for reverting or merging backwards.</p>
<p>Currently I can&#8217;t find anything out there that does this &#8211; which probably means one of 2 things:</p>
<ol>
<li>My Google-fu isn&#8217;t up to scratch</li>
<li>It is actually a lot harder than I think!</li>
</ol>
<p>I really need to get this right, as this is possibly the most important thing to get right for us at the moment. It would be great to hear any possible solutions or existing implementations out there.</p>
<p>Maybe this will be an interesting sub project for me over the next few weeks?</p>
<p><em>(And obviously I haven&#8217;t even considered trying to keep the data up to date &#8211; but I guess that will be for another day.)</em></p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=180&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=pq8bhG_ex0w:U2iiQh6YmyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/pq8bhG_ex0w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/11/thinking-about-database-revision-control/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/11/thinking-about-database-revision-control/</feedburner:origLink></item>
		<item>
		<title>VMWare Server: Connecting to Guest via SSH</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/nQQ-J852DGc/</link>
		<comments>http://www.robsearles.com/2009/10/10/vmware-server-connecting-to-guest-via-ssh/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 22:03:56 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=177</guid>
		<description><![CDATA[I have recently been playing around with an old laptop and it&#8217;s give me the taste for delving deeper into the world of Linux. For this I normally use VirtualBox, but a friend of mine (who is an avid Mac fan) was recently raving about VMWare&#8217;s Fusion. I decided to see if they had anything [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently been <a href="http://www.robsearles.com/2009/10/04/installing-php53-on-ubuntu-jaunty/" target="_blank">playing around with an old laptop</a> and it&#8217;s give me the taste for delving deeper into the world of Linux. For this I normally use <a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a>, but a friend of mine (who is an avid Mac fan) was recently raving about <a href="http://www.vmware.com/products/fusion/" target="_blank">VMWare&#8217;s Fusion</a>. I decided to see if they had anything similar for linux and give it a whirl. I toddled along to the <a href="http://www.vmware.com/" target="_blank">VMWare site</a>, couldn&#8217;t find anything, so Googled VMWare Server and went <a href="http://www.vmware.com/products/server/" target="_blank">straight to the relevant page</a>!</p>
<p>I downloaded, installed and connected to the VMWare Server admin via Firefox. All well and good. So now I wanted to actually use it. I decided to test it out using <a href="http://www.debian.org/" target="_blank">Debian</a> as the Guest. I chose Debian simply because I know it, and I know it has a <a href="http://www.debian.org/CD/netinst/#netinst-stable" target="_blank">net install</a>, meaning I could test out a minimum system.</p>
<p>I downloaded the ISO, and then set about creating my new Debian Guest. First problem, I couldn&#8217;t find the Debian ISO! After reading the docs (which always takes second place to proding and poking around) it turns out that you need to add a Data Store, using the Commands menu on the right hand side of the VMWare admin home.</p>
<p>Once I had sorted this out I then created the new Guest specifying NAT networking, attached the Debian ISO and started it up.I selected NAT networking because Host Only will not let me get access to the outside world from the guest &#8211; obviously a pain as I was using the Debian net install &#8211; and I have always found Bridge Networking to be as flaky as a delicious if not slightly dry Cadbury&#8217;s chocolate bar.</p>
<p>Hmm, VMWare is clearly very different to VirtualBox because it didnt open a window where I could see the new guest booting up. How do I communicate with the guest. Again, after some poking I found a tab for the <strong>Console</strong>, which at first asked me to install a Firefox plugin, but once that was installed I could see the Guest.</p>
<p>I then installed Debian and restarted the Guest server.</p>
<p>Once rebooting I then tried to install OpenSSH. Slight problem, I couldn&#8217;t get an outside line! I couldn&#8217;t even ping Google. Hmm. After some searching I found out that the problem was <a href="http://communities.vmware.com/thread/62624" target="_blank">DHCP was not starting up</a>. I ran the command (as root)</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ dhclient eth0</pre></div></div>

<p>This allowed me to connect to the outside world, and to ensure it would always start up I followed the commands from <a href="http://www.debianhelp.org/node/2650" target="_blank">this post within Debian Help</a>:</p>
<blockquote><p>Add the line</p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;">auto eth0</pre></div></div>

<p>to /etc/network/interfaces</p></blockquote>
<p>After this I managed to successfully install Open SSH server, by running the following command as root:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> openssh-server</pre></div></div>

<p>So now it was already to I tried to connect via SSH from my Host Ubuntu system to my Guest Debian system. But how? Again, after some searching I found out that you <a href="http://www.linuxforums.org/forum/servers/112384-how-connect-mail-server-running-guest-os-vmware-2.html" target="_blank">had to forward some ports</a>. On the host, edit /etc/vmware/vmnet8/nat/nat.conf. Uncomment the line under the SSH section that says:</p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;"># 8889 = 172.16.81.128:22</pre></div></div>

<p>the restart the VMWare networking services:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>vmware<span style="color: #000000; font-weight: bold;">/</span>net-services.sh restart</pre></div></div>

<p>You can see from the nat.conf file that you can also forward other ports such as Web and FTP</p>
<p>Finally, you can now connect to your Guest from your Host with the command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">8889</span> root<span style="color: #000000; font-weight: bold;">@</span>localhost</pre></div></div>

<p>It took some effort, but I can now successfully connect to any number of Guests from my Host.</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=177&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=nQQ-J852DGc:YgK8ahusIc8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/nQQ-J852DGc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/10/vmware-server-connecting-to-guest-via-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/10/vmware-server-connecting-to-guest-via-ssh/</feedburner:origLink></item>
		<item>
		<title>Installing PHP5.3 on Ubuntu Jaunty</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/IDbz5-ySAII/</link>
		<comments>http://www.robsearles.com/2009/10/04/installing-php53-on-ubuntu-jaunty/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 16:10:36 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=175</guid>
		<description><![CDATA[Install PHP5.3 on your Ubuntu LAMP stack in about 5 minutes]]></description>
			<content:encoded><![CDATA[<p>I have recently dusted off an old laptop to play around with and do some &#8220;fun&#8221; development. One of the things I have done to this laptop is to install a <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)" target="_blank">LAMP</a> stack using <a href="http://www.php.net/releases/5_3_0.php" target="_blank">PHP 5.3</a> so I can play around and see what&#8217;s new and exciting.</p>
<p>I had a quick Google on how to install PHP 5.3 on Ubuntu and found <a href="http://www.brandonsavage.net/installing-php-5-3-on-ubuntu/" target="_blank">Brandon Savage&#8217;s post</a> on the very subject! Whilst he has a great write up it was one or two of his comments mentioning the <a href="http://www.dotdeb.org/2009/07/03/php-5-3-0-final-preview-packages-available-for-debian-lenny/" target="_blank">DotDeb.Org</a> package repository.</p>
<p>This was a breeze to use and in about 5 minutes I have PHP 5.3 running with Apache and MySQL on my clean Jaunty system.</p>
<p>The first thing to do is add the DotDeb.org repositories to your sources list:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># php5.3</span>
deb http:<span style="color: #000000; font-weight: bold;">//</span>php53.dotdeb.org stable all
deb-src http:<span style="color: #000000; font-weight: bold;">//</span>php53.dotdeb.org stable all</pre></div></div>

<p>Now update and upgrade Ubuntu</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> upgrade</pre></div></div>

<p>Now simply install apache mysql and php as usual</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> apache2 apache2-mpm-prefork mysql-client-<span style="color: #000000;">5.1</span> mysql-server-<span style="color: #000000;">5.1</span> php5 php5-cli php5-mysql libapache2-mod-php5</pre></div></div>

<p>You will get a warning about untrusted packages being installed but this simply means that the PHP5.3 stuff is not signed, so I typed in &#8220;yes&#8221; and carried on. <em>Obviously you can cater this line to your specific needs, but this is the basic stack up and running</em></p>
<p>When it was all complete I tested out my system:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ php <span style="color: #660033;">-v</span>
PHP 5.3.0-0.dotdeb.8 with Suhosin-Patch 0.9.7 <span style="color: #7a0874; font-weight: bold;">&#40;</span>cli<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>built: Aug <span style="color: #000000;">12</span> <span style="color: #000000;">2009</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">11</span>:<span style="color: #000000;">27</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1997</span>-<span style="color: #000000;">2009</span> The PHP Group
Zend Engine v2.3.0, Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1998</span>-<span style="color: #000000;">2009</span> Zend Technologies</pre></div></div>

<p>and tested out my apache installation using a phpinfo() script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>info.php</pre></div></div>

<p>then fired up http://localhost/info.php<br />
<code lang="php">&lt;?PHP<br />
phpinfo();<br />
?&gt;</code><br />
and saw as the main header of the page:<br />
<strong>PHP Version 5.3.0-0.dotdeb.8</strong></p>
<p>All done. Simple!</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=175&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=IDbz5-ySAII:15-M6s6ZZmQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/IDbz5-ySAII" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/10/04/installing-php53-on-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/10/04/installing-php53-on-ubuntu-jaunty/</feedburner:origLink></item>
		<item>
		<title>Sup Mail Client is Saving my life</title>
		<link>http://feedproxy.google.com/~r/RobSearles/~3/ZCS1kXXB9QY/</link>
		<comments>http://www.robsearles.com/2009/09/28/sup-mail-client-is-saving-my-life/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:02:34 +0000</pubDate>
		<dc:creator>Rob Searles</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.robsearles.com/?p=173</guid>
		<description><![CDATA[About a month ago I decided to get very geeky and installed a command line emailing program: Sup. I started off by moving my main work account over to test it out and after a month of heavy testing I have now just moved my other accounts across.
So why?
Well, let me first state that Sup [...]]]></description>
			<content:encoded><![CDATA[<p>About a month ago I decided to get very geeky and <a href="http://www.robsearles.com/2009/08/30/ubuntu-jaunty-command-line-email-sup-offlineimap-and-msmtp/">installed a command line emailing program</a>: <a href="http://sup.rubyforge.org/" target="_blank">Sup</a>. I started off by moving my main work account over to test it out and after a month of heavy testing I have now just moved my other accounts across.</p>
<p>So why?</p>
<p>Well, let me first state that Sup is no where near perfect. Crazy people out there still send me HTML email which obviously doesn&#8217;t display too well in a command line interface, but I can open those up in my browser. I still haven&#8217;t found a way to easily search and add multiple names from the address book to an email I&#8217;m composing. And there is that irritating thing that means if I&#8217;m writing an email, I can go back and view my inbox (note: this is probably my fault, I&#8217;m using a popup window&#8217;d emacs).</p>
<p>But the thing is these are all fixable. It is open source, so if these things really pissed me off then I should learn Ruby and have a crack at fixing them myself. And the thing is I like Sup so much I just might.</p>
<p>Also Sup is being <a href="http://rubyforge.org/projects/sup/" target="_blank">actively developed</a>. If you have a look on the <a href="http://gitorious.org/sup" target="_blank">Gitorius page</a> you can see that Sup&#8217;s maintainer <a href="http://masanjin.net/" target="_blank">William Morgan</a> seems to spend every weekend hacking away! Plus there is a large list of active developers.</p>
<p>Yet I didn&#8217;t move all my mail accounts over to Sup just because I can fix things and if I can&#8217;t then hopefully someone else will!</p>
<p>No, I moved them all over because Sup appears to be slowly, email by email, saving my life.</p>
<p>I currently have 1893 emails index, but of these 1893 email, only 12 of them are in my inbox. For me this is unheard of.</p>
<p>Sup has provided me with such an easy system of filing and organising my mail that I can deal with it pretty much instantly, clearing my inbox. And over the last month I have found that keeping a clean inbox keeps my head pretty focused. I&#8217;m not worrying about all the emails I have to deal with. I am finding I can handle more stuff, get more stuff done and still have a tidy head.</p>
<p>This is great news!</p>
<p>Having this confidence of being able to handle more stuff, I&#8217;m wanting to handle more stuff. I want to do more things, I want to push projects forward. I am now no longer wallowing in an unorganised mess! So thank you William and thank you Sup &#8211; you are saving my life <img src='http://www.robsearles.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>More stuff? Bring it on!</p>
<img src="http://www.robsearles.com/?ak_action=api_record_view&id=173&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/RobSearles?a=ZCS1kXXB9QY:ZnE_u4buSCw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/RobSearles?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/RobSearles/~4/ZCS1kXXB9QY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.robsearles.com/2009/09/28/sup-mail-client-is-saving-my-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.robsearles.com/2009/09/28/sup-mail-client-is-saving-my-life/</feedburner:origLink></item>
	</channel>
</rss>
