<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://rebcabin.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2frebcabin.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Light Cone (Brian's space-time)</title><description /><link>http://rebcabin.spaces.live.com/</link><language>en-US</language><pubDate>Tue, 30 Sep 2008 14:47:45 GMT</pubDate><lastBuildDate>Tue, 30 Sep 2008 14:47:45 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>-258435048349497599</live:id><live:alias>rebcabin</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>How to Type Matrices in Word 2007</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!272.entry</link><description>&lt;div&gt;Insert -&amp;gt; Equation &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;then, type \matrix ( a &amp;amp; b @ c &amp;amp; d )&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The ampersand separates elements on a line, the at-sign separates lines. Type as much as you want, it all gets laid out beautifully. Nest the whole thing inside brackets of various kinds. Very similar to LaTeX. I've found that most of the LaTeX backslash commands work in an intuitive way in Word 2007. Lovely!&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+How+to+Type+Matrices+in+Word+2007&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!272.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!272.entry</guid><pubDate>Wed, 02 Jul 2008 20:50:23 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!272/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!272.entry#comment</wfw:comment><dcterms:modified>2008-07-02T20:50:23Z</dcterms:modified></item><item><title>Tuval-Cain == Vulcan ?</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!271.entry</link><description>&lt;div&gt;Tuval-Cain, in the seventh generation after Adam according to the book of Genesis: וְצִלָּה גַם-הִוא, יָלְדָה אֶת-&lt;font style="background-color:#ffff00"&gt;תּוּבַל קַיִן&lt;/font&gt;--לֹטֵשׁ, כָּל-חֹרֵשׁ נְחֹשֶׁת וּבַרְזֶל &amp;quot;And Tzilla also gave birth to TUVAL-CAIN, forger of every sharp implement in brass and iron...&amp;quot; (4:22). His name and profession are much too similar to those of the forge-master of Romano-Greek mythology, &lt;font style="background-color:#ffff00"&gt;Vulcan&lt;/font&gt;, to be coincidence. However, I've been unable to find any research on this. &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Tuval-Cain+%3d%3d+Vulcan+%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!271.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!271.entry</guid><pubDate>Wed, 25 Jun 2008 06:17:28 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!271/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!271.entry#comment</wfw:comment><dcterms:modified>2008-06-25T06:20:21Z</dcterms:modified></item><item><title>How About a Boxcar?</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!270.entry</link><description>&lt;div&gt;A Boxcar Filter is a gadget that runs (or maps) a function of four arguments over a rectangular grid of points. A rectangular grid is a data structure where each point has a pair of integer indices, i and j, say, and i runs from, say, 1, through M and j runs from 1 through N. The data structure is best viewed as a function from i and j to some value, which can be anything. Even better, let it be a list of lists, in the usual Mathematica way. The function of four arguments that the Boxcar filter maps over the grid expects four, nearest-neighbor points:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font face="Courier New"&gt;   h[p1, p2, p3, p4], &lt;br&gt;      p1=grid[i, j], p2=[i+1, j], p3[i, j+1], p4[i+1, j+1]&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The Boxcar filter mapper, then, must intelligently skip the last row and column. Enjoy:&lt;/div&gt;
&lt;div&gt;&lt;font face=Courier&gt;
&lt;p align=left&gt;&lt;font face="Courier New"&gt;   fRows[opOf2Rows_,{a_,b_,c___}]:=&lt;br&gt;      &lt;/font&gt;&lt;font face="Courier New"&gt;Join[{opOf2Rows[a,b]},fRows[opOf2Rows,{b,c}]];&lt;/font&gt; 
&lt;p&gt;&lt;font face="Courier New"&gt;   fRows[_,{a_}]:={};&lt;/font&gt;&lt;font face=Courier&gt; 
&lt;p align=left&gt;&lt;font face="Courier New"&gt;   gCols[op4_,{a_,b_,c___},{d_,e_,f___}]:=&lt;br&gt;      Join[{op4[a,b,d,e]},gCols[op4,{b,c},{e,f}]];&lt;/font&gt; 
&lt;p&gt;&lt;font face="Courier New"&gt;   gCols[_,{a_},{d_}]:={};&lt;/font&gt;&lt;font face=Courier&gt; 
&lt;p&gt;&lt;font face="Courier New"&gt;   boxCar[op4_,grid_]:=&lt;br&gt;      fRows[gCols[op4[#1, #2, #3, #4]&amp;amp;, #1, #2]&amp;amp;, grid];&lt;/font&gt; 
&lt;p&gt;&lt;font face=Arial&gt;Here's an application that draws criss-crosses in each box of a grid. Ampersand converts the previous expression into a function (a lambda expression), in which #1, #2, ... denote positional arguments. Thus, &lt;/font&gt;{Line[{#1,#4}],Line[{#2,#3}]}&amp;amp;&lt;font face=Arial&gt; is a function of four arguments:&lt;/font&gt;&lt;b&gt;&lt;font face=Courier&gt;
&lt;p&gt;   crissCross[grid_]:=boxCar[{Line[{#1,#4}],Line[{#2,#3}]}&amp;amp;,grid]&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+How+About+a+Boxcar%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!270.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!270.entry</guid><pubDate>Mon, 23 Jun 2008 14:28:35 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!270/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!270.entry#comment</wfw:comment><dcterms:modified>2008-06-23T15:28:15Z</dcterms:modified></item><item><title>The problem with Max</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!269.entry</link><description>&lt;div&gt;Is, of course, the recursive call on line 2:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;   Max[{x_, xs___}] := x if x &amp;gt; Max[{xs}];&lt;/span&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;While mathematically correct, it will cause recalculation over the tail, xs, for each element of the list, transforming a trivial linear algorithm into a quadratic. The solution, as usual, is to introduce another formal argument:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;   Max[l_] := MaxHelper[l, -Infinity];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;   MaxHelper[{}, a] := a;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;   MaxHelper[{x_, xs___}, a] := MaxHelper[{xs}, x] if x &amp;gt; a;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;   MaxHelper[{x_, xs___}, a] := MaxHelper[{xs}, a] otherwise;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:Consolas"&gt;&lt;font face=Arial&gt;&lt;/font&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+The+problem+with+Max&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!269.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!269.entry</guid><pubDate>Mon, 23 Jun 2008 14:16:06 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!269/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!269.entry#comment</wfw:comment><dcterms:modified>2008-06-23T14:16:06Z</dcterms:modified></item><item><title>Functional Funny</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!268.entry</link><description>&lt;div&gt;
&lt;p&gt;The following is a correct implementation of Max over a list in a pattern-matching language like Mathematica. It has an amusing fault. Can you spot it?
&lt;p&gt; &lt;span style="font-family:Consolas"&gt;Max[{}] := -Infinity;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:Consolas"&gt;&lt;/span&gt;&lt;span style="font-family:Consolas"&gt;Max[{x_, xs___}] := x if x &amp;gt; Max[{xs}];&lt;/span&gt;
&lt;p&gt;&lt;span style="font-family:Consolas"&gt;Max[{x_, xs___}] := Max[{xs}] otherwise;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Functional+Funny&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!268.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!268.entry</guid><pubDate>Sun, 15 Jun 2008 22:14:25 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!268/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!268.entry#comment</wfw:comment><dcterms:modified>2008-06-15T22:14:25Z</dcterms:modified></item><item><title>An Answer</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!263.entry</link><description>&lt;p&gt;From my consultations with C# insiders, looks like ~&amp;quot;loop variables are special&amp;quot;~ meaning that the compiler won't make private copies for &amp;quot;enclosured&amp;quot; or &amp;quot;outer&amp;quot; variables. The issue is the difference between &amp;quot;instantiating&amp;quot; variables and &amp;quot;initializing&amp;quot; them in the C# spec &lt;a title="http://msdn2.microsoft.com/en-us/vcsharp/aa336809.aspx" href="http://msdn2.microsoft.com/en-us/vcsharp/aa336809.aspx"&gt;http://msdn2.microsoft.com/en-us/vcsharp/aa336809.aspx&lt;/a&gt; (see &amp;quot;Outer Variables&amp;quot; in section 7.14.4 around page 206). &lt;p&gt;Proof?  The following works as expected ... introducing the non-&amp;quot;special&amp;quot; variable j causes the compiler to make copies of it for each closure. &lt;pre&gt;&lt;span style="color:blue"&gt;static void &lt;/span&gt;Main(&lt;span style="color:blue"&gt;string&lt;/span&gt;[] args)
{
    &lt;span style="color:blue"&gt;for &lt;/span&gt;(&lt;span style="color:blue"&gt;var &lt;/span&gt;i = 0; i &amp;lt; 40; i++)
    {
        &lt;span style="color:blue"&gt;var &lt;/span&gt;j = i;
        &lt;span style="color:blue"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af"&gt;Thread&lt;/span&gt;(() =&amp;gt; { &lt;span style="color:#2b91af"&gt;Thread&lt;/span&gt;.Sleep(1); &lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.Write(&lt;span style="color:#a31515"&gt;&amp;quot;{0} &amp;quot;&lt;/span&gt;, j); }).Start();
    }
    &lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.WriteLine();
}
&lt;/pre&gt;
&lt;p&gt;&amp;quot;Special&amp;quot; is one of those words, like &amp;quot;simple,&amp;quot; that should cause concern. &amp;quot;Special&amp;quot; means ~&amp;quot;varies from the normal way of things.&amp;quot;~ Some people think it's a euphemism for &amp;quot;good&amp;quot;; in my experience, special cases lead to nasty surprises, like this one.
&lt;p&gt;&amp;quot;Simple&amp;quot; is subjective. To some people it means &amp;quot;flattened, explicit, without ambiguity.&amp;quot; To others it means &amp;quot;short or small, even if abstracted, implicit, or ambiguous.&amp;quot; I've seen grown engineers argue for hours that their solution is &amp;quot;simpler&amp;quot; than the other guy's, with the two of them meaning exactly the opposite by the term.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+An+Answer&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!263.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!263.entry</guid><pubDate>Wed, 16 Apr 2008 18:50:35 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!263/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!263.entry#comment</wfw:comment><dcterms:modified>2008-04-16T18:50:35Z</dcterms:modified></item><item><title>Fun with Threads and Closures</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!262.entry</link><description>&lt;p&gt;(empirical programming -- try something, see what happens, guess what the compilers are doing) &lt;p&gt;Here is a broken program:&lt;pre&gt;    &lt;span&gt;class&lt;/span&gt; Program
    {
        &lt;span&gt;static&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Main(&lt;span&gt;string&lt;/span&gt;[] args)
        {
            &lt;span&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; 40; i++)
            {
                &lt;span&gt;new&lt;/span&gt; Thread(() =&amp;gt; { Thread.Sleep(1); Console.Write(&lt;span&gt;&amp;quot;{0} &amp;quot;&lt;/span&gt;, i); }).Start();
            }
            Console.WriteLine();
        }
    }
&lt;/pre&gt;
&lt;p&gt;It's broken because the inner lambda expression refers to the variable i, which can have any old value between 0 and 40 INCLUSIVE. Using i as an array index would probably generate a bounds exception. The lambda expression will likely see many repetitions of the same value of i, yadda yadda. It's junk.
&lt;p&gt;Now press the magic &amp;quot;refactor / extract method&amp;quot; button, and get a program that works (after a suitable warning that semantics might change -- but, of course, that's exactly what we want: the semantics to change from INCORRECT to CORRECT):&lt;pre&gt;    &lt;span&gt;class&lt;/span&gt; Program
    {
        &lt;span&gt;static&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Main(&lt;span&gt;string&lt;/span&gt;[] args)
        {
            &lt;span&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; 40; i++)
            {
                g(i);
            }
            Console.WriteLine();
        }

        &lt;span&gt;private&lt;/span&gt; &lt;span&gt;static&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; g(&lt;span&gt;int&lt;/span&gt; i)
        {
            &lt;span&gt;new&lt;/span&gt; Thread(() =&amp;gt; { Thread.Sleep(1); Console.Write(&lt;span&gt;&amp;quot;{0} &amp;quot;&lt;/span&gt;, i); }).Start();
        }
    }
&lt;/pre&gt;


&lt;p&gt;The lambda expression now produces a permutation of the integers between 0 and 39, and that's just fine.
&lt;p&gt;But, I'm scared because I thought the stack variables, in this case, the int i argument of g, would go away by the time the lambda expression were called, so the compiler is probably making nice copies of them somewhere. No, and I'm just lucky? Boxing? Not sure what's going on, but rather not look a gift horse in the mouth, as they say.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Fun+with+Threads+and+Closures&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!262.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!262.entry</guid><pubDate>Wed, 16 Apr 2008 01:03:24 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!262/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!262.entry#comment</wfw:comment><dcterms:modified>2008-04-16T01:03:24Z</dcterms:modified></item><item><title>Take This Test</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!164.entry</link><description>&lt;p&gt;If you're a programmer or mathematician, you might like this test. This is not a trick question.  &lt;p&gt;Which of the following two alternatives, A or B, is the SIMPLER: &lt;p&gt;A: 1 + 2 * 3 &lt;p&gt;B: &amp;lt;binaryExpression&amp;gt;&lt;br&gt;        &amp;lt;leftOperand&amp;gt; 1 &amp;lt;/leftOperand&amp;gt;&lt;br&gt;        &amp;lt;operator&amp;gt; + &amp;lt;/operator&amp;gt;&lt;br&gt;        &amp;lt;rightOperand&amp;gt;&lt;br&gt;            &amp;lt;binaryExpression&amp;gt;&lt;br&gt;                &amp;lt;leftOperand&amp;gt; 2 &amp;lt;/leftOperand&amp;gt;&lt;br&gt;                &amp;lt;operator&amp;gt; * &amp;lt;/operator&amp;gt;&lt;br&gt;                &amp;lt;rightOperand&amp;gt; 3 &amp;lt;/rightOperand&amp;gt;&lt;br&gt;            &amp;lt;/binaryExpression&amp;gt;&lt;br&gt;        &amp;lt;/rightOperand&amp;gt;&lt;br&gt;    &amp;lt;/binaryExpression&amp;gt; &lt;p&gt;After some number of responses have accumulated or some time has gone by, I'll post my thoughts and experiences around this question. I have asked this question to dozens of people. I reiterate, it is not a trick question, so please give an honest answer.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Take+This+Test&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!164.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!164.entry</guid><pubDate>Thu, 03 Jan 2008 23:58:03 GMT</pubDate><slash:comments>26</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!164/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!164.entry#comment</wfw:comment><dcterms:modified>2008-01-03T23:58:03Z</dcterms:modified></item><item><title>Force, then Rent or Lease</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!163.entry</link><description>&lt;p&gt;כרח -&amp;gt; חכר&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Force%2c+then+Rent+or+Lease&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!163.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!163.entry</guid><pubDate>Sat, 22 Dec 2007 15:58:15 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!163/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!163.entry#comment</wfw:comment><dcterms:modified>2007-12-24T06:06:58Z</dcterms:modified></item><item><title>Metathesis -- Permuting Letters</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!162.entry</link><description>&lt;p&gt;Here's another nice one: גזרה, root גזר, referring to a decree or edict, usually negative. &amp;quot;And then&amp;quot; התרגז, root רגז, get angry. First the evil decree, then get angry. Makes sense. Cycling the last letter to the front of a root is just one form of metathesis. There are many others. הזדקן, &amp;quot;he got old,&amp;quot; is a euphonic metathesis plus a substitution, from the formal reflexive הת+זקן, which is unpronounceable, but most certainly is a formation of the second-person pronoun אתה &amp;quot;you&amp;quot; plus the verb זקן &amp;quot;old.&amp;quot; First, the metathesis of ת with ז -&amp;gt; הזתקן , then the softening of ת to ד to give הזדקן.  &lt;p&gt;There are six permutations of every root. Maybe I'll do a nice search for all of those. Complicating my procedure (greatly) is the fact that Hebrew letters are overloaded with respect to etymological origins. ח stands for two letters (written separately in Arabic as حhha and خ kha), ז for two (ز za and ظ zdha in Arabic), ש for two (Hebrew retaining dots often even in unvoweled text), ג for two (Arabic keeping only one, the ج jim), ד and ת each has historical soft forms retained in Arabic, בכפ each have modern soft forms, ע has two (ع and غ still in Arabic), and the ever-loving צ stands for three ancient letters (ص, ض, and another one), plus samekh ס seems out of place, perhaps retained in Greek as Ξ. This means that a permutation might be related to a considerable number of other roots, some of which are spelled exactly the same. What a mess, eh? Despite their being just 22 Hebrew letters, there are about 34 different potentially meaningful sounds to account for. Some of them, like ב and בּ are probably just euphonic differences and don't harbor etymological distinctions. Others like ד and דּ are usually completely different letters.  &lt;table cellspacing=0 cellpadding=2 width=400 border=1&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=top align=middle width=54&gt;# &lt;td valign=top align=middle width=97&gt;Hebrew Letter &lt;td valign=top align=middle width=100&gt;Arabic Cognate &lt;td valign=top align=middle width=147&gt;Candidate Transliteration &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;1 &lt;td valign=top align=middle width=96&gt;א &lt;td valign=top align=middle width=100&gt;ا &lt;td valign=top align=middle width=147&gt;glottal stop &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;2 &lt;td valign=top align=middle width=96&gt;ב &lt;td valign=top align=middle width=100&gt;  &lt;td valign=top align=middle width=147&gt;v &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;3 &lt;td valign=top align=middle width=96&gt;בּ &lt;td valign=top align=middle width=100&gt;ب &lt;td valign=top align=middle width=147&gt;b &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;4 &lt;td valign=top align=middle width=96&gt;ג &lt;td valign=top align=middle width=100&gt;ج &lt;td valign=top align=middle width=147&gt;j &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;5 &lt;td valign=top align=middle width=96&gt;גּ &lt;td valign=top align=middle width=100&gt;  &lt;td valign=top align=middle width=147&gt;g &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;6 &lt;td valign=top align=middle width=96&gt;ד &lt;td valign=top align=middle width=100&gt;ذ &lt;td valign=top align=middle width=147&gt;dh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;7 &lt;td valign=top align=middle width=96&gt;דּ &lt;td valign=top align=middle width=100&gt;د &lt;td valign=top align=middle width=147&gt;d &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;8 &lt;td valign=top align=middle width=96&gt;ה &lt;td valign=top align=middle width=100&gt;ه &lt;td valign=top align=middle width=147&gt;h &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;9 &lt;td valign=top align=middle width=96&gt;ו &lt;td valign=top align=middle width=100&gt;و &lt;td valign=top align=middle width=147&gt;w, v &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;10 &lt;td valign=top align=middle width=96&gt;ז &lt;td valign=top align=middle width=100&gt;ز &lt;td valign=top align=middle width=147&gt;z &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;11 &lt;td valign=top align=middle width=96&gt;ז &lt;td valign=top align=middle width=100&gt;ظ &lt;td valign=top align=middle width=147&gt;zdh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;12 &lt;td valign=top align=middle width=96&gt;ח &lt;td valign=top align=middle width=100&gt;ح &lt;td valign=top align=middle width=147&gt;hh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;13 &lt;td valign=top align=middle width=96&gt;ח &lt;td valign=top align=middle width=100&gt;خ &lt;td valign=top align=middle width=147&gt;kh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;14 &lt;td valign=top align=middle width=96&gt;ט &lt;td valign=top align=middle width=100&gt;ط &lt;td valign=top align=middle width=147&gt;tt &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;15 &lt;td valign=top align=middle width=96&gt;י &lt;td valign=top align=middle width=100&gt;ى &lt;td valign=top align=middle width=147&gt;y &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;16 &lt;td valign=top align=middle width=96&gt;כ &lt;td valign=top align=middle width=100&gt;خ &lt;td valign=top align=middle width=147&gt;kh (again) &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;17 &lt;td valign=top align=middle width=96&gt;כּ &lt;td valign=top align=middle width=100&gt;ك &lt;td valign=top align=middle width=147&gt;k &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;18 &lt;td valign=top align=middle width=96&gt;ל &lt;td valign=top align=middle width=100&gt;ل &lt;td valign=top align=middle width=147&gt;l &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;19 &lt;td valign=top align=middle width=96&gt;מ &lt;td valign=top align=middle width=100&gt;م &lt;td valign=top align=middle width=147&gt;m &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;20 &lt;td valign=top align=middle width=96&gt;נ &lt;td valign=top align=middle width=100&gt;ن &lt;td valign=top align=middle width=147&gt;n &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;21 &lt;td valign=top align=middle width=96&gt;ס &lt;td valign=top align=middle width=100&gt;  &lt;td valign=top align=middle width=147&gt;s (ks of old?) &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;22 &lt;td valign=top align=middle width=96&gt;ע &lt;td valign=top align=middle width=100&gt;ع &lt;td valign=top align=middle width=147&gt;( &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;23 &lt;td valign=top align=middle width=96&gt;ע &lt;td valign=top align=middle width=100&gt;غ &lt;td valign=top align=middle width=147&gt;gh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;24 &lt;td valign=top align=middle width=96&gt;פ &lt;td valign=top align=middle width=100&gt;ف &lt;td valign=top align=middle width=147&gt;f &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;25 &lt;td valign=top align=middle width=96&gt;פּ &lt;td valign=top align=middle width=100&gt;  &lt;td valign=top align=middle width=147&gt;p &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;26 &lt;td valign=top align=middle width=96&gt;צ &lt;td valign=top align=middle width=100&gt;ص &lt;td valign=top align=middle width=147&gt;ss &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;27 &lt;td valign=top align=middle width=96&gt;צ &lt;td valign=top align=middle width=100&gt;ض &lt;td valign=top align=middle width=147&gt;dd &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;28 &lt;td valign=top align=middle width=96&gt;צ &lt;td valign=top align=middle width=100&gt;  &lt;td valign=top align=middle width=147&gt;? &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;29 &lt;td valign=top align=middle width=96&gt;ק &lt;td valign=top align=middle width=100&gt;ق &lt;td valign=top align=middle width=147&gt;q &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;30 &lt;td valign=top align=middle width=96&gt;ר &lt;td valign=top align=middle width=100&gt;ر &lt;td valign=top align=middle width=147&gt;r &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;31 &lt;td valign=top align=middle width=96&gt;שׂ &lt;td valign=top align=middle width=100&gt;س &lt;td valign=top align=middle width=147&gt;s &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;32 &lt;td valign=top align=middle width=96&gt;שׁ &lt;td valign=top align=middle width=100&gt;ش &lt;td valign=top align=middle width=147&gt;sh &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;33 &lt;td valign=top align=middle width=96&gt;ת &lt;td valign=top align=middle width=100&gt;ث &lt;td valign=top align=middle width=147&gt;th &lt;tr&gt; &lt;td valign=top align=middle width=55&gt;34 &lt;td valign=top align=middle width=97&gt;תּ &lt;td valign=top align=middle width=100&gt;ت &lt;td valign=top align=middle width=147&gt;t&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Metathesis+--+Permuting+Letters&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!162.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!162.entry</guid><pubDate>Sat, 22 Dec 2007 09:21:57 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!162/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!162.entry#comment</wfw:comment><dcterms:modified>2007-12-22T09:21:57Z</dcterms:modified></item><item><title>More Shoresh Pairs</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!157.entry</link><description>&lt;div&gt;Turns out my last computer search had a bug that overlooked some pairs containing the letter &amp;quot;Shin.&amp;quot; I redid the search and found 99 more pairs. The new file is in my folder עברית, which you should be able to see above. I deleted the old file. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The bug had to do with not properly matching Shin (dot on right-hand side) with the dotless variation of the letter. I only picked up Sin (dot on the left-hand side), which is the more rare variation of the letter.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+More+Shoresh+Pairs&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!157.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!157.entry</guid><pubDate>Fri, 14 Dec 2007 19:01:26 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!157/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!157.entry#comment</wfw:comment><dcterms:modified>2007-12-14T19:01:26Z</dcterms:modified></item><item><title>Evaluation is NOT Universal (probably)</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!155.entry</link><description>&lt;div&gt;I deleted my blog entry from a few days ago (and reminded myself to use the Brady Bill in the future). I asserted that eager evaluation alone sufficed to simulate a Turing machine, but my proof had a flaw, and when I fixed the flaw, I had just reinvented the IO Monad, which does not depend on evaluation order, so my proof is trash. I no longer think evaluation alone accounts for any side-effecting computation, but I'm not sure one way or the other.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Evaluation+is+NOT+Universal+(probably)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!155.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!155.entry</guid><pubDate>Fri, 14 Dec 2007 18:36:22 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!155/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!155.entry#comment</wfw:comment><dcterms:modified>2007-12-14T18:36:22Z</dcterms:modified></item><item><title>XNA from F# and C#</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!150.entry</link><description>&lt;p&gt;I've gotten one of the first XNA 1.0 tutorials going in F# called from a tiny C# stub. I got the basic approach for the 3-way integration from &lt;a href="http://grammerjack.spaces.live.com/blog/cns!F2629C772A178A7C!158.entry"&gt;grammarjack's blog&lt;/a&gt;. The tutorial is documented &lt;a href="http://creators.xna.com/Headlines/tutorialscol1/archive/2007/05/24/Collision-Series-1_3A00_-2D-Rectangle-Collision.aspx"&gt;HERE&lt;/a&gt;; it tests for collisions in 2D between falling &amp;quot;anvils&amp;quot; and a mobile &amp;quot;person,&amp;quot; reminiscent of the old Space Invaders control model. The C# stub is a &lt;a href="http://www.microsoft.com/express/product/default.aspx"&gt;Visual Studio Express&lt;/a&gt; project, as are all official XNA applications. Its source code follows:&lt;pre&gt;&lt;span style="color:blue"&gt;namespace &lt;/span&gt;MyGame
{
    &lt;span style="color:blue"&gt;static class &lt;/span&gt;&lt;span style="color:#2b91af"&gt;Program
    &lt;/span&gt;{
        &lt;span style="color:blue"&gt;static void &lt;/span&gt;Main(&lt;span style="color:blue"&gt;string&lt;/span&gt;[] args)
        {
            &lt;span style="color:#2b91af"&gt;File1&lt;/span&gt;.FSharpCalledFromCSharp(); // File1 refers to File1.fs, the F# DLL          
        }
    }
}&lt;/pre&gt;
&lt;p&gt;My F# version is a VERY straightforward translation of the original C# code of the tutorial -- maybe &amp;quot;transliteration&amp;quot; is a better word. It’s side-effecting EVERYWHERE because that’s object-oriented programming. Construction starts with the usual field initialization followed by a “then” clause that makes some subordinate objects, followed by an “Initialize” callback that does even more setup after graphics has been partly set up, followed by “LoadGraphicsContent” which does even MORE setup even LATER. The main loop has an Update entry point and a Draw entry point which communicate by (you guessed it) side-effected fields. It may be interesting in the future to do a &amp;quot;topological inversion refactoring&amp;quot; of this code structure to sequence the side effects more monadically. 
&lt;p&gt;I preserved another deficiency of the original: various rectangle and vector types seem schizophrenic about floats, ints, or float32s. I just inserted whatever coercions necessary to get it to run. Perhaps later it would be interesting to consolidate and reconcile all that noise.
&lt;p&gt;Despite these issues, the code is not hard to read to my eyes anyway, and is a little prettier than the C# version since I managed to sweep some counted loops into maps and filters.
&lt;p&gt;Build a DLL in &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio 2008&lt;/a&gt; with &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt; added in, and run the program from the C# executable after adding a reference to the F# DLL. Here's the F# code:&lt;pre&gt;#light

#I &lt;span style="color:#a31515"&gt;@&amp;quot;c:\Program Files\Microsoft XNA\XNA Game Studio Express\v1.0\References\Windows\x86&amp;quot;
&lt;/span&gt;#r &lt;span style="color:#a31515"&gt;&amp;quot;Microsoft.Xna.Framework.dll&amp;quot;
&lt;/span&gt;#r &lt;span style="color:#a31515"&gt;&amp;quot;Microsoft.Xna.Framework.Game.dll&amp;quot;

&lt;/span&gt;&lt;span style="color:blue"&gt;open &lt;/span&gt;Collections
&lt;span style="color:blue"&gt;open &lt;/span&gt;Compatibility
&lt;span style="color:blue"&gt;open &lt;/span&gt;Idioms
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework.Audio
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework.Content
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework.Graphics
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework.Input
&lt;span style="color:blue"&gt;open &lt;/span&gt;Microsoft.Xna.Framework.Storage
&lt;span style="color:blue"&gt;open &lt;/span&gt;System
&lt;span style="color:blue"&gt;open &lt;/span&gt;System.IO

&lt;span style="color:blue"&gt;type &lt;/span&gt;MyGame = &lt;span style="color:blue"&gt;class
    inherit &lt;/span&gt;Game &lt;span style="color:blue"&gt;as &lt;/span&gt;base
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;graphics        : GraphicsDeviceManager
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;content         : ContentManager
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;personTexture   : Texture2D
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;blockTexture    : Texture2D
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;spriteBatch     : SpriteBatch
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;personPosition  : Vector2
    &lt;span style="color:blue"&gt;val         &lt;/span&gt;PersonMoveSpeed : float32
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;blockPositions  : Vector2 list
    &lt;span style="color:blue"&gt;val         &lt;/span&gt;BlockSpawnProb  : float
    &lt;span style="color:blue"&gt;val         &lt;/span&gt;BlockFallSpeed  : int
    &lt;span style="color:blue"&gt;val         &lt;/span&gt;random          : Random
    &lt;span style="color:blue"&gt;val mutable &lt;/span&gt;personHit       : bool &lt;span style="color:green"&gt;(* set in &amp;quot;Update&amp;quot;, tested in &amp;quot;Draw&amp;quot; *)
    &lt;/span&gt;&lt;span style="color:blue"&gt;val mutable &lt;/span&gt;safeBounds      : Rectangle &lt;span style="color:green"&gt;(* would like this to be constant, but must be
                                               set in &amp;quot;Initialize&amp;quot; after graphics set up *)
    &lt;/span&gt;&lt;span style="color:blue"&gt;val         &lt;/span&gt;SafeAreaPortion : float
    
    &lt;span style="color:blue"&gt;new &lt;/span&gt;() &lt;span style="color:blue"&gt;as &lt;/span&gt;this = 
      { graphics        = &lt;span style="color:blue"&gt;null
        &lt;/span&gt;content         = &lt;span style="color:blue"&gt;null 
        &lt;/span&gt;personTexture   = &lt;span style="color:blue"&gt;null 
        &lt;/span&gt;blockTexture    = &lt;span style="color:blue"&gt;null 
        &lt;/span&gt;spriteBatch     = &lt;span style="color:blue"&gt;null 
        &lt;/span&gt;personPosition  = Vector2(0.0f)
        PersonMoveSpeed = 5.0f
        blockPositions  = []
        BlockSpawnProb  = 0.02
        BlockFallSpeed  = 2
        random          = Random ()
        personHit       = &lt;span style="color:blue"&gt;false
        &lt;/span&gt;safeBounds      = Rectangle(0,0,0,0)
        SafeAreaPortion = 0.05
        }
      &lt;span style="color:blue"&gt;then
        &lt;/span&gt;this.graphics &amp;lt;- &lt;span style="color:blue"&gt;new &lt;/span&gt;GraphicsDeviceManager(this)
        this.content  &amp;lt;- &lt;span style="color:blue"&gt;new &lt;/span&gt;ContentManager(this.Services)
        this.graphics.PreferredBackBufferWidth  &amp;lt;- 853
        this.graphics.PreferredBackBufferHeight &amp;lt;- 480
        
    &lt;span style="color:blue"&gt;override &lt;/span&gt;this.Initialize() =
        base.Initialize ()
        &lt;span style="color:blue"&gt;let &lt;/span&gt;vp = this.graphics.GraphicsDevice.Viewport
        this.safeBounds &amp;lt;- Rectangle 
            (int (float vp.Width * this.SafeAreaPortion), 
             int (float vp.Height * this.SafeAreaPortion),
             int (float vp.Width * (1.0 - 2.0 * this.SafeAreaPortion)), 
             int (float vp.Height * (1.0 - 2.0 * this.SafeAreaPortion)))
        this.personPosition.X &amp;lt;- 
            float32 (this.safeBounds.Width - this.personTexture.Width) / 2.0f
        this.personPosition.Y &amp;lt;-
            float32 (this.safeBounds.Height - this.personTexture.Height)
       
    &lt;span style="color:blue"&gt;override &lt;/span&gt;this.LoadGraphicsContent (loadAllContent : bool) = 
        &lt;span style="color:blue"&gt;if &lt;/span&gt;loadAllContent &lt;span style="color:blue"&gt;then
            &lt;/span&gt;this.blockTexture  &amp;lt;- this.content.Load&amp;lt;Texture2D&amp;gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Content/Block&amp;quot;&lt;/span&gt;)
            this.personTexture &amp;lt;- this.content.Load&amp;lt;Texture2D&amp;gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Content/Person&amp;quot;&lt;/span&gt;)
            this.spriteBatch   &amp;lt;- &lt;span style="color:blue"&gt;new &lt;/span&gt;SpriteBatch(this.graphics.GraphicsDevice)
            
    &lt;span style="color:blue"&gt;override &lt;/span&gt;this.UnloadGraphicsContent (unloadAllContent : bool) =
        &lt;span style="color:blue"&gt;if &lt;/span&gt;unloadAllContent &lt;span style="color:blue"&gt;then
            &lt;/span&gt;this.content.Unload ()

    &lt;span style="color:blue"&gt;override &lt;/span&gt;this.Draw(gameTime) = 
        &lt;span style="color:blue"&gt;let &lt;/span&gt;gd = this.graphics.GraphicsDevice
        gd.Clear(&lt;span style="color:blue"&gt;if &lt;/span&gt;this.personHit &lt;span style="color:blue"&gt;then &lt;/span&gt;Color.Orange &lt;span style="color:blue"&gt;else &lt;/span&gt;Color.CornflowerBlue)
        this.spriteBatch.Begin()
        this.spriteBatch.Draw(this.personTexture, this.personPosition, Color.White)
        List.iter
            (&lt;span style="color:blue"&gt;fun &lt;/span&gt;(v : Vector2) &lt;span style="color:blue"&gt;-&amp;gt; &lt;/span&gt;this.spriteBatch.Draw(this.blockTexture, v, Color.White))
            this.blockPositions
        this.spriteBatch.End()
        base.Draw (gameTime)
        
    &lt;span style="color:blue"&gt;override &lt;/span&gt;this.Update(gameTime) =
        &lt;span style="color:blue"&gt;let &lt;/span&gt;kb = Keyboard.GetState()
        &lt;span style="color:blue"&gt;let &lt;/span&gt;gp = GamePad.GetState(PlayerIndex.One)
        &lt;span style="color:blue"&gt;if &lt;/span&gt;(gp.Buttons.Back = ButtonState.Pressed || kb.IsKeyDown(Keys.Escape)) &lt;span style="color:blue"&gt;then
            &lt;/span&gt;this.Exit()
        &lt;span style="color:blue"&gt;if &lt;/span&gt;(kb.IsKeyDown(Keys.Left) || gp.DPad.Left = ButtonState.Pressed) &lt;span style="color:blue"&gt;then
            &lt;/span&gt;this.personPosition.X &amp;lt;- this.personPosition.X - this.PersonMoveSpeed
        &lt;span style="color:blue"&gt;if &lt;/span&gt;(kb.IsKeyDown(Keys.Right) || gp.DPad.Right = ButtonState.Pressed) &lt;span style="color:blue"&gt;then
            &lt;/span&gt;this.personPosition.X &amp;lt;- this.personPosition.X + this.PersonMoveSpeed
        this.personPosition.X &amp;lt;- 
            MathHelper.Clamp 
            (this.personPosition.X, 
             float32 this.safeBounds.Left, 
             float32 this.safeBounds.Right - float32 this.personTexture.Width)
        &lt;span style="color:blue"&gt;if &lt;/span&gt;this.random.NextDouble () &amp;lt; this.BlockSpawnProb &lt;span style="color:blue"&gt;then
            let &lt;/span&gt;x = this.random.NextDouble() * 
                    float (this.Window.ClientBounds.Width - this.blockTexture.Width)
            this.blockPositions &amp;lt;- 
                Vector2 (float32 x, - float32 this.blockTexture.Height)
                :: this.blockPositions
        this.blockPositions &amp;lt;-
            this.blockPositions.Map 
            (&lt;span style="color:blue"&gt;fun &lt;/span&gt;v &lt;span style="color:blue"&gt;-&amp;gt; &lt;/span&gt;Vector2 (v.X, v.Y + float32 this.BlockFallSpeed))
        &lt;span style="color:blue"&gt;let &lt;/span&gt;personRectangle = 
            Rectangle (int this.personPosition.X, int this.personPosition.Y, 
                       this.personTexture.Width, this.personTexture.Height)
        this.personHit &amp;lt;- 
            List.exists (&lt;span style="color:blue"&gt;fun &lt;/span&gt;(v : Vector2) &lt;span style="color:blue"&gt;-&amp;gt; 
                &lt;/span&gt;personRectangle.Intersects 
                    (Rectangle 
                        (int v.X, int v.Y, 
                         this.blockTexture.Width, 
                         this.blockTexture.Height))) 
                this.blockPositions
        this.blockPositions &amp;lt;-
            this.blockPositions.Filter (&lt;span style="color:blue"&gt;fun &lt;/span&gt;v &lt;span style="color:blue"&gt;-&amp;gt; 
            &lt;/span&gt;v.Y &amp;lt;= float32 this.Window.ClientBounds.Height)
        
    &lt;span style="color:blue"&gt;end &lt;/span&gt;&lt;span style="color:green"&gt;(*class*)
     
&lt;/span&gt;&lt;span style="color:blue"&gt;let &lt;/span&gt;FSharpCalledFromCSharp () =
    &lt;span style="color:blue"&gt;let &lt;/span&gt;game = &lt;span style="color:blue"&gt;new &lt;/span&gt;MyGame()
    game.Run()
    

&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+XNA+from+F%23+and+C%23&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!150.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!150.entry</guid><pubDate>Thu, 13 Dec 2007 19:53:57 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!150/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!150.entry#comment</wfw:comment><dcterms:modified>2007-12-13T19:53:57Z</dcterms:modified></item><item><title>Shoresh Pairs in Hebrew</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!142.entry</link><description>&lt;p&gt;I've noticed plausible &amp;quot;and then&amp;quot; relationships in the meanings of pairs of three-letter roots, or &amp;quot;shoreshim,&amp;quot; in Hebrew. Start with one root, say לקח, and move the last letter to the front, to get another root, חלק. The first root, לקח, means &amp;quot;to take,&amp;quot; and the second root, חלק, means &amp;quot;to divide, split, apportion.&amp;quot; It's plausible to say &amp;quot;take, and then divide,&amp;quot; as with spoils of war. Could there be other pairs of roots connected by the same kind of &amp;quot;consequence&amp;quot; relationship? Another case might be שכח then חשך, &amp;quot;forget&amp;quot; and then &amp;quot;darkness&amp;quot; (the middle letter, כ, changes only its written shape to ך, when it becomes the last letter). For another, consider קשב and בקש, &amp;quot;pay attention&amp;quot; then &amp;quot;request.&amp;quot; 
&lt;p&gt;Could this be a general kind of relationship? Just coincidence? Or real? If so, by design? Ancient? Or newer? If so, by mere drift of meanings? Or reassignment by language authorities? Is there a similar kind of relationship in other Semitic languages, all of which share the three-letter-root system? These are the obvious hypotheses. Many Arabic roots are very close in meaning to Hebrew roots, and it would be interesting to investigate them. Aramaic, Amharic, and Ancient Egyptian all have three-letter-root systems that might be interesting to explore. 
&lt;p&gt;Background:
&lt;p&gt;In all these languages, the great majority of all kinds of words relate directly to a three-letter root, easy to identify knowing just a little grammar, and obviously related in meaning to all the words. For instance, using English letters for a moment, the root KTB generates KATAV, &amp;quot;he wrote,&amp;quot; or &amp;quot;a journalist;&amp;quot; MIKHTAV, &amp;quot;a correspondence or letter;&amp;quot; MIKHTAVAH, &amp;quot;a writing desk;&amp;quot; KATVAH, &amp;quot;a magazine or newspaper article;&amp;quot; KTAV, &amp;quot;handwriting;&amp;quot; KITUV, &amp;quot;caption;&amp;quot; KTUBAH, &amp;quot;marriage contract;&amp;quot; KTOVET, &amp;quot;mailing address;&amp;quot; and several others. The root in Arabic is identical, and many of the derived words are very similar. It is clear that this is a very ancient root. As with all the other languages in its family, the entire Hebrew language flows out from applying patterns of vowels and helper consonants to three-letter roots. 
&lt;p&gt;In the rest of this post, I show a few of these &amp;quot;and then&amp;quot; pairs I found by hand, then the results of a computer search, which turned up a few hundred, some of them very interesting, others very far-fetched. 
&lt;p&gt;First, quick fundamentals. Write Hebrew from right-to-left. The last letter is the leftmost. Moving a letter to the front means moving it all the way to the right. There are 22 letters in the Hebrew alphabet, and 5 of them have &amp;quot;flourishes&amp;quot; at the ends of words. These 5 letters look different when moved to the front, and the new last letter, which is the old middle letter, looks different in the new root if it's one of these 5. Here are the 5 &amp;quot;funny&amp;quot; ones: 
&lt;div align=center&gt;
&lt;table cellspacing=0 cellpadding=2 width=400 align=center border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=156&gt;Name of Letter 
&lt;td valign=top width=109&gt;Final Form 
&lt;td valign=top width=133&gt;Normal Form 
&lt;tr&gt;
&lt;td valign=top width=156&gt;khaf 
&lt;td valign=top width=109&gt;ך 
&lt;td valign=top width=133&gt;כ 
&lt;tr&gt;
&lt;td valign=top width=156&gt;mim 
&lt;td valign=top width=109&gt;ם 
&lt;td valign=top width=133&gt;מ 
&lt;tr&gt;
&lt;td valign=top width=156&gt;nun 
&lt;td valign=top width=109&gt;ן 
&lt;td valign=top width=133&gt;נ 
&lt;tr&gt;
&lt;td valign=top width=156&gt;peh 
&lt;td valign=top width=109&gt;ף 
&lt;td valign=top width=133&gt;פ 
&lt;tr&gt;
&lt;td valign=top width=156&gt;tsadeh 
&lt;td valign=top width=109&gt;ץ 
&lt;td valign=top width=133&gt;צ&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Referring to this table, see that לחץ becomes צלח: &amp;quot;push, or press&amp;quot; and then &amp;quot;succeed.&amp;quot; Here is the entire alphabet, just the normal forms. To appreciate the rest of this post, you don't need to know them by heart, you just need to see that I move a letter from the back (the left) to the front (the right), sometimes changing its shape. 
&lt;div align=center&gt;
&lt;table cellspacing=0 cellpadding=2 width=401 align=center border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=150&gt;Approximate Sound 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;English Name 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;Letter 
&lt;tr&gt;
&lt;td valign=top width=150&gt;glottal stop 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;alef 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;א 
&lt;tr&gt;
&lt;td valign=top width=150&gt;B, V 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;bet 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ב 
&lt;tr&gt;
&lt;td valign=top width=150&gt;G, Gh 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;gimel 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ג 
&lt;tr&gt;
&lt;td valign=top width=150&gt;D, Dh 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;dalet 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ד 
&lt;tr&gt;
&lt;td valign=top width=150&gt;H 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;heh 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ה 
&lt;tr&gt;
&lt;td valign=top width=150&gt;W, V 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;vav 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ו 
&lt;tr&gt;
&lt;td valign=top width=150&gt;Z 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;zayin 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ז 
&lt;tr&gt;
&lt;td valign=top width=150&gt;Deep H 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;chet 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ח 
&lt;tr&gt;
&lt;td valign=top width=150&gt;T 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;tet 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ט 
&lt;tr&gt;
&lt;td valign=top width=150&gt;Y 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;yod 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;י 
&lt;tr&gt;
&lt;td valign=top width=150&gt;K, Kh 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;khaf 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;כ 
&lt;tr&gt;
&lt;td valign=top width=150&gt;L 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;lamed 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ל 
&lt;tr&gt;
&lt;td valign=top width=150&gt;M 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;mim 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;מ 
&lt;tr&gt;
&lt;td valign=top width=150&gt;N 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;nun 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;נ 
&lt;tr&gt;
&lt;td valign=top width=150&gt;S 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;samekh 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ס 
&lt;tr&gt;
&lt;td valign=top width=150&gt;guttural voiced 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;ayin 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ע 
&lt;tr&gt;
&lt;td valign=top width=150&gt;P, F 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;peh 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;פ 
&lt;tr&gt;
&lt;td valign=top width=150&gt;Ts, Tz 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;tsadeh 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;צ 
&lt;tr&gt;
&lt;td valign=top width=150&gt;K, Q 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;quf 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ק 
&lt;tr&gt;
&lt;td valign=top width=150&gt;R 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;resh 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ר 
&lt;tr&gt;
&lt;td valign=top width=150&gt;Sh, S 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;shin 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ש 
&lt;tr&gt;
&lt;td valign=top width=150&gt;T, Th 
&lt;td valign=top width=144&gt;
&lt;p align=center&gt;tav 
&lt;td valign=top width=105&gt;
&lt;p align=center&gt;ת&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Here are the pairs I found by hand, just reading various Hebrew texts: 
&lt;p&gt;  
&lt;div align=center&gt;
&lt;table cellspacing=0 cellpadding=2 width=601 align=center border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=77&gt;
&lt;p align=center&gt;First root 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;Meaning 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;Second Root 
&lt;td valign=top width=92&gt;  
&lt;td valign=top width=182&gt;
&lt;p align=center&gt;Meaning 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;שכח 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;forget 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;חשך 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=182&gt;
&lt;p align=center&gt;darkness 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;פרך 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;curtain 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;כפר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;deny, refuse 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;כלא 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;be in prison 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;אכל 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;eat 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;קשב 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;pay attention 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;בקש 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;request, ask 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;קרב 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;get near 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;בקר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;visit 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;חצר 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;enter courtyard 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;רחץ 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;wash 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;זרע 
&lt;td valign=top width=161&gt;
&lt;p align=center&gt;sow seed 
&lt;td valign=top width=85&gt;
&lt;p align=center&gt;עזר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;
&lt;p align=center&gt;get help 
&lt;tr&gt;
&lt;td valign=top width=78&gt;
&lt;p align=center&gt;לחם 
&lt;td valign=top width=161&gt;bread, war 
&lt;td valign=top width=85&gt;מלח 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;salt 
&lt;tr&gt;
&lt;td valign=top width=78&gt;לקח 
&lt;td valign=top width=161&gt;take 
&lt;td valign=top width=85&gt;חלק 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;divide, split 
&lt;tr&gt;
&lt;td valign=top width=78&gt;רכב 
&lt;td valign=top width=161&gt;ride 
&lt;td valign=top width=85&gt;ברך 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;blessing; knee 
&lt;tr&gt;
&lt;td valign=top width=78&gt;משח 
&lt;td valign=top width=161&gt;dedicate; annoint 
&lt;td valign=top width=85&gt;חמש 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;arm; equip; five 
&lt;tr&gt;
&lt;td valign=top width=78&gt;לחץ 
&lt;td valign=top width=161&gt;press; push 
&lt;td valign=top width=85&gt;צלח 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;succeed 
&lt;tr&gt;
&lt;td valign=top width=78&gt;ברח 
&lt;td valign=top width=161&gt;flee 
&lt;td valign=top width=85&gt;חבר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;make friends 
&lt;tr&gt;
&lt;td valign=top width=78&gt;צבע 
&lt;td valign=top width=161&gt;vote; color 
&lt;td valign=top width=85&gt;עצב 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;grieve 
&lt;tr&gt;
&lt;td valign=top width=78&gt;פרע 
&lt;td valign=top width=161&gt;abandon, refuse 
&lt;td valign=top width=85&gt;עפר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;dust 
&lt;tr&gt;
&lt;td valign=top width=78&gt;שקע 
&lt;td valign=top width=161&gt;sunset 
&lt;td valign=top width=85&gt;עשק 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;robbery 
&lt;tr&gt;
&lt;td valign=top width=78&gt;שפך 
&lt;td valign=top width=161&gt;spill; pour 
&lt;td valign=top width=85&gt;כפש 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=183&gt;trample 
&lt;tr&gt;
&lt;td valign=top width=78&gt;פחד 
&lt;td valign=top width=161&gt;fear 
&lt;td valign=top width=85&gt;דפח 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=184&gt;push and shove 
&lt;tr&gt;
&lt;td valign=top width=78&gt;לבש 
&lt;td valign=top width=161&gt;dress 
&lt;td valign=top width=85&gt;שלב 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=184&gt;go up a level 
&lt;tr&gt;
&lt;td valign=top width=78&gt;פרח 
&lt;td valign=top width=161&gt;bloom; flower 
&lt;td valign=top width=85&gt;חפר 
&lt;td valign=top width=92&gt;and then 
&lt;td valign=top width=184&gt;dig &lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;In the uploaded file are almost four hundred more that I found by computer search. I haven't looked at all of these or evaluated them for plausibility, but this does seem like an interesting thing to &amp;quot;mine.&amp;quot; 
&lt;p&gt;(In the public uploaded files section, called &amp;quot;ShoreshPairs.xls&amp;quot;. 
&lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/etymology" rel=tag&gt;etymology&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Hebrew" rel=tag&gt;Hebrew&lt;/a&gt;,&lt;a href="http://technorati.com/tags/grammar" rel=tag&gt;grammar&lt;/a&gt;,&lt;a href="http://technorati.com/tags/language" rel=tag&gt;language&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Shoresh+Pairs+in+Hebrew&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!142.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!142.entry</guid><pubDate>Mon, 10 Dec 2007 04:47:25 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!142/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!142.entry#comment</wfw:comment><dcterms:modified>2007-12-10T17:49:27Z</dcterms:modified></item><item><title>Digression on Functions</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!140.entry</link><description>&lt;div&gt;A friend of mine asked for some clarity concerning Currying, Partial Evluation, Functions that return functions (higher-order functions) and such things. I've added &amp;quot;Digression On Functions&amp;quot; to my Public Folder above. Take a look and feel free to comment.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Digression+on+Functions&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!140.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!140.entry</guid><pubDate>Sat, 06 Oct 2007 17:32:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!140/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!140.entry#comment</wfw:comment><dcterms:modified>2007-10-06T17:33:10Z</dcterms:modified></item><item><title>New version of SICM in MMA</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!136.entry</link><description>&lt;div&gt;Added some instrumentation so we may watch the solution process (essentially Exercise 1.5, but this was a real workout, requiring me to understand deep details of evaluation order in MMA, rather painfully, but worth it).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Also greatly improved the mathematical preliminaries based on trying to explain the thing to Erik Meijer. Nothing like explaining something to force one to clarify it.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;All in the &amp;quot;Classical Mechanics&amp;quot; folder above.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+New+version+of+SICM+in+MMA&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!136.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!136.entry</guid><pubDate>Fri, 05 Oct 2007 01:42:14 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!136/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!136.entry#comment</wfw:comment><dcterms:modified>2007-10-05T01:42:14Z</dcterms:modified></item><item><title>My SICM uploads</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!127.entry</link><description>&lt;div&gt;In a public folder called &amp;quot;Classical Mechanics,&amp;quot; you will find a PDF file and a Mathematica notebook (*.nb file) containing my first chicken-scratchings about SICM. Get a free notebook reader from &lt;a href="http://www.wolfram.com/products/player/download.cgi"&gt;http://www.wolfram.com/products/player/download.cgi&lt;/a&gt; . &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+My+SICM+uploads&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!127.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!127.entry</guid><pubDate>Tue, 02 Oct 2007 17:39:21 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!127/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!127.entry#comment</wfw:comment><dcterms:modified>2007-10-02T17:39:21Z</dcterms:modified></item><item><title>SICM in Mathematica</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!112.entry</link><description>&lt;div&gt;For some time, I've wanted to work through SICM (Structure and Interpretation of Classical Mechanics -- &lt;a href="http://mitpress.mit.edu/SICM/"&gt;http://mitpress.mit.edu/SICM/&lt;/a&gt;). The book assumes MIT Scheme and scmutils, both free software packages. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Deepest learning comes from working through a whole topic, top to bottom, so I decided not to use their software stack, but to create a fresh software stack using their prose as a guide. I also decided to implement my work in Mathematica, which has lots of mathematical knowledge and visualization capabilities built in. That is ordinary stuff no one should want to reinvent. I've just started with this, but the results are already promising. I've managed to reproduce their numerical results exactly, plus I have some extra symbolic capabilities. I'm going to figure out how to post my results here. &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+SICM+in+Mathematica&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!112.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!112.entry</guid><pubDate>Mon, 01 Oct 2007 23:11:01 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!112/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!112.entry#comment</wfw:comment><dcterms:modified>2007-10-01T23:11:01Z</dcterms:modified></item><item><title>Thinking about migrating here</title><link>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!111.entry</link><description>&lt;div&gt;From &lt;a href="http://lorentzframe.blogspot.com"&gt;http://lorentzframe.blogspot.com&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/brianbec"&gt;http://weblogs.asp.net/brianbec&lt;/a&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Thinking+about+migrating+here&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><comments>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!111.entry#comment</comments><guid isPermaLink="true">http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!111.entry</guid><pubDate>Mon, 01 Oct 2007 22:31:20 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://rebcabin.spaces.live.com/blog/cns!FC69DAB1599E0701!111/comments/feed.rss</wfw:commentRss><wfw:comment>http://rebcabin.spaces.live.com/Blog/cns!FC69DAB1599E0701!111.entry#comment</wfw:comment><dcterms:modified>2007-10-01T22:31:20Z</dcterms:modified></item><item><title>Custom List: Links</title><link>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!113</link><description>&lt;p&gt;Links&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://sourceforge.net&amp;#47;projects&amp;#47;q-lang&amp;#47;"&gt;Q language &amp;#40;eager equational&amp;#41;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.wolfram.com&amp;#47;products&amp;#47;player&amp;#47;download.cgi"&gt;Mathematica Player&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://mitpress.mit.edu&amp;#47;SICM&amp;#47;"&gt;SICM&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://numericalmethods.eng.usf.edu&amp;#47;"&gt;Numerical Methods Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.sci.utah.edu&amp;#47;"&gt;Scientific Computing at Utah&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://sigfpe.blogspot.com&amp;#47;"&gt;SIGFPE&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://channel9.msdn.com&amp;#47;tags&amp;#47;Brian&amp;#43;Beckman"&gt;My Video Interviews&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net&amp;#47;brianbec"&gt;Older Blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://lorentzframe.blogspot.com"&gt;My Last Blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www-sop.inria.fr&amp;#47;geometrica&amp;#47;team&amp;#47;Mariette.Yvinec&amp;#47;Determinants&amp;#47;english.html"&gt;Exact Determinants&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www2.toki.or.id&amp;#47;book&amp;#47;AlgDesignManual&amp;#47;INDEX.HTM"&gt;Algorithm Design Manual&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Custom+List%3a+Links&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><guid isPermaLink="false">cns!FC69DAB1599E0701!113</guid><pubDate>Mon, 05 May 2008 00:49:07 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!113/feed.rss</cf:itemRSS><dcterms:modified>2008-05-05T00:49:07Z</dcterms:modified></item><item><title>Custom List: Publications</title><link>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!193</link><description>&lt;p&gt;Publications&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;647501.728311&amp;#38;coll&amp;#61;GUIDE&amp;#38;dl&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;Protocol Building Blocks for Crypto&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;122538.122546&amp;#38;coll&amp;#61;GUIDE&amp;#38;dl&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;Debugging for HyperCubes and Time Warp&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;37508&amp;#38;dl&amp;#61;GUIDE&amp;#38;coll&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;Time Warp Operating System&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;37499.37508&amp;#38;coll&amp;#61;GUIDE&amp;#38;dl&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;Time Warp Operating System &amp;#40;again&amp;#41;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;62297.62392&amp;#38;coll&amp;#61;GUIDE&amp;#38;dl&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;The status of the time warp operating system&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;research&amp;#47;pubs&amp;#47;view.aspx&amp;#63;type&amp;#61;Technical&amp;#32;Report&amp;#38;id&amp;#61;88&amp;#38;0sr&amp;#61;a"&gt;Breeding Linear Filters&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;research&amp;#47;pubs&amp;#47;view.aspx&amp;#63;type&amp;#61;Technical&amp;#32;Report&amp;#38;id&amp;#61;89&amp;#38;0sr&amp;#61;a"&gt;Comparing WST and Spectral Placement&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;research&amp;#47;pubs&amp;#47;view.aspx&amp;#63;type&amp;#61;Technical&amp;#32;Report&amp;#38;id&amp;#61;86&amp;#38;0sr&amp;#61;a"&gt;Theory of Spectral Graph Layout&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;users&amp;#47;melnik&amp;#47;pub&amp;#47;adonet-industrial_SIGMOD07.pdf&amp;#63;0sr&amp;#61;a"&gt;Anatomy of the ADO.NET Entity Framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I&amp;#39;m on the &amp;#34;ADO.NET team&amp;#34; on the author line, by name in the Acknowledgements.&amp;#10;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;id&amp;#61;122974.125128&amp;#38;coll&amp;#61;GUIDE&amp;#38;dl&amp;#61;GUIDE&amp;#38;CFID&amp;#61;17097369&amp;#38;CFTOKEN&amp;#61;38184945"&gt;Encyclopedia of Software Components&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Early hypertext repository&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://cid-fc69dab1599e0701.skydrive.live.com&amp;#47;self.aspx&amp;#47;Public&amp;#47;a-scheme-for-interactive.pdf"&gt;Scheme for Interactive Graphics&lt;/a&gt;&lt;/p&gt;&lt;p&gt;http&amp;#58;&amp;#47;&amp;#47;citeseer.comp.nus.edu.sg&amp;#47;40491.html&amp;#10;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://citeseer.comp.nus.edu.sg&amp;#47;575757.html"&gt;A Scheme for Little Languages&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Embedded Domain-Specific Languages as opposed to Domain-Specific Languages&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;&amp;#126;emeijer&amp;#47;Papers&amp;#47;PlanXDemo.pdf&amp;#63;0sr&amp;#61;a"&gt;XML Support in Visual Basic&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;&amp;#126;emeijer&amp;#47;Papers&amp;#47;LINQSigmod.pdf&amp;#63;0sr&amp;#61;a"&gt;LINQ&amp;#58; Objects, Relations, XML in .NET&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;towards2020science&amp;#47;background_2020.htm&amp;#63;0sr&amp;#61;a"&gt;2020 Science Report&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://research.microsoft.com&amp;#47;users&amp;#47;emeijer&amp;#47;Papers&amp;#47;XLinq&amp;#32;XML&amp;#32;Programming&amp;#32;Refactored&amp;#32;&amp;#40;The&amp;#32;Return&amp;#32;Of&amp;#32;The&amp;#32;Monoids&amp;#41;.htm&amp;#63;0sr&amp;#61;a"&gt;XML Refactored&amp;#58; return of the Monoids&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.code-magazine.com&amp;#47;Article.aspx&amp;#63;quickid&amp;#61;0712182"&gt;TESLA&amp;#58; Democratizing the Cloud&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.angelfire.com&amp;#47;wa&amp;#47;brianbec&amp;#47;siodffi.html"&gt;Hostile FFI with Scheme&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Dynamically load Win32 DLLs &amp;#40;including kernel-mode&amp;#33;&amp;#41; into Scheme&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Custom+List%3a+Publications&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><guid isPermaLink="false">cns!FC69DAB1599E0701!193</guid><pubDate>Thu, 01 May 2008 16:40:20 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!193/feed.rss</cf:itemRSS><dcterms:modified>2008-05-01T16:40:20Z</dcterms:modified></item><item><title>Custom List: Patents</title><link>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!206</link><description>&lt;p&gt;Patents&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Declarative Impersonation&lt;p&gt;&lt;p&gt;6604198 B1 8&amp;#47;5&amp;#47;03&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Secure Download&lt;p&gt;&lt;p&gt;5978484 11&amp;#47;2&amp;#47;99&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data Layout Optimization&lt;p&gt;&lt;p&gt;6862729 B1 3&amp;#47;1&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Transitive Trust&lt;p&gt;&lt;p&gt;6385724 B1 5&amp;#47;7&amp;#47;02&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Hierarchical Transactions&lt;p&gt;&lt;p&gt;6625602 B1 9&amp;#47;23&amp;#47;03&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data Layout II&lt;p&gt;&lt;p&gt;7013459 3&amp;#47;14&amp;#47;06&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Workflow Language and GUI&lt;p&gt;&lt;p&gt;7184967 2&amp;#47;27&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Crypto Meta Protocol&lt;p&gt;&lt;p&gt;7003480 2&amp;#47;21&amp;#47;06&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;N-Dimensional Coordinate Conversion&lt;p&gt;&lt;p&gt;7&amp;#47;19&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Separable Integration by Higher-Order Programming&lt;p&gt;&lt;p&gt;7&amp;#47;23&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deep Embedding of Programming Languages&lt;p&gt;&lt;p&gt;1&amp;#47;8&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Type Inference and Type-Directed Late Binding&lt;p&gt;&lt;p&gt;9&amp;#47;6&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Tier-Splitting Support for Distributed Computing Environments&lt;p&gt;&lt;p&gt;2&amp;#47;15&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Anonymous Types&lt;p&gt;&lt;p&gt;9&amp;#47;2&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Relaxed and Extended Delegates&lt;p&gt;&lt;p&gt;8&amp;#47;30&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Runtime Code Modification&lt;p&gt;&lt;p&gt;7&amp;#47;19&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Out-of-Band Data Augmentation&lt;p&gt;&lt;p&gt;4&amp;#47;19&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Co-Routines Native to a Virtual Execution Environment&lt;p&gt;&lt;p&gt;1&amp;#47;4&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Pattern-Matching over Structured Literals&lt;p&gt;&lt;p&gt;8&amp;#47;14&amp;#47;06&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Programmable Query Assistance&lt;p&gt;&lt;p&gt;8&amp;#47;30&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Type Extensions&lt;p&gt;&lt;p&gt;8&amp;#47;29&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Relationship Sets&lt;p&gt;&lt;p&gt;8&amp;#47;29&amp;#47;06&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Compositional API and Literal Syntax&lt;p&gt;&lt;p&gt;2&amp;#47;28&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Embedded Multi-Language Programming&lt;p&gt;&lt;p&gt;8&amp;#47;19&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Nullable and Late Binding&lt;p&gt;&lt;p&gt;8&amp;#47;30&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Model for Business Workflow Processes&lt;p&gt;&lt;p&gt;4&amp;#47;28&amp;#47;00&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Transaction Boundaries&lt;p&gt;&lt;p&gt;4&amp;#47;28&amp;#47;00&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Identifier Expressions&lt;p&gt;&lt;p&gt;8&amp;#47;30&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Prefetching in Distributed Computing Environments&lt;p&gt;&lt;p&gt;10&amp;#47;31&amp;#47;07&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Syntax for Members Added Through Metaobject Protocol&lt;p&gt;&lt;p&gt;8&amp;#47;21&amp;#47;06&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Embedding Expressions in XML Literals&lt;p&gt;&lt;p&gt;8&amp;#47;22&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Layout Rules for Whitespace-Sensitive Literals&lt;p&gt;&lt;p&gt;8&amp;#47;11&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data Interfaces&lt;p&gt;&lt;p&gt;8&amp;#47;29&amp;#47;05&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Custom+List%3a+Patents&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><guid isPermaLink="false">cns!FC69DAB1599E0701!206</guid><pubDate>Thu, 21 Feb 2008 00:28:57 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!206/feed.rss</cf:itemRSS><dcterms:modified>2008-02-21T00:28:57Z</dcterms:modified></item><item><title>Custom List: Citations</title><link>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!212</link><description>&lt;p&gt;Citations&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://portal.acm.org&amp;#47;citation.cfm&amp;#63;doid&amp;#61;224401.224724"&gt;O&amp;#40;N&amp;#41; Billiards Simulation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Applications of Time Warp&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-258435048349497599&amp;page=RSS%3a+Custom+List%3a+Citations&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=rebcabin.spaces.live.com&amp;amp;GT1=rebcabin"&gt;</description><guid isPermaLink="false">cns!FC69DAB1599E0701!212</guid><pubDate>Wed, 20 Feb 2008 18:27:01 GMT</pubDate><msn:type>list</msn:type><live:type>list</live:type><live:typelabel>List</live:typelabel><cf:itemRSS>http://rebcabin.spaces.live.com/Lists/cns!FC69DAB1599E0701!212/feed.rss</cf:itemRSS><dcterms:modified>2008-02-20T18:27:01Z</dcterms:modified></item></channel></rss>