<?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 Code Architects</title>
	<atom:link href="http://blogs.thecodearchitects.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.thecodearchitects.com</link>
	<description>Building Better Code</description>
	<lastBuildDate>Tue, 23 Mar 2010 16:51:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MIX 10:  A Brief Overview</title>
		<link>http://blogs.thecodearchitects.com/index.php/2010/03/mix-10-a-brief-overview/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2010/03/mix-10-a-brief-overview/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 16:51:41 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[IE 9]]></category>
		<category><![CDATA[MIX]]></category>
		<category><![CDATA[NUI]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=233</guid>
		<description><![CDATA[For the first time, I attended MIX 10 live in Las Vegas.  The last couple years, I was forced to attend the event from the comfort of my office chair via streaming video.  While this approach works, it lacks the interactive quality of being able to actually converse with the speakers and other attendees.  Most of what I actually learned from the event, came from these interactions.]]></description>
			<content:encoded><![CDATA[<p>For the first time, I attended MIX 10 live in Las Vegas.  The last couple years, I was forced to attend the event from the comfort of my office chair via streaming video.  While this approach works, it lacks the interactive quality of being able to actually converse with the speakers and other attendees.  Most of what I actually learned from the event, came from these interactions.</p>
<p>You can find all the videos from the event <a title="MIX 10 Session Videos" href="http://live.visitmix.com/Videos" target="_blank">here</a>.  I believe each keynote and every session is now available for streaming.  I am currently going through them and watching the ones that I am interested in but couldn&#8217;t attend.</p>
<p>The first keynote was interesting.  The primary focus was <a title="Silverlight 4" href="http://www.silverlight.net/getstarted/silverlight-4/" target="_blank">Silverlight 4</a> and <a title="Windows Phone 7 Series Developer site" href="http://developer.windowsphone.com/windows-phone-7-series/" target="_blank">Windows Phone 7 Series</a>.  The main reason for me being there was together  information on the upcoming release (version 4) of Silverlight so that portion of the keynote was definitely interesting.  I also have to admit that I liked what I saw regarding the phone.  It seems appealing but I am primarily excited about being able to develop apps for it using Silverlight.</p>
<p>The second keynote was not quite as interesting.  I did enjoy Bill Buxton&#8217;s talk about NUI(Natural User Interface) but I wasn&#8217;t overlly joyed or moved by the unveiling of Internet Explorer 9.  I believe the only thing of interest, to me, regarding IE 9 was the announcement that they are pushing and working hard to ensure that the same HTML and code works in IE 9 just as it does in the other browsers.  Basically, they are actually embracing the standards (especially HTML 5) and even going so far as to work with W3C.</p>
<p>I only wanted this first post to be a brief overview so I am going to stop here.  I have written many notes regarding the sessions that I attended and I am working on conducting additional research and compiling all the notes so I can write several related articles.  I am also working on configuring one of my computers with all the RC and beta products I need.  I do want to make a quick note that if you want to do phone development, you need Vista or Windows 7 (XP is not supported).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2010/03/mix-10-a-brief-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on Mass Effect 2</title>
		<link>http://blogs.thecodearchitects.com/index.php/2010/01/thoughts-of-mass-effect-2/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2010/01/thoughts-of-mass-effect-2/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 18:25:33 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Mass Effect 2]]></category>
		<category><![CDATA[PC Games]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=226</guid>
		<description><![CDATA[I am not done with the game so this is just some initial thoughts.  I will also start by saying that I have the PC version.  I tend to gravitate to the PC for games like this as I am more comfortable there (plus I have a machine powerful enough to make it look gorgeous).  I can't think of a BioWare game that I haven't like and I fully enjoyed the first Mass Effect.  The stories are very involved and I like that the choices that are made actually cause a ripple throughout the game.]]></description>
			<content:encoded><![CDATA[<p>I am not done with the game so this is just some initial thoughts.  I will also start by saying that I have the PC version.  I tend to gravitate to the PC for games like this as I am more comfortable there (plus I have a machine powerful enough to make it look gorgeous).  I can&#8217;t think of a BioWare game that I haven&#8217;t like and I fully enjoyed the first Mass Effect.  The stories are very involved and I like that the choices that are made actually cause a ripple throughout the game.</p>
<p>When I first started Mass Effect 2 I was greeted by a dialog asking me to login to EA.  I did so, as I had an account from DragonAge.  Then the screen froze at a &#8220;Please Wait&#8221; message and I had to kill the process.  I did research and I found it was an issue many people were experiencing.  Eventually, they resolve the issue and I was able to login.  I could have bypassed it but I wanted to get the free content (as I had purchased the Deluxe edition via Steam).  After a little download time I had all the extras and I was ready to play.</p>
<p>I wasn&#8217;t sure what &#8220;type&#8221; of character I wanted to play this time around.  I was pleased to learn that I could import my character from the first game, which I did.  I thought this would give me a completely different start then starting the game without the import, allowing me a little extra replay value.  It isn&#8217;t a direct import but your imported stats are used to give bonuses and somewhat influence your character for Mass Effect 2.  It is stated that choices that were made (such as any party members who died) would be carried over as well.  I don&#8217;t know to what extent but I feel that adds a potential interesting twist to playing from an import.</p>
<p>Once I got the character generation all wrapped up I started on the prologue.  I was very impressed with the opening story and the graphics as well.  It really pulled me and imeediately had me interested in what was coming next.  The action started immediately as well, which I like.  I also noted that the interface and character interaction was updated between the two versions of the game.  I have to say I like the changes.  Holding LEFT SHIFT freezes the action and displays a menu where actions can be chosen.  Releasing LEFT SHIFT executes those actions.  A very simple and well done approach.  I have made it even better for me by binding one of the extra buttons on my mouse to LEFT SHIFT.</p>
<p>There are other chanegs I have come across.  Many of them are on your new ship.  The ship navigation is differen as is planetary exploration.  I like these improvements as well.  So far I haven&#8217;t had to drive around that annoying little buggy looking for materials, you just scan for them, form your ship, and launch probes to collect.  I think it is a neater approach.  The buggy may still show up but it hasn&#8217;t yet (accept for comming across an older one already on the planet).</p>
<p>All told, it looks gorgeous and the story is great.  I have played through a couple of the main missions (mainly gathering team members) and dealt with some side quests.  I don&#8217;t find the combat or play tedious and the voice acting, story and graphics (as I have said) are fantastic.  I will state that I have noticed a couple over sights though.  The biggest is that the game doesn&#8217;t seem to understand what you are wearing.  For some reason, when I am on a base or inside, my character insists on walking around with his space helmet on.  He looks rather like an idiot.  This was a big problem when he ordered a drink at a bar and didn&#8217;t bother removing his helmet as he tilted his head back and took a big gulp.  The armor I was wearing was a bonus set from the Deluxe edition so I don&#8217;t know if this issue occurs for all suits or not.  I think it is only a minor issue but it seems so small and simple that it should have been taken care of.</p>
<blockquote><p>I wanted to add an additional note about the graphical bugs.  I have come across a few more weird scenarios related to it in the game.  Drinking with the helmet on was bad enough but it appears I am too lazy to take the helmet off when kissing as well.  Maybe it is just a fetish that I am unaware of.</p></blockquote>
<p>Even with the minor technical glitches, so far, I really enjoy the game and I am looking forward to playing it more (right after I finish this article and grab some lunch).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2010/01/thoughts-of-mass-effect-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sudoku 2.0 &#8211; The Board</title>
		<link>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-the-board/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-the-board/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 05:59:05 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Sudoku]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=199</guid>
		<description><![CDATA[The sudoku board is a 9 x 9 grid.  Each cell in this grid holds a value as part of the puzzle.  The cells are further grouped into what is called a Minigrid, of which there are 9.  Each mini grid is a smaller 3 x 3 grid of cells (9 total).  In this article, you will learn how to build the Sudoku board in Silverlight using XAML.]]></description>
			<content:encoded><![CDATA[<p>I have finally finished enough work that I can start this article series on Sudoku, again. I apologize for starting it so long ago and never finishing it. As I mentioned in my previous <a title="Introductory Post" href="http://blogs.thecodearchitects.com/?p=194" target="_blank">introductory post</a>, I have learned a lot since the last time I approached this subject.  I am not going to repeat myself by discussing what Sudoku is and how you play it again.  I did this in my original <a title="Original Sudoku Post" href="http://blogs.thecodearchitects.com/?p=60" target="_blank">article</a>.</p>
<p>Ok, I lied.  I will repeat myself briefly because it is important.  The sudoku board is a 9 x 9 grid.  Each cell in this grid holds a value as part of the puzzle.  The cells are further grouped into what is called a Minigrid, of which there are 9.  Each mini grid is a smaller 3 x 3 grid of cells (9 total).</p>
<p>Covering that was important because I used that knowledge to design the board itself.  To keep things straight forward, I used UserControls as their really wasn&#8217;t a need to create a custom Control.  The parent control is the <strong>Board</strong>.  The XAML for the <strong>Board</strong> UserControl can be found below.</p>
<pre class="brush: xml">&lt;UserControl
    x:Class="Sudoku.Board"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Sudoku"
    Width="400" Height="400"&gt;

    &lt;Grid x:Name="LayoutRoot" Background="White" &gt;
        &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition /&gt;
            &lt;ColumnDefinition /&gt;
        &lt;ColumnDefinition /&gt;
        &lt;/Grid.ColumnDefinitions&gt;
        &lt;Grid.RowDefinitions&gt;
            &lt;RowDefinition /&gt;
            &lt;RowDefinition /&gt;
            &lt;RowDefinition /&gt;
        &lt;/Grid.RowDefinitions&gt;
        &lt;Border x:Name="MainBorder" Grid.ColumnSpan="3" Grid.RowSpan="3"  Background="White" BorderBrush="Black" BorderThickness="1" Margin="-1" /&gt;

        &lt;!-- Miini Grids --&gt;
        &lt;local:MiniGrid x:Name="C1R1" Grid.Column="0" Grid.Row="0" /&gt;
        &lt;local:MiniGrid x:Name="C2R1" Grid.Column="1" Grid.Row="0" /&gt;
        &lt;local:MiniGrid x:Name="C3R1" Grid.Column="2" Grid.Row="0" /&gt;
        &lt;local:MiniGrid x:Name="C1R2" Grid.Column="0" Grid.Row="1" /&gt;
        &lt;local:MiniGrid x:Name="C2R2" Grid.Column="1" Grid.Row="1" /&gt;
        &lt;local:MiniGrid x:Name="C3R2" Grid.Column="2" Grid.Row="1" /&gt;
        &lt;local:MiniGrid x:Name="C1R3" Grid.Column="0" Grid.Row="2" /&gt;
        &lt;local:MiniGrid x:Name="C2R3" Grid.Column="1" Grid.Row="2" /&gt;
        &lt;local:MiniGrid x:Name="C3R3" Grid.Column="2" Grid.Row="2" /&gt;

        &lt;!-- Highlighters --&gt;
        &lt;Rectangle x:Name="MiniGridHighlighter" Grid.Column="0" Grid.Row="0" Fill="#FF848484" Opacity=".5" IsHitTestVisible="False" Visibility="Collapsed" /&gt;
    &lt;/Grid&gt;
&lt;/UserControl&gt;</pre>
<p>The Board itself is pretty simple.  It mainly consists of a <strong>Grid</strong> control which has 3 columns and 3 rows.  This grid uses a <strong>Border</strong> to draw a black line around the outside of the board itself.  Each cell in the Grid contains a <strong>MiniGrid</strong> control.  A <strong>MiniGrid</strong> is a user control that I created that represents, well, a mini grid on the board.  Each <strong>MiniGrid</strong> is named after the cell that is in.  For example, the MiniGrid that occupies the first cell on the board (column 1 and row 1) is named &#8220;C1R1&#8243;.  The Rectangle, named <strong>MiniGridHighlighter</strong>, is currently a place holder.  The Board doesn&#8217;t really use this yet.  I created it because I figured I might need a way to highlight the entire minigrid when I start working on the user interaction and game play.</p>
<pre class="brush: xml">&lt;UserControl&gt;
    x:Class="Sudoku.MiniGrid"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Sudoku"
    Height="Auto" Width="Auto"&gt;

    &lt;Grid x:Name="LayoutRoot"&gt;
            &lt;Border Grid.ColumnSpan="3" Grid.RowSpan="3" BorderBrush="Black" BorderThickness="1"&gt;
            &lt;!-- Cell Container --&gt;
            &lt;Grid x:Name="CellLayout"&gt;
                &lt;Grid.ColumnDefinitions&gt;
                    &lt;ColumnDefinition /&gt;
                    &lt;ColumnDefinition /&gt;
                    &lt;ColumnDefinition /&gt;
                &lt;/Grid.ColumnDefinitions&gt;
                &lt;Grid.RowDefinitions&gt;
                    &lt;RowDefinition /&gt;
                    &lt;RowDefinition /&gt;
                    &lt;RowDefinition /&gt;
                &lt;/Grid.RowDefinitions&gt;

                &lt;!-- Cells --&gt;
                &lt;local:Cell x:Name="C1R1" Grid.Column="0" Grid.Row="0" /&gt;
                &lt;local:Cell x:Name="C2R1" Grid.Column="1" Grid.Row="0" /&gt;
                &lt;local:Cell x:Name="C3R1" Grid.Column="2" Grid.Row="0" /&gt;
                &lt;local:Cell x:Name="C1R2" Grid.Column="0" Grid.Row="1" /&gt;
                &lt;local:Cell x:Name="C2R2" Grid.Column="1" Grid.Row="1" /&gt;
                &lt;local:Cell x:Name="C3R2" Grid.Column="2" Grid.Row="1" /&gt;
                &lt;local:Cell x:Name="C1R3" Grid.Column="0" Grid.Row="2" /&gt;
                &lt;local:Cell x:Name="C2R3" Grid.Column="1" Grid.Row="2" /&gt;
                &lt;local:Cell x:Name="C3R3" Grid.Column="2" Grid.Row="2" /&gt;

                &lt;!-- Highlighters --&gt;
                &lt;Rectangle x:Name="ColumnHighlighter" Grid.Column="0" Grid.RowSpan="3" Fill="#FF848484" Opacity=".5" IsHitTestVisible="False" Visibility="Collapsed" /&gt;
                &lt;Rectangle x:Name="RowHighlighter" Grid.ColumnSpan="3" Grid.Row="0" Fill="#FF848484" Opacity=".5" IsHitTestVisible="False" Visibility="Collapsed" /&gt;
            &lt;/Grid&gt;
        &lt;/Border&gt;
    &lt;/Grid&gt;
&lt;/UserControl&gt;</pre>
<p>The <strong>MinGrid</strong> is constructed similar to the <strong>Board</strong>. Everything is contained within a parent <strong>Grid</strong> control. This has a <strong>Border</strong> control and an inner <strong>Grid</strong>. The inner <strong>Grid</strong> control, as with the <strong>Board</strong> control, has 3 columns and 3 rows.  This gives us nine cells total.  Each of these cells contains a <strong>Cell</strong> control.  Each <strong>Cell</strong> is named in the same manner as the <strong>MiniGrid</strong>s were (as discussed above).  The <strong>MiniGrid</strong> also has two <em>highlighter</em> <strong>Rectangle</strong> controls which we may use later.  One is capable of <em>highlighting</em> a row while the other takes care of the column.</p>
<pre class="brush: xml">&lt;UserControl&gt;
    x:Class="Sudoku.Cell"
    xmlns"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="Auto" Width="Auto"&gt;

    &lt;Grid x:Name="LayoutRoot"&gt;
        &lt;Border BorderBrush="Gray" BorderThickness="1" /&gt;
        &lt;TextBlock x:Name="ValueTextBlock" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" FontWeight="Bold" FontSize="24" /&gt;
    &lt;/Grid&gt;

&lt;/UserControl&gt;</pre>
<p>Finally, above, we have the <strong>Cell</strong> itself.  This control is very simple and is made up of a <strong>Grid</strong> that contains a <strong>Border</strong> and a <strong>TextBlock</strong>.  The <strong>TextBlock</strong> is where the actually value for the cell will be displayed.</p>
<p style="text-align: center;">
<div id="attachment_215" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.thecodearchitects.com/wp-content/uploads/2010/01/sudoku-grid.png"><img class="size-medium wp-image-215 " title="Sudoku Board" src="http://blogs.thecodearchitects.com/wp-content/uploads/2010/01/sudoku-grid-300x300.png" alt="" width="300" height="300" /></a><p class="wp-caption-text">Sudoku Board</p></div>
<p>The three user controls, mentioned previously, make up the Sudoku puzzle board, which looks like the image shown above.  At this point there is no interaction but we are ready to fill the board with the actual puzzle (which I will cover in the next article).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-the-board/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recover Lost Password in Windows Server 2008</title>
		<link>http://blogs.thecodearchitects.com/index.php/2010/01/recover-lost-password-in-windows-server-2008/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2010/01/recover-lost-password-in-windows-server-2008/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 23:57:17 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server 2008]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=196</guid>
		<description><![CDATA[Use the PING linux environment to access local windows partition on a server.  This allows you to make the neccessary changes to bypass Windows Server 2008 authentication using the "Ease of Access" feature, in the event that you have lost a password or something is stopping you from logging in to your server.]]></description>
			<content:encoded><![CDATA[<p>I debated whether I was going to even write this article as I didn&#8217;t want people to get the wrong idea.  I decided that since some of the information was already available online and that the information is very useful (when used for good) that I would post this.  I just ask that you use the information for good as well and not for nefarious reasons.  I am not responsible for how this information may be used.</p>
<p>My situation was pretty straight forward.  I haven&#8217;t logged into my domain controller (running Windows Server 2008) in about a month but tried last night.  I was extremely surprised when the password didn&#8217;t work.  I tried every variation I could think of and nothing worked.  I still think that the password was somehow changed or corrupted but I suppose my memory could be failing as well.</p>
<p>In any event, after hours of trying passwords and other avenues, I was not able to get in to the server.  I was rapidly approaching the last resort of having to rebuild the machine.  I was dreading this because the server was running two other virtual servers that I would also have to rebuild from scratch.  Yes, I know I should have had images for all of this (which I am building now) but I didn&#8217;t, so let us move on.</p>
<p>I searched and searched and I just couldn&#8217;t find much of anything that would actually work.  Until this morning, that is.  Before I get into the details I want to credit the <a title="Original post regarding this subject" href="http://www.itsolutionskb.com/2009/01/bypassing-windows-server-2008-password-protection/" target="_blank">article</a> that provided me with the solution to my problem.</p>
<p>The solution is a two stage process.  The first stage is preparation and requires the use of <a title="PING Linux Environment site" href="http://ping.windowsdream.com" target="_blank">PING (Partimage is not ghost)</a> which is a linux environment that can run off of a disc.  You need to download <a title="PING iso image" href="http://ping.windowsdream.com/ping/Releases/3.00.01/PING-3.00.iso " target="_blank">the PING image</a> and burn it to a disc before continuing.</p>
<p>Now that you have the disc ready, here are the steps to follow:</p>
<ol>
<li>Put the disc in your server and boot off of it.  The process to do this differs by server but I am sure you can figure it out (or have done it before).</li>
<li>The PING linux environment will load.</li>
<li>When the environment is fully loaded, you will receive a &#8220;&gt;&gt;&#8221; prompt.</li>
<li>At the &#8220;<strong>&gt;&gt;</strong>&#8221; prompt, type &#8220;<em>x</em>&#8221; and press the<strong> ENTER</strong> key.  &#8220;<em>x</em>&#8220;  will take you to a command shell rather than launching the PING user interface.</li>
<li>At the &#8220;<strong>PING login:</strong>&#8221; prompt, type in &#8220;root&#8221; and press the <strong>ENTER</strong> key.</li>
<li>At this ping you should be logged into the PING operating system.  Now we need to run a few shell commands.</li>
<li>Run the following command:  <em>fdisk -l : grep NTFS</em></li>
<li>This command will list all the NTFS partitions.  As best as you can, note the name of the one that contains the Windows directory.</li>
<li>Run the following command:  <em>mkdir -p /mnt/windows</em></li>
<li>This command creates a directory called &#8220;/mnt/windows&#8221; that will be used for mounting the windows partition</li>
<li>Run the following command:  <em>mount -t ntfs-3g /dev/sda3 /mnt/windows</em></li>
<li>This command actually performs the mount.  &#8220;/dev/sda3&#8243; is the name of the device (from step 7) that holds the windows partition.  This was &#8220;sda3&#8243; for me but may vary for you.</li>
<li>Run the following command:  <em>cd /mnt/windows/Windows/System32</em></li>
<li>This command changes the current directory to the System32 directory in the Windows partition.  Now that the partition has been mounted, you can consider &#8220;/mnt/Windows&#8221; as the root drive of your server so &#8220;/mnt/windows/Windows/System32&#8243; is the equivalent to &#8220;C:\Windows\System32&#8243;.</li>
<li>Run the following command:  <em>mv Magnify.exe Magnify.bak</em></li>
<li>This command renames the &#8220;Magnify.exe&#8221; file, which is in the System32 folder.</li>
<li>Run the following command:  <em>cp cmd.exe Magnify.exe</em></li>
<li>This command, the final one, makes a copy of &#8220;cmd.exe&#8221; and names it &#8220;Magnify.exe&#8221;.</li>
<li>Remove the disc and reboot</li>
</ol>
<p>The steps above all make up the first stage, which is really the primary stage.  You see, we can&#8217;t really (easily) recover the password.  All the steps above bring you to a point where you will actually be able to bypass authentication all together with something akin to a backdoor.  Now you see why I started by saying that it should only be used for good.</p>
<p>For the second stage, we need to wait until Windows has booted and you are at the login screen.  On this screen you will notice a small icon in the lower left corner of the screen.  This is known as the &#8220;Ease of Access&#8221; feature, which provides accessibility options.  Click on this icon to bring up the dialog box.  You will notice several different accessibility options, one of them being &#8220;Make items on the screen larger (Magnifier)&#8221;.  This launches a tool called Magnify.exe which is used to make items on the screen larger.</p>
<p>Yes, I said &#8220;Magnify.exe&#8221;.  If you remember from the first stage of this solution, we replaced this tool with cmd.exe (which runs a command prompt).  On the &#8220;Ease of Access&#8221; dialog, select &#8220;Make items on the screen larger (Magnifier)&#8221; and press the <strong>OK </strong>button.  As you might expect now, instead of the Magnify tool being launched you are presented with a command prompt.  We have just fully bypasses the Windows Sever 2008 authentication.  You can run almost anything you can think from this command prompt as it is running under the NT AUTHORITY/SYSTEM account.  I ran &#8220;explorer.exe&#8221; which brought up the task bar.  I then went through the normal options to reset the password on the Administrator account and was able to immediately log in with the new password.</p>
<p>One more time I must stress that this information is only being presented to assist those who find themselves in a situation similar to mine.  Please do not use this information in an attempt to access a system that you should not have access too.</p>
<p><em> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2010/01/recover-lost-password-in-windows-server-2008/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sudoku 2.0 &#8211; Introduction</title>
		<link>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-introduction/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-introduction/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 01:31:37 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Sudoku]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=194</guid>
		<description><![CDATA[I always intended to actually complete the game and I never got back to it.  Finding the time to keep up with a blog is much more difficult than I initially imagined.  I have made a New Years resolution to attempt to do much better this time around.  I figured I would start with the Sudoku articles, which appear to get the most hits.]]></description>
			<content:encoded><![CDATA[<p>First, let me apologize for taking forever to follow up on the <a title="My original Suduko article" href="http://blogs.thecodearchitects.com/?p=60" target="_blank">Sudoku article </a>I wrote a while back.  I always intended to actually complete the game and I never got back to it.  Finding the time to keep up with a blog is much more difficult than I initially imagined.  I have made a New Years resolution to attempt to do much better this time around.  I figured I would start with the Sudoku articles, which appear to get the most hits.</p>
<p>I am still using Silverlight but the biggest initially change is that I am not going to bother dynamically creating the Grid this time around.  The first artile, which I should have up in a couple days, will cover the board itself.  I am almost finished designing it in Expression Blend 3.  I have the main board and the minigrid control designed.  I just need to finish up the inidivudal cells.  Once this is all done I will move the XAML over to Visual Studio to wire-up with code.</p>
<p>Thanks for your patience, I promise I will have it up and running soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2010/01/sudoku-2-0-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site Update &#8211; TweetBoard</title>
		<link>http://blogs.thecodearchitects.com/index.php/2009/12/site-update-tweetboard/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2009/12/site-update-tweetboard/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 21:37:34 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[TweetBoard]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=191</guid>
		<description><![CDATA[Tweetboard is a very nice JavaScript application that nicely displays your Tweets.  It is currently in Alpha and I was able to get approved to install it (which I just finished doing). ]]></description>
			<content:encoded><![CDATA[<p>I have been looking for some way to integrate Twitter into my blog.  Most of my time was spent checking out the numerous Twitter related plug-ins available for Wordpress.  I had it narrowed down to 1 or 2 and then I ran into something called <a title="TweetBoard" href="http://tweetboard.com/alpha/" target="_blank">Tweetboard </a>that I found on a few other sites.  Tweetboard is a very nice JavaScript application that nicely displays your Tweets.  It is currently in Alpha and I was able to get approved to install it (which I just finished doing). </p>
<p>I guess this means I need to start tweeting more now.  I do have my PS3 and XBOX 360 hooked up to my Twitter account so those will send automatic tweets as I play the various games that I am currently involved in.  I will attempt to add more development related tweets for those that may find thos more interesting.  Please try out the TweetBoard and let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2009/12/site-update-tweetboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Slider Control &#8211; The Base Class</title>
		<link>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-the-base/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-the-base/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 23:09:36 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Dependency Properties]]></category>
		<category><![CDATA[Range Slider]]></category>
		<category><![CDATA[RangeBase]]></category>
		<category><![CDATA[Slider]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=158</guid>
		<description><![CDATA[The second article in a series describing the creation of a custom range slider.  This article covers the base class, DualRangeBase.]]></description>
			<content:encoded><![CDATA[<blockquote><p>This is part 2 of a multi-part article on a custom Slider control.  You can find the other articles here:</p>
<ul>
<li style="TEXT-ALIGN: left"><a title="Custom Slider Control - Overview" href="http://blogs.thecodearchitects.com/?p=121" target="_self">Overview</a></li>
<li style="TEXT-ALIGN: left">The Base Class</li>
</ul>
<p>The source code is now available on <a title="CodePlex project for custom Silverlight controls" href="http://agcontrolsuite.codeplex.com/" target="_blank">CodePlex</a>
</p></blockquote>
<p>The purpose of this article is to start digging into some of the details behind the updated Slider control.  The best place to start is with the underlying base class.  The standard slider that comes with Silverlight has a base class called <strong><a title="MSDN help for RangeBase class." href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.rangebase.aspx" target="_blank">RangeBase</a></strong>and can be found in the System.Windows.Controls.Primitives namespace.  This class defines the standard properties (<strong>Minimum</strong>, <strong>Maximum</strong>, <strong>LargeChange</strong>, <strong>SmallChange</strong> and <strong>Value</strong>).  <strong>Minimum</strong> and <strong>Maximum</strong> describe the lower and upper range of the slider itself will<strong> Value</strong> reflects the current value of the slider (where the thumb currently is located).  <strong>LargeChange</strong> and <strong>SmallChange </strong>indicate a value that will be used to increment/decrement the <strong>value</strong> property.  The <strong>RangeBase</strong> class also defines the <strong>ValueChanged</strong> event, which is fired when the <strong>Value</strong> property changes, and ensures all properties are correctly coerced (which I describe in more detail further down).</p>
<p>One of the main requirements for the new Slider was to be able to select a range of values (an upper and lower bound) rather than just a single value.  Since I still wanted to support everything else offered by <strong>RangeBase</strong>, I created <strong>DualRangeBase</strong> which inherits from it.  This became the base class for my version of the Slider control.</p>
<p>This new base class provides three additional properties:  <strong>LowerRangeValue, </strong><strong>UpperRangeValue</strong> and<strong>  RangeValue</strong>.  <strong>LowerRangeValue</strong> and <strong>UpperRangeValue</strong>provide the lower and upper values of the range (dictated by the position of the lower and upper thumbs repectively) while the <strong>RangeValue</strong> is the difference between the lower and upper values.  The <strong>DualRangeBase</strong> also adds three additional events:  <strong>LowerRangeValueChanged</strong>, <strong>UpperRangeValueChanged</strong> and <strong>RangeChanged</strong>.  The first two can be used if you want to handle the events separately while <strong>RangeChanged</strong> is fired any time either value changes.</p>
<p>The code snippet below shows the definitions of these properties.</p>
<pre class="brush: csharp">// Defines the LowerRangeValue dependency property.
public static readonly DependencyProperty LowerRangeValueProperty = DependencyProperty.Register("LowerRangeValue", typeof(double), typeof(DualRangeBase), new PropertyMetadata(0.2d, OnLowerRangeValuePropertyChanged));

// Gets or sets the LowerRangeValue of the range.
public double LowerRangeValue
{
     get { return (double)GetValue(LowerRangeValueProperty); }
     set { SetValue(LowerRangeValueProperty, value); }
}

// Defines the UpperRangeValue dependency property.
public static readonly DependencyProperty UpperRangeValueProperty = DependencyProperty.Register("UpperRangeValue", typeof(double), typeof(DualRangeBase), new PropertyMetadata(0.8d, OnUpperRangeValuePropertyChanged));

// Gets or sets the UpperRangeValue of the range.
public double UpperRangeValue
{
     get { return (double)GetValue(UpperRangeValueProperty); }
     set { SetValue(UpperRangeValueProperty, value); }
}

///
/// Gets the size of the current range based on the difference
/// between the lower and upper range values.
///
public double RangeValue
{
    get { return UpperRangeValue - LowerRangeValue; }
}</pre>
<p>The trickiest part of the base class, for me, was dealing with coercion.  I got the concept of this from the source code of the <strong>RangeBase</strong> class which uses coercion as well.  The concept of this is to ensure that when the value of any of the main properties (such as <strong>Maximum</strong>) is set it undergoes a set of validation checks.  If any of these checks fail the value is changed appropriately.  Coercion occurs during the properties <strong>PropertyChanged</strong> event handler.  For instance, the <strong>UpperRangeValue</strong> cannot be greater than the <strong>Maximum</strong> value.  If it is, the value is changed to equal <strong>Maximum</strong>.  You can imagine the trouble this can cause.  A single change to a value can cause a recursive loop of multiple changes.</p>
<p>This issue is at its worse when property values are being set during Design Time or the values are programmatically set within the code.  Let&#8217;s look at the previous example again and say that you want to set <strong>UpperRangeValue</strong> to 80.  Since we haven&#8217;t yet set <strong>Maximum</strong> to 100 (our target), the default value of <em>1</em> is used when the <strong>UpperRangeValue</strong> is coerced, which causes it to be set to <em>1</em> (the current value of <strong>Maximum</strong>).  Now you can see the difficulty I had ensuring the coercion between all the properties worked correctly to ensure the intended values got used.  I was able to overcome the issue (mentioned in the example) by coding the coercion process in a way that it remembered the intended value and attempts to use it when it can.  This means, in the example, after the <strong>Maximum</strong> is set to <em>100</em>, the intended <strong>UpperRangeValue</strong> of <em>80</em> is applied.</p>
<p>In an attempt to understand this better, lets take a close look at the <strong>OnUpperRangeValuePropertyChanged</strong> method (which is called when the<strong> UpperRangeValue</strong> dependency property changes.</p>
<pre class="brush: csharp">DualRangeBase dualRangeBase = d as DualRangeBase;

// Validate the provided UpperRangeValue.
if (!IsValidDoubleValue(e.NewValue))
{
    throw new ArgumentException("Invalid double value", UpperRangeValueProperty.ToString());
}</pre>
<p>This beginning portion of the method simply creates an instance (since the method is <strong>static</strong>) of the <strong>DualRangeBase</strong> that called it and checks to ensure that the <strong>NewValue</strong> is valid.</p>
<pre class="brush: csharp">// The code that follows is borrowed from the Microsoft code in RangeBase
// that performs the same actions on the Value property.  The trick here
// is to hold calls to the property changed methods until after all
// coercion has completed.
if (dualRangeBase.levelsFromUpperRootCall == 0)
{
    dualRangeBase.requestedUpperRangeValue = (double)e.NewValue;
    dualRangeBase.preCoersionUpperRangeValue = (double)e.NewValue;
    dualRangeBase.initialUpperRangeValue = (double)e.OldValue;
}
dualRangeBase.levelsFromUpperRootCall++;</pre>
<p>This portion of the method saves the new value (<strong>requestedUpperRangeValue</strong>), the new value before it has been coerced (<strong>preCoersionUpperRangeValie</strong>) and the old value (<strong>initialUpperRangeValue</strong>).  These values are used later as part of the coercion testing.  If you remember from what I mentioned earlier, coercion can cause the value to be changed multiple times in an almost recursive manner.  <strong>levelsFromUpperRootCall</strong> is used to determine the current phase of this process.  I must thank Microsoft for this idea as it is how they did it and it works very well.</p>
<pre class="brush: csharp">// Coerce values
dualRangeBase.CoerceUpperValue();

// This portion of the borrowed Microsoft code finally fires
// the change events once all coercion is confirmed complete.
dualRangeBase.levelsFromUpperRootCall--;
if (dualRangeBase.levelsFromUpperRootCall == 0)
{
    double value = dualRangeBase.UpperRangeValue;
    if (dualRangeBase.initialUpperRangeValue != value)
    {
        dualRangeBase.OnUpperRangeValueChanged(dualRangeBase.initialUpperRangeValue, value);
        dualRangeBase.OnRangeChanged(dualRangeBase.initialLowerRangeValue, dualRangeBase.LowerRangeValue, dualRangeBase.initialUpperRangeValue, value);
    }
}</pre>
<p>The above code covers the last part of the method. First, the call to the coersion method is made. I talked about this a little bit already but the biggest thing to remember here is that the value being changed may actually be changed again during coersion. Once coersion has been completed, and the process has returned back to the initial call to the method, the <strong>OnUpperRangeValueChanged</strong> and <strong>OnRangeChanged</strong> events are fires.</p>
<p>That pretty much concludes the base class.  I know that might seem a bit confusing but you will understand my points if you step through the code once in Debug-mode.  All of the work that was put into the coercion functions allows the control to behave property when the properties are being set in the XAML in either Blend or the Visual Studio designer.  It also ensures only the appropriate values can be set.  I included a set of unit tests specifically for testing this and suggest you examine those in detail for further understanding.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-the-base/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Slider Control &#8211; Overview</title>
		<link>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-overview/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-overview/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 22:03:49 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Custom Control]]></category>
		<category><![CDATA[Range Slider]]></category>
		<category><![CDATA[Slider]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=121</guid>
		<description><![CDATA[Custom slider control that provides support for a range as well as increase and decrease handles.]]></description>
			<content:encoded><![CDATA[<blockquote><p>This is part 1 of a multi-part article on a custom Slider control. You can find the other articles here:</p>
<ul>
<li>Overview</li>
<li><a title="Custom Slider Control - The Base Class" href="http://blogs.thecodearchitects.com/?p=158" target="_self">The Base Class</a></li>
</ul>
<p>The source code is now available on <a title="CodePlex project for custom Silverlight controls" href="http://agcontrolsuite.codeplex.com/" target="_blank">CodePlex</a>.</p></blockquote>
<p>As I promised, here is the initial post in a series that I plan on writing that covers the Slider control that I created for Berico Tailored Systems (BTS).  This is the control that I entered into the Silverlight Control Contest and that I<a title="Previous related blog post" href="http://blogs.thecodearchitects.com/?p=113" target="_blank"> blogged about earlier</a>.</p>
<p> This custom <strong>Slider</strong> came about because of an application (<a title="Channel 9 Video of SnagL" href="http://bericotailoredsystems.com/" target="_blank">SnagL</a>) that I have been working on for <a title="Berico Tailored Systems" href="http://bericotailoredsystems.com/" target="_blank">Berico Tailored Systems (BTS)</a>.  Several of the application&#8217;s requirements dictated the need for a slider with additional functionality, primary the ability to provide a range of values rather than just a single value.  My initial plan was to simply subclass the existing Microsoft <strong><a title="System.Windows.Controls.Slider class" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.slider(VS.95).aspx" target="_blank">Slider</a></strong> control and make the required changes to include the additional <strong><a title="System.Windows.Controls.Primitives.Thumb class" href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.thumb(VS.95).aspx" target="_blank">Thumb</a></strong> control.  I also decided to add <em>handles</em> at either end of the slider to make the control more standardizes (as most sliders have these handles for increasing and decreasing the value of the slider).  I quickly found out that I couldn&#8217;t do this by inheriting from the existing Slider control.  The root of the problem is in the <strong>UpdateTrackLayout</strong> method.  The purpose of this method is to appropriately layout the controls along the track as the slider is updated.  Some of the calculations used in this method use <strong>ActualWidth</strong> and <strong>ActualHeight</strong>, which refers to the width and height of the control itself and not just the track that the Thumb controls are on.  Adding the <em>handles</em> to the either end of the track changes the overall size of the control which causes the calculations to be off.  Since this method is marked as <strong>internal</strong>, it cannot be overridden by our class.  I was forced to create the updated Slider control from scratch.</p>
<p>Since I was starting from scratch I figured I would design the control from the ground up and look at what is available to sliders in other applications.  I will say from the start that much of the code that was used for the Microsoft slider was reused for this control, although it was greatly altered.  Here are the main requirements I decided on:</p>
<ul>
<li>Provide functionality to select a range</li>
<li>Provide a way to switch from a regular slider to a range slider</li>
<li>Provide an increase and decrease <em>handle</em></li>
<li>Provide a way to turn <em>handles</em> on and off</li>
<li>Support all the standard slider functionality such as<strong> Orientation</strong>, <strong>IsDirectionReversed</strong> and <strong>IsEnabled</strong></li>
<li>Support styling and custom styles and templates</li>
<li>Work with the Visual Studio IDE and Expression Blend</li>
<li>Display tooltips over the Thumbs during dragging</li>
</ul>
<p>Below is a sample Silverlight application that demonstrates this new Slider control.  Obviously, you will need the Silverlight plugin installed to be able to see it.<br />
<div id="silverlightControlHost"><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300"><param name="source" value="./silverlight-apps/Silverlight Control Contest.xap"/><param name="background" value="white" /><param name="minRuntimeVersion" value="2.0.31005.0" /><param name="autoupgrade" value="true" /><param name="enableHtmlAccess" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156" style="text-decoration: none;"><img src="http://storage.timheuer.com/sl4wp-ph.png" alt="Install Microsoft Silverlight" style="border-style: none; width:400px; height:200px"/></a></object><iframe style="visibility:hidden;height:0;width:0;border:0px" id="_sl_historyFrame"></iframe></div><br /><br />
The two horizontal sliders have been fully restyled while the two vertical ones are using the default template. Ignoring the details on the styling, the code snippet below shows the XAML used to create all 4 of the sliders.</p>
<pre class="brush: xml">&lt;Berico:Slider x:Name="TestH1" Style="{StaticResource FancySliderStyle}" IsEnabled="true" Grid.Column="1" Grid.Row="1" IsRangeEnabled="False" Value="5" /&gt;
&lt;Berico:Slider x:Name="TestH2" Style="{StaticResource FancySliderStyle}" IsEnabled="true" Grid.Column="1" Grid.Row="2" IsRangeEnabled="True" /&gt;
&lt;Berico:Slider x:Name="TestV1" IsEnabled="true" Grid.Column="2" Grid.Row="1" Grid.RowSpan="2" IsRangeEnabled="false" Value="5" Orientation="Vertical" /&gt;
&lt;Berico:Slider x:Name="TestV2" IsEnabled="true" Grid.Column="3" Grid.Row="1" Grid.RowSpan="2" IsRangeEnabled="True" LowerRangeValue="2" UpperRangeValue="8" Orientation="Vertical" /&gt;</pre>
<blockquote><p>I finally got around to setting up a <a title="CodePlex project for custom Silverlight controls" href="http://agcontrolsuite.codeplex.com/" target="_blank">CodePlex project</a> for the custom controls (including this Slider) that I have been working on. I will update it as often as I can.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2009/09/custom-slider-control-overview/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Silverlight Control Contest</title>
		<link>http://blogs.thecodearchitects.com/index.php/2009/09/silverlight-control-contest/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2009/09/silverlight-control-contest/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 15:49:36 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Contest]]></category>
		<category><![CDATA[Slider]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=113</guid>
		<description><![CDATA[Custom Slider control entered in Silverlight Control Contest.]]></description>
			<content:encoded><![CDATA[<p>I have been playing with Silverlight for a while now and recently came across a <a title="Contest Site" href="http://gosilverlight.org/" target="_blank">site</a> that announced a contest for creating a custom Silverlight control.  I have always wanted to submit something  to a contest like this but never really had the time.  In this case, I already had a couple controls (a custom Slider and a GridSplitter) that I could use.  The catch is that I created this controls for <a title="Berico Tailored Systems" href="http://bericotailoredsystems.com/" target="_blank">Berico Tailored Systems (BTS)</a>, a company that I do some work on the side for.</p>
<p>BTS has a product called SnagL that is built on Silverlight 2.  I helped design the look of the application and created most of the controls that make up the user interface.  Marc Schweigert of Microsoft even conducted an <a title="Channel 9 SnagL Interview" href="http://channel9.msdn.com/shows/Inside+Out/SnagL-Visualizing-Government-Data-using-Silverlight/" target="_blank">interview</a> with us about the product.  I have been very pleased with Silverlight and in how well some of the controls I worked on turned out.  While many of the controls are specific to SnagL, a few other controls are more general and usable by other applications so I broke those off into their own namespace.  This namespace contains the controls that I was curious about entering into the contest.</p>
<p>I decided, on a whim, to discuss the issue with BTS.  They were more then happy to embrace the idea and provided me permission to release these controls  as open source (under the <a title="Ms-PL License Information" href="www.opensource.org/licenses/ms-pl.html" target="_blank">Ms-PL</a> license).  After some discussions and some research I got the official go ahead to release the source code as open source.</p>
<p>This leads me up to last night, when that final approval came through.  I selected the custom Slider control and created a new project to just include it.  I then submitted this control to the Silverlight Contest, which you can find <a title="Contest Entries" href="http://gosilverlight.org/ContestEntries" target="_blank">here</a>.  The contest ends on September 19th and I am excited about it.  Not only do I have a chance to win some great prizes but I am more than happy to share my custom Slider with the Silverlight community.</p>
<p>Aside from the contest, I hope to start a CodePlex project to host the custom control library.  I also plan on writing a series of detailed blogs on how I created each control (starting with the Slider).  Look for those soon.</p>
<blockquote><p>I just wanted to update this article and mention that the <a title="Silverlight Control Contest Winners" href="http://gosilverlight.org/Winners" target="_blank">winners</a> for the control contest were announced and my Slider control was, unfortunately, not picked. I guess it just wasn&#8217;t flashy enough. I do hope  that it is, at the very least, helping someone else out in IT land.  I have started on that series of article that detail the Slider control and I have posted a project for it (and other custom controls) on <a title="Custom controls project on CodePlex" href="http://agcontrolsuite.codeplex.com/" target="_blank">CodePlex</a>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2009/09/silverlight-control-contest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT&#8217;S ALIVE!  IT&#8217;S ALIVE!</title>
		<link>http://blogs.thecodearchitects.com/index.php/2009/06/its-alive-its-alive/</link>
		<comments>http://blogs.thecodearchitects.com/index.php/2009/06/its-alive-its-alive/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 15:02:20 +0000</pubDate>
		<dc:creator>Todd</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Trouble Shooting]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blogs.thecodearchitects.com/?p=110</guid>
		<description><![CDATA[On Monday, my wife called me that the power went off (thanks Verizon) while she was using her computer, once during the system booting up.  When the power came back up and she finally logged in, the computer was not doing well.  I could log into the computer fine and her files were fine.  Some applications would work (those that did not rely on any network connectivity) but everything was very sluggish and just wasn't right.  I discovered that the DHCP (Dynamic Host Configuration Protocol) and SENS (System Event Notification Service) services were hung in the Starting state.  Since many other services depend on these two I was unable to get any network connectivity and I couldn't even check the Event Log for any clues.]]></description>
			<content:encoded><![CDATA[<p>I had an interesting experience this week that I wanted to share with everyone in case any of you run into the same issue.  As the family computer nerd, I am typically called upon to resolve the various issues that creep up when using computers (especially those running Windows Vista).  On Monday, my wife called me that the power went off (thanks Verizon) while she was using her computer, once during the system booting up.  When the power came back up and she finally logged in, the computer was not doing well.  Initially I thought it was a case of the Swine Flu but it turned out to be much worse.</p>
<p>I could log into the computer fine and her files were fine.  Some applications would work (those that did not rely on any network connectivity) but everything was very sluggish and just wasn&#8217;t right.  Something was tragically wrong with her computer.  I begin to go through my diagnosing steps.  I discovered that the <a title="Article describing the DHCP service" href="http://en.wikipedia.org/wiki/Dhcp" target="_blank">DHCP (Dynamic Host Configuration Protocol)</a> and <a title="Article describing the SENS service" href="http://searchtasks.answersthatwork.com/tasklist.php?File=SENS" target="_blank">SENS (System Event Notification Service)</a> services were hung in the <strong>Starting</strong> state.  Since many other services depend on these two I was unable to get any network connectivity and I couldn&#8217;t even check the Event Log for any clues.</p>
<p>I tried all the standard network tricks (<a title="Microsoft page describing the IPCONFIG command" href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ipconfig.mspx?mfr=true" target="_blank">IPCONFIG</a>, <a title="Article describing how to setup a Static IP in Windows Vista" href="http://www.trainsignaltraining.com/windows-vista-ip-addressing/2006-11-15/" target="_blank">Using a static IP</a>, <a title="Microsoft page describing the PING command" href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ping.mspx?mfr=true" target="_blank">PINGing</a>) but nothing worked.  All commands returned errors.  It appeared that the network was simply dead which caused the entire system to suffer.  I used another computer to do some searching and found hundreds of posts related to the same issue.  As with most google searches, finding the posts is easy but answers are usually harder to come by.</p>
<p>Last night I stumled on a post that simply mentioned a single command to try:  <strong>netsh winsock reset</strong>.  There was no explanation, just a note saying to try it.  At that point I was already in the process of trying to backup my wife&#8217;s data so I could reinstall the OS (most likely <a title="Information on the Release Candidate for Windows 7" href="http://www.microsoft.com/windows/windows-7/download.aspx" target="_blank">Windows 7 RC</a>, rather than Vista again).  I figured I had nothing to lose so I ran the command.  It appeared to run and told me to restart.  I restarted the computer and swore I heard the computer sigh deeply as it booted back up.  I logged in and everything was working fine.</p>
<p>Amazed I tried to find details on the command.  I couldn&#8217;t find anything that detailed exactly what it does but the concept is that it resets Winsock back to its default settings.  Obvisouly something internal to Winsock got confused or garbled during one of the power outages and the reset refreshed everything.  I was able to find a <a title="Related Microsoft KB Article" href="http://support.microsoft.com/kb/811259" target="_blank">Microsoft KB article</a> that talks about the issue (although it doesn&#8217;t mention the DHCP and SENS services being hung).</p>
<p>I am just happy, as is my wife, that I got the system back up and running.  Now I can wait until the full version of Windows 7 is released to upgrade her computer to a <strong>MUCH</strong> more stable operating system.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.thecodearchitects.com/index.php/2009/06/its-alive-its-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
