<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Mike Howarth: Web Developer</title>
	
	<link>http://www.mikehowarth.co.uk</link>
	<description>open source, music and anything in between</description>
	<pubDate>Fri, 13 Jun 2008 11:06:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MikeHowarthWebDeveloper" /><feedburner:info uri="mikehowarthwebdeveloper" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Django grinds towards a version 1.0 release</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/VHLGXQKtzOY/django-grinds-towards-a-version-10-release</link>
		<comments>http://www.mikehowarth.co.uk/django-grinds-towards-a-version-10-release#comments</comments>
		<pubDate>Fri, 13 Jun 2008 07:39:07 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/django-grinds-towards-a-version-10-release</guid>
		<description><![CDATA[For some time I&#8217;ve been singing the praises of the Django framework and have pretty much used it exclusively for any personal projects I&#8217;ve been working on.
Unsuprisingly Django has been gaining a some real momentum of late. Why shouldn&#8217;t it? Its got a brilliant collection of people driving Django, its got a great community of [...]]]></description>
			<content:encoded><![CDATA[<p>For some time I&#8217;ve been singing the praises of the <a title="Django" href="http://www.mikehowarth.co.uk/www.djangoproject.com">Django</a> framework and have pretty much used it exclusively for any personal projects I&#8217;ve been working on.<br />
Unsuprisingly Django has been gaining a some real momentum of late. Why shouldn&#8217;t it? Its got a brilliant collection of people driving Django, its got a great community of incredibly smart people and overall the framework offers a very comprehensive toolset for developers.</p>
<p>Hey it even scales, sorry you Rails guys!</p>
<p>Another contributing factor to Django&#8217;s success I attributed to the book phenonmen. As soon as books on emerging technologies appear in the likes of Waterstones it sudden generates a great deal of interest.</p>
<p><a title="Apress" href="http://www.mikehowarth.co.uk/www.apress.com">Apress</a> has really latched on to the framework and is starting to push out a number of great books. Starting with <a title="Adrian " href="http://www.mikehowarth.co.uk/www.adrianholvaty.com">Adrian</a> and <a title="Jacobs" href="http://www.mikehowarth.co.uk/www.jacobian.org">Jacob</a>s excellent  		 			<a href="http://www.apress.com/book/view/1590597257">The Definitive Guide to Django: Web Development Done Right.</a> With further books due out soon including <a title="Marty Alchin's" href="http://gulopine.gamemusic.org/">Marty Alchin&#8217;s</a> <a href="http://www.apress.com/book/view/1430210478">Pro Django</a>, <a title="James Bennetts" href="http://www.mikehowarth.co.uk/www.blist.org">James Bennetts</a> <a href="http://www.apress.com/book/view/1590599969">Practical Django Projects</a> and another scheduled from <a title="Paul Bissex" href="http://www.mikehowarth.co.uk/www.e-scribe.com/news">Paul Bissex</a>.</p>
<p>On the whole everything seems to be rosy. However for some time a number of developers within the community have expressed their <a title="concerns" href="http://metajack.wordpress.com/2008/06/11/the-problem-with-django/">concerns</a> over the release policy and began to question when  a version 1.0 release may be likely.</p>
<p>The whole version 1.0 release has been widely discussed previously, the ground swell of the people want to get Django outin the open and begin to make some ground on Rails.<br />
Never one to shy away Jacob has stepped up to the plate and started an open and honest discussion on the <a title="roadmap" href="http://groups.google.com/group/django-developers/browse_thread/thread/5ce124e7526dad)">roadmap</a> to version 1.0.</p>
<p>The answer seems to be September. Great news for the Django community.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/django-grinds-towards-a-version-10-release/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/django-grinds-towards-a-version-10-release</feedburner:origLink></item>
		<item>
		<title>Wake up and smell the java</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/nIO7QL2FSX0/wake-up-and-smell-the-java</link>
		<comments>http://www.mikehowarth.co.uk/wake-up-and-smell-the-java#comments</comments>
		<pubDate>Thu, 12 Jun 2008 12:24:58 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/wake-up-and-smell-the-java</guid>
		<description><![CDATA[Well after almost two months in my new job I thought I better atleast make some effort to put in an update about it all.
After 2 1/2 years as lead web developer at Mamas &#038; Papas I decided it was time to move on. The decision was driven in part by the company looking to [...]]]></description>
			<content:encoded><![CDATA[<p>Well after almost two months in my new job I thought I better atleast make some effort to put in an update about it all.</p>
<p>After 2 1/2 years as lead web developer at <a title="Mamas &#038; Papas" href="http://www.mamasandpapas.co.uk">Mamas &#038; Papas</a> I decided it was time to move on. The decision was driven in part by the company looking to outsource their e-commerce development and the right opportunity coming along at the right time.</p>
<p>Unsuprsingly the decision to outsource left a bitter taste, given my initial remit was to bring the e-commerce function in house. Something I did alongside an absolutely brilliant team of people. Many of whom I now value as good friends.</p>
<p>All in all it was a bitter sweet experience. Something that I&#8217;m very proud of but would never want to repeat again! I&#8217;d like to think of it as a quantum leap which put the company in the running against many of its competitors and took it kicking and screaming in to the real world.</p>
<p>It still amazes me how many companies e-commerce offerings are either virtually untapped or poorly executed. Consultancy any one!?</p>
<p>One of my main frustrations was the weird mix of technology the site was ran on which was bleeding edge at best and non-performant at others. Eventually a decision had to be made about pursuing the open source route or looking at other contenders such as .NET and undoing everything that we&#8217;d done previously.</p>
<p>Unfortunately the open source lost out. The quote that springs to mind is:</p>
<p>&#8220;Nobody got sacked buying Microsoft&#8221;</p>
<p>As they say you win some you lose some. For me the writing has been on the wall for a long time. Last years birthday musings summed up my whole thoughts on PHP, and this was the kick that I needed to  move on.</p>
<p>So two months ago I started a new job, working for <a title="Findel Direct" href="http://www.findel.co.uk/wps/wcm/myconnect/web+content/Findel+Corporate+Website/Home/Our+operations/Home+shopping/">Findel Direct</a> as a Senior Developer. All out and out e-commerce work once again this time using Java on the IBM Websphere Commerce platform. This <a title="press release" href="http://money.cnn.com/news/newsfeeds/articles/marketwire/0402971.htm">press release</a> gives a really nice overview of the project I&#8217;m working on.<br />
Java seems a nice half way house for me. Its got the corporate credibility that many open source languages lack, but still maintains the open source ethos. Its all really interesting stuff and exciting times ahead! I&#8217;m relishing learning a new language and the proprietary technologies which come with it.</p>
<p>Needless to say that I&#8217;ll be leaving PHP on my CV but praying I never have to actually use it again. Django all the way for any of my personal projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/wake-up-and-smell-the-java/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/wake-up-and-smell-the-java</feedburner:origLink></item>
		<item>
		<title>The Trollers Trot</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/FKfy2Wqd2I0/the-trollers-trot</link>
		<comments>http://www.mikehowarth.co.uk/the-trollers-trot#comments</comments>
		<pubDate>Tue, 04 Mar 2008 18:59:45 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Running]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/the-trollers-trot</guid>
		<description><![CDATA[As usual the lack of updates have been apparent (cheers Ed), at the moment I&#8217;m struggling to get fired up by writing technical stuff and so I thought I&#8217;d change tack a little and write about some of the stuff I&#8217;ve been doing outside of work both as a bit of an aide memorie and [...]]]></description>
			<content:encoded><![CDATA[<p>As usual the lack of updates have been apparent (cheers Ed), at the moment I&#8217;m struggling to get fired up by writing technical stuff and so I thought I&#8217;d change tack a little and write about some of the stuff I&#8217;ve been doing outside of work both as a bit of an aide memorie and hopefully to provide some inspiration for other people.</p>
<p><strong>Trollers Trot 01/03/2008</strong></p>
<p>To be help me train towards the <a title="Saunders Lakeland Mountain Marathon" href="http://www.slmm.org.uk">Saunders Lakeland Mountain Marathon</a>, I&#8217;ve been keeping an eye out for interesting events and found the Trollers Trot in the Long Distance Challenges section of the <a title="FRA" href="http://forum.fellrunner.org.uk/">Fell Runners Association</a> forum.</p>
<p>The Trollers Trot is a 24.8 mile (3,000ft ascent) event organised by the <a title="LDWA" href="http://www.mikehowarth.co.uk/www.ldwa.org.uk">Long Distance Walkers Association</a> which can be walked, ran or if you&#8217;re like me hobbled starting from Grassington taking in Threshfield Moor, Winterburn Reservoir, Rylestone Moor, Barden Tower, Trollers Ghyll and returning to Grassington via Burnsall along the River Wharfe.</p>
<p>After the severe weather warning on the Thursday and Friday running up to the event Steve and I were unsure whether the event was a goer, but as we got ourselves organized on Saturday morning the weather had cleared sufficiently and the wind had dropped.</p>
<p>As we left Halifax and gained height it was nothing but clear skies with great views out to the Dales, as we drove past Bolton Abbey there was alot of standing water on the road and debris from the previous nights storm and I began to wonder what the going would be like under foot.</p>
<p>Being unfamiliar with this type of event I assured Steve we could rock up at any time and start the event these long distance walkers are a bit more relaxed than fell runners, we parked up just as the back marker was setting off I could sense this matter of fact approach coming back to haunt me if we didn&#8217;t get an entry. Fortunately we managed to get the last two entries on the day taking numbers 422 and 423 respectively, and were pleased to find we were only a mere 25 minutes behind the starters!</p>
<p>As we set off down Wharfedale Avenue from the school and past the rugby club we almost missed our first turn and we both shook our heads at each other and decided to get the map out and pay attention to the directions provided at the registration. As we made our way towards Threshfield Moor we caught sight of the back marker and some of the walkers.</p>
<p>Steve was keen to run the uphill flouting our original tactics and took some persuasion to actually slow down given we still had 24 miles to go. The climb up on to the moor passed quickly and we soon caught the back marker and gave him our numbers and began to pass the more punctual starters.</p>
<p>Once on the moor and past the first checkpoint (2.6 miles) the wind was blowing hard which made for slow going and I struggled to get warm even when running in a hard shell and fleece gillet and hat, as we descended past Winterburn Reservoir to checkpoint 2 (4.24 miles) and out of the wind the ground softened to thick mud which proved difficult to stay on two feet nevermind negotiate the walkers we were now passing.</p>
<p>Just under an hour in we halved a cereal bar and passed a couple of runners, this really lifted our spirits given our late start. As we descended in to Hetton I stopped to get rid of the gillet, my rucksack was now full with a fleece and a gillet why did I decide to bring that extra fleece after all!?</p>
<p>Once on the road we headed to checkpoint 3 at Rylestone church (6.34 miles), I looked up at the crags and thought back to the last time I was cragging there. As we arrived at the checkpoint I had a slurp of water and treated myself to a fig roll but we were keen not to overstay our welcome, the climb up to Barden Moor was beckoning.</p>
<p>As we set off there was a clear division between the walking brigade and the more serious lightweight walkers come runners, as the walking boots began to give way to trail shoes and the odd pair of bare legs. Slowing to a brisk walk on the uphill we worked our way up on to Barden Moor and traversed the moor beginning the gradual climb to the top of the moor passing more as we jogged up slowly. We were both keen to keep our legs moving after they had seized on the last climb.</p>
<p>By now my calves were beginning to tell me they&#8217;d done a sufficient amount of running, but I was keen to push on to Upper Barden reservoir and checkpoint 4 (10.49 miles). The run along the reservoir wall seemed to go on forever as we eventually caught a solo woman runner who we passed and preceeded to pass us as we stopped at the far end of the reservoir to find some food and take a quick drink.</p>
<p>We eventually caught the woman again on our way to Lower Barden reservoir, and this game of cat and mouse continued until we eventually left her after Barden Bridge. The running down this section was fast and the field had thinned out sufficiently to forgot there were nearly 350 people taking part. Looking down at my watch we were still averaging 8:30 minute/mile at this point I wondered whether this was overcooking things slightly. As the descent stretched down towards Barden Scale my legs began to suffer and I wondered whether I&#8217;d been taking on enough fluid.</p>
<p>Checkpoint 5 (12.98 miles) was the psychological crux being just over half way round, as we stopped and drank some water I wondered how I would fair with the remaining 12 miles which was equivalent to the furthest distance I&#8217;d previously ran. Half a banana a quick jabber with the helpers and once again we were off, keen to catch our nemesis (the old woman), we soon crossed the main road and were headed towards Barden Tower. Both of us remarked at the distance we&#8217;d already covered. Certainly beats lying in bed with a hangover I thought.</p>
<p>As we dropped down to Barden Bridge we joined the Dales Way riverside path and past a couple of runners who were stopped and evidently feeling the pace (much like my legs). My pace had slowed right down at this point and it was just a case of picking off the next two miles to the next checkpoint.</p>
<p>As we emerged from the riverside path in Howgill, I recognised the lane from previous climbing trips and reflected on the unrelentingly climb to Lords Seat. Thankfully we continued further along the lane to a footpath and worked our way uphill to the checkpoint 6 at Eastwood house (15.87 miles).</p>
<p>One of the helpers at the checkpoint recognised us as the &#8216;late starters&#8217; and remarked on the progress we&#8217;d made so far, we had a quick laugh and a joke and were off again quickly through the fields towards High Skyreholme and then down the lane following a team of 5 running. They made good progress as they worked they&#8217;re way up through Trollers Ghyll and began to leave us.</p>
<p>For both of us the aches and pains were beginning to kick in, it was time to eat a little more as we climbed through the picturesque valley and towards an old quarry bringing us out at checkpoint 7 (18.04 miles) just as my legs began to complain loudly at any more uphill movement.</p>
<p>After the comfort of the tea and biscuits at checkpoint 7 leaving was psychologically hard, the wind was biting and suddenly I began to realise how tired I was. The short slog on the road was the kiss of death to my legs as they finally gave in.  From here on in it was a case of running as much as possible until the lactic acid in my calves built up sufficiently that it precluded running and I resorted to walking it off again (and repeat).</p>
<p>The descent down to Hartlington was exposed as we were buffetted by the wind and frequently stopped in our tracks, the balls of my feet hurt by this point and towards the bottom of the track I chose to switch to running/walking on the grass rather than the gravel track.  It was run walk all the way down here as my legs allowed and checkpoint 8 at Woodhouse Farm (20.11 miles) was a welcome sight.</p>
<p>I&#8217;d heard people comment on the long slog back to Grassington but it hadn&#8217;t really prepared me, Burnsall came quick enough which sparked child hood memories of walking up the river side path with my parents and so it was a walk for me on this occasion as well. I was conscious of a walker who had been making ground on us since we passed him before Trollers Ghyll and was keen not to let him pass us, so tried to illicate some sort of run to the next obvious landmark (the suspension bridge).</p>
<p>Once over the suspension bridge the ground was nice and flat and we continued to run, by now we were both aware that it was going to be tight to keep to a sub 5 hour round unless I could pick up the pace to 10 minute/mile. I looked down at my watch and we were running 11:30 minute/mile and the hope of the 5 hour round soon evaporated and with it both my conversational skills and sense of humour.</p>
<p>Steve continued to harp on with some good banter which was appreciated, but I was broken by this point and wanted the whole thing to end as swiftly as possible. With about 2 miles left I thought back to people&#8217;s comments on the long slog up the River Wharfe and willed it to end. Soon enough we passed Linton Falls and were on the road, just crossing the road required some effort.</p>
<p>Once heading in the direction of the School Steve&#8217;s thoughts quickly turned to the food on offer, whilst I wondered whether I&#8217;d be seeing it again once I&#8217;d finished the meal.</p>
<p>The school hall was now a hive of activity in stark contrast to when we&#8217;d entered it earlier in the day. We checked in to complete the Trot and quickly scouted out a warm meal and a place to take the weight off our limbs. Surprisingly the meal went down easily and as I looked round I was pleased to see others looking as weary as I felt.</p>
<p>As we moved on to pudding we both began to wonder about the next event, I had the Haworth Hobble in mind but with only two weeks before the event but I sensed that I&#8217;d probably bitten off more than I could chew atleast this time round.</p>
<p>For me the Trollers Trot was the perfect intro to some of the longer distance challenges on offer, the event was well organised with a nice relaxed feel to it. The course itself was fast, runnable and passed through some spectacular<br />
scenery.</p>
<p><strong>Grid Refs</strong></p>
<p>Map: OL2</p>
<p>Start:  GR 993639<br />
Checkpoint 1: GR 957631</p>
<p>Checkpoint 2: GR 950607</p>
<p>Checkpoint 3: GR 971587</p>
<p>Checkpoint 4: GR 016580</p>
<p>Checkpoint 5: GR 050567</p>
<p>Checkpoint 6: GR 063592</p>
<p>Checkpoint 7: GR 063622</p>
<p>Checkpoint 8: GR 039606</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/the-trollers-trot/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/the-trollers-trot</feedburner:origLink></item>
		<item>
		<title>SVNmerge - automatic branch management</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/UdwKkiczXAo/svnmerge-automatic-branch-management</link>
		<comments>http://www.mikehowarth.co.uk/svnmerge-automatic-branch-management#comments</comments>
		<pubDate>Thu, 15 Nov 2007 13:02:38 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/svnmerge-automatic-branch-management</guid>
		<description><![CDATA[Version control plays a major part in any developers toolset, when SVN first appeared on the scene it was hailed as the next generation version control system. But don&#8217;t they all we&#8217;ve seen the same happen with SVK, Git etc.
What SVN offered which particularly attracted me was &#8216;cheap&#8217; tagging and branching, and this is something [...]]]></description>
			<content:encoded><![CDATA[<p>Version control plays a major part in any developers toolset, when SVN first appeared on the scene it was hailed as the next generation version control system. But don&#8217;t they all we&#8217;ve seen the same happen with SVK, Git etc.</p>
<p>What SVN offered which particularly attracted me was &#8216;cheap&#8217; tagging and branching, and this is something that I&#8217;ve used more and more as my development requirements have expanded.</p>
<p>At work in particular we often find ourselves in a situation where we are maintaining the production site (trunk), whilst developing new functionality or site designs in their own branch.</p>
<p>More often than not these development branches can exist for a significant amount of time and as time passes the trunk and the development branch get more and more out of sync.</p>
<p>This sort of thing generally makes me pretty edgy and therefore wherever possible I try and<br />
pull any changes from the trunk in to the development branch.</p>
<p>This is fairly straightforward using the svn merge command, the main stumbling block that people<br />
often forget to use the commit message to accurately detail the revisions being merged</p>
<p>Working in a team of developers this is the crux of the matter, when developer #2 comes to merge they&#8217;re not sure whats happened previously and could potentially merge the same revisions or worse and this is where version hell comes in to play. Often resulting in alot of chin stroking, head scratching and finally teeth pulling as you start doing a manual merge.</p>
<p>One of the main stumbling blocks of SVN is its lack of internal version history between branches to identify what has already been merged. <a title="SVK" href="http://svk.bestpractical.com/view/HomePage">SVK</a> already does this, and it looks as though SVN 1.5 is going to come with this functionality.</p>
<p>So from now on remember those commit messages, life is good, you switch to a different version control system or wait for SVN 1.5.</p>
<p>After a bit of digging yesterday I came across a third party tool in subversion&#8217;s contrib named svnmerge. Its aim is to automatically deal with branch management allowing for tracking changes to remove yet another head ache from developers</p>
<p>An excellent overview of SVN Merge exists at: <a title="http://www.orcaware.com/svn/wiki/Svnmerge.py" href="http://www.orcaware.com/svn/wiki/Svnmerge.py">http://www.orcaware.com/svn/wiki/Svnmerge.py</a> in addition to <a title="Ken Kinder" href="http://kenkinder.com/svnmerge/">Ken Kinder&#8217;s</a> great SVN merge tutorial</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/svnmerge-automatic-branch-management/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/svnmerge-automatic-branch-management</feedburner:origLink></item>
		<item>
		<title>Django admin speed issues</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/Xpw2voDKzV8/django-admin-speed-issues</link>
		<comments>http://www.mikehowarth.co.uk/django-admin-speed-issues#comments</comments>
		<pubDate>Tue, 23 Oct 2007 21:10:13 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/django-admin-speed-issues</guid>
		<description><![CDATA[Rather than moderation I decided to go for two posts in a day - huzzah.
Recently I experienced the Django admin interface grind to a halt seemingly inexplicably. After a bit of tailing the access.log I realised the problem was two fold:

ADMIN_MEDIA within settings.py was not configured to the correct location.
404&#8217;s being issued when attempting to [...]]]></description>
			<content:encoded><![CDATA[<p>Rather than moderation I decided to go for two posts in a day - huzzah.<br />
Recently I experienced the Django admin interface grind to a halt seemingly inexplicably. After a bit of tailing the access.log I realised the problem was two fold:</p>
<ol>
<li>ADMIN_MEDIA within settings.py was not configured to the correct location.</li>
<li>404&#8217;s being issued when attempting to access &#8216;media/css/null&#8217;</li>
</ol>
<p>A quick Google it appears the &#8216;media/css/null&#8217; problem is a hack in django/contrib/admin/media/css/base.css covered within ticket <a title="#2086" href="http://code.djangoproject.com/ticket/2086">#2086</a></p>
<p>Hopefully it should save a few people scratching their heads in future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/django-admin-speed-issues/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/django-admin-speed-issues</feedburner:origLink></item>
		<item>
		<title>Third party SVN imports</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/rURqHrOjI7U/third-party-svn-imports</link>
		<comments>http://www.mikehowarth.co.uk/third-party-svn-imports#comments</comments>
		<pubDate>Tue, 23 Oct 2007 11:49:58 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[SVK]]></category>

		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/third-party-svn-imports</guid>
		<description><![CDATA[Things have been a bit quiet on the blog for a while, mainly because I&#8217;ve been working on a couple of personal projects with a Django slant.
Django itself is a &#8216;relatively&#8217; new technology and much of its spin off projects are in very active development. So much so that for some I&#8217;ve been having to [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been a bit quiet on the blog for a while, mainly because I&#8217;ve been working on a couple of personal projects with a Django slant.</p>
<p>Django itself is a &#8216;relatively&#8217; new technology and much of its spin off projects are in very active development. So much so that for some I&#8217;ve been having to work out of the SVN trunk to get the most up to date functionality.</p>
<p>For those of you that know me, I&#8217;m pretty risk averse. I&#8217;d much rather be working from a version release and this process left me with a couple of heart in the mouth moments when I&#8217;d not committed any of my local changes in to my local SVN repository.</p>
<p>So how does one really deal with third party imports? Strangely this is something that had never really caused me that much of a headache before.</p>
<p><strong>Svn:externals</strong></p>
<p>Initially I thought the simple solution would be to use svn:externals, however I quickly realised this would only apply to my working copy and would not allow me to make the necessary changes to the core files I required.</p>
<p>A bit on how people are using <a title="svn:externals" href="http://www.ghidinelli.com/2007/10/12/managing-third-party-software-with-subversion/">svn:externals </a></p>
<p><strong>Merging two repositories </strong></p>
<p>Ok not to be deterred I thought I could simply merge the upstream SVN repository and my local repository et voila. Nope there seems to have been a strange design decision to disallow merging between different SVN repositories.</p>
<p><a title="Aisle Ten" href="http://blog.aisleten.com/2007/05/18/subversion-vendor-branches-in-action-going-from-07-to-085-of-acts_as_solr/">Aisle Ten</a> had the same problem. See solution 2</p>
<p><strong>Beginning to run out of options&#8230; </strong></p>
<p>At this point I began to wonder whether my logic was flawed and whether this was actually achievable, so off I went to the SVN book.</p>
<p>Duly I found a section on <a title="vendor branches" href="http://svnbook.red-bean.com/en/1.0/ch07s04.html">vendor branches</a>, which seems to cover off exactly what I was looking for. After reading around the recommended svn_load_dirs.pl I began stumbling across references to a tool I&#8217;d looked at some time ago <a title="SVK" href="http://svk.bestpractical.com/">SVK</a></p>
<p><strong>Enter an old friend </strong></p>
<p>Some time ago I read a great article by <a title="Bieberlabs" href="http://www.bieberlabs.com">Bieberlabs</a> on <a title="SVK" href="http://www.bieberlabs.com/wordpress/archives/2004/11/30/using-svk">SVK</a>, and managed to do a pretty impressive merge directly in to the trunk of my repository which quickly saw me roll things back. At that point I figured I really didn&#8217;t know what I was doing with it and left it alone.</p>
<p>Actually in this context it is really useful and has simplifed things massively. Here&#8217;s how I&#8217;m using it:</p>
<ol>
<li>Mirrored the project&#8217;s SVN repository (upstream repository)</li>
<li>Created a local branch of the mirrored repository</li>
<li>Sync any changes to my mirror from the upstream repository</li>
<li>Merge any changes to my local branch</li>
<li>Push any changes to my local SVN repository (downstream repository)</li>
</ol>
<p>This allows me to check any updates locally before pushing them up to my local repository and hopefully have a few less flutters along the way.</p>
<p>I should probably point out at this point that svn_load_dirs will do the job, I&#8217;ve just found SVK to be faster in terms of not having to checkout a working copy of any the repository each time but the individual revisions which have changed.</p>
<p>For those interested, I found Chris McGrath&#8217;s post on <a title="SVK with Mephisto" href="http://octopod.info/2006/8/19/managing-multiple-local-mephisto-repos-with-svk">SVK with Mephisto</a> answered pretty much all my questions</p>
<p><a title="vendor branches" href="http://svnbook.red-bean.com/en/1.0/ch07s04.html" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/third-party-svn-imports/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/third-party-svn-imports</feedburner:origLink></item>
		<item>
		<title>Reasons to love Django #1</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/HL54LDSBiRk/reasons-to-love-django-1</link>
		<comments>http://www.mikehowarth.co.uk/reasons-to-love-django-1#comments</comments>
		<pubDate>Fri, 14 Sep 2007 17:36:53 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/reasons-to-love-django-1</guid>
		<description><![CDATA[#1 - It works on Dreamhost!
Initially when starting out playing around with my first Django project I had real concerns about whether I would develop anything productive and secondly whether I&#8217;d be able to host the app on my Dreamhost account. Being a yorkshire man, I&#8217;m notoriously tight with my money, especially when it comes [...]]]></description>
			<content:encoded><![CDATA[<p>#1 - It works on Dreamhost!</p>
<p>Initially when starting out playing around with my first Django project I had real concerns about whether I would develop anything productive and secondly whether I&#8217;d be able to host the app on my <a title="Dreamhost" href="http://www.mikehowarth.co.uk/www.dreamhost.com">Dreamhost</a> account. Being a yorkshire man, I&#8217;m notoriously tight with my money, especially when it comes to hosting!</p>
<p>After consulting the list of <a title="Django Friendly Web Hosts" href="http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts ">Django Friendly Web Hosts</a> it turns out that Dreamhost are listed as a &#8216;friendly&#8217; host and hey presto after 15 minutes with the assistance of <a title="Jeff Croft" href="http://www.jeffcroft.com/">Jeff Croft&#8217;s</a> great article on how to set <a title="Django up on Dreamhost" href="http://www2.jeffcroft.com/blog/2006/may/11/django-dreamhost/">Django up on Dreamhost</a> I&#8217;m up and running with suprising ease.</p>
<p>How long this lasts remains to be seen, I&#8217;ve heard alot of issues with Dreamhost&#8217;s limited server resources and random acts of weirdness meaning Django can be a bit of a pain to host, as <a title="http://ryanberg.net/blog/2007/aug/30/django-off-dreamhost/ " href="http://www.mikehowarth.co.uk/Ryan Berg">Ryan Berg</a> illustrates.</p>
<p>Watch this space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/reasons-to-love-django-1/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/reasons-to-love-django-1</feedburner:origLink></item>
		<item>
		<title>Rails vs Django</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/ZaFgjU-UMog/rails-vs-django</link>
		<comments>http://www.mikehowarth.co.uk/rails-vs-django#comments</comments>
		<pubDate>Mon, 10 Sep 2007 18:54:26 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/rails-vs-django</guid>
		<description><![CDATA[Since my last post I&#8217;ve pretty much had my head buried in the Django documentation with sleeves rolled up developing a couple of apps using Django.
All in all I&#8217;ve been pretty impressed but there is certainly a learning curve to Django, given that Rails seems to be the lingua franca for most cool developers it [...]]]></description>
			<content:encoded><![CDATA[<p>Since my last post I&#8217;ve pretty much had my head buried in the Django documentation with sleeves rolled up developing a couple of apps using Django.</p>
<p>All in all I&#8217;ve been pretty impressed but there is certainly a learning curve to Django, given that Rails seems to be the lingua franca for most cool developers it pays to check out the google group and Django docs.</p>
<p>When time allows I&#8217;ll post up a few more musings about how I&#8217;ve found Django. For those following the <a title="Rails Envy" href="http://www.railsenvy.com/">Rails Envy</a> episodes this one made me laugh.</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/PLUS00QrYWw"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/PLUS00QrYWw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/rails-vs-django/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/rails-vs-django</feedburner:origLink></item>
		<item>
		<title>The django mosaic</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/WPbZJM1HPJk/the-django-mosaic</link>
		<comments>http://www.mikehowarth.co.uk/the-django-mosaic#comments</comments>
		<pubDate>Sat, 18 Aug 2007 10:04:37 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/the-django-mosaic</guid>
		<description><![CDATA[In one of my more philosophical postings after my birthday I began to muse where things were going and mentioned I&#8217;d began fiddling with the Python programming language.
A few days after that I came across an interesting interview with Leah Culver covering the technical architecture of  Pownce. One of the most interesting elements was [...]]]></description>
			<content:encoded><![CDATA[<p>In one of my more philosophical <a href="http://www.mikehowarth.co.uk/python-and-birthday-musings">postings</a> after my birthday I began to muse where things were going and mentioned I&#8217;d began fiddling with the <a title="Python" href="http://www.python.org/">Python</a> programming language.</p>
<p>A few days after that I came across an interesting <a title="interview" href="http://immike.net/blog/2007/07/06/interview-with-leah-culver-the-making-of-pownce/">interview</a> with <a title="Leah Culver" href="http://leahculver.com/">Leah Culver</a> covering the technical architecture of <a title="Pownce" href="http://www.pownce.com/"> </a><a title="Pownce" href="http://www.pownce.com/">Pownce.</a> One of the most interesting elements was the use of <a title="DjangoProject" href="http://www.djangoproject.com">Django</a> to power the site. This decision had particular resonnance with me because Django is a Python powered web framework much like Ruby is to Rails.</p>
<p>Up to now my track record with web frameworks hasn&#8217;t exactly been a positive one. Sometime ago I made an active decision to stay away from most of the existing PHP web frameworks (atleast until there was a stand out framework) and used my own MVC pattern which has been tried and tested. My experience with Rails hasn&#8217;t been a roaring success either, with the Agile Web Development book sat on my desk gathering dust (heading for three years).</p>
<p>However after reading the interview on Pownce it wet my appetite to find out a little more about this framework. One thing I was curious to gauge was people&#8217;s thoughts on where Django stood next to a framework like Rails which to many is the benchmark framework.</p>
<p>Alot has been written on this front you only need to google &#8220;django&#8221; + &#8220;rails&#8221; and you&#8217;ll be kept amused for along time with people debating the relative merits of each of the frameworks. Ultimately alot boils down to personal preference both are more than capable for standard web app development.</p>
<p>What swung it for me was that Python was the underlying language nothing more. Oh and perhaps <a title="PHP, Rails, Django" href="http://wiki.rubyonrails.com/rails/pages/Framework+Performance">this </a>side by side performance comparision of Symfony, Rails and Django. I never realised Symfony was so bloated!</p>
<p>After a week of using it to write a demo application I can honestly say I&#8217;m blown away with the framework, some of the highlights for me are:</p>
<ul>
<li>MVC</li>
<li>Object Relation Mapping</li>
<li>Cruftless URLS</li>
<li>Integrated admin interface</li>
<li>Templating system (similar to Smarty including template inheritance)</li>
<li>Caching</li>
<li>Internationalisation</li>
<li>Plug and play apps (Sitemaps, Feed generation, Authentication)</li>
</ul>
<p>Without coming across as a total zealot, what I would say is that as of version 0.96, there are still bits which are a little rough around the edges. Installation on windows for a start, and certain elements of the documentation are slightly contrived or missing key information.</p>
<p>That said the community is really strong, and I am going to make every endeavor to make my contribution to the community.</p>
<p><strong> Reading materials</strong></p>
<ul>
<li><a title="Django Screencast" href="http://www.throwingbeans.org/django_screencasts.html">Django Screencast</a></li>
<li><a title="Official Django Site" href="http://www.djangproject.com">Official Django site</a></li>
<li><a title="Django Book" href="http://www.djangobook.com">Django Book</a></li>
<li><a title="Django Wiki/Trac" href="http://code.djangoproject.com/">Django Wiki/Trac</a></li>
</ul>
<p>For a final spoiler, heres a mosaic of all sites currently powered by Django:<br />
<img title="Django powered sites" alt="Django powered sites" src="http://farm2.static.flickr.com/1374/866880979_82c86f80cd.jpg?v=0" /></p>
<ul />
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/the-django-mosaic/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/the-django-mosaic</feedburner:origLink></item>
		<item>
		<title>PHP Developer Essentials</title>
		<link>http://feedproxy.google.com/~r/MikeHowarthWebDeveloper/~3/QhHYOORofXE/php-developer-essentials</link>
		<comments>http://www.mikehowarth.co.uk/php-developer-essentials#comments</comments>
		<pubDate>Thu, 16 Aug 2007 11:52:36 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mikehowarth.co.uk/php-developer-essentials</guid>
		<description><![CDATA[A very quick post this one.
Came across this nice little round up of essential developer tools: http://immike.net/blog/2007/08/15/5-tools-every-php-programmer-should-know-about/
For any PHP developer not already familiar with automated builds, profiling/debugging, object relation mapping (orm) or unit testing this is well worth a quick five minutes of your time.
]]></description>
			<content:encoded><![CDATA[<p>A very quick post this one.</p>
<p>Came across this nice little round up of essential developer tools: <a title="Essential Developer  Tools" href="http://immike.net/blog/2007/08/15/5-tools-every-php-programmer-should-know-about/">http://immike.net/blog/2007/08/15/5-tools-every-php-programmer-should-know-about/</a></p>
<p>For any PHP developer not already familiar with automated builds, profiling/debugging, object relation mapping (orm) or unit testing this is well worth a quick five minutes of your time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikehowarth.co.uk/php-developer-essentials/feed</wfw:commentRss>
		<feedburner:origLink>http://www.mikehowarth.co.uk/php-developer-essentials</feedburner:origLink></item>
	</channel>
</rss>
