<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Applied Games Group Blog : Visual Studio</title><link>http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx</link><description>Tags: Visual Studio</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TrueSkill Through Time</title><link>http://blogs.technet.com/apg/archive/2008/04/05/trueskill-through-time.aspx</link><pubDate>Sat, 05 Apr 2008 15:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3029664</guid><dc:creator>apg</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/apg/comments/3029664.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=3029664</wfw:commentRss><description>&lt;P&gt;In December 2007, we published a &lt;A href="http://books.nips.cc/papers/files/nips20/NIPS2007_0931.ps.gz"&gt;paper&lt;/A&gt; about the application of &lt;A title="TrueSkill Homepage" href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx" mce_href="http://www.research.microsoft.com/mlp/apg/trueskill.aspx"&gt;TrueSkill&lt;/A&gt; to all recorded data of professional and semi-professional Chess play from 1850 to 2006. The dataset can be obtained from &lt;A href="http://www.chessbase.com/shop/product.asp?pid=211&amp;amp;user=&amp;amp;coin="&gt;ChessBase&lt;/A&gt;. We are very happy to be able to release the &lt;A href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/A&gt; source code that performed all these massive computations. A few things to bear in mind when running this code:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The full factor graph has ~30,000,000 factors and ~25,000,000 variables. At this size, the analysis is among the largest applications of (approximate) Bayesian inference to date. Nevertheless, the full message passing schedule allocates no more than 11 GB of memory and is run in under 20 minutes on an Intel Pentium 4 processor. These numbers hold for the adaptive draw margin model run on 3.5 million games.&lt;/LI&gt;
&lt;LI&gt;Due to the huge amount of results (&amp;gt;1,200,000 skills of all players in all their active years) we use SQL server to store the result set. Please let us know if you think a purely text based result output is needed and we will add it.&lt;/LI&gt;
&lt;LI&gt;There is a very interesting, related &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;paper&lt;/A&gt; by Prof. &lt;A href="http://math.bu.edu/people/mg/research/glicko.pdf"&gt;Mark Glickman&lt;/A&gt; which analyses subset of this data (88 top players of all time).&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;The attached ZIP file contains the entire source code which should compile without problems with &lt;A href="http://research.microsoft.com/research/downloads/Details/7ac148a7-149b-4056-aa06-1e6754efd36f/Details.aspx"&gt;F# 1.9.3.14&lt;/A&gt;. You can either load the solution in Visual Studio 2008 or simply run build.bat form the command line - in either case you will end up with a &lt;U&gt;chessanalysis.exe&lt;/U&gt; program or an &lt;U&gt;analysis.exe&lt;/U&gt; program. If you want to try out the application, we included the first 1,000 lines of match outcomes (this is part of the first 5 years of data we have).&lt;/P&gt;
&lt;P mce_keep="true"&gt;As for running the code, here are the parameter switches of the command line application:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-no-safe&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Does not save results predictions (default: off)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-q&amp;nbsp;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Verbosity level off; only works on single runs (default: on)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-N &amp;lt;int&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First N games only (default: ALL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-delta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Maximum deviation in any marginal for convergence (default: 0.01)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mean of prior skill belief (default: 1200)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Standard deviation of prior skill belief (default: 400)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-muD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Mean of prior draw margin belief (default: 300)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-sigmaD &amp;lt;float&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;Standard deviation of prior draw margin belief (default: 100)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-beta &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Standard deviation of performance distr. (default: 600)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauS &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of skill dynamics distr. (default: 40)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-tauD &amp;lt;float&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Standard deviation of draw margin dynamics distr. (default: 10)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;B&gt;-server &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SQL server name for output (default: 'camresapga01')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-prefix &amp;lt;string&amp;gt;&lt;/B&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table name prefix for output (default: 'Result')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-db &amp;lt;string&amp;gt;&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name of the database for output (default: 'ChessBase')&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with two factors for draw&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fixed draw margin with ADF (iterate per year)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-maf2&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Fixed draw margin with pure ADF&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-mv&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable draw margin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-as&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Single run (default)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;B&gt;-am&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model selection&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, a good first test is analysis.exe -no-safe SmallChessBase.csv.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We are very interested to hear your feedback - both on the model, our paper and the F# code.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Following the release of the &lt;A href="http://msdn.microsoft.com/en-us/fsharp/default.aspx" mce_href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;F# September 2008 CTP&lt;/A&gt; we have updated the source code to work with &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=61ad6924-93ad-48dc-8c67-60f7e7803d3c&amp;amp;displaylang=en"&gt;F# 1.9.6.2&lt;/A&gt;. Also, we added one of the new features of F#, namely units-of-measure. Note that one can no longer accidentally pass the variance instead of the standard deviation beceause the former being of type &lt;FONT face="Courier New"&gt;float&amp;lt;ELOPoints^2&amp;gt;&lt;FONT face=Arial&gt;. We have also added full debug support so simply press F5 to experiment with the -no-safe SmallChessBase.csv option mentioned above.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: We removed a reduant schedule creation in the function &lt;EM&gt;FixedDrawMarginADFAnalyse&lt;/EM&gt;. Thanks &lt;A class="" href="http://users.rsise.anu.edu.au/~xzhang/" mce_href="http://users.rsise.anu.edu.au/~xzhang/"&gt;to Henry (Xinhua) Zhang&lt;/A&gt;&amp;nbsp;for pointing out this mistake!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SMALL&gt;Ralf Herbrich &amp;amp; Thore Graepel&lt;/SMALL&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3029664" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/3029664.ashx" length="30784" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.technet.com/apg/archive/tags/Bayesian/default.aspx">Bayesian</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/TrueSkill/default.aspx">TrueSkill</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item><item><title>Silicon Minds Challenge (+ submission sample) </title><link>http://blogs.technet.com/apg/archive/2007/12/23/silicon-minds.aspx</link><pubDate>Sun, 23 Dec 2007 22:47:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2673521</guid><dc:creator>apg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/apg/comments/2673521.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=2673521</wfw:commentRss><description>&lt;P&gt;On the&amp;nbsp;8th December 2007&amp;nbsp;the &lt;A class="" title="Silicon Minds" href="http://www.dreambuildplay.com/main/" mce_href="http://www.dreambuildplay.com/main/"&gt;Silicon Minds challenge&lt;/A&gt;&amp;nbsp;was launched at the &lt;A class="" title=MALAGA href="http://research.microsoft.com/mlp/apg/malaga.aspx" mce_href="http://research.microsoft.com/mlp/apg/malaga.aspx"&gt;Machine Learning and Games&amp;nbsp;workshop&lt;/A&gt;&amp;nbsp;of the &lt;A class="" href="http://nips.cc/" mce_href="http://nips.cc/"&gt;NIPS conference&lt;/A&gt; in the picturesque Canadian ski resort of Whistler. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The challenge is to&amp;nbsp;push the limits of Artificial Intelligence while building a game with &lt;A class="" title="XNA Game Studio 2.0 Getting Started" href="http://creators.xna.com/Education/GettingStarted.aspx" mce_href="http://creators.xna.com/Education/GettingStarted.aspx"&gt;XNA Game Studio 2.0&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;The main prize an opportunity to interview for an internship with &lt;A class="" href="http://research.microsoft.com/cambridge/" mce_href="http://research.microsoft.com/cambridge/"&gt;Microsoft Research Cambridge&lt;/A&gt;, &lt;A class="" title=Rare href="http://www.rareware.com/" mce_href="http://www.rareware.com/"&gt;Rare Ltd&lt;/A&gt; or &lt;A class="" title=Lionhead href="http://www.lionhead.com/" mce_href="http://www.lionhead.com/"&gt;Lionhead Studios&lt;/A&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The&amp;nbsp;submission entry period lasts&amp;nbsp;until the 27th January 2008.&lt;/LI&gt;
&lt;LI&gt;Full details of the competition are available at the&amp;nbsp;DreamBuildPlay&amp;nbsp;website: &lt;A href="http://www.dreambuildplay.com/"&gt;http://www.dreambuildplay.com&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The contest is to be judged on 3 criteria:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Game A.I. (60%)&lt;/SPAN&gt; – Game A.I. will be evaluated based on how it serves the game design, and how it contributes to the game experience. Novelty and originality of the AI is appreciated but not required: a novel use of an existing state-of-the AI method is in itself considered to be innovative. General applicability of the AI concepts/techniques is also valued.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Fun Factor (20%)&lt;/SPAN&gt; – The fun factor will be evaluated based on how the game design creates a positive user experience. This may include how intellectually challenging, relaxing, stimulating or satisfying the game is. A key indicator for the fun factor will be the desire to keep playing.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN class=bold&gt;Production Quality (20%)&lt;/SPAN&gt; – Make your game world as polished as possible and hook your judges with exciting, entertaining action. Production quality will be evaluated based on how seamless the overall game play is, the quality of the assets used, and the structure, readability and level of documentation of the code.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;The submission must include the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Your finished game in .ccgame XNA Creators Club Game Package form.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;The source code and content of your game.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A design summary.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Three screenshots of your finished game.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;To this end over the last week we have been having fun creating a mini-sample submission attached based on the &lt;A class="" title="Board Game Go" href="http://en.wikipedia.org/wiki/Go_%28board_game%29" mce_href="http://en.wikipedia.org/wiki/Go_%28board_game%29"&gt;board game Go&lt;/A&gt; demonstrating:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Using Monte Carlo methods to score&amp;nbsp;the board - thanks to David Stern. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Some&amp;nbsp;well documented source - thanks to Ralf Herbrich. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A sample design&amp;nbsp;summary - thanks to Thore Graepel.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Reused code and graphics - thanks to the &lt;A class="" title="Minjie sample" href="http://creators.xna.com/Headlines/minigames/archive/2007/03/07/Minjie.aspx" mce_href="http://creators.xna.com/Headlines/minigames/archive/2007/03/07/Minjie.aspx"&gt;XNA Minjie board game&amp;nbsp;sample&lt;/A&gt;. &lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Disclaimer: The mini-game sample itself actually uses a rule based AI and should not be seen as an example of AI or&amp;nbsp;game quality - more a sample of documentation quality and&amp;nbsp;the submission files required.&lt;/P&gt;
&lt;P mce_keep="true"&gt;What&amp;nbsp;we do hope is that you will find the sample a useful reference on how to document your code (specifically the XGoLibrary project), how to comment code you have&amp;nbsp;taken from other sources and how to write the design summary.&lt;/P&gt;
&lt;P mce_keep="true"&gt;On coding standards, if you are starting afresh for the competition we suggest you take a look at the MSDN&amp;nbsp;section &lt;A class="" title="Design Guidelines for Class Library Developers" href="http://msdn2.microsoft.com/en-us/library/czefa0ke(VS.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/czefa0ke(VS.71).aspx"&gt;".Net Framework General Reference -&amp;nbsp;Design Guidelines for Class Library Developers"&lt;/A&gt; for guidance. In summary this is what we would like to see in the code:&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Readability chosen over raw performance.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Short understandable classes and functions.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;A consistent &lt;A class="" title="Naming Guidelines" href="http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx"&gt;naming convention&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Good &lt;A class="" title="XML Documentation Comments (C# Programming Guide)" href="http://msdn2.microsoft.com/en-us/library/b2s063f7.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/b2s063f7.aspx"&gt;C# XML&amp;nbsp;comments&lt;/A&gt;.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Don't forget though 60% of the score is based on Game AI... hope you enjoy the contest - we are really looking forward to seeing your submitted games.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Last&amp;nbsp;but not least&amp;nbsp;a quick special thanks to Joaquin Quiñonero Candela for working so hard organising the challenge.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 1&lt;/STRONG&gt;: We have noticed that the PDF still had some review comments; they are removed now. Also, rendering during the scoring was accidently reset to constant black (rather than an alpha value proportional to the expected propability of the territory outcome). Finally, we slightly refined the passing algorithm of the AI: If the human player passes then the AI uses the Monte Carlo scorer to estimate whether or not each piece is already determined in colour up to a probability of at least 80%. If so, the AI passes already.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Update 2&lt;/STRONG&gt;: We have noticed a couple of further bugs and easy improvements that can be made: The rule-based AI would start to fill in own eyes if the eye is either on the side of the board or in one of the four corners. This was not intended and has been fixe now. Also, the Monte Carlo sampling can be sped up significantly by only checking for move validity and "eye-ness" after a random move from the list of empty vertices has been determined. Checking a vertex for being empty is a lot faster than checking if a move is valid on that vertex.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2673521" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/apg/attachment/2673521.ashx" length="3503129" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/apg/archive/tags/Xbox+360/default.aspx">Xbox 360</category><category domain="http://blogs.technet.com/apg/archive/tags/Machine+Learning/default.aspx">Machine Learning</category><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.technet.com/apg/archive/tags/computer+Go/default.aspx">computer Go</category><category domain="http://blogs.technet.com/apg/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.technet.com/apg/archive/tags/Games/default.aspx">Games</category></item><item><title>Schedule Tasks in Windows XP </title><link>http://blogs.technet.com/apg/archive/2006/11/07/schedule-tasks-in-windows-xp.aspx</link><pubDate>Tue, 07 Nov 2006 11:54:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:505644</guid><dc:creator>apg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/apg/comments/505644.aspx</comments><wfw:commentRss>http://blogs.technet.com/apg/commentrss.aspx?PostID=505644</wfw:commentRss><description>&lt;P&gt;We have an F# console app which processes some gigabytes of data over a couple of hours. We wanted to run this on a specific machine daily in the early hours of the morning. The easy answer &lt;A href="http://support.microsoft.com/kb/308569" mce_href="http://support.microsoft.com/kb/308569"&gt;&lt;FONT color=#666699&gt;Windows XP's Scheduled Tasks&lt;/FONT&gt;&lt;/A&gt;. Just click &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Start &amp;gt; All Programs &amp;gt; Accessories &amp;gt; System Tools &amp;gt; Scheduled Tasks&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We also wanted a simple install mechanism for the script, dependencies and to schedule the task. Managing tasks can be automated from the command line with &lt;A href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/schtasks.mspx?mfr=true" mce_href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/schtasks.mspx?mfr=true"&gt;&lt;FONT color=#666699&gt;Schtasks.exe&lt;/FONT&gt;&lt;/A&gt; or a COM interface (see &lt;A href="http://www.codeproject.com/cs/library/taskschedulerlibrary.asp" mce_href="http://www.codeproject.com/cs/library/taskschedulerlibrary.asp"&gt;&lt;FONT color=#666699&gt;this CodeProject article&lt;/FONT&gt;&lt;/A&gt;). The command line option was taken for simplicity. A scheduled task could be created and deleted like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt"&gt;&lt;FONT color=#000000&gt;&amp;gt; Schtasks.exe /Create /TN MorningDewey /TR "c:\windows\explorer.exe &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt"&gt;&lt;A href="http://www.msdewey.com/" mce_href="http://www.msdewey.com/"&gt;&lt;STRONG&gt;&lt;SPAN style="COLOR: #666699; FONT-FAMILY: 'Courier New'"&gt;http://www.msdewey.com&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;" /SC DAILY /ST 09:00:00&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;B&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;gt; Schtasks.exe /Delete /TN MorningDewey&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;When you create the task you may be prompted for your account password. If your task is command line only then you can use the /RU "System" option to run under the system account; this will not work for launching a GUI application. &lt;/P&gt;
&lt;P&gt;The whole solution was packaged up using &lt;A href="http://support.microsoft.com/kb/307353" mce_href="http://support.microsoft.com/kb/307353"&gt;&lt;FONT color=#666699&gt;Visual Studio Setup Project&lt;/FONT&gt;&lt;/A&gt; and a custom installer. The custom installer implements &lt;A href="http://msdn2.microsoft.com/en-us/library/system.configuration.install.installer(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.configuration.install.installer(VS.80).aspx"&gt;&lt;FONT color=#666699&gt;System.Configuration.Install.Installer&lt;/FONT&gt;&lt;/A&gt; with the Install and Uninstall methods invoking Schtasks.exe to create and delete the task respectively. The install directory can be deduced from the assemblypath context parameter:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; installDirectory = &lt;SPAN style="COLOR: teal"&gt;Directory&lt;/SPAN&gt;.GetCurrentDirectory();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Try to get install directory from install assembly path&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Context != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; assemblyPath = &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Context.Parameters[&lt;SPAN style="COLOR: maroon"&gt;"assemblypath"&lt;/SPAN&gt;];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;installDirectory = &lt;SPAN style="COLOR: teal"&gt;Path&lt;/SPAN&gt;.GetDirectoryName(assemblyPath);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; taskPath = &lt;SPAN style="COLOR: teal"&gt;Path&lt;/SPAN&gt;.Combine(installDirectory, taskExecutable);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;I found that if the path to the task had any spaces the task would not execute under the scheduler; the answer was to convert the path to short name using the Win32 method &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getshortpathname.asp" mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getshortpathname.asp"&gt;&lt;FONT color=#666699&gt;GetShortPathName&lt;/FONT&gt;&lt;/A&gt; and &lt;A href="http://www.pinvoke.net/default.aspx/kernel32.GetShortPathName" mce_href="http://www.pinvoke.net/default.aspx/kernel32.GetShortPathName"&gt;&lt;FONT color=#666699&gt;PInvoke&lt;/FONT&gt;&lt;/A&gt;. Finally a method to invoke &lt;A href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/schtasks.mspx?mfr=true" mce_href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/schtasks.mspx?mfr=true"&gt;&lt;FONT color=#666699&gt;Schtasks&lt;/FONT&gt;&lt;/A&gt; using the &lt;A href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.process(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.process(VS.80).aspx"&gt;&lt;FONT color=#666699&gt;System.Diagnostics.Process&lt;/FONT&gt;&lt;/A&gt; class:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; RunCommandLine(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; fileName, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; arguments)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; workingDirectory = &lt;SPAN style="COLOR: teal"&gt;Directory&lt;/SPAN&gt;.GetCurrentDirectory();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;Process&lt;/SPAN&gt; proc = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Process&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;using&lt;/SPAN&gt;(proc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;ProcessStartInfo&lt;/SPAN&gt; info = proc.StartInfo;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.UseShellExecute = &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.RedirectStandardOutput = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.RedirectStandardError = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.CreateNoWindow = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.FileName = fileName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.Arguments = arguments;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;info.WorkingDirectory = workingDirectory;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt;( proc.Start() )&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; output = proc.StandardOutput.ReadToEnd();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;Debug&lt;/SPAN&gt;.WriteLine(output);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;proc.WaitForExit();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 7pt; FONT-FAMILY: Terminal; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SMALL&gt;&lt;A class="" href="http://research.microsoft.com/~phillipt/" target=_blank mce_href="http://research.microsoft.com/~phillipt/"&gt;Phillip Trelford&lt;/A&gt;&lt;/SMALL&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=505644" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/apg/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.technet.com/apg/archive/tags/Windows+XP/default.aspx">Windows XP</category><category domain="http://blogs.technet.com/apg/archive/tags/Development/default.aspx">Development</category></item></channel></rss>