<?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>Mon, 01 Mar 2010 23:07:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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 student, [...]]]></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 you [...]]]></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 Cooper&#8217;s [...]]]></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>
		<item>
		<title>Reflections at WICSA</title>
		<link>http://www.markstaples.com/2009/09/18/reflections-at-wicsa/</link>
		<comments>http://www.markstaples.com/2009/09/18/reflections-at-wicsa/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 10:21:17 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=133</guid>
		<description><![CDATA[WICSA was fun.  I usually find the most I can hope for in a conference is 1 or 2 papers that are really interesting, but I think WICSA cleared 5, so it was well worthwhile.  What I particularly enjoy about conferences is hearing how people verbally describe the ideas and challenges in the field.  You [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wicsa.net/">WICSA</a> was fun.  I usually find the most I can hope for in a conference is 1 or 2 papers that are really interesting, but I think WICSA cleared 5, so it was well worthwhile.  What I particularly enjoy about conferences is hearing how people verbally describe the ideas and challenges in the field.  You can get so much more nuance and emphasis from hearing people talk about their research, compared to just reading papers.</p>
<p>A great example was the final keynote for the conference, by <a href="http://www.doc.ic.ac.uk/~alw/">Alexander Wolf</a>.  He covered reflections on his personal history working in software architecture, but as one of the &#8220;fathers&#8221; of the field, his talk was also a history of early software architecture research.  It was fun to play spot the co-authors in the audience and also among other acquaintances.</p>
<p>He talked about the importance of simulation and experimentation for architecture, and called for more work to be done in the area.  At NICTA, <a href="http://nicta.com.au/people/liuj">Jenny Liu</a> and <a href="http://nicta.com.au/people/brebnerp">Paul Brebner</a> have been leading work in these areas, particularly for performance analysis of enterprise architectures.  They&#8217;ve been getting huge interest from industry.  It&#8217;s a very promising approach and I can support the observation that simulation and experimentation are critically important to the discipline of software architecture.</p>
<p>Alexander Wolf was also previously involved with Software Configuration Management research, which is an interest of mine.  He didn&#8217;t really elaborate on that line of work, but he did mention <a href="http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA452470&amp;Location=U2&amp;doc=GetTRDoc.pdf">a paper</a> of his discussing the relatedness of software architecture and configuration management.  I think there&#8217;s still a lot more that can be said in this area, particularly concerning architecture evolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/09/18/reflections-at-wicsa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The BASE of CREST</title>
		<link>http://www.markstaples.com/2009/09/18/the-base-of-crest/</link>
		<comments>http://www.markstaples.com/2009/09/18/the-base-of-crest/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 09:52:07 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=130</guid>
		<description><![CDATA[Yesterday WICSA 2009 finished.  There were a number of interesting talks over the three days of the conference.  One was by Richard Taylor on Architectural Styles for Runtime Software Adaptation.  He was discussing a framework (BASE) for comparing approaches to dynamic runtime adaptation.  The model classifies how various architectural styles deal [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday <a href="http://www.wicsa.net/">WICSA 2009</a> finished.  There were a number of interesting talks over the three days of the conference.  One was by <a href="http://www.ics.uci.edu/~taylor/">Richard Taylor</a> on <em>Architectural Styles for Runtime Software Adaptation</em>.  He was discussing a framework (BASE) for comparing approaches to dynamic runtime adaptation.  The model classifies how various architectural styles deal with Behavior, Asynchrony, State, and Execution Context for adaptation.</p>
<p>One of the frameworks being analysed with BASE was CREST &#8211; Computational <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a>.  In CREST, pieces of computation are represented as URLs and can be moved around the web just as static content is. Richard gave a demo of CREST in action &#8211; showing pieces of independent computation running and serving dynamic content to multiple distributed browsers.  It certainly had a &#8220;wow&#8221; factor.  It reminded me very strongly of the <a href="http://wave.google.com/">Google Wave</a> demo.  But CREST is a more general architecture &#8211; it&#8217;s not committed to the threaded content model that&#8217;s deeply built into Google Wave.  Could you reimplement Google Wave on top of the CREST framework?  It looks plausible, and it might also help you create and share a much richer variety of dynamic content &#8211; to put yourself ahead of the Wave (pun intended).</p>
<p>I had a few questions (some of which were prompted by discussions with <a href="http://limingzhu.posterous.com/">Liming Zhu</a>) but I didn&#8217;t get a chance to pin down Richard after the talk&#8230;</p>
<p>The first question is about CREST, but not BASE.  We can observe that REST is &#8220;broken&#8221; on the web.  For example, cookies aren&#8217;t part of (and violate!) the REST principles, but they are nonetheless essential to the workings of the Web.  That&#8217;s fine &#8211; pragmatics will almost always get in the way of a naive realisation of an abstract model.  So my question is &#8211; how (or if?) does CREST need to be &#8220;broken&#8221; for it to be workable?</p>
<p>My second set of questions is about the BASE framework discussed in the paper.  What limitations do the various architectural styles carry on the scope of adaptation?  How do you get assurance about invariant functionality?  Why doesn&#8217;t BASE consider security?  Dynamic adaptation is great, but not everything will be dynamically variable, and you probably want to know that some functionality won&#8217;t vary, and won&#8217;t be subverted at runtime.  How do the various architectural styles enable that?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/09/18/the-base-of-crest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Next Big Thing?</title>
		<link>http://www.markstaples.com/2009/08/26/the-next-big-thing/</link>
		<comments>http://www.markstaples.com/2009/08/26/the-next-big-thing/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 01:19:19 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.markstaples.com/?p=118</guid>
		<description><![CDATA[How can you tell what the next big thing is going to be?  Google&#8217;s pagerank algorithm will tell you what web pages have been important enough in the past for other people to have linked to.   Google trends will tell you what search terms people have been using recently, again in the past. [...]]]></description>
			<content:encoded><![CDATA[<p>How can you tell what the next big thing is going to be?  Google&#8217;s <a href="http://en.wikipedia.org/wiki/Pagerank">pagerank algorithm</a> will tell you what web pages have been important enough in the past for other people to have linked to.   <a href="http://www.google.com/trends">Google trends</a> will tell you what search terms people have been using recently, again in the past.  What about the future?</p>
<p>Some predictions about the future are doomed to failure.   For example, Popper&#8217;s <em><a href="http://en.wikipedia.org/wiki/The_Poverty_of_Historicism">Poverty of Historicism</a></em> is largely about the futility of predicting future society.  However, some aspects of the future are largely predictable &#8211;   science and technology work because they accurately predict the behavior of the physical world.     There&#8217;s a large middle ground of futures that aren&#8217;t easy to predict.   <a href="http://en.wikipedia.org/wiki/Prediction_markets">Prediction markets</a> have been proposed as a way of getting better-than-chance predictions of these events.</p>
<p><a href="http://nicta.com.au/people/rrobinson">Ricky Robinson</a> at NICTA has recently launched <a href="http://citemine.com/">citemine</a> &#8211; a prediction market for academic papers.  The predictions being made are about how much each paper will be cited by other   papers.  Ironically for citemine, one of the poverties of historicism that Popper identifies is a poverty of imagination   about the possibilities of the impact of future science and technology!  (Still, I imagine that Popper&#8217;s criticism only applies to   long-term predictions of the impacts of science on society, not the shorter-term predictions of the importance of recently   published scientific papers.)</p>
<p>The benefit of citemine is that it can be a leading indicator of the quality of publications, whereas existing citation   metrics are very lagging indicators of the quality of publications and researchers.   Ricky&#8217;s hope is that academics will care enough to trade in citemine to acquire its &#8220;Reals&#8221; which may become a widely   recognised measure of academic reputation.   Your personal worth in Reals is a measure of two things: your ability to have   written highly cited papers, and how much better you have been than others at spotting papers that will be highly cited.  You can tell how much of your worth is due to each different source.   (Interestingly, I think both of these are lagging   indicators, despite that the market price of a publication is a leading indicator.)</p>
<p>Even if such a market could work well if universally adopted and in a steady state, it&#8217;s a challenge to launch it.   It&#8217;s a chicken and egg problem &#8211; activity is required to make the market function, but a functioning market is   required to generate interest in being active in the market.   The market has to bootstrap Reals into having value in the   real world somehow.</p>
<p>citemine is &#8220;very beta&#8221;, and there are certainly a few issues at the moment:</p>
<ul>
<li>Some matches aren&#8217;t being made in the market &#8211; there are buyers and sellers at the same price who aren&#8217;t doing a deal.     (Looks like a bug?)</li>
<li>There&#8217;s currently very low market depth, especially among sellers.</li>
<li>There&#8217;s no sophisticated market overview mechanism &#8211; just a list of papers at their current prices.</li>
<li>There&#8217;s no market metrics for papers &#8211; e.g. historical returns, price volatility, etc.</li>
</ul>
<p>Ricky&#8217;s <a href="http://nicta.com.au/people/rrobinson/publications/citemine-paper.html">paper</a> explains citemine.   I have two queries, and two observations&#8230;</p>
<p>Is citemine a zero-sum game?   In citemine, Reals are given to shareholders as dividends based on citations, but those Reals   come from the previously-paid cost of submitting the citing papers.   So it looks like a zero-sum game.  In my limited   understanding of the economics of real stock markets, value gets created through primary production and through   productivity improvements in other sectors.   I don&#8217;t see how that happens in citemine.  Which leads me to my next query&#8230;</p>
<p>Is citemine a pyramid/ponzi scheme?   In citemine, the only source of new Reals is from the registration of new users, whose   initial allocation of Reals is used to submit papers to pay dividends for existing users.   This question is more stark   because there&#8217;s no leverage in citemine (debt, shorts).   Maybe I&#8217;m just confusing value with liquidity.</p>
<p>My intuition is manuscripts in citemine will behave more like mining stocks than industrial stocks in real stock markets.    (Is that why it&#8217;s called citemine? <img src='http://www.markstaples.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   )  Mines have a limited finite quantity of ore, and the value of the stocks for that   mine decrease as the ore is removed from the mine.   The value of a manuscript in citemine derives from future citations,   but for almost all scientific papers, there is a finite time horizon for possible citation.   At some point people lose   interest in moderately influential papers and cite later derived works.   Even very influential papers become part of   assumed/background knowledge and get cited less.  I think that in citemine, most manuscripts will trend to a near-zero market price.</p>
<p>Finally, there&#8217;s a &#8220;meta-gaming&#8221; anomaly currently at play in the citemine market.  If it turns out to be a successful market, then   Reals get real value, and Ricky&#8217;s citemine paper (and closely related papers by other authors) will also inevitably be   highly cited.   If the market turns out to fade into obscurity, then the free Reals you get on joining stay as play money,   so it doesn&#8217;t matter how you will have spent them.   Ricky&#8217;s paper (and related papers) are a safe bet &#8211; you can&#8217;t lose!   I   would have bought some, but no one was selling &#8211; and I have no idea about how to pick a good price to offer!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.markstaples.com/2009/08/26/the-next-big-thing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
