<?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>keeping simple &#187; architecture</title>
	<atom:link href="http://www.yodaiken.com/category/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yodaiken.com</link>
	<description>Systems software technology and business</description>
	<lastBuildDate>Tue, 29 Jun 2010 00:09:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>limits of state diagrams</title>
		<link>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/</link>
		<comments>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 04:53:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[academics]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=927</guid>
		<description><![CDATA[Here&#8217;s a graph of a simple state machine of somewhat under 512 states that models  a dumb fifo queue. The initial state is &#8220;e&#8221; for empty. We can append 1,2 or 3 to this queue and can delete the first in. To simplify suppose the alphabet is {0,1,2,3} where 0 means &#8220;dequeue&#8221;  and the others [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a graph of a simple state machine of somewhat under 512 states that models  a dumb fifo queue. The initial state is &#8220;e&#8221; for empty. We can append 1,2 or 3 to this queue and can delete the first in. To simplify suppose the alphabet is {0,1,2,3} where 0 means &#8220;dequeue&#8221;  and the others mean to enq the designated number. Enqueue to a full queue has no effect on state. Ok, the diagram is completely unreadable &#8211; but click on the PDF to the right. It&#8217;s still unreadable. This diagram, generated with ATT&#8217;s &#8220;dot&#8221; program could undoubtedly be improved, but it shows why state diagrams are just not making it as descriptions of complex systems &#8211; this system is far from complex.<br />
<a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q4-circle.png"><img class="alignleft size-medium wp-image-936" title="q4 circle" src="http://www.yodaiken.com/wp-content/uploads/2010/04/q4-circle-300x288.png" alt="" width="300" height="288" /></a><br />
<a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q4statemachine.pdf">q4statemachine</a></p>
<p>To see the structure hidden in this diagram we have to look at it through algebra and programs.</p>
<div style="clear:all">&nbsp;</div>
</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F&amp;title=limits+of+state+diagrams" title="Bookmark this post : limits of state diagrams on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F_amp_title=limits+of+state+diagrams&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F&amp;title=limits+of+state+diagrams&amp;bodytext=Here%27s+a+graph+of+a+simple+state+machine+of+somewhat+under+512+states+that+models%C2%A0+a+dumb+fifo+queue.+The+initial+state+is+%22e%22+for+empty.+We+can+append+1%2C2+or+3+to+this+queue+and+can+delete+the+first+in.+To+simplify+suppose+the+alphabet+is+%7B0%2C1%2C2%2C3%7D+where+0+means+%22dequeue%22%C2%A0+and+the+others+mean+to+enq+the+designated+n" title="Digg this post : limits of state diagrams" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F_amp_title=limits+of+state+diagrams_amp_bodytext=Here_27s+a+graph+of+a+simple+state+machine+of+somewhat+under+512+states+that+models_C2_A0+a+dumb+fifo+queue.+The+initial+state+is+_22e_22+for+empty.+We+can+append+1_2C2+or+3+to+this+queue+and+can+delete+the+first+in.+To+simplify+suppose+the+alphabet+is+_7B0_2C1_2C2_2C3_7D+where+0+means+_22dequeue_22_C2_A0+and+the+others+mean+to+enq+the+designated+n&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F&amp;t=limits+of+state+diagrams" title="Recommend this post : limits of state diagrams on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F_amp_t=limits+of+state+diagrams&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F&amp;title=limits+of+state+diagrams&amp;&amp;summary=" title="Share this post : limits of state diagrams on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F_amp_title=limits+of+state+diagrams_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F&amp;title=limits+of+state+diagrams" title="Share this post : limits of state diagrams on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F_amp_title=limits+of+state+diagrams&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F04%2Flimits-of-state-diagrams%2F" title="Tweet this post : limits of state diagrams on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F04_2Flimits-of-state-diagrams_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/04/limits-of-state-diagrams/feed" title="Follow this post : limits of state diagrams comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More computer science as humbug [updated with Brazil dream sequence]</title>
		<link>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/</link>
		<comments>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 23:12:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[academics]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[cav2010]]></category>
		<category><![CDATA[digital circuits]]></category>
		<category><![CDATA[state machines]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=863</guid>
		<description><![CDATA[Continuing my experiments in academic papers, I sent a paper on automata and circuit verification to CAV2010 (here&#8217;s an updated version with some corrections and better references). I actually got one carefully written and well informed review. Sending a paper to an academic conference with no references more recent than 20 years, was probably more [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my experiments in academic papers, I sent a <a title="CAV" href="http://www.yodaiken.com/papers/cav2010a.pdf" target="_blank">paper on automata and circuit verification </a>to CAV2010 (here&#8217;s an <a href="http://www.yodaiken.com/papers/circuits.pdf">updated version </a>with some corrections and better references). I actually got one carefully written and well informed review. Sending a paper to an academic conference with no references more recent than 20 years, was probably more of a deliberate provocation than needed, but I&#8217;m still amazed at the low quality of the reviewing. First, it&#8217;s absurd and frankly shameful that so-called academics can make an unsupported claim that something is well known in the literature. One of the reviewers at CAV2010, was kind enough to write:</p>
<blockquote><p>There is nothing wrong with the approach described but I fail to see  that there is anything novel here either. Circuits have been modeled as  state machines since the 60s (e.g. Booth 67), there is a wealth of  literature on the correspondence between state machines, automata and  strings, and so forth. All of this has been done before, and more  completely.</p>
<p>I am sure that one could look in most computer science curricula and  find almost all of this material being taught at the undergraduate  level.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">I&#8217;m really embarrassed for the entire profession here. Of course circuits have been modeled as state machines &#8211; well before 1967 in fact. Booth&#8217;s 1967 book is one of innumerable surveys.  The paper showed an alternative way of representing state machines and illustrated their use on the time sensitive behavior of combinational circuits where they are not usually employed because the number of states is so great as to overwhelm standard methods.  The specific methods used in this papers, as far as I know, are not used elsewhere in the literature &#8211; and I still don&#8217;t know any different because the CAV2010 reviewer was unable to <a href="http://www.yodaiken.com/wp-content/uploads/2010/01/humbug_350x387.gif"><img class="alignright size-medium wp-image-657" title="humbug_350x387" src="http://www.yodaiken.com/wp-content/uploads/2010/01/humbug_350x387-271x300.gif" alt="" width="157" height="174" /></a>provide a reference. To me, this is a mark of humbug. Look, if you are going to tell some poor author that their work is retelling some well known tale, you should at the very least be able to point to the well known explications. </span> <span style="color: #000000;">Creditably enough, CAV2010 offers a rebuttal period for reviews: but even given a second chance, and an explicit request for a reference, both the author of the review and the program committee failed.  An assertion is made that the material is covered in &#8220;most computer science curricula&#8221; and when challenged, the assertion is just left as is. No wonder so much of academic computer science is mired in stale repetition of old material when basic standards of scientific rigor are discarded by the people who are supposed to be enforcing the rules. </span></span></p>
<p><span style="color: #800000;"><span style="color: #000000;">I don&#8217;t want to seem entirely ungrateful for the work of the reviewers: one of whom gave a perfectly rational and solid reason for rejecting the paper.</span></span></p>
<blockquote><p>Conclusion: an elegant paper, but doomed for CAV by lack of any attempt at automation or convincing evidence that automation of the methods described would be a scientific advance.</p></blockquote>
<p>I can&#8217;t really argue with that. The paper does not either describe automation or attempt to make an argument of why automation would succeed &#8211; although I am in no doubt about the second question. Perhaps the paper is not suitable by reason of the focus of the conference. But of 4 reviews, this reviewer was the only one who appeared to understand the material. One of the other reviewers actually responded to the rebuttal with this:</p>
<blockquote><p><span style="color: #800000;">About the KR theorem and feedback, an ordinary finite state automaton &#8220;encodes&#8221; implicitly the feedback information of the underlying sequential circuit in its states, so I would be surprised that the theorem is not applicable to digital circuits with feedback</span></p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Ok. The KR (Krohn-Rhodes) theory is based on a decomposition called <strong>&#8220;loop free&#8221;. </strong>Let me type that again <strong><span style="color: #ff00ff;">LOOP FREE</span></strong>.  The theory is concerned with the decomposition of state machines into pipelines where components can be ordered so that the output of component <em>i </em>depends only on the input to the system and the outputs of components<em> j&lt;i</em> . What I show in the paper is how to describe one of the simplest and most beautiful achievements of Computer Engineering, a SR-latch via the interconnection of state machines that represent logic gates. The SR-latch is constructed with <strong>cross-coupled </strong>gates where the output of each gate feeds back into the input of the other gate. When the output of gate G1 feeds into the input of gate G2 and the output of G2 feeds into the input of G1, we have what is known in the technical literature as a &#8220;loop&#8221;. While the reviewer would not be surprised if a loop-free product could be used to describe a loop,  the comment makes me doubt his/her grasp on the basics of the material </span></span>(BTW: the  identity of this reviewer is known to me, but I&#8217;ll leave to him/her to  respond or not).</p>
<p>One of the other reviewers included (among others) two comments  that I noted were wrong, but were not modified or defended.</p>
<blockquote><p>2. The term &#8220;propagation delay&#8221;: It seems that you blend different   concepts into this single term, namely the duration that an input   has to be held stable in order to be sure that it will be reflected   by the output and the latency of a circuit in forwarding such a   sufficiently stable input to its outputs. While your model, by   lumping together the two into a single latency, is a conservative   approximation of more detailed models, you may want to make sure   that your terminology is in accordance with accepted terminology.   it.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Here the reviewer apparently does not understand the difference between latch time and propagation delay. Have those definitions changed since I last looked at a digital circuits book? &#8220;<em>The propagation delay t_p of a signal path is the amount of time that is takes for a change in the input signal to produce a change in the output signal</em>&#8221; (Wakerly, 1990, P 76).</span><br />
</span></p>
<blockquote><p>3. The abstraction of your latch leaves the case (set,reset): (0,0) -&gt;   (1,1) unspecified, which is fine. You may, however, want to mention   this detail in the accompanying text.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Ah well, the second week of Digital Electronics II is not for everyone. &#8220;<em>However if we negate both inputs simultaneously, the latch goes into an unpredictable next state and it may in fact oscillate or enter the metastable state.</em>&#8221; (Wakerly 1990 P355). See it&#8217;s really not so hard to provide a citation.</span></span></p>
<p>There&#8217;s actually a lot more to ridicule in these reviews &#8211; I&#8217;ll post more on request, but I do want to look at one more comment from Reviewer4.</p>
<blockquote><p>I still believe that this paper lacks motivation and new results for being accepted. As the author says himself, the paper is about a technique for specifying automata, and I am not convinced why not doing it directly with automata, using standard and well-studied techniques. For instance, given that the propagation delays of the gates are modeled using discrete time, why embedding them directly into the definition of gates (even underspecified), instead of modelling them directly with I/O finite state machines (or sequential circuits with feedback)?</p></blockquote>
<p>It&#8217;s not at all clear to me what  modeling a gate as a sequential circuit with feedback even means. In terms of digital circuit engineering, a gate is a combinational circuit, not a sequential circuit. The cool thing about a cross-coupled latch is that the feedback produces sequential properties from combinational circuits. So this comment is quite obscure. On the other hand, I/O automata (from Lynch/Tuttle) are a good example of the augmented automata that I&#8217;m deliberately avoiding because of their mathematical ugliness. You can take classical state machines and add all sorts of stuff to them: clocks, fairness conditions, oracles depending on the Axiom of Choice, steroids, flavor enhancers, and so on.  The &#8220;standard and well-studied techniques&#8221; Reviewer4 has in mind are almost certainly timed and hybrid automata which are types of augmented automata. But the argument made in my paper is that the austere flavor of classical automata theory is strong enough to model timing without additives. Rather than responding to this argument, the Reviewer asks why I don&#8217;t use the &#8220;standard&#8221; methods with additives.</p>
<p>It&#8217;s certainly possible that the work described in the paper lacks  interest to anyone but me ( the &#8220;crank&#8221; hypothesis). But lacking  credible reviews, it&#8217;s hard to make any conclusion at all.</p>
<p>A response.</p>
<blockquote><p>Hi Victor, good to hear from you.</p>
<p>About your CAV paper, don&#8217;t get pathetic. Each PC member has to review  in a short time numerous papers and he cannot afford the time needed to  give full feedback to the author of a paper which shows strict  disconnectedness with contemporary verification. Instead of thanking (or  even apologizing) to the PC members for the fact that they bothered to  read your paper and give you some feedback (one minute browsing was  sufficient to predict its rejection) you still complain and make useless  noise.</p>
<p>I will send you my rejected paper and its reviews, if you enjoy reading  such things.</p></blockquote>
<p>Pathetic! Ouch.</p>
<h3>In other matters</h3>
<p>For a variety of reasons, this reminds me of  a conference I attended in Salvador Brazil many years ago which was like something out of a Magical Realism<a href="http://www.yodaiken.com/wp-content/uploads/2010/03/antarctica-beer.jpg"><img class="alignright size-full  wp-image-885" title="antarctica-beer" src="http://www.yodaiken.com/wp-content/uploads/2010/03/antarctica-beer.jpg" alt="" width="66" height="87" /></a> novel involving lachrymose Argentines who longed to teach meringue, drum bands, unbearably tedious talks, dreamlike missed airplane sequences,  a moment when I was sure that Amir Pnueli, his wife, and myself were about to be assaulted while we were discussing the Israeli novel Blue Mountain which according to Pnueli,<a href="http://www.yodaiken.com/wp-content/uploads/2010/03/3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia.jpg"><img class="alignleft size-medium wp-image-881" title="3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia" src="http://www.yodaiken.com/wp-content/uploads/2010/03/3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia-300x197.jpg" alt="" width="300" height="197" /></a> was set in his home town, random appearances of gigantic fashion models, an abandoned building in which rooster fighting was taking place,  the most delicious beer ever drunk in world history, a peculiar lecture on Fra Angelico and the relationship between New Mexico and Hassidism (&#8220;you must look at the white spaces between the words&#8221;) , a hero named Hercules, and much more. I returned from the trip to a faculty meeting chaired by <a href="http://www.kibazen.com/" onclick="pageTracker._trackPageview('/outgoing/www.kibazen.com/?referer=');">Jean Louis Lassez</a>.  Did any of it even really happen? The conference also provided me with an astounding article review: the reviewer explained that I had made an elementary error when I proved something about a set without taking into account the ordering of the set. Even the Baal Shem Tov would not be able to discern meaning in such a comment.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F&amp;title=More+computer+science+as+humbug+%5Bupdated+with+Brazil+dream+sequence%5D" title="Bookmark this post : More computer science as humbug [updated with Brazil dream sequence] on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F_amp_title=More+computer+science+as+humbug+_5Bupdated+with+Brazil+dream+sequence_5D&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F&amp;title=More+computer+science+as+humbug+%5Bupdated+with+Brazil+dream+sequence%5D&amp;bodytext=Continuing+my+experiments+in+academic+papers%2C+I+sent+a+paper+on+automata+and+circuit+verification+to+CAV2010+%28here%27s+an+updated+version+with+some+corrections+and+better+references%29.+I+actually+got+one+carefully+written+and+well+informed+review.+Sending+a+paper+to+an+academic+conference+with+no+references+more+recent+th" title="Digg this post : More computer science as humbug [updated with Brazil dream sequence]" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F_amp_title=More+computer+science+as+humbug+_5Bupdated+with+Brazil+dream+sequence_5D_amp_bodytext=Continuing+my+experiments+in+academic+papers_2C+I+sent+a+paper+on+automata+and+circuit+verification+to+CAV2010+_28here_27s+an+updated+version+with+some+corrections+and+better+references_29.+I+actually+got+one+carefully+written+and+well+informed+review.+Sending+a+paper+to+an+academic+conference+with+no+references+more+recent+th&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F&amp;t=More+computer+science+as+humbug+%5Bupdated+with+Brazil+dream+sequence%5D" title="Recommend this post : More computer science as humbug [updated with Brazil dream sequence] on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F_amp_t=More+computer+science+as+humbug+_5Bupdated+with+Brazil+dream+sequence_5D&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F&amp;title=More+computer+science+as+humbug+%5Bupdated+with+Brazil+dream+sequence%5D&amp;&amp;summary=" title="Share this post : More computer science as humbug [updated with Brazil dream sequence] on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F_amp_title=More+computer+science+as+humbug+_5Bupdated+with+Brazil+dream+sequence_5D_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F&amp;title=More+computer+science+as+humbug+%5Bupdated+with+Brazil+dream+sequence%5D" title="Share this post : More computer science as humbug [updated with Brazil dream sequence] on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F_amp_title=More+computer+science+as+humbug+_5Bupdated+with+Brazil+dream+sequence_5D&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F03%2Fmore-computer-science-as-humbug%2F" title="Tweet this post : More computer science as humbug [updated with Brazil dream sequence] on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F03_2Fmore-computer-science-as-humbug_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/feed" title="Follow this post : More computer science as humbug [updated with Brazil dream sequence] comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Queues and algebra</title>
		<link>http://www.yodaiken.com/2010/02/queues-and-algebra/</link>
		<comments>http://www.yodaiken.com/2010/02/queues-and-algebra/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 02:00:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[fault tolerance]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[monoid]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=837</guid>
		<description><![CDATA[Suppose we have a state machine Q, that implements a common first in first out queue. The input alphabet of Q consists of &#8220;Deq&#8221; and &#8220;Enq x&#8221; where &#8220;x&#8221; ranges over a set of values, say, V. Let&#8217;s fix the max length of Q at some constant k. As usual, given a sequence of events [...]]]></description>
			<content:encoded><![CDATA[<p>Suppose we have a state machine Q, that implements a common first in first out queue. The input alphabet of Q consists of &#8220;Deq&#8221; and &#8220;Enq x&#8221; where &#8220;x&#8221; ranges over a set of values, say, V. Let&#8217;s fix the max length of Q at some constant k. As usual, given a sequence of events &#8220;w&#8221;, write Q(w) for the output of Q in the state reached by following &#8220;w&#8221; from the initial state. For the empty string NULL, define Q(NULL)=(). If a=Deq then define Q(wa) depending on Q(w) &#8211; if Q(w)=() or Q(w)=(x) then Q(wa)=(). If Q(w)=(x1 .. xn) then define Q(wa)=( x1 &#8230;). If a=Enq x then if Q(w)=() define Q(wa)=(x), if Q(w)=(x1 .. xn) where n&lt;k define Q(wa)=(x,x1 &#8230; xn) and otherwise leave Q(wa)=Q(w). The number of states of Q is a function of the number of elements of V and the constant k and grows rapidly as they grow &#8211; sum[i=1, k](|V|^i  ).</p>
<p><a href="http://www.yodaiken.com/wp-content/uploads/2010/02/queue-sm.png"><img class="alignleft size-full wp-image-839" title="queue sm" src="http://www.yodaiken.com/wp-content/uploads/2010/02/queue-sm.png" alt="" width="354" height="259" /></a>If you visualize the graph of Q, you can see it contains non-trivial loops &#8211; which means that the monoid associated with Q contains groups. The advantage of decomposing Q into a product of smaller machines is that this might guide a smarter implementation. Well, I&#8217;m kind of cheating here, because programmers have found a variety of smart implementations that do strip out the group structure.</p>
<p>The easy decomposition produces two counters, and a collection of k storage elements that are loop free state machines: an input &#8220;store x&#8221; moves the machine to a &#8220;x&#8221; state. They do contain loops but only trivial ones. The counters are group machines. We number the storage cells 0 to k-1.  We can have one mod k counter that &#8220;points&#8221; to the tail of the queue and one that counts the size of the queue. On an enq operation the enqueued value is stored in the storage element identified by subtracting the size from the tail mod k,   and the size is increment mod k+1. An enq operation when the size=k is ignored and has no effect. On a deq, the size is decremented and the tail is incremented by one mod k+1.<a href="http://www.yodaiken.com/wp-content/uploads/2010/02/queueheadtail1.png"><img class="alignright size-medium wp-image-841" title="queueheadtail" src="http://www.yodaiken.com/wp-content/uploads/2010/02/queueheadtail1-300x147.png" alt="" width="300" height="147" /></a> What we&#8217;ve done is construct a system in which the state machine monoids are two cyclic groups and k-aperiodic monoids. If we then switch to more complicated data structures, like ordered lists, it&#8217;s not that hard to see how a permutation group might be used to manipulate pointers to a pile of storage locations. For example (n1,n2,n3,n4,blank, n5,n6) might be an ordered list with n5 and n6 being free. An enqueue would generate some shuffle to say, (n1,n2,n5,n3,n4,blank,n6) and then a dequeue would produce (n2,n5,n3,n4,blank, n6,n1).</p>
<p>A nice property of groups is that &#8220;undo&#8221; always works. So if the data in the storage elements can be marked in some way, a deq or enq can be undone by subtracting mod k or permuting backwards.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra" title="Bookmark this post : Queues and algebra on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra&amp;bodytext=Suppose+we+have+a+state+machine+Q%2C+that+implements+a+common+first+in+first+out+queue.+The+input+alphabet+of+Q+consists+of+%22Deq%22+and+%22Enq+x%22+where+%22x%22+ranges+over+a+set+of+values%2C+say%2C+V.+Let%27s+fix+the+max+length+of+Q+at+some+constant+k.+As+usual%2C+given+a+sequence+of+events+%22w%22%2C+write+Q%28w%29+for+the+output+of+Q+in+the+sta" title="Digg this post : Queues and algebra" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra_amp_bodytext=Suppose+we+have+a+state+machine+Q_2C+that+implements+a+common+first+in+first+out+queue.+The+input+alphabet+of+Q+consists+of+_22Deq_22+and+_22Enq+x_22+where+_22x_22+ranges+over+a+set+of+values_2C+say_2C+V.+Let_27s+fix+the+max+length+of+Q+at+some+constant+k.+As+usual_2C+given+a+sequence+of+events+_22w_22_2C+write+Q_28w_29+for+the+output+of+Q+in+the+sta&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;t=Queues+and+algebra" title="Recommend this post : Queues and algebra on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_t=Queues+and+algebra&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra&amp;&amp;summary=" title="Share this post : Queues and algebra on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra" title="Share this post : Queues and algebra on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F" title="Tweet this post : Queues and algebra on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/02/queues-and-algebra/feed" title="Follow this post : Queues and algebra comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/02/queues-and-algebra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sequential and combinational state machines</title>
		<link>http://www.yodaiken.com/2010/02/sequential-and-combinational-state-machines/</link>
		<comments>http://www.yodaiken.com/2010/02/sequential-and-combinational-state-machines/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:36:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[combinational logic]]></category>
		<category><![CDATA[jordan-holder theorem]]></category>
		<category><![CDATA[monoids]]></category>
		<category><![CDATA[sequential circuits]]></category>
		<category><![CDATA[state machines]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=668</guid>
		<description><![CDATA[There&#8217;s a correspondence between the notions of &#8220;combinational&#8221; and &#8220;sequential&#8221; in digital circuit engineering and some structure in state machines (and therefore monoids)  that seems interesting. In digital logic, a &#8220;combinational&#8221; circuit like a logic gate has can be associated with a time T so that the output depends only on input signals applied over [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a correspondence between the notions of &#8220;combinational&#8221; and &#8220;sequential&#8221; in digital circuit engineering and some structure in state machines (and therefore monoids)  that seems interesting.</p>
<p><a href="http://www.yodaiken.com/wp-content/uploads/2010/02/logicgates.png"><img class="alignleft size-thumbnail wp-image-680" title="logicgates" src="http://www.yodaiken.com/wp-content/uploads/2010/02/logicgates-150x150.png" alt="" width="150" height="150" /></a>In digital logic, a &#8220;combinational&#8221; circuit like a logic gate has can be associated with a time T so that the output depends only on input signals applied over the last T time units. If the propagation delay is T, then signals applied T+n time units ago are irrelevant to current state.  For example, an AND gate with propagation delay T has output 1 if all inputs have been set HIGH over the last T time units. For a <em>sequential </em>circuit, like a latch, there is no magic time T. Suppose we set the stored value in the  latch at time T1 and then signal it to hold the value. No matter how long the latch is held, we have to go back to absolute time T1 to find out what is in the latch. It&#8217;s worth noting however, that it&#8217;s often very useful to make a sequential circuit have a reset mode where it behaves like a combinatorial circuit. That is, we want to be able to say: no matter what previous signals have done to a memory device, some sequence of signals will clear it and, for example,  put the number 3 in it. More on this below.</p>
<p>Take a Moore machine M and write <em>State(M,w) </em>for the state reached by following input string &#8220;w&#8221; from the initial state. I&#8217;m limiting us to complete Moore machines where State(M,w) must be defined for every w.  Say M is <em>combinational</em> if there is some T so that if <em>w=uz</em> and <em>length(z)&gt;T</em> then <em>State(M,w)= State(M,z) </em>. So the idea is that there is a <em>T</em> so that the last<em> T</em> inputs determine state for <em>M</em>. Call <em>T</em> the &#8220;depth&#8221; of<em> M</em>. As an example, suppose M represents a memory location and the inputs are just data values to store. Then we only need the last input, <em>T=1</em>.  If M is an AND gate with two pins and a delay of 2, then we can think of inputs as numbers 0,1,2,3 representing their 2 bit encodings: 0 for 00, 1 for 01, 2 for 10 and 3 for 11.  States can be pairs [x1,x2] representing the last two inputs so that if the state is [a,b] and input &#8220;c&#8221; is received, the new state is [c,b].  The state is actually a shift register. Suppose that the states are all pairs [x1,x2] where x1 and x2 are in the set {-1,0,1,2,3} with &#8220;-1&#8243; representing  an unknown signal. Then [3,3]  has output 1, [x1,x2] where both x1 and x2 are greater than -1 and less than 3 outputs 0 and the others have undefined output. The initial state is [-1,-1]. Obviously this machine is combinational with depth T=2. The intuition here is that combinatorial state machines will always <a href="http://www.yodaiken.com/wp-content/uploads/2010/02/vonneumann.jpg"><img class="alignright size-thumbnail wp-image-681" title="vonneumann" src="http://www.yodaiken.com/wp-content/uploads/2010/02/vonneumann-150x150.jpg" alt="" width="150" height="150" /></a>&#8220;swim&#8221; to a fixed state given a fixed sequence of inputs of sufficient length. Obviously, this is a useful property of a device and even for sequential devices we are going to want some single or sequence of &#8220;reset&#8221; operations that, no matter what the current state, will force a reset to a known state. That is, for our latch, we&#8217;d want to force it to an assigned latched value, no matter what, if anything, it had previously latched. So properly designed sequential circuits are going to look like some combination of combinatorial and sequential circuit.</p>
<p>Now consider products of state machines. The method I&#8217;ve been using for representing state machines as maps <em>f:InputSequences -&gt;Outputs</em> is convenient for products. If<em> f</em> represents a state machine <em>M</em>, then<em> f(w) = Output(State(M,w))</em>. If <em>f</em> represents a combinational state machine of depth T then<em> f(wuz)= f(uz)</em> whenever<em> length(u)&gt;T</em> because <em>State(M,wu)=State(M,u)</em> so <em>State(M,wuz)=State(M,uz)</em> so the outputs must be the same.  Say<em> F(w) = (g1(w1) &#8230;, gn(wn)</em>) is a product under connection function Phi and map<em> w |-&gt; w1 &#8230; ,wn</em> if when <em>w=empty</em> then<em> wi = empty</em> for all <em>i</em> and if when<em> w</em> maps to <em>wi</em> then <em>wa</em> maps to <em>wi.Phi(a,i,F(w)) </em>with &#8216;.&#8217; representing string concatenation. Say that F is a cascade product if and only if  <em>Phi(a,i,(x1 &#8230; xn))</em> depends only on <em>xj for j &lt; i. </em>That is, in a cascade product, information only flows from lower numbered factors to higher numbered ones: there is no feedback in a cascade product. If g1 &#8230;,gn are combinatorial AND<em> Phi(a,i,(x1 &#8230;,xn)) !=empty </em>for any combination of parameters, and F is a cascade product, then F must be combinatorial. For proof, suppose Ti is the depth of each component gi and suppose w=uv where length(v)&gt; T1. Then w1= u1.v1 where length(v1)&gt; T1 so g1(v1)=g1(w1) and more than that g1(w1.z)=g1(v1.z) for all z.  That means Phi(a,i,F(wa))=Phi(a,F(va)) by the cascade property. And so on &#8211; eventually we see that the depth of F is the sum of the depths of the factors! For intuition, first we need enough inputs to steer factor 1 to a known state, then factor 2 and so on.</p>
<p>Given a state machine M with states S, we can associate a map from S to S with every string of inputs w so that F(M,w)(s)=s&#8217; if and only if w leads from s to s&#8217;. This set of maps forms a monoid under ordinary function compositions  and since F(M,w)(F(z)(s))= F(M,wz)(s) then F(M,w)+F(M,z)= F(M,wz) where + is the monoid operation and not anything necessarily related to arithmetic. The empty string produces the monoid identity F(M,empty)(s)=s.  Look at the monoid structure of combinatorial state machines and note that unless the monoid is trivial, then  F(M,w)=F(M,empty) only if w=empty &#8211; there are no other identities.</p>
<p>The proof is easy. Suppose M is combinatorial  with depth T, the monoid is not trivial so that for some v we have F(M,v) != F(M,empty)and suppose F(M,z)=F(M,empty).  Then if z is not empty let Z consist of a string of concatenated z&#8217;s that is longer than T  so Z=zzzzzz &#8230;. stretched out to a length greater than T. By the combinatorial property, for any u, F(M,uZ)(s)=F(M,Z)(s) but because F(M,z)=F(M,empty) we also know F(M,uZ)(s)=s so F(M,w)(s)=s for all w and s which implies the monoid is trivial after all. It&#8217;s also worth pointing out that the combinatorial monoids seem to be a proper subset of the aperiodic monoids ( <a href="http://www.liafa.jussieu.fr/~jep/PDF/HandBook.pdf " target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.liafa.jussieu.fr/_jep/PDF/HandBook.pdf?referer=');">http://www.liafa.jussieu.fr/~jep/PDF/HandBook.pdf </a>). Consider the state machine with states {0,1,2} and inputs {a,b} so that, treating the inputs at maps from state to state, a(0)=1 and b(0)=2 for any non-zero state we have x(s)=s. The monoid is clearly aperiodic since a<sup>2</sup>=a<sup> 3</sup> , a<sup>2</sup>(0)=1 and a<sup>2</sup>(s!=0)=s. But the state machine is not combinatorial.</p>
<p>Well, more later, but that&#8217;s what I have semi-clearly explicated for now. I&#8217;ll leave you with this photograph of<a title="Camille Jordan" href="http://en.wikipedia.org/wiki/Camille_Jordan" target="_blank" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Camille_Jordan?referer=');"> Camille Jordan</a> who lived in an unenlightened era that did not make clear demarcations between mathematics and mere engineering.<a href="http://www.yodaiken.com/wp-content/uploads/2010/02/camillejordan.jpeg"><img class="size-thumbnail wp-image-682 alignleft" title="camillejordan" src="http://www.yodaiken.com/wp-content/uploads/2010/02/camillejordan-150x150.jpg" alt="" width="150" height="150" /></a></p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F&amp;title=sequential+and+combinational+state+machines" title="Bookmark this post : sequential and combinational state machines on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F_amp_title=sequential+and+combinational+state+machines&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F&amp;title=sequential+and+combinational+state+machines&amp;bodytext=There%27s+a+correspondence+between+the+notions+of+%22combinational%22+and+%22sequential%22+in+digital+circuit+engineering+and+some+structure+in+state+machines+%28and+therefore+monoids%29%C2%A0+that+seems+interesting.%0D%0A%0D%0AIn+digital+logic%2C+a+%22combinational%22+circuit+like+a+logic+gate+has+can+be+associated+with+a+time+T+so+that+the+output+d" title="Digg this post : sequential and combinational state machines" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F_amp_title=sequential+and+combinational+state+machines_amp_bodytext=There_27s+a+correspondence+between+the+notions+of+_22combinational_22+and+_22sequential_22+in+digital+circuit+engineering+and+some+structure+in+state+machines+_28and+therefore+monoids_29_C2_A0+that+seems+interesting._0D_0A_0D_0AIn+digital+logic_2C+a+_22combinational_22+circuit+like+a+logic+gate+has+can+be+associated+with+a+time+T+so+that+the+output+d&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F&amp;t=sequential+and+combinational+state+machines" title="Recommend this post : sequential and combinational state machines on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F_amp_t=sequential+and+combinational+state+machines&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F&amp;title=sequential+and+combinational+state+machines&amp;&amp;summary=" title="Share this post : sequential and combinational state machines on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F_amp_title=sequential+and+combinational+state+machines_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F&amp;title=sequential+and+combinational+state+machines" title="Share this post : sequential and combinational state machines on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F_amp_title=sequential+and+combinational+state+machines&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsequential-and-combinational-state-machines%2F" title="Tweet this post : sequential and combinational state machines on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsequential-and-combinational-state-machines_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/02/sequential-and-combinational-state-machines/feed" title="Follow this post : sequential and combinational state machines comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/02/sequential-and-combinational-state-machines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallelism and multicore</title>
		<link>http://www.yodaiken.com/2009/11/parallelism-and-multicore/</link>
		<comments>http://www.yodaiken.com/2009/11/parallelism-and-multicore/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 19:42:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[data center]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[software business]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=543</guid>
		<description><![CDATA[The goal of modern processor chip design has changed from optimizing various speed/price/heat tradeoffs for applications to finding excuses for dumping more transistors into the device.Â  Heard an interesting talk from KrisztiÃ¡n Flautner of ARM at the ACISC conference and I have to admit that it&#8217;s not entirely the fault of the chip designers &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>The goal of modern processor chip design has changed from optimizing various speed/price/heat tradeoffs for applications to finding excuses for dumping more transistors into the device.Â  Heard an interesting<a href="http://acisc.org/bio.htm#flautner" target="_blank" onclick="pageTracker._trackPageview('/outgoing/acisc.org/bio.htm_flautner?referer=');"> talk </a>from KrisztiÃ¡n Flautner of ARM at the ACISC conference and I have to admit that it&#8217;s not entirely the fault of the chip designers &#8211; since they design for operating systems that have stalled for 30 years or more.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F&amp;title=Parallelism+and+multicore" title="Bookmark this post : Parallelism and multicore on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F_amp_title=Parallelism+and+multicore&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F&amp;title=Parallelism+and+multicore&amp;bodytext=The+goal+of+modern+processor+chip+design+has+changed+from+optimizing+various+speed%2Fprice%2Fheat+tradeoffs+for+applications+to+finding+excuses+for+dumping+more+transistors+into+the+device.%C3%82%C2%A0+Heard+an+interesting+talk+from+Kriszti%C3%83%C2%A1n+Flautner+of+ARM+at+the+ACISC+conference+and+I+have+to+admit+that+it%27s+not+entirely+the" title="Digg this post : Parallelism and multicore" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F_amp_title=Parallelism+and+multicore_amp_bodytext=The+goal+of+modern+processor+chip+design+has+changed+from+optimizing+various+speed_2Fprice_2Fheat+tradeoffs+for+applications+to+finding+excuses+for+dumping+more+transistors+into+the+device._C3_82_C2_A0+Heard+an+interesting+talk+from+Kriszti_C3_83_C2_A1n+Flautner+of+ARM+at+the+ACISC+conference+and+I+have+to+admit+that+it_27s+not+entirely+the&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F&amp;t=Parallelism+and+multicore" title="Recommend this post : Parallelism and multicore on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F_amp_t=Parallelism+and+multicore&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F&amp;title=Parallelism+and+multicore&amp;&amp;summary=" title="Share this post : Parallelism and multicore on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F_amp_title=Parallelism+and+multicore_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F&amp;title=Parallelism+and+multicore" title="Share this post : Parallelism and multicore on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F_amp_title=Parallelism+and+multicore&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fparallelism-and-multicore%2F" title="Tweet this post : Parallelism and multicore on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fparallelism-and-multicore_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/11/parallelism-and-multicore/feed" title="Follow this post : Parallelism and multicore comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/11/parallelism-and-multicore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtualization versus Physicalization</title>
		<link>http://www.yodaiken.com/2009/04/virtualization-versus-physicalization/</link>
		<comments>http://www.yodaiken.com/2009/04/virtualization-versus-physicalization/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 04:06:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[software business]]></category>
		<category><![CDATA[cpu design]]></category>
		<category><![CDATA[processor architecture]]></category>
		<category><![CDATA[rackable]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=302</guid>
		<description><![CDATA[Data on the overhead of virtualization is hard to come by. Rackable proposes an interesting alternative that they call physicalization. I wonder whether the CPU is the most important resource to multiplex and I remain totally puzzled by the motivation of Intel/AMD in this area. Bookmark on Delicious Digg this post Recommend on Facebook Share [...]]]></description>
			<content:encoded><![CDATA[<p>Data on the overhead of virtualization is hard to come by. Rackable proposes an interesting alternative that they call <a title="rackable unvirtual" href="http://www.thewhir.com/web-hosting-news/012209_Rackable_Intros_Physicalization_Hardware" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.thewhir.com/web-hosting-news/012209_Rackable_Intros_Physicalization_Hardware?referer=');">physicalization</a>. I wonder whether the CPU is the most important resource to multiplex and I remain totally puzzled by the motivation of Intel/AMD in this area.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F&amp;title=Virtualization+versus+Physicalization" title="Bookmark this post : Virtualization versus Physicalization on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F_amp_title=Virtualization+versus+Physicalization&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F&amp;title=Virtualization+versus+Physicalization&amp;bodytext=Data+on+the+overhead+of+virtualization+is+hard+to+come+by.+Rackable+proposes+an+interesting+alternative+that+they+call+physicalization.+I+wonder+whether+the+CPU+is+the+most+important+resource+to+multiplex+and+I+remain+totally+puzzled+by+the+motivation+of+Intel%2FAMD+in+this+area." title="Digg this post : Virtualization versus Physicalization" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F_amp_title=Virtualization+versus+Physicalization_amp_bodytext=Data+on+the+overhead+of+virtualization+is+hard+to+come+by.+Rackable+proposes+an+interesting+alternative+that+they+call+physicalization.+I+wonder+whether+the+CPU+is+the+most+important+resource+to+multiplex+and+I+remain+totally+puzzled+by+the+motivation+of+Intel_2FAMD+in+this+area.&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F&amp;t=Virtualization+versus+Physicalization" title="Recommend this post : Virtualization versus Physicalization on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F_amp_t=Virtualization+versus+Physicalization&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F&amp;title=Virtualization+versus+Physicalization&amp;&amp;summary=" title="Share this post : Virtualization versus Physicalization on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F_amp_title=Virtualization+versus+Physicalization_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F&amp;title=Virtualization+versus+Physicalization" title="Share this post : Virtualization versus Physicalization on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F_amp_title=Virtualization+versus+Physicalization&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fvirtualization-versus-physicalization%2F" title="Tweet this post : Virtualization versus Physicalization on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fvirtualization-versus-physicalization_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/04/virtualization-versus-physicalization/feed" title="Follow this post : Virtualization versus Physicalization comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/04/virtualization-versus-physicalization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ultimate snarky geeky Sun FAIL post</title>
		<link>http://www.yodaiken.com/2009/04/the-ultimate-snarky-geeky-sun-fail-post/</link>
		<comments>http://www.yodaiken.com/2009/04/the-ultimate-snarky-geeky-sun-fail-post/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 15:10:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[modularity]]></category>
		<category><![CDATA[osgi]]></category>
		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=267</guid>
		<description><![CDATA[Well, it seems our friends at Sun have decided that their Spicetm Enhanced brains are completely sufficient to create an entirely new &#8211; but far simpler, mind you &#8211; module system for the JDK.Â  Mark &#8220;I&#8217;m just a simple Guild Navigator&#8221; Reinhold has spent a number of blog posts doing the electronic equivalent of the [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Well, it seems our friends at Sun have decided that their <em>Spice<sup>tm</sup></em> Enhanced brains are completely sufficient to create an entirely new &#8211; but far simpler, mind you &#8211; module system for the JDK.Â  Mark &#8220;<em>I&#8217;m just a simple Guild Navigator</em>&#8221; Reinhold has spent a number of blog posts doing the electronic equivalent of the <a href="http://blogs.sun.com/mr/entry/cool" onclick="pageTracker._trackPageview('/outgoing/blogs.sun.com/mr/entry/cool?referer=');">Dance</a> of <a href="http://blogs.sun.com/mr/entry/massive_monolithic_jdk" onclick="pageTracker._trackPageview('/outgoing/blogs.sun.com/mr/entry/massive_monolithic_jdk?referer=');">the</a> <a href="http://blogs.sun.com/mr/entry/packaging_java_code" onclick="pageTracker._trackPageview('/outgoing/blogs.sun.com/mr/entry/packaging_java_code?referer=');">Seven</a> <a href="http://blogs.sun.com/mr/entry/modular_java_platform" onclick="pageTracker._trackPageview('/outgoing/blogs.sun.com/mr/entry/modular_java_platform?referer=');">Veils</a>, culminating with revealing the aptly named <em><a href="http://blogs.sun.com/mr/entry/jigsaw" onclick="pageTracker._trackPageview('/outgoing/blogs.sun.com/mr/entry/jigsaw?referer=');">Project Jigsaw</a></em>. (from &#8220;Hal&#8221;).</p></blockquote>
<p>Ok, so a barely disguised (&#8220;Emerald City&#8221; plus &#8220;House Harkonnen&#8221; &#8211; what part of XXXwood City could that be in ?)Â  <a href="http://www.tensegrity.hellblazer.com/2008/12/spice-is-not-a-recreational-drug.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.tensegrity.hellblazer.com/2008/12/spice-is-not-a-recreational-drug.html?referer=');">snarky insider post</a> on an absolutely classical dumb Sun move is now topical enough to reference. And it combines utter snarkiness with completely geeky references to a horrible sci-fi book and it is written by someone who calls himself &#8220;Hal&#8221;. Perfecto!</p>
<p>This reminds me of how years ago &#8220;L&#8221; who once worked for Sun calls up friends in the file system group to explain that tests are showing Solaris file system operation 4 or 5 times slower than Linux. Responses range from incredulity to boredom, but do not include anything as humble as &#8220;we can download and test&#8221;. Because customers are going to be so grateful for the brilliance of the core group, that minor crap like performance won&#8217;t make any difference.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F&amp;title=The+ultimate+snarky+geeky+Sun+FAIL+post" title="Bookmark this post : The ultimate snarky geeky Sun FAIL post on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F_amp_title=The+ultimate+snarky+geeky+Sun+FAIL+post&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F&amp;title=The+ultimate+snarky+geeky+Sun+FAIL+post&amp;bodytext=Well%2C+it+seems+our+friends+at+Sun+have+decided+that+their+Spicetm+Enhanced+brains+are+completely+sufficient+to+create+an+entirely+new+-+but+far+simpler%2C+mind+you+-+module+system+for+the+JDK.%C3%82%C2%A0+Mark+%22I%27m+just+a+simple+Guild+Navigator%22+Reinhold+has+spent+a+number+of+blog+posts+doing+the+electronic+equivalent+of+the+Dan" title="Digg this post : The ultimate snarky geeky Sun FAIL post" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F_amp_title=The+ultimate+snarky+geeky+Sun+FAIL+post_amp_bodytext=Well_2C+it+seems+our+friends+at+Sun+have+decided+that+their+Spicetm+Enhanced+brains+are+completely+sufficient+to+create+an+entirely+new+-+but+far+simpler_2C+mind+you+-+module+system+for+the+JDK._C3_82_C2_A0+Mark+_22I_27m+just+a+simple+Guild+Navigator_22+Reinhold+has+spent+a+number+of+blog+posts+doing+the+electronic+equivalent+of+the+Dan&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F&amp;t=The+ultimate+snarky+geeky+Sun+FAIL+post" title="Recommend this post : The ultimate snarky geeky Sun FAIL post on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F_amp_t=The+ultimate+snarky+geeky+Sun+FAIL+post&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F&amp;title=The+ultimate+snarky+geeky+Sun+FAIL+post&amp;&amp;summary=" title="Share this post : The ultimate snarky geeky Sun FAIL post on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F_amp_title=The+ultimate+snarky+geeky+Sun+FAIL+post_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F&amp;title=The+ultimate+snarky+geeky+Sun+FAIL+post" title="Share this post : The ultimate snarky geeky Sun FAIL post on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F_amp_title=The+ultimate+snarky+geeky+Sun+FAIL+post&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F04%2Fthe-ultimate-snarky-geeky-sun-fail-post%2F" title="Tweet this post : The ultimate snarky geeky Sun FAIL post on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F04_2Fthe-ultimate-snarky-geeky-sun-fail-post_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/04/the-ultimate-snarky-geeky-sun-fail-post/feed" title="Follow this post : The ultimate snarky geeky Sun FAIL post comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/04/the-ultimate-snarky-geeky-sun-fail-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Program structure and threads</title>
		<link>http://www.yodaiken.com/2009/03/program-structure-and-threads/</link>
		<comments>http://www.yodaiken.com/2009/03/program-structure-and-threads/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 04:46:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=243</guid>
		<description><![CDATA[Threads were initially used for telephony systems where each request to connect could be given to a new thread to manage. The simplification was, in theory, dramatic. The programmer could just write the code for handling a single line, and the OS and network code would multiplex operation over 100,000 calls. The programmer does not [...]]]></description>
			<content:encoded><![CDATA[<p>Threads were initially used for telephony systems where each request to connect could be given to a new thread to manage. The simplification was, in theory, dramatic. The programmer could just write the code for handling a single line, and the OS and network code would multiplex operation over 100,000 calls. The programmer does not have to worry about what operations blockÂ  and delays. Imagine writing this same code using some sort of request queue. The only way to do it would be to make extensive use of asynchronous I/O, something that was uncommon when threads became popular.Â  In fact, any multithreading design seems convertible into a single threaded design via use of asynchronous events and asynchronous I/O. But these methods are not noticeably easier than threads.</p>
<p>rcvm(fd, &amp;buf, n, func); // call &#8220;func&#8221; when the data arrives &#8211; pass it the return val and arguments to read as well</p>
<p>then</p>
<p>while(1){</p>
<p>rcvm(fd,&amp;ptr++,n,got);</p>
<p>if(noresources)wait();</p>
<p>}</p>
<p>got(fd,&amp;p,n,code){</p>
<p>look at message</p>
<p>queue_response</p>
<p>return;</p>
<p>}</p>
<p>Worse or better?</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F&amp;title=Program+structure+and+threads" title="Bookmark this post : Program structure and threads on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F_amp_title=Program+structure+and+threads&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F&amp;title=Program+structure+and+threads&amp;bodytext=Threads+were+initially+used+for+telephony+systems+where+each+request+to+connect+could+be+given+to+a+new+thread+to+manage.+The+simplification+was%2C+in+theory%2C+dramatic.+The+programmer+could+just+write+the+code+for+handling+a+single+line%2C+and+the+OS+and+network+code+would+multiplex+operation+over+100%2C000+calls.+The+progra" title="Digg this post : Program structure and threads" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F_amp_title=Program+structure+and+threads_amp_bodytext=Threads+were+initially+used+for+telephony+systems+where+each+request+to+connect+could+be+given+to+a+new+thread+to+manage.+The+simplification+was_2C+in+theory_2C+dramatic.+The+programmer+could+just+write+the+code+for+handling+a+single+line_2C+and+the+OS+and+network+code+would+multiplex+operation+over+100_2C000+calls.+The+progra&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F&amp;t=Program+structure+and+threads" title="Recommend this post : Program structure and threads on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F_amp_t=Program+structure+and+threads&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F&amp;title=Program+structure+and+threads&amp;&amp;summary=" title="Share this post : Program structure and threads on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F_amp_title=Program+structure+and+threads_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F&amp;title=Program+structure+and+threads" title="Share this post : Program structure and threads on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F_amp_title=Program+structure+and+threads&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F03%2Fprogram-structure-and-threads%2F" title="Tweet this post : Program structure and threads on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F03_2Fprogram-structure-and-threads_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/03/program-structure-and-threads/feed" title="Follow this post : Program structure and threads comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/03/program-structure-and-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fault tolerant patent application for virtual machine</title>
		<link>http://www.yodaiken.com/2009/01/fault-tolerant-patent-application-for-virtual-machine/</link>
		<comments>http://www.yodaiken.com/2009/01/fault-tolerant-patent-application-for-virtual-machine/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 02:07:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[communications]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[fault tolerance]]></category>
		<category><![CDATA[patent]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=210</guid>
		<description><![CDATA[[0018]For incoming network packets, the following is done during the logging mode. When a packet is received, an event-request is posted for the VMM, at Block 210. When the VMM processes the event, it stops the VM, synchronizes the guest VCPU state, and then calls into the device emulator (i.e., device emulation software event handler), [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>[0018]For incoming network packets, the following is done during the      logging mode. When a packet is received, an event-request is posted for      the VMM, at Block 210. When the VMM processes the event, it stops the VM,      synchronizes the guest VCPU state, and then calls into the device      emulator (i.e., device emulation software event handler), at Block 220.      The device emulator logs an event at Block 230. Then, the device emulator      receives the packets, and logs their contents, at Block 240. The last      packet logged is marked so that during replay the device emulator can      know when the last packet for this event occurs in the log.</p>
<p>[0019]During replay the following occurs: When an I/O event is encountered      in the log, the device emulator (i.e., device emulation software event      handler) is called by the VMM. The device emulator reads all packets that      were logged, and copies them into the memory of the VM. In this way, the      receive queue of packets is updated at the exact same point in the      instruction execution sequence during logging and replay.</p></blockquote>
<table border="0" width="100%">
<tbody>
<tr>
<td width="50%" align="left"><strong>United States Patent Application</strong></td>
<td width="50%" align="right"><strong>20090007111 </strong></td>
</tr>
<tr>
<td width="50%" align="left" valign="top"><strong>Kind Code</strong></td>
<td width="50%" align="right"><strong>A1 </strong></td>
</tr>
<tr>
<td width="50%" align="left"><strong> Nelson; Michael ; Â  et al.</strong></td>
<td width="50%" align="right"><strong> January 1, 2009 </strong></td>
</tr>
</tbody>
</table>
<hr /><span style="font-size: xx-small;">LOGGING AND REPLAYING INPUT/OUTPUT EVENTS FOR A VIRTUAL MACHINE </span></p>
<p>VMWARE application.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F&amp;title=Fault+tolerant+patent+application+for+virtual+machine" title="Bookmark this post : Fault tolerant patent application for virtual machine on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F_amp_title=Fault+tolerant+patent+application+for+virtual+machine&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F&amp;title=Fault+tolerant+patent+application+for+virtual+machine&amp;bodytext=%5B0018%5DFor+incoming+network+packets%2C+the+following+is+done+during+the++++++logging+mode.+When+a+packet+is+received%2C+an+event-request+is+posted+for++++++the+VMM%2C+at+Block+210.+When+the+VMM+processes+the+event%2C+it+stops+the+VM%2C++++++synchronizes+the+guest+VCPU+state%2C+and+then+calls+into+the+device++++++emulator+%28i.e.%2C+dev" title="Digg this post : Fault tolerant patent application for virtual machine" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F_amp_title=Fault+tolerant+patent+application+for+virtual+machine_amp_bodytext=_5B0018_5DFor+incoming+network+packets_2C+the+following+is+done+during+the++++++logging+mode.+When+a+packet+is+received_2C+an+event-request+is+posted+for++++++the+VMM_2C+at+Block+210.+When+the+VMM+processes+the+event_2C+it+stops+the+VM_2C++++++synchronizes+the+guest+VCPU+state_2C+and+then+calls+into+the+device++++++emulator+_28i.e._2C+dev&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F&amp;t=Fault+tolerant+patent+application+for+virtual+machine" title="Recommend this post : Fault tolerant patent application for virtual machine on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F_amp_t=Fault+tolerant+patent+application+for+virtual+machine&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F&amp;title=Fault+tolerant+patent+application+for+virtual+machine&amp;&amp;summary=" title="Share this post : Fault tolerant patent application for virtual machine on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F_amp_title=Fault+tolerant+patent+application+for+virtual+machine_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F&amp;title=Fault+tolerant+patent+application+for+virtual+machine" title="Share this post : Fault tolerant patent application for virtual machine on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F_amp_title=Fault+tolerant+patent+application+for+virtual+machine&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Ffault-tolerant-patent-application-for-virtual-machine%2F" title="Tweet this post : Fault tolerant patent application for virtual machine on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Ffault-tolerant-patent-application-for-virtual-machine_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/01/fault-tolerant-patent-application-for-virtual-machine/feed" title="Follow this post : Fault tolerant patent application for virtual machine comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/01/fault-tolerant-patent-application-for-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great software patents: fault tolerance</title>
		<link>http://www.yodaiken.com/2009/01/great-software-patents-fault-tolerance/</link>
		<comments>http://www.yodaiken.com/2009/01/great-software-patents-fault-tolerance/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 22:12:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[auragen]]></category>
		<category><![CDATA[data center]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[security+fault-tolerance]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=204</guid>
		<description><![CDATA[software patent]]></description>
			<content:encoded><![CDATA[<blockquote><p>A parallel computer system which has a primary task processor, a second      primary task processor, a secondary task processor acting as a backup for      the second primary task processor transfers messages by: sending messages from the primary task processor to the second primary      processor with the second primary task processor operating on the messages      by initially storing a received message in a queue and thereafter reading      the message from the queue for processing in accordance with the task      associated therewith and accumulating a count of the messages read from      its queue; and sending the same messages from the first primary task      processor to the secondary task processor which stores the messages in a      message queue for possible use if the second primary task processor fails.      If a primary task processor fails after processing a given number of      messages, the secondary task processor associated therewith starts      processing the messages in its queue but after having discarded the first      given number of messages.</p></blockquote>
<table border="0" width="100%">
<tbody>
<tr>
<td width="10%" align="left" valign="top">Inventors:</td>
<td width="90%" align="left"><strong><a name="h3" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&amp;Sect2=HITOFF&amp;u=%2Fnetahtml%2FPTO%2Fsearch-adv.htm&amp;r=1&amp;f=G&amp;l=50&amp;d=PTXT&amp;p=1&amp;p=1&amp;S1=%28glazer.INNM.+AND+fault%29&amp;OS=IN/glazer+and+fault&amp;RS=%28IN/glazer+AND+fault%29#h2" onclick="pageTracker._trackPageview('/outgoing/patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2_amp_Sect2=HITOFF_amp_u=_2Fnetahtml_2FPTO_2Fsearch-adv.htm_amp_r=1_amp_f=G_amp_l=50_amp_d=PTXT_amp_p=1_amp_p=1_amp_S1=_28glazer.INNM.+AND+fault_29_amp_OS=IN/glazer+and+fault_amp_RS=_28IN/glazer+AND+fault_29_h2&amp;referer=');"></a><strong><em>Glazer</em></strong>; Sam D.</strong> (New York, NY)<strong>, Baumbach; James</strong> (Brooklyn, NY)<strong>, Borg; Anita</strong> (New York, NY)<strong>, Wittels; Emanuel</strong> (Englewood Cliffs, NJ)</td>
</tr>
<tr>
<td width="10%" align="left" valign="top">Assignee:</td>
<td width="90%" align="left"><strong>Parallel Computers Systems, Inc.</strong> (Fort Lee,  NJ)</td>
</tr>
<tr>
<td width="10%" align="left" valign="top">Appl. No.:</td>
<td width="90%" align="left"><strong> 06/443,937</strong></td>
</tr>
<tr>
<td width="10%" align="left" valign="top">Filed:</td>
<td width="90%" align="left"><strong>November 23, 1982</strong></td>
</tr>
</tbody>
</table>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F&amp;title=Great+software+patents%3A+fault+tolerance" title="Bookmark this post : Great software patents: fault tolerance on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F_amp_title=Great+software+patents_3A+fault+tolerance&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F&amp;title=Great+software+patents%3A+fault+tolerance&amp;bodytext=A+parallel+computer+system+which+has+a+primary+task+processor%2C+a+second++++++primary+task+processor%2C+a+secondary+task+processor+acting+as+a+backup+for++++++the+second+primary+task+processor+transfers+messages+by%3A+sending+messages+from+the+primary+task+processor+to+the+second+primary++++++processor+with+the+second+prima" title="Digg this post : Great software patents: fault tolerance" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F_amp_title=Great+software+patents_3A+fault+tolerance_amp_bodytext=A+parallel+computer+system+which+has+a+primary+task+processor_2C+a+second++++++primary+task+processor_2C+a+secondary+task+processor+acting+as+a+backup+for++++++the+second+primary+task+processor+transfers+messages+by_3A+sending+messages+from+the+primary+task+processor+to+the+second+primary++++++processor+with+the+second+prima&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F&amp;t=Great+software+patents%3A+fault+tolerance" title="Recommend this post : Great software patents: fault tolerance on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F_amp_t=Great+software+patents_3A+fault+tolerance&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F&amp;title=Great+software+patents%3A+fault+tolerance&amp;&amp;summary=" title="Share this post : Great software patents: fault tolerance on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F_amp_title=Great+software+patents_3A+fault+tolerance_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F&amp;title=Great+software+patents%3A+fault+tolerance" title="Share this post : Great software patents: fault tolerance on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F_amp_title=Great+software+patents_3A+fault+tolerance&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F01%2Fgreat-software-patents-fault-tolerance%2F" title="Tweet this post : Great software patents: fault tolerance on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F01_2Fgreat-software-patents-fault-tolerance_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/01/great-software-patents-fault-tolerance/feed" title="Follow this post : Great software patents: fault tolerance comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/01/great-software-patents-fault-tolerance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
