<?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>Marshall&#039;s Weblog &#187; Programming</title>
	<atom:link href="http://www.mickelson.org/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mickelson.org</link>
	<description>Embiggen Your Mind</description>
	<lastBuildDate>Mon, 25 Jul 2011 20:16:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Science Links of the Week</title>
		<link>http://www.mickelson.org/2007/02/17/science-links-of-the-week/</link>
		<comments>http://www.mickelson.org/2007/02/17/science-links-of-the-week/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 02:44:51 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Math]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2007/02/17/science-links-of-the-week/</guid>
		<description><![CDATA[Programmable Water &#8211; An MIT student creates logic gates that switch with the power of water. NetLogo &#8211; A programmable modeling environment Earth&#8217;s Hum &#8211; Earth&#8217;s Hum is explained by scientists as being caused by waves in the oceans. If (&#8230;)</p><p><a href="http://www.mickelson.org/2007/02/17/science-links-of-the-week/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blikstein.com/paulo/projects/project_water.html">Programmable Water</a> &#8211; An MIT student creates logic gates that switch with the power of water.</p>
<p><a href="http://ccl.northwestern.edu/netlogo/">NetLogo</a> &#8211; A programmable modeling environment</p>
<p><a href="http://environment.newscientist.com/article/dn11190?DCMP=Matt_Sparkes&#038;nsref=earth-hum">Earth&#8217;s Hum</a> &#8211; Earth&#8217;s Hum is explained by scientists as being caused by waves in the oceans. If you haven&#8217;t heard Earth&#8217;s hum, well, that is because you can&#8217;t. Only the most sensitive seismometers can detect them. </p>
<p><a href="http://www.wellingtongrey.net/miscellanea/archive/2007-01-15%20--%20science%20vs%20faith.png">Science vs. Faith</a></p>
<p><a href="http://space.mit.edu/home/tegmark/multiverse.html">The Multiverse</a> &#8211; Parallel Universes as explained by Professor Max Tegmark of MIT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2007/02/17/science-links-of-the-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How NOT to Write Read-Only Properties</title>
		<link>http://www.mickelson.org/2007/01/12/how-not-to-write-read-only-properties/</link>
		<comments>http://www.mickelson.org/2007/01/12/how-not-to-write-read-only-properties/#comments</comments>
		<pubDate>Sat, 13 Jan 2007 02:05:14 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2007/01/12/how-not-to-write-read-only-properties/</guid>
		<description><![CDATA[The other day I spent a good 45 minutes fixing a defect at work. A major portion of the time was spent trying to figure out why an object I was modifying wasn&#8217;t keeping a value for one of it&#8217;s (&#8230;)</p><p><a href="http://www.mickelson.org/2007/01/12/how-not-to-write-read-only-properties/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>The other day I spent a good 45 minutes fixing a defect at work. A major portion of the time was spent trying to figure out why an object I was modifying wasn&#8217;t keeping a value for one of it&#8217;s properties. I threw the debugger into motion, stepping through the code multiple times only to find out that the object, which was declared in another assembly, had a <code>set</code> method that wasn&#8217;t implemented. I went into the source for the assembly in question and saw this ghastly bit of code:</p>
<pre>
public string Caption
{
    get {return mCaption;}
    set {  }
}
</pre>
<p>This &#8220;pattern&#8221; was repeated on multiple properties in the class and on multiple classes in the assembly, so I knew that it wasn&#8217;t a mistake. So examining my simple code:</p>
<pre>
item.Caption = "Account Name";
</pre>
<p>item.Caption was never getting set and the code did not generate a compiler error. Had the Caption property not had the <code>set { }</code> line, my code would have thrown a compile error and I would have saved a good chunk of time debugging such a simple task.</p>
<p>In addition the the example above, there were a few other variations of a mis-implemented read only property, most curious was the following one, which does <strong>not</strong> make the <code>ModifiedDate</code> property read only, despite the presence of the <code>[ReadOnly(true)]</code> attribute, even though in this case, the property should probably should be a read only.</p>
<pre>
[ReadOnly(true)]
public DateTime CreatedDate
{
    get { return mCreatedDate; }
    set { mCreatedDate = value; }
}
</pre>
<p>Now, if you <em>really</em> wanted to make the <code>Caption</code> property read only, please, PLEASE, don&#8217;t write a setter, and don&#8217;t use attributes.</p>
<pre>
public string Caption
{
    get { return mCaption; }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2007/01/12/how-not-to-write-read-only-properties/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Four Fours</title>
		<link>http://www.mickelson.org/2006/12/06/four-fours/</link>
		<comments>http://www.mickelson.org/2006/12/06/four-fours/#comments</comments>
		<pubDate>Thu, 07 Dec 2006 03:21:58 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Math]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/12/06/four-fours/</guid>
		<description><![CDATA[I just found out about a little math game called Four Fours. Basically what you try to do is try to represent integers using only the number 4 and a few common mathematical operators, for example: 0 = 4 &#8211; (&#8230;)</p><p><a href="http://www.mickelson.org/2006/12/06/four-fours/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I just found out about a little math game called <a href="http://en.wikipedia.org/wiki/Four_fours">Four Fours</a>. Basically what you try to do is try to represent integers using only the number 4 and a few common mathematical operators, for example:</p>
<p>0 = 4 &#8211; 4 + 4 &#8211; 4<br />
1 = ( 4 + 4 ) / ( 4 + 4 )<br />
2 = ( 4 * 4 ) / ( 4 + 4 )<br />
&#8230;</p>
<p>There are also solvers out there in <a href="http://www.carljohansen.co.uk/fourfours/fourfours.cs.txt">C#</a> and also in <a href="http://blogs.sun.com/richb/resource/fourfours_rev2.py">Python</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/12/06/four-fours/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Need the Inverse Square Root of a Number, Fast?</title>
		<link>http://www.mickelson.org/2006/12/01/need-the-inverse-square-root-of-a-number-fast/</link>
		<comments>http://www.mickelson.org/2006/12/01/need-the-inverse-square-root-of-a-number-fast/#comments</comments>
		<pubDate>Sat, 02 Dec 2006 05:10:14 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Math]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/12/01/need-the-inverse-square-root-of-a-number-fast/</guid>
		<description><![CDATA[Quake 3 has a the following bit of code to calculate the inverse square of an integer. The i = 0x5f3759df - (i >> 1); is the most curious part of the function, and apparently is has to do with (&#8230;)</p><p><a href="http://www.mickelson.org/2006/12/01/need-the-inverse-square-root-of-a-number-fast/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Quake 3 has a the following bit of code to <a href="http://www.beyond3d.com/articles/fastinvsqrt/">calculate the inverse square of an integer</a>.</p>
<p><img id="image340" src="http://www.mickelson.org/wp-content/uploads/2006/12/InvSqrt.png" alt="InvSqrt()" /></p>
<p>The <code>i = 0x5f3759df - (i >> 1);</code> is the most curious part of the function, and apparently is has to do with <a href="http://en.wikipedia.org/wiki/Newton's_method">Newton&#8217;s Method</a>, which is an efficient way to approximate the roots of a function. </p>
<p><em>( via <a href="http://games.slashdot.org/article.pl?sid=06/12/01/184205">Slashdot</a> )</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/12/01/need-the-inverse-square-root-of-a-number-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Civil Netizen</title>
		<link>http://www.mickelson.org/2006/11/27/civil-netizen/</link>
		<comments>http://www.mickelson.org/2006/11/27/civil-netizen/#comments</comments>
		<pubDate>Tue, 28 Nov 2006 02:42:13 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Linkage]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/11/27/civil-netizen/</guid>
		<description><![CDATA[A while back I had an idea for a web app whereby users would upload files to a server and the app would spit out a download key. Third party&#8217;s could then download the files only if they had the (&#8230;)</p><p><a href="http://www.mickelson.org/2006/11/27/civil-netizen/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>A while back I had an idea for a web app whereby users would upload files to a server and the app would spit out a download key. Third party&#8217;s could then download the files only if they had the proper key. Today, I came across <a href="http://www.civilnetizen.com/">Civil Netizen</a>, a free service which allows you to upload 4 GB worth of files via a desktop app and see who has downloaded the files and when. You can upload groups of files as packages and send a pickup slip to people in an email or an IM.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/11/27/civil-netizen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LOTD</title>
		<link>http://www.mickelson.org/2006/11/13/lotd/</link>
		<comments>http://www.mickelson.org/2006/11/13/lotd/#comments</comments>
		<pubDate>Mon, 13 Nov 2006 17:47:20 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Linkage]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/11/13/lotd/</guid>
		<description><![CDATA[Firebug &#8212; &#8220;FireBug lets you explore the far corners of the DOM by keyboard or mouse. All of the tools you need to poke, prod, and monitor your JavaScript, CSS, HTML and Ajax are brought together into one seamless experience, (&#8230;)</p><p><a href="http://www.mickelson.org/2006/11/13/lotd/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="https://addons.mozilla.org/firefox/1843/">Firebug</a> &#8212; &#8220;FireBug lets you explore the far corners of the DOM by keyboard or mouse. All of the tools you need to poke, prod, and monitor your JavaScript, CSS, HTML and Ajax are brought together into one seamless experience, including a debugger, an error console, command line, and a variety of fun inspectors.&#8221;</p>
<p><a href="http://www.acorns.com.au/hawkeye/">Hawkeye</a> &#8212; Edit .NET UI&#8217;s at runtime!</p>
<p><a href="http://www.hamachi.cc/">LogMeIn Hamachi</a> &#8212; LogMeIn Hamachi is a zero-configuration virtual private networking (VPN) application.<br />
Hamachi is fast, secure and simple. Its core version is also free.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/11/13/lotd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MythMusic, Mac OS X, and iTunes</title>
		<link>http://www.mickelson.org/2006/11/07/mythmusic-mac-os-x-and-itunes/</link>
		<comments>http://www.mickelson.org/2006/11/07/mythmusic-mac-os-x-and-itunes/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 04:02:26 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[MythTv]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/11/07/mythmusic-mac-os-x-and-itunes/</guid>
		<description><![CDATA[Tonight I set out to sync my iTunes library up with MythTV. I have been wanting to create some playlists on the Myth box, but I find the playlist &#8220;editor&#8221; (if you can even call it that) for MythMusic just (&#8230;)</p><p><a href="http://www.mickelson.org/2006/11/07/mythmusic-mac-os-x-and-itunes/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Tonight I set out to sync my iTunes library up with MythTV. I have been wanting to create some playlists on the Myth box, but I find the playlist &#8220;editor&#8221; (if you can even call it that) for MythMusic just a bit kluggy. I found the script that is embedded in <a href="http://simonster.com/mt/archives/000038.html">this post</a> which will take an iTunes xml database file and create corresponding playlists in the MythTV database, but in order to try it out, I needed to update the Music folder on the Myth box with the music on my Powerbook. Enter this <a href="http://www.macosxhints.com/article.php?story=20040927151426616&#038;query=rsync%20itunes">nice tip</a>. I simply mounted the Myth box on the Powerbook, tweaked a few parameters in the <code>rsync</code> command and off it went.</p>
<p><em>Update&#8230;</em><br />
I had to modify the original script for Myth 0.20. You can find my updated script <a href="http://www.mickelson.org/files/scripts/mythtv-itunes.pl">here</a>. (Right click and choose Save As&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/11/07/mythmusic-mac-os-x-and-itunes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bugs</title>
		<link>http://www.mickelson.org/2006/10/12/bugs/</link>
		<comments>http://www.mickelson.org/2006/10/12/bugs/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 02:59:39 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/10/12/bugs/</guid>
		<description><![CDATA[This week I have finally gotten back down into the single digits for defects left to fix. Hurray! Too bad I will be back up into the double digits come tomorrow.]]></description>
			<content:encoded><![CDATA[<p>This week I have finally gotten back down into the single digits for defects left to fix. Hurray!</p>
<p><img id="image323" src="http://www.mickelson.org/wp-content/uploads/2006/10/bugs.png" alt="Bugs" /></p>
<p>Too bad I will be back up into the double digits come tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/10/12/bugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Links for Today</title>
		<link>http://www.mickelson.org/2006/09/14/links-for-today-3/</link>
		<comments>http://www.mickelson.org/2006/09/14/links-for-today-3/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 04:14:05 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Random Linkage]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/09/14/links-for-today-3/</guid>
		<description><![CDATA[Mostly programming links today&#8230; Luke Ravenstahl &#8211; Pittsburg&#8217;s new 26 year old mayor. Magic Numbers &#8211; A history and a list of a few common Magic Numbers. Links uses 0xFEE1DEAD in it&#8217;s reboot() kernel call Changing VS.NET colors &#8211; A (&#8230;)</p><p><a href="http://www.mickelson.org/2006/09/14/links-for-today-3/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Mostly programming links today&#8230;</p>
<ul>
<li><a href="http://www.detnews.com/apps/pbcs.dll/article?AID=/20060914/NATION/609140321/1020">Luke Ravenstahl</a> &#8211; Pittsburg&#8217;s new 26 year old mayor.</li>
<li><a href="http://en.wikipedia.org/wiki/Magic_number_(programming)">Magic Numbers</a> &#8211; A history and a list of a few common Magic Numbers. Links uses 0xFEE1DEAD in it&#8217;s reboot() kernel call</li>
<li><a href="http://www.hanselman.com/blog/ChangingYourColorsInVisualStudioNETBlackVersusWhite.aspx">Changing  VS.NET colors</a> &#8211; A nice discussion ( with screenshots ) about what people have done to tweak what their VS.NET environments look like.</li>
<li><a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=722d7817-b935-4faf-9bf7-fe3e84d463af">VSStyler</a> &#8211; Allows Visual Studio .NET 2003 to load and save font and color settings. (via <a href="http://weblogs.asp.net/infinitiesloop/">Infinaties Loop)</a></li>
<li><a href="http://dotnetkicks.com/">DotNetKicks.com</a> &#8211; A Digg-like site for .NET information.</li>
<li><a href="http://softiesonrails.com/articles/2006/03/02/i-wish-i-was-cool">Vibrant Ink</a> &#8211; A black theme for Visual Studio 2005 based off of a TextMate theme of the same name,</li>
<li><a href="http://www.geekproject.com/tools.aspx#9">Typed Collection Wizard</a> &#8211; A nice little wizard to create Typed-collections for those not fortunate enough to be running .NET 2.0</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/09/14/links-for-today-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New Form of Cryptography</title>
		<link>http://www.mickelson.org/2006/09/14/a-new-form-of-cryptography/</link>
		<comments>http://www.mickelson.org/2006/09/14/a-new-form-of-cryptography/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 03:14:26 +0000</pubDate>
		<dc:creator>Marshall</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.mickelson.org/2006/09/14/a-new-form-of-cryptography/</guid>
		<description><![CDATA[Today I found another really neat webcomic: xkcd.com. I for one am really excited about the new miss-elliot algorithm. Today&#8216;s strip, Commented, took me a few seconds to get. (Hint: Just think of a C++ or C# IDE) Other comics (&#8230;)</p><p><a href="http://www.mickelson.org/2006/09/14/a-new-form-of-cryptography/">Read the rest of this entry &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Today I found another really neat webcomic: <a href="http://www.xkcd.com">xkcd.com</a>. I for one am really excited about the new <a href="http://xkcd.com/c153.html">miss-elliot</a> algorithm. <a href="http://xkcd.com/c156.html">Today</a>&#8216;s strip, <span style="color: green; font-weight: bold;">Commented</span>, took me a few seconds to get. (Hint: Just think of a C++ or C# IDE)</p>
<p>Other comics I visit regularly:</p>
<ul>
<li><a href="http://www.penny-arcade.com/comic">Penny Arcade</a></li>
<li><a href="http://www.qwantz.com/">Dinosaur Comics</a></li>
<li><a href="http://www.homestarrunner.com/">Homestar Runner</a></li>
</ul>
<p>What, if anything, do you all read?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mickelson.org/2006/09/14/a-new-form-of-cryptography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

