<?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>CodeCube.NET</title>
	<atom:link href="http://codecube.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://codecube.net</link>
	<description>Joel Martinez' weblog</description>
	<lastBuildDate>Wed, 16 May 2012 04:27:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Parse an iOS plist on Android</title>
		<link>http://codecube.net/2012/05/parse-an-ios-plist-on-android/</link>
		<comments>http://codecube.net/2012/05/parse-an-ios-plist-on-android/#comments</comments>
		<pubDate>Wed, 16 May 2012 04:16:40 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=547</guid>
		<description><![CDATA[I was implementing a feature in the CalorieCount Android App the other day that was previously implemented in the iOS version of that same app. Just needed to show a list of timezones based on what country was selected. Not rocket science at all, but the iOS implementation was storing the data in a plist [...]]]></description>
			<content:encoded><![CDATA[<p>I was implementing a feature in the <a href="http://caloriecount.about.com/">CalorieCount</a> <a href="https://market.android.com/details?id=com.about.CalorieCount">Android App</a> the other day that was previously implemented in the <a href="http://itunes.apple.com/us/app/calorie-counter-by-caloriecount/id367018196?mt=8">iOS version</a> of that same app. Just needed to show a list of timezones based on what country was selected. Not rocket science at all, but the iOS implementation was storing the data in a plist file, with a &lt;dict&gt; element inside. So rather than take that data and try to translate it to something more &#8216;android specific&#8217; &#8230; I decided to just use the file as is. The biggest benefit was that in the future if we ever had to update the file, I could update it in place, and simply copy it over to the other platform.</p>
<p>So I copied the file into my xml folder, and wrote this simple parser that reads the file in, and parses it into a HashMap</p>
<div id="gist-2655811" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span></div><div class='line' id='LC2'><span class="cp">&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;</span></div><div class='line' id='LC3'><span class="nt">&lt;plist</span> <span class="na">version=</span><span class="s">&quot;1.0&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC4'><span class="nt">&lt;dict&gt;</span></div><div class='line' id='LC5'>	<span class="nt">&lt;key&gt;</span>key1<span class="nt">&lt;/key&gt;</span></div><div class='line' id='LC6'>	<span class="nt">&lt;array&gt;</span></div><div class='line' id='LC7'>		<span class="nt">&lt;string&gt;</span>one<span class="nt">&lt;/string&gt;</span></div><div class='line' id='LC8'>		<span class="nt">&lt;string&gt;</span>two<span class="nt">&lt;/string&gt;</span></div><div class='line' id='LC9'>	<span class="nt">&lt;/array&gt;</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'>	<span class="nt">&lt;key&gt;</span>key2<span class="nt">&lt;/key&gt;</span></div><div class='line' id='LC12'>	<span class="nt">&lt;array&gt;</span></div><div class='line' id='LC13'>		<span class="nt">&lt;string&gt;</span>one<span class="nt">&lt;/string&gt;</span></div><div class='line' id='LC14'>		<span class="nt">&lt;string&gt;</span>two<span class="nt">&lt;/string&gt;</span></div><div class='line' id='LC15'>	<span class="nt">&lt;/array&gt;</span></div><div class='line' id='LC16'><span class="nt">&lt;/dict&gt;</span></div><div class='line' id='LC17'><span class="nt">&lt;/plist&gt;</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2655811/62f2efa5d7885f431f345b04a8d57675eec960fb/sample.plist" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2655811#file_sample.plist" style="float:right;margin-right:10px;color:#666">sample.plist</a>
            <a href="https://gist.github.com/2655811">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="kn">package</span> <span class="n">cyborg</span><span class="o">;</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="kn">import</span> <span class="nn">java.io.IOException</span><span class="o">;</span></div><div class='line' id='LC4'><span class="kn">import</span> <span class="nn">java.util.ArrayList</span><span class="o">;</span></div><div class='line' id='LC5'><span class="kn">import</span> <span class="nn">java.util.HashMap</span><span class="o">;</span></div><div class='line' id='LC6'><br/></div><div class='line' id='LC7'><span class="kn">import</span> <span class="nn">org.xmlpull.v1.XmlPullParser</span><span class="o">;</span></div><div class='line' id='LC8'><span class="kn">import</span> <span class="nn">org.xmlpull.v1.XmlPullParserException</span><span class="o">;</span></div><div class='line' id='LC9'><br/></div><div class='line' id='LC10'><span class="kn">import</span> <span class="nn">android.content.Context</span><span class="o">;</span></div><div class='line' id='LC11'><br/></div><div class='line' id='LC12'><span class="cm">/**</span></div><div class='line' id='LC13'><span class="cm"> * This class parses an iOS plist with a dict element into a hashmap.</span></div><div class='line' id='LC14'><span class="cm"> */</span></div><div class='line' id='LC15'><span class="kd">public</span> <span class="kd">class</span> <span class="nc">XmlMapParser</span> <span class="o">{</span></div><div class='line' id='LC16'>	<span class="kd">private</span> <span class="n">XmlPullParser</span> <span class="n">parser</span><span class="o">;</span></div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'>	<span class="kd">public</span> <span class="nf">XmlMapVisitor</span><span class="o">(</span><span class="n">Context</span> <span class="n">context</span><span class="o">,</span> <span class="kt">int</span> <span class="n">xmlid</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC19'>		<span class="n">parser</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="na">getResources</span><span class="o">().</span><span class="na">getXml</span><span class="o">(</span><span class="n">xmlid</span><span class="o">);</span></div><div class='line' id='LC20'>	<span class="o">}</span></div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'>	<span class="kd">public</span> <span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;&gt;</span> <span class="n">convert</span><span class="o">()</span> <span class="o">{</span></div><div class='line' id='LC23'>		<span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;&gt;</span> <span class="n">map</span> <span class="o">=</span> <span class="k">new</span> <span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;&gt;();</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>		<span class="kd">final</span> <span class="n">String</span> <span class="n">KEY</span> <span class="o">=</span> <span class="s">&quot;key&quot;</span><span class="o">,</span> <span class="n">STRING</span> <span class="o">=</span> <span class="s">&quot;string&quot;</span><span class="o">;</span></div><div class='line' id='LC26'><br/></div><div class='line' id='LC27'>		<span class="k">try</span> <span class="o">{</span></div><div class='line' id='LC28'>			<span class="n">parser</span><span class="o">.</span><span class="na">next</span><span class="o">();</span></div><div class='line' id='LC29'>			<span class="kt">int</span> <span class="n">eventType</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getEventType</span><span class="o">();</span></div><div class='line' id='LC30'>			<span class="n">String</span> <span class="n">lastTag</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span></div><div class='line' id='LC31'>			<span class="n">String</span> <span class="n">lastKey</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>			<span class="k">while</span> <span class="o">(</span><span class="n">eventType</span> <span class="o">!=</span> <span class="n">XmlPullParser</span><span class="o">.</span><span class="na">END_DOCUMENT</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC34'><br/></div><div class='line' id='LC35'>				<span class="k">if</span> <span class="o">(</span><span class="n">eventType</span> <span class="o">==</span> <span class="n">XmlPullParser</span><span class="o">.</span><span class="na">START_TAG</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC36'>					<span class="n">lastTag</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getName</span><span class="o">();</span></div><div class='line' id='LC37'>				<span class="o">}</span> </div><div class='line' id='LC38'>				<span class="k">else</span> <span class="nf">if</span> <span class="o">(</span><span class="n">eventType</span> <span class="o">==</span> <span class="n">XmlPullParser</span><span class="o">.</span><span class="na">TEXT</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC39'>					<span class="c1">// some text</span></div><div class='line' id='LC40'>					<span class="k">if</span> <span class="o">(</span><span class="n">KEY</span><span class="o">.</span><span class="na">equalsIgnoreCase</span><span class="o">(</span><span class="n">lastTag</span><span class="o">))</span> <span class="o">{</span></div><div class='line' id='LC41'>						<span class="c1">// start tracking a new key</span></div><div class='line' id='LC42'>						<span class="n">lastKey</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">getText</span><span class="o">();</span></div><div class='line' id='LC43'>					<span class="o">}</span></div><div class='line' id='LC44'>					<span class="k">else</span> <span class="nf">if</span> <span class="o">(</span><span class="n">STRING</span><span class="o">.</span><span class="na">equalsIgnoreCase</span><span class="o">(</span><span class="n">lastTag</span><span class="o">))</span> <span class="o">{</span></div><div class='line' id='LC45'>						<span class="c1">// a new string for the last encountered key</span></div><div class='line' id='LC46'>						<span class="k">if</span> <span class="o">(!</span><span class="n">map</span><span class="o">.</span><span class="na">containsKey</span><span class="o">(</span><span class="n">lastKey</span><span class="o">))</span> <span class="o">{</span></div><div class='line' id='LC47'>							<span class="n">map</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="n">lastKey</span><span class="o">,</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;());</span></div><div class='line' id='LC48'>						<span class="o">}</span></div><div class='line' id='LC49'><br/></div><div class='line' id='LC50'>						<span class="n">map</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">lastKey</span><span class="o">).</span><span class="na">add</span><span class="o">(</span><span class="n">parser</span><span class="o">.</span><span class="na">getText</span><span class="o">());</span></div><div class='line' id='LC51'>					<span class="o">}</span></div><div class='line' id='LC52'>				<span class="o">}</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'>				<span class="n">eventType</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="na">next</span><span class="o">();</span></div><div class='line' id='LC55'>			<span class="o">}</span></div><div class='line' id='LC56'>		<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">XmlPullParserException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC57'>			<span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span></div><div class='line' id='LC58'>		<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">IOException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span></div><div class='line' id='LC59'>			<span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span></div><div class='line' id='LC60'>		<span class="o">}</span></div><div class='line' id='LC61'><br/></div><div class='line' id='LC62'>		<span class="k">return</span> <span class="n">map</span><span class="o">;</span></div><div class='line' id='LC63'>	<span class="o">}</span></div><div class='line' id='LC64'><span class="o">}</span></div><div class='line' id='LC65'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2655811/a3966addf131f679edd00d91c245f4dde83f4f1b/XmlMapParser.java" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2655811#file_xml_map_parser.java" style="float:right;margin-right:10px;color:#666">XmlMapParser.java</a>
            <a href="https://gist.github.com/2655811">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>The way I look at it, may as well reuse what we&#8217;ve got, and spend less time yak shaving (ie. translating between platforms) &#8230; git &#8216;er done!</p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2012/05/parse-an-ios-plist-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoogleAnalyticsTracker for Windows Phone</title>
		<link>http://codecube.net/2012/02/googleanalyticstracker-for-windows-phone/</link>
		<comments>http://codecube.net/2012/02/googleanalyticstracker-for-windows-phone/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 04:18:04 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=536</guid>
		<description><![CDATA[I&#8217;ve been wanting to add google analytics tracking to the Khan Academy app, but have been putting it off for a while since it looked like the only option was to use the Silverlight Analytics Framework. There&#8217;s so many things wrong with that distribution: Overly complex to support N number of different trackers &#8230; enterprise [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting to add google analytics tracking to the Khan Academy app, but have been putting it off for a while since it looked like the only option was to use the <a href="http://msaf.codeplex.com/">Silverlight Analytics Framework</a>. There&#8217;s so many things wrong with that distribution:</p>
<ul>
<li>Overly complex to support <em>N</em> number of different trackers &#8230; enterprise software at it&#8217;s &#8220;best&#8221;</li>
<li>Binary distribution is only via <a href="http://msaf.codeplex.com/releases/view/80753">MSI installer</a>! seriously, in this day and age, either give me a NuGet package, or at worst just give me the .dlls.</li>
<li>Even though it&#8217;s open source, <a href="http://msaf.codeplex.com/SourceControl/changeset/view/85494">looking through the code</a> is an exercise in futility (see point 1). I considered going in and extracting just the code for GA, but it&#8217;s not even obvious where that is in the codebase &#8230; admittedly, I only browsed around through the online codeplex browser.</li>
</ul>
<p>Thankfully, <a href="http://syndicatex.com/">Justin</a> asked me yesterday about adding GA to his MonoDroid project. I hesitantly pointed him to the MSAF library, but kept searching when I finally came across <a href="http://blog.maartenballiauw.be/">Maarten Balliauw</a>&#8216;s sweet implementation of a <a href="https://github.com/maartenba/GoogleAnalyticsTracker">GoogleAnalyticsTracker for asp.net mvc</a>. He was able to quickly adapt the code for his monodroid project; and because GitHub is awesome, I also forked it and added a new project that lets you build the solution for Windows Phone. You can find it here: <a href="https://github.com/maartenba/GoogleAnalyticsTracker">https://github.com/joelmartinez/GoogleAnalyticsTracker</a></p>
<p>And then sent back a <a href="https://github.com/maartenba/GoogleAnalyticsTracker/pull/3">pull request</a> for the changes <img src='http://codecube.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  That&#8217;s the great thing about open source, done GitHub style. I&#8217;m free to make (and share) the changes I need &#8230; and if they are good enough, they can easily make their way back into the original/main project. Awesome.</p>
<p><em>Edit: Maarten quickly accepted my pull request, and even adjusted the NuGet package to include the windows 7 build. With that, I deleted my fork as I wasn&#8217;t planning on making any additional changes in the immediate future. So you can find the latest here: <a href="https://github.com/maartenba/GoogleAnalyticsTracker">https://github.com/maartenba/GoogleAnalyticsTracker</a><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2012/02/googleanalyticstracker-for-windows-phone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JavaScript Engine for Windows Phone</title>
		<link>http://codecube.net/2011/10/javascript-engine-for-windows-phone/</link>
		<comments>http://codecube.net/2011/10/javascript-engine-for-windows-phone/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 03:43:03 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=517</guid>
		<description><![CDATA[Edit: This is now available on GitHub: https://github.com/joelmartinez/Jint.Phone Did a fun bit of hacking, ported the Jint JavaScript interpereter to Windows Phone 7.5 &#8230; the result is seen below: And when we run that code in a silverlight application: This would also work in XNA games for wp7, so one can imagine scripting scenarios if [...]]]></description>
			<content:encoded><![CDATA[<p><em>Edit: This is now available on GitHub: <a href="https://github.com/joelmartinez/Jint.Phone">https://github.com/joelmartinez/Jint.Phone</a></em></p>
<p>Did a fun bit of hacking, ported the <a href="http://jint.codeplex.com/">Jint JavaScript interpereter</a> to Windows Phone 7.5 &#8230; the result is seen below:</p>
<div id="gist-1283275" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="kt">var</span> <span class="n">engine</span> <span class="p">=</span> <span class="k">new</span> <span class="n">JintEngine</span><span class="p">();</span></div><div class='line' id='LC2'><span class="n">engine</span><span class="p">.</span><span class="n">SetFunction</span><span class="p">(</span><span class="s">&quot;alert&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">Action</span><span class="p">&lt;</span><span class="kt">string</span><span class="p">&gt;(</span><span class="n">t</span> <span class="p">=&gt;</span> <span class="n">MessageBox</span><span class="p">.</span><span class="n">Show</span><span class="p">(</span><span class="n">t</span><span class="p">)));</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="n">engine</span><span class="p">.</span><span class="n">Run</span><span class="p">(</span><span class="s">&quot;alert(&#39;Hello World, from dynamically interpereted JavaScript on WP7!&#39;)&quot;</span><span class="p">);</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1283275/d98d251673babe3dfe036bb119ad3115adac1927/gistfile1.cs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1283275#file_gistfile1.cs" style="float:right;margin-right:10px;color:#666">gistfile1.cs</a>
            <a href="https://gist.github.com/1283275">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>And when we run that code in a silverlight application:</p>
<p style="text-align: center;"><img class="size-full wp-image-524 aligncenter" title="mapped alert method" src="http://codecube.net/wp-content/uploads/2011/10/wp7helloworld.png" alt="mapped alert method" width="473" height="350" /></p>
<p style="text-align: left;">This would also work in XNA games for wp7, so one can imagine scripting scenarios if that&#8217;s your cup of tea. Though it would take more work for this to be supported on the xbox since DynamicMethod is not supported there.</p>
<p style="text-align: left;">I was really happy to see that Windows Phone 7.1 (Mango) brings in support for the DynamicMethod and some of the other Reflection.Emit features. One of my previous projects (<em><a title="New LateBinder" href="http://codecube.net/2008/12/new-latebinder/">New LateBinder</a></em>) showed significant perf benefits to using this over regular old reflection.</p>
<p style="text-align: left;">I had to overcome some quirks due to the slight differences in the compact framework, but after some time I got it all working &#8230; so far all my tests have been successful (though it&#8217;s not to say it&#8217;s all fully working). Many props to the team of developers that did this over at codeplex.</p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/10/javascript-engine-for-windows-phone/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>AI and Machine Learning</title>
		<link>http://codecube.net/2011/10/ai-and-machine-learning/</link>
		<comments>http://codecube.net/2011/10/ai-and-machine-learning/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 09:27:27 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=518</guid>
		<description><![CDATA[Machine Learning and Artificial Intelligence have long been interests of mine. Socially Aware XBox Live Games Finite State Machine nBayes Most recently, I&#8217;ve enrolled for the AI and Machine learning classes being offered by Stanford. I truly feel as if advanced engineering practices such as machine learning and AI are going to be what separates [...]]]></description>
			<content:encoded><![CDATA[<p>Machine Learning and Artificial Intelligence have long been interests of mine.</p>
<ul>
<li><a title="Socially Aware XBox Live Games" href="http://codecube.net/2008/06/socially-aware-xbox-live-games/">Socially Aware XBox Live Games</a></li>
<li><a title="Finite State Machine" href="http://codecube.net/2008/11/finite-state-machine/">Finite State Machine</a></li>
<li><a title="Bayesian Filtering with C#" href="http://codecube.net/2009/05/bayesian-filtering-with-c/">nBayes</a></li>
</ul>
<p>Most recently, I&#8217;ve enrolled for the <a href="http://www.ai-class.com">AI</a> and <a href="http://www.ml-class.org">Machine learning</a> classes being offered by Stanford. I truly feel as if advanced engineering practices such as machine learning and AI are going to be what separates the good companies from the truly great companies over the course of the next decade. So far, these classes have great introductions if you&#8217;ve never been exposed to the fields, and promise to go much deeper.</p>
<p>I&#8217;m very glad that this online education movement, which was legitimized by <a href="http://www.khanacademy.org/">Khan Academy</a> IMO, is gaining momentum. Soon, the whole world will have easy access to even the most advanced topics &#8230; the future will be ours to create, if only we step up to the challenge.</p>
<p>In the meantime, if you&#8217;re interested you should get started by watching the intro lectures, and (at least in the case of the ML Class) installing Octave: <a href="http://www.gnu.org/software/octave/">http://www.gnu.org/software/octave/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/10/ai-and-machine-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R.I.P. Steve Jobs</title>
		<link>http://codecube.net/2011/10/r-i-p-steve-jobs/</link>
		<comments>http://codecube.net/2011/10/r-i-p-steve-jobs/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 13:09:50 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=514</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://apple.com"><img class="size-thumbnail wp-image-515 aligncenter" title="apple" src="http://codecube.net/wp-content/uploads/2011/10/apple-150x150.jpg" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/10/r-i-p-steve-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calorie Count @ NYTM</title>
		<link>http://codecube.net/2011/09/calorie-count-nytm/</link>
		<comments>http://codecube.net/2011/09/calorie-count-nytm/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 13:40:22 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=503</guid>
		<description><![CDATA[This is already a few weeks old, but someone finally uploaded a good video of the presentation that I was a part of at the September New York Tech Meetup. Igor showed off the awesome new voice logging feature that we recently added to the iPhone version of the app (coming soon to the Android [...]]]></description>
			<content:encoded><![CDATA[<p>This is already a few weeks old, but someone finally uploaded a good video of the presentation that I was a part of at the September New York Tech Meetup.</p>
<p><iframe src="http://www.youtube.com/embed/u09hLxTPJxw" frameborder="0" width="560" height="315"></iframe></p>
<p>Igor showed off the awesome new voice logging feature that we recently added to the iPhone version of the app (coming soon to the Android version). Then I manned the keyboard to show off a little hack that we put together that same day. We provisioned a <a href="http://twilio.com">Twilio</a> phone number, and let the user record a little 10 second clip of what they want to log (ie. &#8220;one banana, two cups of coffee&#8221;). We then took that clip and sent it to <a href="http://www.ispeech.org/">iSpeech</a> who transcribed it. And finally we ran the transcribed text through our own API to log it.</p>
<p>Igor asked the crowd to call in the phone number, which they did, and it worked! It was a great experience, and a fun day. Many thanks to Hal Rotholz as well as he was instrumental in getting this hack up and running, in addition to monitoring the server while we were up there <img src='http://codecube.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/09/calorie-count-nytm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conway&#8217;s Game of Life in C#</title>
		<link>http://codecube.net/2011/09/conways-game-of-life-in-c/</link>
		<comments>http://codecube.net/2011/09/conways-game-of-life-in-c/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 03:41:25 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=491</guid>
		<description><![CDATA[I wrote this for fun on the train a while ago, and just came across it again recently. So I figured I may as well post it. The code implements a simple game of life simulation, but the interesting bit is that it parallelizes the process using the TPL. I uploaded it to github as a gist, [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this for fun on the train a while ago, and just came across it again recently. So I figured I may as well post it. The code implements a simple <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" title="Conway's Game of Life in C# on GitHub">game of life</a> simulation, but the interesting bit is that it parallelizes the process using the TPL. I uploaded it to github as a gist, so please feel free to check it out, and see if you can do anything interesting with it <img src='http://codecube.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="gist-1194013" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">using</span> <span class="nn">System</span><span class="p">;</span></div><div class='line' id='LC2'><span class="k">using</span> <span class="nn">System.Threading.Tasks</span><span class="p">;</span></div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'><span class="k">namespace</span> <span class="nn">Life</span></div><div class='line' id='LC5'><span class="p">{</span></div><div class='line' id='LC6'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">class</span> <span class="nc">LifeSimulation</span></div><div class='line' id='LC7'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="kt">bool</span><span class="p">[,]</span> <span class="n">world</span><span class="p">;</span></div><div class='line' id='LC9'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="kt">bool</span><span class="p">[,]</span> <span class="n">nextGeneration</span><span class="p">;</span></div><div class='line' id='LC10'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="n">Task</span> <span class="n">processTask</span><span class="p">;</span></div><div class='line' id='LC11'><br/></div><div class='line' id='LC12'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="nf">LifeSimulation</span><span class="p">(</span><span class="kt">int</span> <span class="n">size</span><span class="p">)</span></div><div class='line' id='LC13'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC14'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="n">size</span> <span class="p">&lt;</span> <span class="m">0</span><span class="p">)</span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentOutOfRangeException</span><span class="p">(</span><span class="s">&quot;Size must be greater than zero&quot;</span><span class="p">);</span></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">Size</span> <span class="p">=</span> <span class="n">size</span><span class="p">;</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">world</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">bool</span><span class="p">[</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">];</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">nextGeneration</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">bool</span><span class="p">[</span><span class="n">size</span><span class="p">,</span> <span class="n">size</span><span class="p">];</span></div><div class='line' id='LC18'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC19'><br/></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="kt">int</span> <span class="n">Size</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">private</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="kt">int</span> <span class="n">Generation</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">private</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC22'><br/></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="n">Action</span><span class="p">&lt;</span><span class="kt">bool</span><span class="p">[,]&gt;</span> <span class="n">NextGenerationCompleted</span><span class="p">;</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="kt">bool</span> <span class="k">this</span><span class="p">[</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">]</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">get</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">];</span> <span class="p">}</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">set</span> <span class="p">{</span> <span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="p">=</span> <span class="k">value</span><span class="p">;</span> <span class="p">}</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC30'><br/></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="kt">bool</span> <span class="nf">ToggleCell</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">)</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">bool</span> <span class="n">currentValue</span> <span class="p">=</span> <span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">];</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="p">=</span> <span class="p">!</span><span class="n">currentValue</span><span class="p">;</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC36'><br/></div><div class='line' id='LC37'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">void</span> <span class="nf">Update</span><span class="p">()</span></div><div class='line' id='LC38'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">!=</span> <span class="k">null</span> <span class="p">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="n">processTask</span><span class="p">.</span><span class="n">IsCompleted</span><span class="p">)</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// when a generation has completed</span></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// now flip the back buffer so we can start processing on the next generation</span></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">var</span> <span class="n">flip</span> <span class="p">=</span> <span class="k">this</span><span class="p">.</span><span class="n">nextGeneration</span><span class="p">;</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">nextGeneration</span> <span class="p">=</span> <span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">;</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">world</span> <span class="p">=</span> <span class="n">flip</span><span class="p">;</span></div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Generation</span><span class="p">++;</span></div><div class='line' id='LC47'><br/></div><div class='line' id='LC48'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// begin the next generation&#39;s processing asynchronously</span></div><div class='line' id='LC49'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">=</span> <span class="k">this</span><span class="p">.</span><span class="n">ProcessGeneration</span><span class="p">();</span></div><div class='line' id='LC50'><br/></div><div class='line' id='LC51'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="n">NextGenerationCompleted</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span> <span class="n">NextGenerationCompleted</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">world</span><span class="p">);</span></div><div class='line' id='LC52'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC53'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC54'><br/></div><div class='line' id='LC55'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">void</span> <span class="nf">BeginGeneration</span><span class="p">()</span></div><div class='line' id='LC56'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC57'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">==</span> <span class="k">null</span> <span class="p">||</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">!=</span> <span class="k">null</span> <span class="p">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="n">processTask</span><span class="p">.</span><span class="n">IsCompleted</span><span class="p">))</span></div><div class='line' id='LC58'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC59'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// only begin the generation if the previous process was completed</span></div><div class='line' id='LC60'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">=</span> <span class="k">this</span><span class="p">.</span><span class="n">ProcessGeneration</span><span class="p">();</span></div><div class='line' id='LC61'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC62'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC63'><br/></div><div class='line' id='LC64'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">void</span> <span class="nf">Wait</span><span class="p">()</span></div><div class='line' id='LC65'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC66'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="n">processTask</span> <span class="p">!=</span> <span class="k">null</span><span class="p">)</span></div><div class='line' id='LC67'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC68'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">this</span><span class="p">.</span><span class="n">processTask</span><span class="p">.</span><span class="n">Wait</span><span class="p">();</span></div><div class='line' id='LC69'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC70'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC71'><br/></div><div class='line' id='LC72'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="n">Task</span> <span class="nf">ProcessGeneration</span><span class="p">()</span></div><div class='line' id='LC73'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC74'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="n">Task</span><span class="p">.</span><span class="n">Factory</span><span class="p">.</span><span class="n">StartNew</span><span class="p">(()</span> <span class="p">=&gt;</span></div><div class='line' id='LC75'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC76'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Parallel</span><span class="p">.</span><span class="n">For</span><span class="p">(</span><span class="m">0</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span> <span class="p">=&gt;</span></div><div class='line' id='LC77'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC78'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Parallel</span><span class="p">.</span><span class="n">For</span><span class="p">(</span><span class="m">0</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">y</span> <span class="p">=&gt;</span></div><div class='line' id='LC79'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC80'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">int</span> <span class="n">numberOfNeighbors</span> <span class="p">=</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC81'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC82'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC83'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="m">1</span><span class="p">,</span> <span class="m">1</span><span class="p">)</span></div><div class='line' id='LC84'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="m">1</span><span class="p">,</span> <span class="m">0</span><span class="p">)</span></div><div class='line' id='LC85'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="m">1</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">)</span></div><div class='line' id='LC86'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">)</span></div><div class='line' id='LC87'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">+</span> <span class="n">IsNeighborAlive</span><span class="p">(</span><span class="n">world</span><span class="p">,</span> <span class="n">Size</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">,</span> <span class="p">-</span><span class="m">1</span><span class="p">);</span></div><div class='line' id='LC88'><br/></div><div class='line' id='LC89'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">bool</span> <span class="n">shouldLive</span> <span class="p">=</span> <span class="k">false</span><span class="p">;</span></div><div class='line' id='LC90'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">bool</span> <span class="n">isAlive</span> <span class="p">=</span> <span class="n">world</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">];</span></div><div class='line' id='LC91'><br/></div><div class='line' id='LC92'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span><span class="n">isAlive</span> <span class="p">&amp;&amp;</span> <span class="p">(</span><span class="n">numberOfNeighbors</span> <span class="p">==</span> <span class="m">2</span> <span class="p">||</span> <span class="n">numberOfNeighbors</span> <span class="p">==</span> <span class="m">3</span><span class="p">))</span></div><div class='line' id='LC93'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC94'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">shouldLive</span> <span class="p">=</span> <span class="k">true</span><span class="p">;</span></div><div class='line' id='LC95'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC96'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span> <span class="nf">if</span> <span class="p">(!</span><span class="n">isAlive</span> <span class="p">&amp;&amp;</span> <span class="n">numberOfNeighbors</span> <span class="p">==</span> <span class="m">3</span><span class="p">)</span> <span class="c1">// zombification</span></div><div class='line' id='LC97'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC98'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">shouldLive</span> <span class="p">=</span> <span class="k">true</span><span class="p">;</span></div><div class='line' id='LC99'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC100'><br/></div><div class='line' id='LC101'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">nextGeneration</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="p">=</span> <span class="n">shouldLive</span><span class="p">;</span></div><div class='line' id='LC102'><br/></div><div class='line' id='LC103'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class='line' id='LC104'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class='line' id='LC105'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">});</span></div><div class='line' id='LC106'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC107'><br/></div><div class='line' id='LC108'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="k">static</span> <span class="kt">int</span> <span class="nf">IsNeighborAlive</span><span class="p">(</span><span class="kt">bool</span><span class="p">[,]</span> <span class="n">world</span><span class="p">,</span> <span class="kt">int</span> <span class="n">size</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">offsetx</span><span class="p">,</span> <span class="kt">int</span> <span class="n">offsety</span><span class="p">)</span></div><div class='line' id='LC109'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC110'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">int</span> <span class="n">result</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span></div><div class='line' id='LC111'><br/></div><div class='line' id='LC112'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">int</span> <span class="n">proposedOffsetX</span> <span class="p">=</span> <span class="n">x</span> <span class="p">+</span> <span class="n">offsetx</span><span class="p">;</span></div><div class='line' id='LC113'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">int</span> <span class="n">proposedOffsetY</span> <span class="p">=</span> <span class="n">y</span> <span class="p">+</span> <span class="n">offsety</span><span class="p">;</span></div><div class='line' id='LC114'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">bool</span> <span class="n">outOfBounds</span> <span class="p">=</span> <span class="n">proposedOffsetX</span> <span class="p">&lt;</span> <span class="m">0</span> <span class="p">||</span> <span class="n">proposedOffsetX</span> <span class="p">&gt;=</span> <span class="n">size</span> <span class="p">|</span> <span class="n">proposedOffsetY</span> <span class="p">&lt;</span> <span class="m">0</span> <span class="p">||</span> <span class="n">proposedOffsetY</span> <span class="p">&gt;=</span> <span class="n">size</span><span class="p">;</span></div><div class='line' id='LC115'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(!</span><span class="n">outOfBounds</span><span class="p">)</span></div><div class='line' id='LC116'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC117'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">result</span> <span class="p">=</span> <span class="n">world</span><span class="p">[</span><span class="n">x</span> <span class="p">+</span> <span class="n">offsetx</span><span class="p">,</span> <span class="n">y</span> <span class="p">+</span> <span class="n">offsety</span><span class="p">]</span> <span class="p">?</span> <span class="m">1</span> <span class="p">:</span> <span class="m">0</span><span class="p">;</span></div><div class='line' id='LC118'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC119'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="n">result</span><span class="p">;</span></div><div class='line' id='LC120'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC121'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC122'><br/></div><div class='line' id='LC123'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">class</span> <span class="nc">Program</span></div><div class='line' id='LC124'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC125'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span></div><div class='line' id='LC126'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC127'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">LifeSimulation</span> <span class="n">sim</span> <span class="p">=</span> <span class="k">new</span> <span class="n">LifeSimulation</span><span class="p">(</span><span class="m">10</span><span class="p">);</span></div><div class='line' id='LC128'><br/></div><div class='line' id='LC129'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// initialize with a blinker</span></div><div class='line' id='LC130'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">ToggleCell</span><span class="p">(</span><span class="m">5</span><span class="p">,</span> <span class="m">5</span><span class="p">);</span></div><div class='line' id='LC131'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">ToggleCell</span><span class="p">(</span><span class="m">5</span><span class="p">,</span> <span class="m">6</span><span class="p">);</span></div><div class='line' id='LC132'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">ToggleCell</span><span class="p">(</span><span class="m">5</span><span class="p">,</span> <span class="m">7</span><span class="p">);</span></div><div class='line' id='LC133'><br/></div><div class='line' id='LC134'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">BeginGeneration</span><span class="p">();</span></div><div class='line' id='LC135'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">Wait</span><span class="p">();</span></div><div class='line' id='LC136'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">OutputBoard</span><span class="p">(</span><span class="n">sim</span><span class="p">);</span></div><div class='line' id='LC137'><br/></div><div class='line' id='LC138'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">Update</span><span class="p">();</span></div><div class='line' id='LC139'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">Wait</span><span class="p">();</span></div><div class='line' id='LC140'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">OutputBoard</span><span class="p">(</span><span class="n">sim</span><span class="p">);</span></div><div class='line' id='LC141'><br/></div><div class='line' id='LC142'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">Update</span><span class="p">();</span></div><div class='line' id='LC143'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">sim</span><span class="p">.</span><span class="n">Wait</span><span class="p">();</span></div><div class='line' id='LC144'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">OutputBoard</span><span class="p">(</span><span class="n">sim</span><span class="p">);</span></div><div class='line' id='LC145'><br/></div><div class='line' id='LC146'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Console</span><span class="p">.</span><span class="n">ReadKey</span><span class="p">();</span></div><div class='line' id='LC147'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC148'><br/></div><div class='line' id='LC149'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">private</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">OutputBoard</span><span class="p">(</span><span class="n">LifeSimulation</span> <span class="n">sim</span><span class="p">)</span></div><div class='line' id='LC150'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC151'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kt">var</span> <span class="n">line</span> <span class="p">=</span> <span class="k">new</span> <span class="n">String</span><span class="p">(</span><span class="sc">&#39;-&#39;</span><span class="p">,</span> <span class="n">sim</span><span class="p">.</span><span class="n">Size</span><span class="p">);</span></div><div class='line' id='LC152'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">line</span><span class="p">);</span></div><div class='line' id='LC153'><br/></div><div class='line' id='LC154'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">y</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">y</span> <span class="p">&lt;</span> <span class="n">sim</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span> <span class="n">y</span><span class="p">++)</span></div><div class='line' id='LC155'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC156'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">x</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">x</span> <span class="p">&lt;</span> <span class="n">sim</span><span class="p">.</span><span class="n">Size</span><span class="p">;</span> <span class="n">x</span><span class="p">++)</span></div><div class='line' id='LC157'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC158'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Console</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="n">sim</span><span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="p">?</span> <span class="s">&quot;1&quot;</span> <span class="p">:</span> <span class="s">&quot;0&quot;</span><span class="p">);</span></div><div class='line' id='LC159'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC160'><br/></div><div class='line' id='LC161'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">();</span></div><div class='line' id='LC162'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC163'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC164'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC165'><span class="p">}</span></div><div class='line' id='LC166'><span class="p">,</span> </div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1194013/950541e727a52043c78df39706248705906195a6/GameOfLife.cs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1194013#file_game_of_life.cs" style="float:right;margin-right:10px;color:#666">GameOfLife.cs</a>
            <a href="https://gist.github.com/1194013">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>The included sample program that uses the &#8216;LifeSimulation&#8217; class initializes the a simple blinker, and then generates and outputs 3 generations.</p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/09/conways-game-of-life-in-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Droids I&#8217;m Looking For</title>
		<link>http://codecube.net/2011/08/the-droids-im-looking-for/</link>
		<comments>http://codecube.net/2011/08/the-droids-im-looking-for/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 03:50:42 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://codecube.net/2011/08/the-droids-im-looking-for/</guid>
		<description><![CDATA[I’m quite excited to reveal that, after 4+ years at my current employer, I’ve decided to accept a new position. The new position is with About.com, working in their Calorie Count business unit on their Android app. The app was recently featured on TechCrunch, covering a new feature which came to the iOS version. I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://market.android.com/details?id=com.about.CalorieCount&amp;feature=search_result"><img style="margin: 0px 8px 0px 0px; display: inline; float: left;" src="https://www.gstatic.com/android/market/com.about.CalorieCount/hi-78-2" alt="Calorie Counter &amp; Diet Tracker" align="left" /></a>I’m quite excited to reveal that, after 4+ years at my current employer, I’ve decided to accept a new position.</p>
<p>The new position is with <a href="http://about.com">About.com</a>, working in their <a href="http://caloriecount.about.com/">Calorie Count</a> business unit on their <a href="https://market.android.com/details?id=com.about.CalorieCount&amp;feature=search_result">Android app</a>. The app was recently <a href="http://techcrunch.com/2011/08/16/about-coms-calorie-count-ios-app-adds-voice-recognition-food-logging-and-more/">featured on TechCrunch</a>, covering a new feature which came to the iOS version. I will be working to bring that feature and others to the Android version.</p>
<p>This is of course a bit of a departure for me, professionally speaking. Having lived most of my professional life working with Microsoft technologies; I see it as a huge opportunity to broaden my horizons, and experience a different perspective. So far, Java hasn&#8217;t been that tough to pick up, and the Android SDK is easy enough to work with.</p>
<p>The team I will be working with has a radically different culture than I’ve seen in many places. For example; Although it’s part of a larger organization, the business unit is run somewhat as a startup. They even meet at <a href="http://nwc.co/">NewWorkCity</a> on Wednesdays just to change things up. This appeals to me a great deal, and I look forward to operating in an environment that eschews traditional corporate processes in favor of getting results.</p>
<p><a href="http://caloriecount.about.com/"><img src="http://ccakamai.about.com/images/elements/logo_cc.png" alt="Calorie Count" /></a></p>
<p>I’ve learned a great deal in the last 5 years. And I’ve come away from the experience with some of the best friends and most trusted colleagues. Also, just because I’ll be doing some Android programming now, I still love XNA, and I still love my Windows Phone … I will probably just have a few extra gadgets on my persons from now on <img class="wlEmoticon wlEmoticon-winkingsmile" style="border-style: none;" src="http://codecube.net/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" alt="Winking smile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/08/the-droids-im-looking-for/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SteamBirds for Windows Phone</title>
		<link>http://codecube.net/2011/08/steambirds-for-windows-phone/</link>
		<comments>http://codecube.net/2011/08/steambirds-for-windows-phone/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 17:00:21 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://codecube.net/2011/08/steambirds-for-windows-phone/</guid>
		<description><![CDATA[Now Available for the Windows Phone Marketplace, SteamBirds: The turn-based aerial combat game that over twelve million people have played! &#34;&#8230;Steambirds lies in wait to rob you of your Monday morning.&#34; &#8211;Penny Arcade Use bombs, missiles and poison gas to defeat enemy planes in this unique turn-based game! This version features improved graphics, new music, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://goo.gl/mf6Dh"><img src="http://image.catalog.zune.net/v3.2/image/83605e47-88f6-4009-b755-d4d2692e15dd?width=200&amp;height=200" /></a></p>
<p>Now Available for the Windows Phone Marketplace, <a href="http://goo.gl/mf6Dh">SteamBirds</a>:</p>
<blockquote><p>The turn-based aerial combat game that over twelve million people have played!     </p>
<p><em>&quot;&#8230;Steambirds lies in wait to rob you of your Monday morning.&quot;</em> &#8211;Penny Arcade      </p>
<p>Use bombs, missiles and poison gas to defeat enemy planes in this unique turn-based game! This version features improved graphics, new music, and local multiplayer mode.</p>
</blockquote>
<p><a href="http://goo.gl/mf6Dh"><img title="Download Udder Chaos for your Windows Phone" alt="" src="http://www.windowsphoneapplist.com/forum/styles/monsmntheme/theme/images/download.png" width="160" height="50" /></a></p>
<p>There’s already a few reviews in the marketplace, my favorite is:</p>
<blockquote><p>OMG!!!!!!! THE Steambirds is out!!! I&#8217;ve <a href="http://steambirds.com/">played this game in flash</a>,now it&#8217;s out for wp7. A must have game for RTS lovers. Runs perfect &amp; smooth [… snip …] 10 out of 5 stars!!!</p>
</blockquote>
<p>As with <a href="http://codecube.net/2011/07/udder-chaos-for-windows-phone/">Udder Chaos</a>, this game was built with <a href="http://www.flatredball.com">FlatRedBall</a>. Many thanks to Vic and the rest of the team involved for the opportunity to work on this game. Lots of exciting things on the horizon <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://codecube.net/wp-content/uploads/2011/08/wlEmoticon-smile.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/08/steambirds-for-windows-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Udder Chaos for Windows Phone</title>
		<link>http://codecube.net/2011/07/udder-chaos-for-windows-phone/</link>
		<comments>http://codecube.net/2011/07/udder-chaos-for-windows-phone/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 13:42:07 +0000</pubDate>
		<dc:creator>Joel Martinez</dc:creator>
				<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://codecube.net/?p=486</guid>
		<description><![CDATA[Now available on the Windows Phone marketplace, Udder Chaos! &#8220;Protect your cows from Alien hordes as they try to abduct your precious livestock. Alien hordes too hard? Upgrade your weapons and gain smart bombs to blow them out of the sky. Includes global leaderboards, endless mode, easier kid-mode, and option to remove ads.&#8221; The trial [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://goo.gl/yw0Ii"><img title="Udder Chaos for WP7" src="http://www.windowsphoneapplist.com/marketplace/images/udder_chaos27179.png" alt="" width="200" height="200" /></a></p>
<p>Now available on the Windows Phone marketplace, <a href="http://goo.gl/yw0Ii">Udder Chaos</a>!</p>
<blockquote><p>&#8220;Protect your cows from Alien hordes as they try to abduct your precious livestock. Alien hordes too hard? Upgrade your weapons and gain smart bombs to blow them out of the sky.</p>
<p>Includes global leaderboards, endless mode, easier kid-mode, and option to remove ads.&#8221;</p></blockquote>
<p>The trial is completely fully featured and ad-supported &#8230; and if you purchase the game, all ads are removed.</p>
<p><a href="zune://navigate?phoneAppID=1d15dc55-2ca0-e011-986b-78e7d1fa76f8"><img class="alignnone" title="Download Udder Chaos for your Windows Phone" src="http://www.windowsphoneapplist.com/forum/styles/monsmntheme/theme/images/download.png" alt="" width="160" height="50" /></a></p>
<p><em>If you&#8217;ve got an XBox 360, you can also <a href="http://goo.gl/g0DfL">download Udder Chaos on the XBox Live Indie Games</a> channel!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codecube.net/2011/07/udder-chaos-for-windows-phone/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

