<?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>The Blog of Justice &#187; Tim</title>
	<atom:link href="http://blog.strafenet.com/category/tim/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.strafenet.com</link>
	<description>Since 2004</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:33:10 +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>How to use dbgsrv, the Process Server</title>
		<link>http://blog.strafenet.com/2011/04/04/using-dbgsrv-the-process-server/</link>
		<comments>http://blog.strafenet.com/2011/04/04/using-dbgsrv-the-process-server/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 22:59:26 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/?p=1902</guid>
		<description><![CDATA[If you&#8217;ve ever used Debugging Tools for Windows, you&#8217;ve probably used remote debugging. Users of windbg/ntsd are usually familiar with the &#8220;.server&#8221; command and connecting to remote debugging sessions using &#8220;Connect to Remote Session&#8221; in windbg. Knowing this, what good is the dbgsrv utility that comes with the Debugging Tools for Windows? How is it different [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever used <a href="http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx">Debugging Tools for Windows</a>, you&#8217;ve probably used remote debugging. Users of windbg/ntsd are usually familiar with the &#8220;.server&#8221; command and connecting to remote debugging sessions using &#8220;Connect to Remote Session&#8221; in windbg. Knowing this, what good is the dbgsrv utility that comes with the Debugging Tools for Windows? How is it different from a normal remote debugging session?</p>
<p>For anyone familiar with dbgsrv, it is similar in purpose and function to <a href="http://msdn.microsoft.com/en-us/library/xf8k2h6a.aspx">msvsmon, the visual studio remote debugging monitor</a>. Both applications are &#8220;process servers&#8221; for their respective debugging environment. Running dbgsrv on a remote machine allows developers to attach to any process on that machine, or launch processes under the debugger.</p>
<p>Using dbgsrv is slightly mysterious, as the UI for using it is a bit cryptic in WinDbg. I&#8217;m going to run through a few examples to show how useful dbgsrv can be.</p>
<p>To start, we need to get dbgsrv running on the machine you want to debug. Usually, this will be a test computer that you want to debug from your development computer. If you want to follow along the examples, you can use a single machine, although this scenario isn&#8217;t very useful for real world debugging. To start dbgsrv, run it from the command line giving it parameters to pick a transport to use. Usually, tcp is the easiest when not working with domain-joined machines:</p>
<p><code>dbgsrv -t tcp:port=31337</code></p>
<p>If there are no errors, dbgsrv will start silently and start listening for connections. (You may see a firewall dialog at this point). To use the process server from windbg, use the &#8220;Connect to Remote Stub&#8230;&#8221; menu item from the File menu:</p>
<p><img src="http://blog.strafenet.com/wp-content/uploads/2011/04/remoteStub.png" alt="Screenshot of Connect to Remote Stub in Windbg" /></p>
<p>The connection string should match what you&#8217;ve started dbgsrv with. For instance, if dbgsrv is running on my computer named &#8220;timtst&#8221;, I would connect to &#8220;tcp:port=31337,server=timtst&#8221;. After accepting the connection string in this dialog, there will be no indication of failure or success until you actually try to use it. Once the connection string is entered, you can try to attach to a process using File-&gt;Attach to Process, or using F6. If the connection was successful, you will see a list of processes on your test computer, or an error if the connection was not successful.</p>
<p>To use the same functionality in cdb/ntsd, you can use the &#8220;premote&#8221; command line argument. For instance, to use the same dbgsrv instance as in the previous example to attach to process ID 4000, you can use the following command with ntsd:</p>
<p><code>ntsd -premote tcp:port=31337,server=timtst -p 4000</code></p>
<p>Using ntsd also lets you start a process under the debugger through a process server:</p>
<p><code>ntsd -premote tcp:port=31337,server=timtst C:\MyTestApp.exe</code></p>
<p>Note that the path given refers to a path on the remote machine running dbgsrv, not the machine running ntsd. This functionality is not available in windbg.</p>
<p>There is an excellent write-up with more information about dbgsrv at <a href="http://www.nynaeve.net/?p=35">nynaeve.net</a></p>
<p>If you&#8217;ve found this interesting, I highly recommend the book <a href="http://www.amazon.com/gp/product/0321374460/ref=as_li_ss_tl?ie=UTF8&#038;tag=thebloofjus01-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399369&#038;creativeASIN=0321374460">Advanced Windows Debugging</a><img src="http://www.assoc-amazon.com/e/ir?t=thebloofjus01-20&#038;l=as2&#038;o=1&#038;a=0321374460&#038;camp=217145&#038;creative=399369" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 by Daniel Pravat. As one of the most informative books about the Windows Debugging toolset, it has a host of information about dbgsrv and the rest of the tools.</p>
<p><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=thebloofjus01-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=0321374460" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2011/04/04/using-dbgsrv-the-process-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where Do Choices Come From?</title>
		<link>http://blog.strafenet.com/2008/03/20/where-do-choices-come-from/</link>
		<comments>http://blog.strafenet.com/2008/03/20/where-do-choices-come-from/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 05:12:30 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Chris]]></category>
		<category><![CDATA[General/Misc.]]></category>
		<category><![CDATA[Tim]]></category>
		<category><![CDATA[UI Design]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2008/03/20/where-do-choices-come-from/</guid>
		<description><![CDATA[[14:38] Me: http://headrush.typepad.com/photos/uncategorized/2007/04/06/featuritis.jpg [14:38] Gas: lmao [14:38] Gas: funny thing about the downslope [14:39] Gas: the problem is that[sic] the features aren&#8217;t discoverable [14:39] Gas: in my mind though, that&#8217;s a solvable problem [14:39] Gas: the real problem [14:39] Gas: is that the more features you have, the more spread your engineering effort is [14:39] [...]]]></description>
			<content:encoded><![CDATA[<p><span><span style="color: #d35900">[14:38] Me: </span><span><font face="Arial"><span style="font-size: 11px"><a href="http://headrush.typepad.com/photos/uncategorized/2007/04/06/featuritis.jpg" target="_blank">http://<wbr></wbr>headrush<wbr></wbr>.typepad<wbr></wbr>.com/pho<wbr></wbr>tos/unca<wbr></wbr>tegorize<wbr></wbr>d/2007/0<wbr></wbr>4/06/fea<wbr></wbr>turitis.<wbr></wbr>jpg</a></span></font></span><br />
</span><span><span style="color: #0163b3">[14:38] Gas: </span><font lang="EN">lmao</font><br />
</span><span><span style="color: #0163b3">[14:38] Gas: </span><font lang="EN">funny thing about the downslope</font><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">the problem is that[sic] the features aren&#8217;t discoverable</font><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">in my mind though, that&#8217;s a solvable problem</font><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">the real problem</font><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">is that the more features you have, the more spread your engineering effort is</font><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">testing, bugfixes, etc.</font><br />
</span><span><span style="color: #d35900">[14:39] Me: </span><span><font face="Arial"><span style="font-size: 11px">hmm</span></font></span><br />
</span><span><span style="color: #d35900">[14:39] Me: </span><span><font face="Arial"><span style="font-size: 11px">i think they&#8217;re both part of the problem</span></font></span><br />
</span><span><span style="color: #0163b3">[14:39] Gas: </span><font lang="EN">the first problem is an essentially UI problem</font><br />
</span><span><span style="color: #0163b3">[14:40] Gas: </span><font lang="EN">in theory, i think all UI problems can be solved</font><br />
</span><span><span style="color: #d35900">[14:40] Me: </span><span><font face="Arial"><span style="font-size: 11px">why?</span></font></span><br />
</span><span><span style="color: #0163b3">[14:40] Gas: </span><font lang="EN">if a person can explain what they want to do, and assuming that feature exists, then a person should be able to explain to a computer what they want to do</font><br />
</span><span><span style="color: #0163b3">[14:40] Gas: </span><font lang="EN">this is of course at a very theoretical level</font><br />
</span><span><span style="color: #d35900">[14:41] Me: </span><span><font face="Arial"><span style="font-size: 11px">a person can&#8217;t always explain what they want to do</span></font></span><br />
</span><span><span style="color: #0163b3">[14:41] Gas: </span><font lang="EN">that&#8217;s a requirement</font><br />
</span><span><span style="color: #d35900">[14:41] Me: </span><span><font face="Arial"><span style="font-size: 11px">?</span></font></span><br />
</span><span><span style="color: #0163b3">[14:41] Gas: </span><font lang="EN">if they can&#8217;t explain what they want, they aren&#8217;t going to get it no matter what</font><br />
</span><span><span style="color: #0163b3">[14:41] Gas: </span><font lang="EN">so it doesn&#8217;t matter whether the feature exists or not</font><br />
</span><span><span style="color: #0163b3">[14:42] Gas: </span><font lang="EN">unless we know what they&#8217;re going to want and tell them what they want</font><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">it&#8217;s like a menu</span></font></span><br />
</span><span><span style="color: #0163b3">[14:42] Gas: </span><font lang="EN">feature != menu item though</font><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">i may want duck a la&#8217;range</span></font></span><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">but not know what i want</span></font></span><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">infinite features are possible in a restaurant</span></font></span><br />
</span><span><span style="color: #0163b3">[14:42] Gas: </span><font lang="EN">duck a la&#8217;range?</font><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">idk</span></font></span><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">it was in a sbemail</span></font></span><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">i forget which</span></font></span><br />
</span><span><span style="color: #0163b3">[14:42] Gas: </span><font lang="EN">lol</font><br />
</span><span><span style="color: #d35900">[14:42] Me: </span><span><font face="Arial"><span style="font-size: 11px">anyways</span></font></span><br />
</span><span><span style="color: #d35900">[14:43] Me: </span><span><font face="Arial"><span style="font-size: 11px">i could tell the chefs what i want and how it should be made</span></font></span><br />
</span><span><span style="color: #d35900">[14:43] Me: </span><span><font face="Arial"><span style="font-size: 11px">but, for whatever reason, that doesn&#8217;t work except for chefs (programmers)</span></font></span><br />
</span><span><span style="color: #d35900">[14:43] Me: </span><span><font face="Arial"><span style="font-size: 11px">alternatively, i could have a menu with every conceivable item</span></font></span><br />
</span><span><span style="color: #d35900">[14:43] Me: </span><span><font face="Arial"><span style="font-size: 11px">but that&#8217;s ridiculous &#8211; the menu would be 1 billion pages</span></font></span><br />
</span><span><span style="color: #d35900">[14:43] Me: </span><span><font face="Arial"><span style="font-size: 11px">so the menu has a limited selection of items</span></font></span><br />
</span><span><span style="color: #d35900">[14:44] Me: </span><span><font face="Arial"><span style="font-size: 11px">and makes it easier for me to find something i want</span></font></span><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">that&#8217;s an interesting analogy</font><br />
</span><span><span style="color: #d35900">[14:44] Me: </span><span><font face="Arial"><span style="font-size: 11px">it may not be perfect</span></font></span><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">but</font><br />
</span><span><span style="color: #d35900">[14:44] Me: </span><span><font face="Arial"><span style="font-size: 11px">but it&#8217;s something i like</span></font></span><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">here&#8217;s another analogy</font><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">that manages to bind the two</font><br />
</span><span><span style="color: #d35900">[14:44] Me: </span><span><font face="Arial"><span style="font-size: 11px">ooooooooooh</span></font></span><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">so you know that gas station</font><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">that serves the food</font><br />
</span><span><span style="color: #0163b3">[14:44] Gas: </span><font lang="EN">what&#8217;s it called?</font><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">sheetz</span></font></span><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">thanks</font><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">yeah</font><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">sheetz goes one step closer to being a chef</font><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">rather than a menu</font><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">sheetz&#8230;.umm, sheetz has a menu</span></font></span><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">and there&#8217;s no reason it has to be a physical menu being displayed</font><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">i&#8217;ve been there</span></font></span><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">the menu is just a touch screen</span></font></span><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">and instead of asking you if you want pepper</span></font></span><br />
</span><span><span style="color: #0163b3">[14:45] Gas: </span><font lang="EN">yes, and everything is customizable</font><br />
</span><span><span style="color: #d35900">[14:45] Me: </span><span><font face="Arial"><span style="font-size: 11px">there&#8217;s a pepper checkbox</span></font></span><br />
</span><span><span style="color: #d35900">[14:46] Me: </span><span><font face="Arial"><span style="font-size: 11px">that&#8217;s all</span></font></span><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">ok</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">now extend that one step further</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">no explicit menu</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">but a voice recognition system</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">&#8220;i want a burger with cheese&#8221;</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">adding new features clutters no old features</font><br />
</span><span><span style="color: #0163b3">[14:46] Gas: </span><font lang="EN">it&#8217;s a UI problem</font><br />
</span><span><span style="color: #d35900">[14:46] Me: </span><span><font face="Arial"><span style="font-size: 11px">well</span></font></span><br />
</span><span><span style="color: #d35900">[14:46] Me: </span><span><font face="Arial"><span style="font-size: 11px">your UI model works</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">let me try and explain where it differs</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">lets say i&#8217;m at a restaurant with no menu</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">i tell the waiter i want a burger</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">i can order whatever i want</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">and there&#8217;s no limitation</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">right?</span></font></span><br />
</span><span><span style="color: #d35900">[14:47] Me: </span><span><font face="Arial"><span style="font-size: 11px">but, there IS a limitation</span></font></span><br />
</span><span><span style="color: #d35900">[14:48] Me: </span><span><font face="Arial"><span style="font-size: 11px">where did i come up with this idea of &#8220;burger&#8221;?</span></font></span><br />
</span><span><span style="color: #d35900">[14:48] Me: </span><span><font face="Arial"><span style="font-size: 11px">from my own head, of course</span></font></span><br />
</span><span><span style="color: #d35900">[14:48] Me: </span><span><font face="Arial"><span style="font-size: 11px">so, we&#8217;ve basically moved the set of available actions</span></font></span><br />
</span><span><span style="color: #d35900">[14:48] Me: </span><span><font face="Arial"><span style="font-size: 11px">from a screen, where i don&#8217;t have to remember it</span></font></span><br />
</span><span><span style="color: #d35900">[14:48] Me: </span><span><font face="Arial"><span style="font-size: 11px">to my head, where i do</span></font></span><br />
</span><span><span style="color: #d35900">[14:49] Me: </span><span><font face="Arial"><span style="font-size: 11px">the UI will always be simple, since it only does what i want it to do</span></font></span><br />
</span><span><span style="color: #d35900">[14:49] Me: </span><span><font face="Arial"><span style="font-size: 11px">but i&#8217;m limited by what i know how to want</span></font></span><br />
</span><span><span style="color: #d35900">[14:49] Me: </span><span><font face="Arial"><span style="font-size: 11px"><a href="http://www.bluej.org/mrt/?p=31" target="_blank">http://<wbr></wbr>www.blu<wbr></wbr>e<wbr></wbr>j.org/mr<wbr></wbr>t/?p=31</a></span></font></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2008/03/20/where-do-choices-come-from/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are we all better off with equality?</title>
		<link>http://blog.strafenet.com/2008/01/25/are-we-all-better-off-with-equality/</link>
		<comments>http://blog.strafenet.com/2008/01/25/are-we-all-better-off-with-equality/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 23:48:39 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2008/01/25/are-we-all-better-off-with-equality/</guid>
		<description><![CDATA[Many people argue that the world would be a better place if there was more equality. In the extreme case, equality has become synonomous with &#8220;morality&#8221;. Would we actually be better off if there was more equality? Not necessarily. A recent slate article examines the discrepancy between black and white spending on &#8220;visible goods&#8221; (like [...]]]></description>
			<content:encoded><![CDATA[<p>Many people argue that the world would be a better place if there was more equality. In the extreme case, equality has become synonomous with &#8220;morality&#8221;. Would we actually be better off if there was more equality?</p>
<p>Not necessarily. A <a href="http://www.slate.com/id/2181822">recent slate article</a> examines the discrepancy between black and white spending on &#8220;visible goods&#8221; (like fancy clothes, luxury car, etc). The proposed explanation is that black people tend to live in neighborhoods of other black people of relatively similar income levels (compared to that of white people). The increased spending on visible goods has nothing to do with race, but simply a result of increased tendency for &#8220;signaling&#8221;. The net result of &#8220;signaling&#8221; is that more money is spent on &#8220;visible goods&#8221; and less is spent on health care and education.</p>
<p>Does this mean that equality is bad? Probably not, however it certainly means there are significant unintended consequences that are highly unintuitive.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2008/01/25/are-we-all-better-off-with-equality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A sad day for me</title>
		<link>http://blog.strafenet.com/2008/01/07/a-sad-day-for-me/</link>
		<comments>http://blog.strafenet.com/2008/01/07/a-sad-day-for-me/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 01:23:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Business/The Software Industry]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2008/01/07/a-sad-day-for-me/</guid>
		<description><![CDATA[Bill Gates has spent his last full day at Microsoft, and it&#8217;s sort of sad for me, marking the end of an era. While I&#8217;m sure he will continue to maintain an influence over the company, the days of his pioneering leadership are nearing a close. Bill Gates is my personal hero, which should come [...]]]></description>
			<content:encoded><![CDATA[<p>Bill Gates has spent <a href="http://www.tweakvista.com/Article39218.aspx">his last full day at Microsoft</a>, and it&#8217;s sort of sad for me, marking the end of an era. While I&#8217;m sure he will continue to maintain an influence over the company, the days of his pioneering leadership are nearing a close.</p>
<p>Bill Gates is my personal hero, which should come as no surprise to those who know me as a Kool-Aid drinking fanboy. However, the reason I admire Bill Gates has little to do with Microsoft itself. He exemplifies personal qualities that I admire, including technical breadth, ambition, and commitment to effective philanthropy. I&#8217;m sure Bill has made some mistakes over the years, as many would like to point out, but the way I see it, the best way to judge character is to see if a person really puts his money where his mouth is. Bill delivers, though I suppose that makes his mouth pretty big.</p>
<p>Adios, billg! So long, and thanks for all the fish/DOS/qbasic/etc.</p>
<p>-Tim</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2008/01/07/a-sad-day-for-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE8, the least crappy IE ever</title>
		<link>http://blog.strafenet.com/2007/12/19/ie8-the-least-crappy-ie-ever/</link>
		<comments>http://blog.strafenet.com/2007/12/19/ie8-the-least-crappy-ie-ever/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 01:24:16 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Business/The Software Industry]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2007/12/19/ie8-the-least-crappy-ie-ever/</guid>
		<description><![CDATA[I&#8217;ve been wanting to write about this since I heard this news months ago, and it looks like the curtain has finally been lifted. IE8 passes ACID2!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting to write about this since I heard this news months ago, and it looks like the curtain has finally been lifted.</p>
<p><a href="http://channel9.msdn.com/ShowPost.aspx?PostID=367214#367214">IE8 passes ACID2!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/12/19/ie8-the-least-crappy-ie-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I like the Nintendo Revolution</title>
		<link>http://blog.strafenet.com/2007/11/20/why-i-like-the-nintendo-revolution/</link>
		<comments>http://blog.strafenet.com/2007/11/20/why-i-like-the-nintendo-revolution/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 17:40:42 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[General/Misc.]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2005/12/19/why-i-like-the-nintendo-revolution/</guid>
		<description><![CDATA[This is something I wrote a long time ago (December 19th, 2005) and never hit the &#8220;publish&#8221; button. Everyone is excited about the newest generation of consoles. Microsoft is going all out with XBox 360, and Playstation 3 will doubtless be amazing. The underdog, in this generation of consoles, will be the Nintendo Revolution. Or [...]]]></description>
			<content:encoded><![CDATA[<p>This is something I wrote a long time ago (December 19th, 2005) and never hit the &#8220;publish&#8221; button.</p>
<blockquote><p>Everyone is excited about the newest generation of consoles. Microsoft is going all out with XBox 360, and Playstation 3 will doubtless be amazing. The underdog, in this generation of consoles, will be the Nintendo Revolution. Or will it?</p>
<p>XBox 360 costs $399 (The core system doesnt exist, so dont talk to me about that). Rumor has it that PS3 will cost upwards of $499 (Although I think a price point of $399 will make it much more competitive with XBox). And how much does the Revolution cost? Probably around $150. It&#8217;s no secret that Nintendo doesn&#8217;t want to compete with Sony or Microsoft. Who can blame them? Nintendo follows no one&#8217;s rules but their own. Nintendo is not getting sucked into the console arm&#8217;s race for the most spectacular graphics. It&#8217;s fairly likely that the Nintendo Revolution will have graphics only marginally better than the original XBox.</p>
<p>I still put my money on Nintendo. In fact, I don&#8217;t know for sure whether PS3 will win over 360, or vice versa, but I do know that Nintendo Revolution will do just fine, regardless of what happens to the other consoles.</p>
<p>Nintendo has always been an innovator. This has been the key to their success, and has also been the cause of many laughable failures. They have a philsophy that seems to be willing to try anything. Products such as Virtual Boy, Nintendo DS</p></blockquote>
<p>I can&#8217;t decide if I was psychic, good at picking up industry activity, or if this was obvious. To this day, it&#8217;s hard to find a Wii because every console is sold out.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/11/20/why-i-like-the-nintendo-revolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Next Big Thing</title>
		<link>http://blog.strafenet.com/2007/05/01/the-next-big-thing/</link>
		<comments>http://blog.strafenet.com/2007/05/01/the-next-big-thing/#comments</comments>
		<pubDate>Tue, 01 May 2007 18:51:45 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2007/05/01/the-next-big-thing/</guid>
		<description><![CDATA[There&#8217;s been a buzz lately, and I think it&#8217;s only going to grow. That buzz is RIA, or Rich Internet Applications. Applications like Gmail and Writely have shown that an internet application can be a powerful tool for productivity and collaboration. The problem though, is that the current HTML + AJAX solution simply sucks. Enter [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a buzz lately, and I think it&#8217;s only going to grow. That buzz is RIA, or Rich Internet Applications. Applications like Gmail and Writely have shown that an internet application can be a powerful tool for productivity and collaboration. The problem though, is that the current HTML + AJAX solution simply sucks. Enter the two RIA contenders, <a href="http://www.microsoft.com/silverlight/">Silverlight</a> and <a href="http://labs.adobe.com/wiki/index.php/Apollo">Apollo</a>. These tools are going to make it easy to develop a rich user experience from an internet application.
</p>
<p>For what it&#8217;s worth, my money is on Silverlight. When Microsoft announced that Silverlight applications will use CLR, and that CLR will be available on OSX, my jaw dropped. The ability to write a rich internet application using the amazing power of C# and the Common Language Runtime is amazing, and the fact that this will work on OSX shows that MS is serious about making this a viable platform. On top of this, I&#8217;m sure that there is going to be an extremely intuitive RPC mechanism to interact with ASP.Net webservices (and PHP/Ruby/etc. webservices). The boost in developer productivity is going to have a direct impact on the quality of applications that will be developed in the next few years.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/05/01/the-next-big-thing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copyrights, Licenses, and Money</title>
		<link>http://blog.strafenet.com/2007/04/29/copyrights-licenses-and-money/</link>
		<comments>http://blog.strafenet.com/2007/04/29/copyrights-licenses-and-money/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 16:55:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2007/04/29/copyrights-licenses-and-money/</guid>
		<description><![CDATA[Scott Adams has quickly become one of my favorite bloggers. He recently wrote an article Is Copyright Violation Theft?, which Dare Obasanjo later commented on as well. It&#8217;s always interesting to hear this story from the content producer&#8217;s perspective. Scott Adams makes quite a bit of money from his work, and I believe that it [...]]]></description>
			<content:encoded><![CDATA[<p>Scott Adams has quickly become one of my favorite bloggers. He recently wrote an article <a href="http://dilbertblog.typepad.com/the_dilbert_blog/2007/04/is_copyright_vi.html">Is Copyright Violation Theft?</a>, which Dare Obasanjo later <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=5b77c81e-f25e-4b26-9040-a414cdd137c8">commented on</a> as well. It&#8217;s always interesting to hear this story from the content producer&#8217;s perspective. Scott Adams makes quite a bit of money from his work, and I believe that it should be his right to control distribution of his work. He argues that if he did not have the potential to make a good living from his creative work, he would never have been motivated to do the work in the first place. He understands one of the basic tenets (as explained by <a href="http://gregmankiw.blogspot.com/">Greg Mankiw</a>) of economics: People are motivated by incentives. If Scott could not make money off Dilbert, it&#8217;s unlikely that Dilbert would have ever been created. If people did not have the right to control their creative work, they would be much less motivated to create.
</p>
<p>In my opinion, this view can be equally applied to software. People are motivated to create software through the incentives they get through having control of the intellectual property of the software they create. The incentives are obvious for companies like Google, IBM, and Microsoft. For open source software, however, the incentives are less clear, but are present nonetheless. The <a href="http://www.fsf.org">Free Software Foundation</a>, for instance, vehemently defends the GPL. For them, the incentives may be less financially driven, but the underlying enabler is the ability they have (through US copyright law) to control the distribution and use of their work. I find it interesting that an organization which so strongly defends its own right to control its work is so vehemently <em>against</em> the rights of musicians and authors from protecting their own work. On their sites <a href="http://badvista.fsf.org">badvista.fsf.org</a> and <a href="http://defectivebydesign.org/">defectivebydesign.org</a>, they explain how DRM is an evil technology that prevents you from using your computer. DRM is a technology which allows content producers to specify how they want their work to be used and distributed (and thus protect their rights under US copyright law).
</p>
<p>So this begs the question, is the campaign against DRM a technology issue or an ideological struggle? This is plausibly a technology issue, since DRM technology in its current incarnations pretty much sucks. Then shouldn&#8217;t there be a push to do DRM technology in a technologically sound way? With all the smart people out their working on Linux and related technologies, can&#8217;t we come up with a way to ensure that copyright holders can maintain control of their work in a technologically sound way? But what if this is an ideological struggle? Then it certainly seems as if the FSF is somewhat hypocritical, since it seems to believe it has the right to control its work, but musicians and artists do not.
</p>
<p>My two cents.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/04/29/copyrights-licenses-and-money/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The GPL Virus</title>
		<link>http://blog.strafenet.com/2007/03/22/the-gpl-virus/</link>
		<comments>http://blog.strafenet.com/2007/03/22/the-gpl-virus/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 20:41:05 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2007/03/22/the-gpl-virus/</guid>
		<description><![CDATA[The &#8220;open source war&#8221; is something that I frequently comment on, and as time goes on, I continually grow to understand the implications of this war, and the motivations of those involved. The war is often characterized as a war between the hacker champions of open source software and the draconian closed source overlords. In [...]]]></description>
			<content:encoded><![CDATA[<p>The &#8220;open source war&#8221; is something that I frequently comment on, and as time goes on, I continually grow to understand the implications of this war, and the motivations of those involved. The war is often characterized as a war between the hacker champions of open source software and the draconian closed source overlords. In reality, this is not a war of open vs. closed at all.
</p>
<p>Logically, there are three positions you can have on open source and closed source software. If you have an opinion on the issue at all, it must be that 1) All software should be open, 2) Some software should be open, and some should be closed, or 3) All software should be closed. However, I have never met a programmer who believes that all software should be closed. Even at Microsoft, the supposed bastion of closed-source software, the developers regularly release open source code, in the form of documentation, utilities, samples, and a multitude of projects on <a href="http://www.codeplex.com/">codeplex</a>. So in reality, this is a war between the belief that all software should be open source, and the belief that <em>some</em> software should be open source.
</p>
<p>The belief that all software should be open source is championed by <a href="http://en.wikipedia.org/wiki/Richard_stallman">Richard M Stallman</a>. He asserts that proprietary closed-source software is unethical and immoral, and this sentiment is reflected in the terms of the GPL. Specifically, the GPL specifies that <a href="http://www.gnu.org/licenses/gpl.html">all derivative works must also be released under the GPL</a>. This means that if I release any software that is based on GPL software, I must also release my software under a GPL compatible license. The GPL spreads to every work that it touches, irrevocably and irreversibly. Sound familiar? That&#8217;s because my description could just have easily been that of a virus. The GPL is a virus that attempts to enforce its view of the world on everyone it touches. When I worked for IBM (one of those supposed champions of open source), we were not even allowed to <em>look</em> at GPL code for fear of our own code becoming tainted.
</p>
<p>Is software really free if I can&#8217;t even look at it for fear of legal repercussions? Stallmanites would likely argue that IBM is morally obligated to release their software under an open source license anyway, so why is it such a problem? The problem is that without an economic incentive, the software would never get developed, and the only business model that has been shown to be viable with open source software is the &#8220;support model.&#8221; Under this model, companies release their software for essentially no charge, but then charge their customers for support contracts. Unfortunately, this business model is completely unviable for a huge range of software industries. As an easy example, look at the video game industry. What gamer would pay for a support contract? And there are plenty of other examples where the support model obviously doesn&#8217;t work, especially in the domain of consumer oriented software.
</p>
<p>Anyone who thinks I&#8217;m an &#8220;open-source hater&#8221; should check out my <a href="http://tim.strafenet.com">website</a>; all of my code is released under a public domain license (the only truly Free license). But I need to work for a living, which is why I work for Microsoft. I have a feeling that most people are in the same boat as me. We need to work for a living, and companies need to make money to survive and keep paying us. Not all of us have the ability to support ourselves from <a href="http://en.wikipedia.org/wiki/Richard_Stallman">speakers&#8217; fees and prize money</a>. So while we contribute where we can to support the community, we still plug away at our day jobs. Stop disrespecting us Stallman.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/03/22/the-gpl-virus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UAC is like fine wine</title>
		<link>http://blog.strafenet.com/2007/02/20/uac-is-like-fine-wine/</link>
		<comments>http://blog.strafenet.com/2007/02/20/uac-is-like-fine-wine/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 21:29:34 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Business/The Software Industry]]></category>
		<category><![CDATA[Tim]]></category>

		<guid isPermaLink="false">http://blog.strafenet.com/2007/02/20/uac-is-like-fine-wine/</guid>
		<description><![CDATA[User Account Control, or UAC, is Microsoft&#8217;s solution to the &#8220;Always Admin&#8221; problem in XP. Most unix guys deride Windows XP because it has the user run as root (aka Administrator) by default. Running as Administrator means that if you get infected with spyware/viruses, the whole computer is pretty much infected. The reason for running [...]]]></description>
			<content:encoded><![CDATA[<p>User Account Control, or UAC, is Microsoft&#8217;s solution to the &#8220;Always Admin&#8221; problem in XP. Most unix guys deride Windows XP because it has the user run as root (aka Administrator) by default. Running as Administrator means that if you get infected with spyware/viruses, the whole computer is pretty much infected. The reason for running as administrator by default is historical: Windows 9x had basically no multi-user separation, everyone was an admin. As a result, programs written for Windows 9x assumed they had write privileges to every file on the system, including files in system32 and their own directory in Program Files. If Windows XP suddenly had users running under limited accounts, 99% of windows 9x software would immediately break when run on XP. And unlike Apple, Microsoft makes backwards compatibility one of their most important priorities (for better or worse).</p>
<p>Fast forward about a decade to Windows Vista. Security is (and will forever be) a huge concern in operating system design. Running as administrator is no longer a viable option. However, backward compatibility is just as important as ever before. The solution, in the form of UAC, is to prompt the user every time administrator privileges are required. This allows users to continue to run as administrators, but selectively elevate their privilege level when needed in order to perform administrative tasks (such as installing programs). Every time elevation is required, the screen grays out, forcing the user to select whether they want to approve or deny.</p>
<p>From a user interface perspective, this really kind of stinks. Apple derides UAC in their Mac vs. PC advertisements (which is interesting, since OSX has a similar elevation mechanism I&#8217;m told). The problem is that admin privileges are simply needed too often. You need admin privileges to install applications, change system settings, but also 90% of legacy applications require admin privileges to run properly. Vista alleviates some of this to a certain extent by virtualization of the filesystem and the registry to give legacy applications the illusion of running as Administrator. However, there are plenty of programs that this doesn&#8217;t work for.</p>
<p>Fortunately, this is really a temporary problem. Any application written after the introduction of Vista, even if written to run on XP, will be written with the assumption that &#8220;I am not running as administrator&#8221;. This is fantastic, because new programs will be written to play nice on a limited account, and so will never need to request elevation. In other words, no more UAC prompts!</p>
<p>UAC is like fine wine, it only gets better with age.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.strafenet.com/2007/02/20/uac-is-like-fine-wine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blog.strafenet.com/category/tim/feed/ ) in 0.28448 seconds, on Feb 5th, 2012 at 11:50 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 5th, 2012 at 12:50 pm UTC -->
