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

<channel>
	<title>Mark Staples</title>
	<atom:link href="http://www.markstaples.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markstaples.com</link>
	<description>Ruminations and observations about software, technology, and beer.</description>
	<lastBuildDate>Tue, 17 Aug 2010 08:34:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Wheat Beer</title>
		<link>http://www.markstaples.com/2010/06/28/wheat-beer/</link>
		<comments>http://www.markstaples.com/2010/06/28/wheat-beer/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 01:30:58 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Homebrew]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=169</guid>
		<description><![CDATA[Just over four weeks ago, I started brewing a Coopers Wheat Beer kit, with Safbrew WB-06 Wheat Brewing Yeast, and a kilo of dried wheat malt, all from the Asquith homebew shop a little way up the road.  Two weeks in the primary, racked for two more weeks for bottling.  It&#8217;s been a little chilly [...]]]></description>
			<content:encoded><![CDATA[<p>Just over four weeks ago, I started brewing a Coopers <a href="http://www.coopers.com.au/the-brewers-guild/brewing-products/brew-cans/thomas-coopers-selection">Wheat Beer</a> kit, with <a href="http://www.fermentis.com/FO/pdf/HB/EN/Safbrew_WB-06_HB.pdf">Safbrew WB-06 Wheat Brewing Yeast</a>, and a kilo of dried wheat malt, all from the <a href="http://www.asquithhomebrewing.com.au/catalog/index.php">Asquith homebew shop</a> a little way up the road.  Two weeks in the primary, racked for two more weeks for bottling.  It&#8217;s been a little chilly recently, so fermentation was slow.  The ingredients all up cost almost twice as much as normal &#8211; will it taste twice as good?  Time will tell, but so far it smells like fresh bread, which is a good sign!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2010/06/28/wheat-beer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Invention vs Innovation</title>
		<link>http://www.markstaples.com/2010/05/11/invention-vs-innovation/</link>
		<comments>http://www.markstaples.com/2010/05/11/invention-vs-innovation/#comments</comments>
		<pubDate>Tue, 11 May 2010 03:32:30 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=164</guid>
		<description><![CDATA[Just heard in a QESP webinar on Software Innovation in Australia from Julian Day of the Australia Consensus Awards: In business, invention is the conversion of cash into ideas, but innovation is the conversion of ideas into cash. Nice.  I see this is also on wikipedia.  I wonder what&#8217;s the original source for this quote?]]></description>
			<content:encoded><![CDATA[<p>Just heard in a <a href="http://www.qesp.org.au/">QESP</a> webinar on <em>Software Innovation in Australia</em> from Julian Day of the Australia <a href="http://www.consensus.com.au/">Consensus Awards</a>:</p>
<blockquote><p>In business, invention is the conversion of cash into ideas, but innovation is the conversion of ideas into cash.</p></blockquote>
<p>Nice.  I see this is also on wikipedia.  I wonder what&#8217;s the original source for this quote?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2010/05/11/invention-vs-innovation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source Project Management Tools</title>
		<link>http://www.markstaples.com/2010/05/06/open-source-project-management-tools/</link>
		<comments>http://www.markstaples.com/2010/05/06/open-source-project-management-tools/#comments</comments>
		<pubDate>Thu, 06 May 2010 01:45:43 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=161</guid>
		<description><![CDATA[I need to create some simple project schedules at work.  I used to have MS Project installed, but when I upgraded to Windows 7, my new SOE didn&#8217;t have MS Project.  So, I googled for open source project management tools.  I remember doing this years ago, and didn&#8217;t find anything compelling.  Now, there&#8217;s lots of [...]]]></description>
			<content:encoded><![CDATA[<p>I need to create some simple project schedules at work.  I used to have MS Project installed, but when I upgraded to Windows 7, my new SOE didn&#8217;t have MS Project.  So, I googled for open source project management tools.  I remember doing this years ago, and didn&#8217;t find anything compelling.  Now, there&#8217;s lots of options.  Which is the best?</p>
<p>I wanted a desktop app, so I excluded <a href="http://en.wikipedia.org/wiki/Redmine">Redmine</a>, and <a href="http://en.wikipedia.org/wiki/DotProject">dotProject</a> because they&#8217;re webapps, exculded <a href="http://en.wikipedia.org/wiki/Project.net">Project.net</a> because it needs Oracle which I don&#8217;t have, and excluded the *nix-only application <a href="http://en.wikipedia.org/wiki/TaskJuggler">TaskJuggler</a>.</p>
<p>That still left me with a short list of three: <a href="http://en.wikipedia.org/wiki/GanttProject">GanttProject</a>, <a href="http://en.wikipedia.org/wiki/OpenProj">OpenProj</a>, and <a href="http://en.wikipedia.org/wiki/Open_Workbench">Open Workbench</a>.</p>
<p>Open Workbench hasn&#8217;t open sourced their internal scheduling alorithms, and requires a commercial Clarity (CA) product to do collaboration.  Neither of those are killer problems for me, but they do linger in the back of your mind&#8230;  Anyway, it installed OK, launched OK, but looks overly complex.  I want to be productive out of the box, but couldn&#8217;t even work out how to create tasks and dependencies.  (I guess maybe I could have read the manual.  Who has time?)  Uninstalled.</p>
<p>GanttProject installed OK, launched OK, and looks promising.  I think it could be used, but minor bugs in the UI proved annoying.  Naming tasks was hard in the UI, and linking tasks to milestones was painful.  Uninstalled.</p>
<p>OpenProj installed OK, launched OK, and looks easy enough to use for my purposes.  There are a few UI niggles &#8211; e.g. I&#8217;d like to be able to reorder tasks more easily, maybe with drag and drop.  The download is going to be a couple of years old soon &#8211; Wikipedia tells me its development status is uncertain since Serena acquired it, and also tells me to watch out for bugs if I start to use some of the more advanced features&#8230;  But, it looks &#8220;good enough&#8221;, and I&#8217;m using it for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2010/05/06/open-source-project-management-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reference Management</title>
		<link>http://www.markstaples.com/2010/03/02/reference-management/</link>
		<comments>http://www.markstaples.com/2010/03/02/reference-management/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 23:07:14 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=159</guid>
		<description><![CDATA[Researchers &#8220;stand on the shoulders of giants&#8220;, which in practice means reading a lot of academic papers and reports.  Lots.  You not only want to read them, but also cite them in papers you write, search them, and organise them by whatever topics you&#8217;re investigating.  How do you do that? When I was a PhD [...]]]></description>
			<content:encoded><![CDATA[<p>Researchers &#8220;<a href="http://en.wikipedia.org/wiki/Stand_on_the_shoulders_of_giants">stand on the shoulders of giants</a>&#8220;, which in practice means reading a lot of academic papers and reports.  Lots.  You not only want to read them, but also cite them in papers you write, search them, and organise them by whatever topics you&#8217;re investigating.  How do you do that?</p>
<p>When I was a PhD student, I kept hard copies of the papers I read, and a collection of bibtex files containing reference information.  The bibtex files were separate, each on a different topic.  Since getting back into research in 2004, I&#8217;ve gone digital and have tried a few solutions: <a href="http://www.refman.com/">Reference Manager</a>, <a href="http://www.endnote.com/">EndNote</a>, bibtex again, and <a href="http://www.zotero.org/">zotero</a>.  After each one, I kept reverting to my clumsy manual approach: storing PDF documents in directories, with each directory representing a topic.  Often, papers relate to more than one topic &#8211; sometimes then I put a copy or soft link in each topic directory.  I said it was clumsy!  But at least I can work when I&#8217;m travelling and off-line.</p>
<p>As a result, I now have dozens of directories stuffed with thousands of PDFs.  (I have less than three thousand, but a colleague has more than ten thousand.)  These calcified directories represent a fixed collection of topics that, as my research focus evolves over the years, is increasingly inappropriate.  I suspect a lot of people work like this.</p>
<p>So I&#8217;ve been delighted to discover <a href="http://www.mendeley.com/">Mendeley Desktop</a>.  It&#8217;s still in beta, but I like its approach.  It lets me keep my PDFs as they are, and works with me to index them and import their bibliographic information into a database, using text recognition and bibliographic web services.  The quality of both of those mechanisms are a bit patchy right now, but it has &#8220;needs review&#8221; status tracking so I can manually check and correct that bibliographic data over time.  What&#8217;s also cool is that I can tell it to &#8220;watch&#8221; my directories &#8211; if I dump more PDFs in there, it&#8217;ll incrementally import those too. Mendeley has all the normal features: reference-importing bookmarklets, exporting in bibtex/whatever, Word and Open Office plugins for creating reference lists, etc.  And of course it also has tagging: so now I can create tag topics for my references &#8211; organised into as many overlapping topic areas as I need.</p>
<p>I feel like my reference collection has opened up to me, and is becoming a much more useful resource.  That&#8217;s fun and exciting but I have to make sure I don&#8217;t spend so much time organising my references that I end up not actually doing research!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2010/03/02/reference-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bottling Day</title>
		<link>http://www.markstaples.com/2009/12/27/bottling-day/</link>
		<comments>http://www.markstaples.com/2009/12/27/bottling-day/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 00:17:27 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Homebrew]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=157</guid>
		<description><![CDATA[The day after Christmas is Bottling Day!  Laying down the Dark Ale for Autumn and Winter.  I had racked it 4-5 days beforehand.  Final gravity was 1.01, so it will be just under 5.5% ABV.]]></description>
			<content:encoded><![CDATA[<p>The day after Christmas is Bottling Day!  Laying down the <a href="http://www.markstaples.com/2009/12/07/dark-ale-again/">Dark Ale</a> for Autumn and Winter.  I had racked it 4-5 days beforehand.  Final gravity was 1.01, so it will be just under 5.5% ABV.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/12/27/bottling-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking the Fractal V Lifecycle?</title>
		<link>http://www.markstaples.com/2009/12/11/breaking-the-fractal-v-lifecycle/</link>
		<comments>http://www.markstaples.com/2009/12/11/breaking-the-fractal-v-lifecycle/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 07:31:32 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=153</guid>
		<description><![CDATA[Liming has raised three points in reference to my Fractal V Lifecycle.  His questions are probing the limits of the model in interesting ways. Before I discuss them, I&#8217;d like to introduce a concept and some terminology from an earlier paper I wrote. The V model can accommodate as many levels of design abstraction as [...]]]></description>
			<content:encoded><![CDATA[<p>Liming <a href="http://limingzhu.posterous.com/envy-un-v">has raised three points</a> in reference to my <a href="http://www.markstaples.com/2009/05/25/fractal-v-lifecycle/">Fractal V Lifecycle</a>.  His questions are probing the limits of the model in interesting ways. Before I discuss them, I&#8217;d like to introduce a concept and some terminology from an <a href="http://www.springerlink.com/content/m945520337058441/">earlier paper I wrote</a>.</p>
<p>The V model can accommodate as many levels of design abstraction as you like.  For example, if you do high-level design/integration testing, add a layer for that between system architecture/system testing and low-level design/component testing. At each level of design abstraction, you have the same schema of activities: design the artifact (called &#8220;Plan&#8221; in the paper), pass it on for elaboration to a lower level of abstraction (called &#8220;Do&#8221; in the paper) and then verify that the design and implementation are consistent (called &#8220;Check&#8221; in the paper).  There is also another kind of activity in the V model, &#8220;Plan-to-Check&#8221;, which can proceed concurrently with the &#8220;Do&#8221; step.</p>
<p>So, the left-hand side of the V is &#8220;Plan&#8221;, the horizontal dotted lines are &#8220;Plan-to-Check&#8221;, the pointy bit is &#8220;Do&#8221;, and the right-hand side is &#8220;Check&#8221;.</p>
<p>On to Liming&#8217;s points about situations quoted or paraphrased as follows&#8230;</p>
<p>1. &#8220;Left side of the V bends up before reaching the bottom&#8221;</p>
<p style="padding-left: 30px;">Liming wonders &#8211; how can you &#8220;Check&#8221; a developed artifact if it hasn&#8217;t been built yet!?  As Liming suggests, I want to argue that if you don&#8217;t have an implementation yet, you of course can&#8217;t test it, but you can certainly analyse the plan/design.  Your &#8220;Check&#8221;ing activity will be a requirements review, or a model-based design simulation, or perhaps testing with stubs (or &#8220;mock objects&#8221; if you prefer).  It depends on your level of design abstraction and what artifacts you already have from any previous iterations.</p>
<p style="padding-left: 30px;">Liming thinks analysis is implicit in the left-hand-side of the V, because designers always carry out some sort of analysis immediately after creating artifacts.  I agree designers often do that sort of analysis, but I disagree that it&#8217;s implicit in the left-hand-side of the V!  I think it&#8217;s simpler and more consistent to think about it as being part of the right-hand-side of the V, with a null &#8220;Do&#8221; activity.  So designers would do many mini design/analyse (&#8220;Plan&#8221;/&#8221;Check&#8221;) iterations at their level of design abstraction before sending it off to the lower level of abstraction for elaboration.</p>
<p>2. &#8220;Right side of the V dips down before reaching the top&#8221;</p>
<p style="padding-left: 30px;">Liming observes that this isn&#8217;t just about avoiding end-customer contact.  I didn&#8217;t highlight that in my original blog article, but I fully agree.  For example, you might have unit tested iterations that you don&#8217;t send up for integration testing just yet. These are &#8220;internal iterations&#8221; at some level of deign abstraction, avoiding the &#8220;customer&#8221; at the next highest level of design abstraction.</p>
<p>3. &#8220;Early or continuous testing breaks the V&#8221;</p>
<p style="padding-left: 30px;">Liming claims that as testing happens on the right-hand side of the V, early or continuous testing means you can&#8217;t have a V any more.  I agree early and continuous testing breaks the V, but it doesn&#8217;t break the Fractal V!  In the Fractal V, yes you do still carry out the testing on the right-hand side of the V, but the whole point of the Fractal V is that it can accommodate a variety of different kinds of internal iterations.</p>
<p style="padding-left: 30px;">I&#8217;m not claiming that all software development will fit the Fractal V Lifecycle.  For example, imagine a lifecycle with long-running requirements analysis performed concurrently with ongoing development, where you could pre-emptively abort a development iteration depending on the intermediate outcomes of that ongoing requirements analysis.  I don&#8217;t know of any lifecycle that would capture that exactly.  Maybe this is Liming&#8217;s point about continuous integration &#8211; the hairy reality is that developers won&#8217;t stop entirely while they&#8217;re waiting for feedback from continuous integration &#8211; they&#8217;ll probably already have started the next unit of work.  I would rebut that the aim of continuous integration is to given &#8220;immediate&#8221; unit and integration test feedback to developers &#8211; to let them do many micro-iterations as quickly as possible.  I say you should probably just work around that hairy reality for the sake of simplicity.  No model is perfect, but some models are still useful.</p>
<p>Lifecycle models are used because they make it easier for large groups to understand and coordinate complex projects.  The Fractal V provides more flexibility for iteration than the normal V lifecycle, but is still reasonably simple, and importantly retains the Plan/Do/Check schema that so many systems engineering disciplines and tools rely on.</p>
<p>It will be interesting to see the <a href="http://limingzhu.posterous.com/envy-un-v">un-V lifecycle</a> Liming mentions (I hope they find a better name!), and see how it deals with all of these issues.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/12/11/breaking-the-fractal-v-lifecycle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fractal V Lifecycle for Pre-Project Activities</title>
		<link>http://www.markstaples.com/2009/12/08/fractal-v-lifecycle-for-pre-project-activities/</link>
		<comments>http://www.markstaples.com/2009/12/08/fractal-v-lifecycle-for-pre-project-activities/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 03:33:14 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=149</guid>
		<description><![CDATA[Louis has got a new article version of my earlier blog post on the Fractal V Lifecycle up on alinement.net magazine/community website. He&#8217;s also added some thoughts of his own on extending the concept into pre-project activities.  For these sorts of activities I tend to favor putting them on top, i.e. on the left but [...]]]></description>
			<content:encoded><![CDATA[<p>Louis has got <a href="http://alinement.net/component/content/article/2-development/2-the-fractal-v-lifecycle">a new article version</a> of my earlier <a href="http://www.markstaples.com/2009/05/25/fractal-v-lifecycle/">blog post</a> on the Fractal V Lifecycle up on <a href="http://alinement.net/">alinement.net</a> magazine/community website. He&#8217;s also <a href="http://alinement.net/component/content/article/18">added some thoughts of his own</a> on extending the concept into pre-project activities.  For these sorts of activities I tend to favor putting them on top, i.e. on the left but at a higher level &#8211; giving you a taller V.  But there&#8217;s no hard and fast rule&#8230; use it whatever way helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/12/08/fractal-v-lifecycle-for-pre-project-activities/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dark Ale Again</title>
		<link>http://www.markstaples.com/2009/12/07/dark-ale-again/</link>
		<comments>http://www.markstaples.com/2009/12/07/dark-ale-again/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 22:55:41 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Homebrew]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=147</guid>
		<description><![CDATA[It&#8217;s been a madly busy year, with barely enough time to drink beer, let alone make any.  But on the weekend I managed to find an hour to put on a new batch.  Hopefully when the Christmas holidays come around in a couple of week I&#8217;ll find time to bottle it! I&#8217;ve gone with a [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a madly busy year, with barely enough time to drink beer, let alone make any.  But on the weekend I managed to find an hour to put on a new batch.  Hopefully when the Christmas holidays come around in a couple of week I&#8217;ll find time to bottle it!</p>
<p>I&#8217;ve gone with a <a href="http://www.coopers.com.au/homebrew/hbrew.php?pid=1&amp;id=112">Cooper&#8217;s Dark Ale</a> again &#8211; an old favorite, and nice in the winter when it will be ready.  I added cooper&#8217;s <a href="http://www.coopers.com.au/homebrew/hbrew.php?pid=7">Brew Enhancer Type 2</a>, and the original gravity was 1.038.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/12/07/dark-ale-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Academic Academy Awards</title>
		<link>http://www.markstaples.com/2009/09/25/academic-academy-awards/</link>
		<comments>http://www.markstaples.com/2009/09/25/academic-academy-awards/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 05:48:16 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=140</guid>
		<description><![CDATA[I had to laugh at Liming&#8217;s latest micro-blog posting, Why are papers in top conferences very boring (these days)? It&#8217;s funny, but I&#8217;m not sure I entirely agree &#8211; I think top conferences do have interesting papers.  Liming is saying interesting ideas won&#8217;t necessarily have had time to be well validated, and by the time [...]]]></description>
			<content:encoded><![CDATA[<p>I had to laugh at Liming&#8217;s latest micro-blog posting, <a href="http://limingzhu.posterous.com/why-are-papers-in-top-conferences-very-boring"><em>Why are papers in top conferences very boring (these days)?</em></a> It&#8217;s funny, but I&#8217;m not sure I entirely agree &#8211; I think top conferences do have interesting papers.  Liming is saying interesting ideas won&#8217;t necessarily have had time to be well validated, and by the time you have validated and published your idea in a top conference, it&#8217;s no longer new (and interesting).  However, I don&#8217;t want to see completely unvalidated ideas.  Ideas are cheap.  I want to see ideas that are realisable, and whose value has been described and justified somehow.</p>
<p>To the extent that Liming&#8217;s wry diagram is true, I think it&#8217;s more true of journals than conferences. In most academic disciplines, journals are regarded as the &#8220;proper&#8221; place to publish significant results.  <a href="http://doi.acm.org/10.1145/1498765.1498780">Computer science is different</a> &#8211; top conferences in computer science (and software engineering) can be more important than journals.  <a href="http://citeseer.ist.psu.edu/impact.html">Citeseer statistics show</a> most of the highest impact compsci venues are conferences, and even some workshops have more impact that some top journals!  But (or perhaps because!) in computer science, journals have longer review and publication lead times than conferences, so the results there can be more out-of-date and so less interesting.  (That is a bit odd when you think about it &#8211; journals are published several times a year, whereas each conference happens at most once a year &#8211; surely journals should be able to be <em>more</em> responsive than conferences in publishing new results?!)</p>
<p>Anyway, it makes me wonder how Ricky&#8217;s <a href="http://citemine.com/">citemine</a> system would work in the conference milieu.  I guess for maximum market efficiency in citemine, the evaluation for new papers should take place in public. So, no workshop or conference would ever have &#8220;new&#8221; results &#8211; everything that made it through &#8220;review&#8221; (weighted average market price over the period since the last conference greater than some threshold for papers within some discipline boundary?) would have been published for the best part of a year.  Conferences would be more like the Oscars &#8211; glorifying new exciting productions &#8211; rather than a way of learning about recent results.  Maybe that&#8217;s OK &#8211; I think the greatest value of conferences is <a href="http://www.markstaples.com/2009/09/18/reflections-at-wicsa/">networking and nuance</a>, and you would still get that at a Computer Science discipline&#8217;s &#8220;Academy Awards&#8221;.  But these would be very different events, and norms of academic precedence would need to be re-conceptualised.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/09/25/academic-academy-awards/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developing Whole Verified Embedded Systems</title>
		<link>http://www.markstaples.com/2009/09/20/developing-whole-verified-embedded-systems/</link>
		<comments>http://www.markstaples.com/2009/09/20/developing-whole-verified-embedded-systems/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 18:41:14 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=136</guid>
		<description><![CDATA[NICTA&#8217;s recent Techfest in Sydney saw a flurry of news around the announcement of a significant research achievement- the formal verification of the seL4 microkernel. The team developed a mathematical proof of the functional correctness of the microkernel down to the level of the C source code. The achievement is important for two reasons. Firstly, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nicta.com.au/nicta_events/techfest2009">NICTA&#8217;s recent Techfest</a> in Sydney saw a flurry of news around the <a href="http://www.nicta.com.au/news/current/world-first_research_breakthrough_promises_safety-critical_software_of_unprecede nted_reliability">announcement</a> of a significant research achievement- the formal verification of the seL4 microkernel. <a href="http://ertos.nicta.com.au/research/l4.verified/">The team</a> developed a mathematical proof of the functional correctness of the microkernel down to the level of the C source code.</p>
<p>The achievement is important for two reasons.  Firstly, it makes it <em>possible</em> to prove code-level functional correctness of whole computer systems based on the L4 microkernel.  This means computer systems can carry a new kind of assurance, supporting strong arguments for safety and security for high-integrity software systems.</p>
<p>Secondly, it makes the creation of these proofs more <em>feasible</em> in practice.  It should now be possible to formally verify properties of whole systems where only the key parts of the system are formally verified.  This is critical for the practical application of formal verification.  The verification of the L4 microkernel took <a href="http://ertos.nicta.com.au/research/l4.verified/numbers.pml">more than 20 person years of effort to verify just 7500 lines</a> of C source code.  Modern embedded computer systems can have millions of lines of source &#8211; it&#8217;s not practical to formally verify all the code in such systems at these levels of productivity.</p>
<p>However, you don&#8217;t need to verify all the code!  L4 provides rigorous separation between processes running in the microkernel, and that separation is guaranteed by the recent proof.  If you can isolate the safety-critical or security-critical parts of an entire system to one small formally verified component running in an L4 process, it should be possible to lift the guarantees for that component to the whole system, even if the other components in the system haven&#8217;t been verified.</p>
<p>That is the challenge for a new project at NICTA &#8211; <a href="http://ertos.nicta.com.au/">Trustworthy Embedded Systems</a>. The plan is to develop technologies to support the creation and verification of entire systems running on top of the microkernel.  This is a large project involving several NICTA labs and researchers from many disciplines (operating systems, formal methods, software architecture).  I&#8217;m part-allocated to the project for the next few years.  My PhD was in formal methods, and this is really the first time I&#8217;ve dipped my toe back into that area for the last decade.  However, I won&#8217;t be doing too much theorem proving myself &#8211; my focus in the project will instead largely be on other software engineering issues in this context, such as configuration management, and how to use the component architecture to support product line development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/09/20/developing-whole-verified-embedded-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
