<?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"
	>

<channel>
	<title>Migrate</title>
	<atom:link href="http://migrate.libretech.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://migrate.libretech.net</link>
	<description>from perl to ruby</description>
	<pubDate>Wed, 03 Mar 2010 23:02:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>A linked data exercise (part 1)</title>
		<link>http://migrate.libretech.net/2010/03/03/a-linked-data-exercise-part-1/</link>
		<comments>http://migrate.libretech.net/2010/03/03/a-linked-data-exercise-part-1/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:58:34 +0000</pubDate>
		<dc:creator>graham.seaman</dc:creator>
		
		<category><![CDATA[linked data]]></category>

		<category><![CDATA[genealogy]]></category>

		<category><![CDATA[sparql]]></category>

		<guid isPermaLink="false">http://migrate.libretech.net/?p=5</guid>
		<description><![CDATA[I want to learn about linked data, ideally for use with online texts and library data, but that&#8217;s a big and complicated task and it makes sense to start with something smaller and better defined. So having an interest in family history I thought I&#8217;d try with data from 18th century West Country parish registers. [...]]]></description>
			<content:encoded><![CDATA[<p>I want to learn about linked data, ideally for use with online texts and library data, but that&#8217;s a big and complicated task and it makes sense to start with something smaller and better defined. So having an interest in family history I thought I&#8217;d try with data from 18th century West Country parish registers.  Many of these were transcribed in the 19th century in a series published by Phillimore and are now available as public domain scans on <a href="http://www.archive.org/detail/somersetparishre00phil">archive.org</a>. Marriages, only, unfortunately, which limits what you can do with them, but still more than enough to get started. <span id="more-5"></span></p>
<p>If this were a database then each marriage would be a row, so it shouldn&#8217;t be too hard to get the data into a database as a starting point. Unfortunately there are only automatically generated ocr versions of the text, so there&#8217;ll be a <em>lot</em> of tedious proofing to do first. And to judge from previous experience of parish registers there will also be a lot of variability in the quality of the data - what to do about entries that can&#8217;t quite all be read? Random comments from the vicar? Julian dates? </p>
<p>Once the database is designed and populated fortunately there&#8217;s a <a href="http://www.jenitennison.com/blog/node/135">recipe-style howto</a> by the great Jeni Tennison on creating linked data which I&#8217;m going to try to follow through. That should give me a schema for the linked data version of the marriages. The only aspect I know of that isn&#8217;t really covered there - since she&#8217;s dealing with government data which must be true (TM) - is named graphs. There is already a huge amount of genealogical information on the web, much of completely unknown<br />
reliability, and I really don&#8217;t want to add to that. As I understand it <a href="http://www.w3.org/2004/03/trix/">named graphs</a> combined with the Semantic Web Publishing framework should allow me to describe the source of the data, not just the data.</p>
<p>And then I need a host to provide a sparql endpoint; <a href="http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/index.html">D2R</a> sounds like it should do everything I need. I&#8217;ll give it a try.</p>
<p>Maybe biting off a bit more than I can chew in very limited time; we&#8217;ll see. I&#8217;ll report back here with Part 2.</p>
]]></content:encoded>
			<wfw:commentRss>http://migrate.libretech.net/2010/03/03/a-linked-data-exercise-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Can PRINCE2 be agile?</title>
		<link>http://migrate.libretech.net/2008/02/04/can-prince2-be-agile/</link>
		<comments>http://migrate.libretech.net/2008/02/04/can-prince2-be-agile/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 17:58:15 +0000</pubDate>
		<dc:creator>graham.seaman</dc:creator>
		
		<category><![CDATA[project management]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://migrate.libretech.net/?p=4</guid>
		<description><![CDATA[If the exam went ok I should shortly be a &#8216;PRINCE2 registered practitioner&#8217;. The problem is that at first sight there is a total mismatch between the top-down approach of Prince2 and the Agile approaches  Ruby is at home with. 
&#8220;The core value of an egalitarian meritocracy runs deep in the agile movement&#8221;, according [...]]]></description>
			<content:encoded><![CDATA[<p>If the exam went ok I should shortly be a &#8216;PRINCE2 registered practitioner&#8217;. The problem is that at first sight there is a total mismatch between the top-down approach of Prince2 and the Agile approaches  Ruby is at home with. </p>
<p>&#8220;The core value of an egalitarian meritocracy runs deep in the agile movement&#8221;, according to one of the founders of the Agile Movement<sup>1</sup>. PRINCE2, on the other hand, is all about control. Not only that, but even a quick glance at PRINCE2 diagrams shows its origins in the heyday of Waterfall methods.<br />
<span id="more-4"></span><br />
If the two approaches really are incompatible then Ruby and Rails (not to mention almost all software development that has emerged from the free software movement) would be increasingly ruled out of all government projects. Not only is the OGC <a href="http://www.ogc.gov.uk/methods_prince_2.asp">fully behind PRINCE2</a>, but there is definitely a viral aspect to PRINCE2 once it has a foothold in an organisation.</p>
<p>Searching around for attempts to reconcile the two doesn&#8217;t return much. <a href="http://www.dsdm.org/">DSDM</a> seems to be the only formal method around, and that is heavily proprietary - it seems that to read about it I have to sign away the possibility of commenting on it, so I won&#8217;t.</p>
<p>The alternative is to start from first principles. PRINCE2 is always very clear that it can be combined with other methods:</p>
<blockquote><p>&#8220;PRINCE2 does not cover all aspects of project management.  Certain aspects of project management (such as leadership and people management skills, detailed coverage of project management tools and techniques) are well covered by other existing and proven methods and are therefore excluded from PRINCE2.&#8221;</p></blockquote>
<p>So can PRINCE2 and a specific Agile method just be merged? Julian Harris <a href="http://www.julianonsoftware.com/?p=1300">has produced a spreadsheet</a> of one set of potential mappings between each of the PRINCE2 stages and its closest equivalent in Scrum. <strong>Authorising a Work Package</strong>, for example, is mapped to the start of a new Sprint. </p>
<p>In the process of mapping, it&#8217;s noticeable that the fine detail of the PRINCE2 stages is being forced into a few much coarser-grained Scrum categories. The role of the Executive almost vanishes; the separation between Customer and User goes; and the <strong>Ad-Hoc Direction</strong> stage is removed.  In other words, the compromise between top-down control and &#8216;egalitarian meritocracy&#8217; is achieved by simply removing the controls. This is not likely to be acceptable to organisations already using PRINCE2.</p>
<p>So could we instead slot an agile approach into an overall Prince2 framework? The obvious thing to do would be to use agility within the <strong>Managing Project Delivery</strong> substages. PRINCE2 is fairly quiet about the <strong>MP</strong> stage - it doesn&#8217;t matter too much how it works, as long as it gets done and any problems are reported on quickly. Following Julian&#8217;s approach, the Scrum Master would now become the Team Leader rather than the Project Manager. Some aspects fit fine: for example, the use of Test Driven Design could be specified in the Work Package. The problem now is the reverse of Julian&#8217;s solution: a self-contained agile method within a single PRINCE2 stage has surrendered all the bottom-up initiative that allows it to work.</p>
<p>Issue Control seems to be the main problem from the PRINCE2 side. The intention is that tolerances (cost, timing, scope, quality etc) are set from above - and that anything which looks likely to exceed the tolerances needs reporting upwards for decisions as soon as it is noticed. Applied so strictly that it removes all initiative this would stifle any team, but it seems a particular problem for an agile team.</p>
<p>On the Agile side, one problem is access to users. PRINCE2 moves the user connection with the product up to the Senior User on the Project Board; agile methods need continuous interaction with the user during development.</p>
<p>Neither problem looks insurmountable if there is a will to make it work. Tolerances can be set loosely. Some decision making ability can be delegated downwards. Users can be involved in multiple levels of the project. None of this needs to mean giving up on the PRINCE2 principle of fixing the approach before work starts.</p>
<p>But in practice are the underlying philosophies just too different? I know that at one time Alasdair Mangham of Camden Council was musing a PRINCE2 approach to managing open source development based on experience with <a href="http://europa.eu.int/idabc/en/document/3804/470">APLAWs</a> - did it ever happen? Is anyone in the UK actually trying to merge these approaches? I&#8217;d love to know&#8230;</p>
<ol class="footnotes"><li id="footnote_0_4" class="footnote">Jim Highsmith, Agile Project Management p.9</li></ol>]]></content:encoded>
			<wfw:commentRss>http://migrate.libretech.net/2008/02/04/can-prince2-be-agile/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Haml is neat but fussy</title>
		<link>http://migrate.libretech.net/2008/01/23/haml-is-neat-but-fussy/</link>
		<comments>http://migrate.libretech.net/2008/01/23/haml-is-neat-but-fussy/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 16:20:36 +0000</pubDate>
		<dc:creator>graham.seaman</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://migrate.libretech.net/?p=3</guid>
		<description><![CDATA[I don&#8217;t usually like templating languages. Ones I&#8217;ve known before (like TT) are intended to keep both developers and designers happy, and tend to do neither: developers miss having a full language, and designers want to know why everything can&#8217;t just be html.  Haml is different; it doesn&#8217;t pretend to be html (but is [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t usually like templating languages. Ones I&#8217;ve known before (like TT) are intended to keep both developers and designers happy, and tend to do neither: developers miss having a full language, and designers want to know why everything can&#8217;t just be html.  Haml is different; it doesn&#8217;t pretend to be html (but is simple enough any html-er can read it), and it gives you access to the whole of Ruby (but encourages you to move code blocks into helpers). It&#8217;s just nice and elegant. But it&#8217;s also very fussy about layout.<br />
<span id="more-3"></span><br />
On my first try with it I spent quite a while going round in circles before I realised nearly all my errors were coming from incredibly simple layout errors. Some are pretty obvious:<br />
<code>%h1 Hallo</code><br />
works, but<br />
<code>%h1 Hallo<br />
&nbsp;&nbsp;= @user.name</code><br />
throws &#8220;<em>Illegal Nesting: Nesting within a tag that already has content is illegal.&#8221;<br />
</em><br />
Which is pretty annoying, as printing a variable after some constant text is one of the most common things to need to do. And Haml lets you, you just need to change the layout to:<br />
<code>%h1<br />
&nbsp;&nbsp;Hello<br />
&nbsp;&nbsp;@user.name</code><br />
and all is ok. Like the error message says, if you are going to need nesting, nest <em>before</em> adding any content. </p>
<p>The layout problem which really threw me at first came with trying to nest rows in tables:<br />
<code>%table<br />
&nbsp;&nbsp;- users.each do |user|<br />
&nbsp;&nbsp;&nbsp;&nbsp;%tr<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%td A<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%td B .........</code><br />
Haml kept throwing an <em>Illegal Indentation</em> error: <em>&#8220;Only two space characters are allowed as indentation&#8221;</em>. So I counted them, and there were exactly two space characters indenting each layer of nesting. What I didn&#8217;t notice was that my Vim setup was sneaking in tab characters at the <em>beginning</em> of new lines, although the ends were fine. </p>
<p><code>:set expandtab</code> and <code>:%retab</code> fixed everything. Moral: read the error messages, in Haml they do really mean what they say.</p>
]]></content:encoded>
			<wfw:commentRss>http://migrate.libretech.net/2008/01/23/haml-is-neat-but-fussy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Starting Rails</title>
		<link>http://migrate.libretech.net/2008/01/21/starting-rails/</link>
		<comments>http://migrate.libretech.net/2008/01/21/starting-rails/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 12:38:30 +0000</pubDate>
		<dc:creator>graham.seaman</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[After playing a bit with Ruby the language I decided to get a crash-start in Rails and turned up for  the Ruby-on-Rails class run by Skillsmatter.  We got
Jamie van Dyke from Engine Yard as our instructor. One of the good things about courses that is hard to pick up from books is getting [...]]]></description>
			<content:encoded><![CDATA[<p>After playing a bit with Ruby the language I decided to get a crash-start in Rails and turned up for  the Ruby-on-Rails class run by <a href="http://skillsmatter.com/">Skillsmatter</a>.  We got<br />
<a href="http://blog.fearoffish.com/">Jamie van Dyke</a> from <a href="http://www.engineyard.com/">Engine Yard</a> as our instructor. One of the good things about courses that is hard to pick up from books is getting a feel for the culture round a language - in this case it was soon obvious that Ruby culture is pretty heavily blog-based. And since Jamie also told us, &#8216;if you want to do Ruby, get a blog&#8217;, here&#8217;s mine. </p>
<p>Which isn&#8217;t to say that I won&#8217;t manage to squeeze a bit of  <a href="http://openstreetmap.org">openstreetmap</a> and other topics in here from time to time <img src='http://migrate.libretech.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://migrate.libretech.net/2008/01/21/starting-rails/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
