<?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>Josh Erickson &#187; work</title>
	<atom:link href="http://josherickson.org/category/work/feed" rel="self" type="application/rss+xml" />
	<link>http://josherickson.org</link>
	<description>And as you tread the halls of sanity...</description>
	<lastBuildDate>Thu, 04 Mar 2010 04:25:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Restoring Hyper-V VM with snapshot tree</title>
		<link>http://josherickson.org/2010/01/27/728/restoring-hyper-v-vm-with-snapshot-tree</link>
		<comments>http://josherickson.org/2010/01/27/728/restoring-hyper-v-vm-with-snapshot-tree#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:44:06 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[concepts]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[avhd]]></category>
		<category><![CDATA[differencing]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[snapshots]]></category>
		<category><![CDATA[vhd]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=728</guid>
		<description><![CDATA[For whatever reason, you&#8217;ve lost your virtual machine settings in Hyper-V and it just so happened they are snapshots. I sure hope that this was a test server and not a production one! Tsktsk! By now, you&#8217;ve probably scoured the interweb searching for a cure, and you&#8217;re in luck, you&#8217;ve found a way to get [...]]]></description>
			<content:encoded><![CDATA[<p>For whatever reason, you&#8217;ve lost your virtual machine settings in Hyper-V and it just so happened they are snapshots. I sure hope that this was a test server and not a production one! Tsktsk! By now, you&#8217;ve probably scoured the interweb searching for a cure, and you&#8217;re in luck, you&#8217;ve found a way to get back your snapshot tree instead of just merging the disks! Oh joy!</p>
<p>It would seem everyone out there is happy with just merging their VHDs and getting back to work, but not me, no sir! I want things back the way they were! It took me about half a day to get this, so hopefully, this will save you some time for more important things, like <a href="http://www.firstpersontetris.com/">tetris</a>!</p>
<h3>Steps</h3>
<ol>
<li>Create same number of pre-existing snapshots using the Hyper-V MMC.</li>
<li>Replace new snapshots with old snapshots while renaming the old to the same as the new, except the file extension should be &#8220;vhd&#8221; instead of &#8220;avhd&#8221;. The reason we&#8217;ll see later, but the Hyper-V tool to repair VHD chains auto-appends .vhd! (Grr <a href="http://blogs.technet.com/virtualization/">Hyper-V Team</a>, grr!)</li>
<li>Repair the vhd&#8217;s. Because of our renaming we&#8217;ve broken the differencing chain. To fix this, go to open  Hyper-V, go to the VM&#8217;s Settings and then the hard drive. Change the VHD to the new one (simply changing the extension should work) and click &#8220;inspect disk&#8221;. This will walk you through fixing the chain.</li>
<li>Modify the ACL to include the VM specific account. This you must to in Powershell since the Explorer GUI can&#8217;t seem to find the account. I don&#8217;t know why and there may be a way, but I&#8217;m to lazy to dig into it and this works. (Below you can find some sample code.) The account to add from the old VHD, is the one that starts with &#8220;NT VIRTUAL MACHINE&#8221; and ends with a GUID.
<pre>##START POWERSHELL CODE
#get the old vhd's permissions
$vm_perm = (get-acl .\old.vhd).access | where { $_.IdentityReference.tostring().contains("NT VIRTUAL MACHINE") }

#Load the new vhd's acl into memory
$newvhd = get-acl .\new.vhd

$newvhd.AddAccessRule($vm_perm)

$newvhd | set-acl .\new.vhd
##END POWERSHELL CODE</pre>
</li>
<li>Open all the VM&#8217;s XML setting files and make sure that any settings related the the VHD&#8217;s is correct. This should only be the filename. If you need to edit these files be sure to turn off the Hyper-V Management Service, this will not affect the VM&#8217;s running, only the managing of them. The XML files can be found wherever you made the VM.</li>
<li>You should now have a restored VM with the snapshot tree! Woo! Go you!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2010/01/27/728/restoring-hyper-v-vm-with-snapshot-tree/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug squishing</title>
		<link>http://josherickson.org/2009/05/26/368/bug-squishing</link>
		<comments>http://josherickson.org/2009/05/26/368/bug-squishing#comments</comments>
		<pubDate>Tue, 26 May 2009 17:21:14 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[concepts]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=368</guid>
		<description><![CDATA[After getting a Windows XP Virtual PC up and running I was able to test my last project&#8217;s update feature in XP&#8230;and it didn&#8217;t work. From those of you who have Vista like me know that the user profile is no longer under Documents and Settings, but Users.
My original code didn&#8217;t take into account spaces [...]]]></description>
			<content:encoded><![CDATA[<p>After getting a Windows XP Virtual PC up and running I was able to test my <a href="http://josherickson.org/2009/05/18/358/single-exe-that-can-update-itself">last project&#8217;s</a> update feature in XP&#8230;and it didn&#8217;t work. From those of you who have Vista like me know that the user profile is no longer under Documents and Settings, but Users.</p>
<p>My original code didn&#8217;t take into account spaces in the file path, so when a user on XP tried to update the app, it would try to copy itself to &#8220;C:\documents&#8221; and fail. Since I&#8217;d already distributed the previous version, I couldn&#8217;t go about fixing it without also creating a tool to replace copies that were on computers already. So I oped for hacking it in the newest version.</p>
<p>Since the file path was given to the updated app when it runs, I simply needed to make my update code smarter&#8230;.sort of, smarter may be to generous. I simply looped through the arguments until I hit one that ended with &#8220;.exe&#8221; and then used the result as the path to update to. Below is the code, which in future version will probably be commented out.</p>
<pre>
if (!System.IO.File.Exists(hargs["update_path"].ToString()))
{
    int i = Array.FindIndex(args, (delegate(string s) { if (s.ToLower() == "-update") { return true; } return false; })) + 1;
    string[] path = new string[0];
    for (i = i; i < args.Length; i++)
    {
        Array.Resize<string>(ref path, path.Length + 1);
        path[path.Length - 1] = args[i];
        if (args[i].EndsWith(".exe"))
        {
            hargs["update_path"] = string.Join(" ", path);
            break;
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2009/05/26/368/bug-squishing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single exe that can update itself?</title>
		<link>http://josherickson.org/2009/05/18/358/single-exe-that-can-update-itself</link>
		<comments>http://josherickson.org/2009/05/18/358/single-exe-that-can-update-itself#comments</comments>
		<pubDate>Mon, 18 May 2009 20:25:56 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=358</guid>
		<description><![CDATA[For a while now, I&#8217;ve been meaning to make a diagnostic application for my coworkers while they are on the road so that we in IT can see what&#8217;s going on in their computers. But the problem has been getting the time to make it and deciding what best way to make it in (compiled [...]]]></description>
			<content:encoded><![CDATA[<p>For a while now, I&#8217;ve been meaning to make a diagnostic application for my coworkers while they are on the road so that we in IT can see what&#8217;s going on in their computers. But the problem has been getting the time to make it and deciding what best way to make it in (compiled or scripted). Eventually I chose a compiled solution as it would keep everything in one nice package without much if any outside dependancies.</p>
<p>However, I still needed a way for the application to get updated when I finished another version. I couldn&#8217;t rely on the users to check if they had the newest version since they could care less as long as it worked. I also didn&#8217;t want to put a lot of work into a distribution system specifically for an application that was a beta and not everyone needed even when it was completed. This meant that I needed to have the whole distribution/upgrade structure contained in one file that everyone was going to be running.</p>
<p>Roadblock, I found out that an application can&#8217;t overwrite its own file while its running. It makes sense for that to happen, but it makes it harder to upgrade yourself when it&#8217;s only you.</p>
<p>So how did I do this? Well since the newest version will be placed on a network folder, I figured that when the application finds a newer version, it will run the network copy and that instance will do the need upgrades. This presented a challenge though since I had to somehow create a version that could update itself before I could make a version that could update itself. Quite a chicken and egg conundrum!</p>
<p>What I ended up doing was create several different version of the exe and testing the upgrade code in chunks. Testing part of it here and there, constantly changing between the main app functionality and the upgrade code. #if and #endif preprocessor directives and different compile profiles came in really handy in defining different things depending on if I was running the upgrade or regular portions.</p>
<p>Well enough chitchat, time for code, which hopefully for those who program, should be understandable.</p>
<pre>
//method definition
//static void Main(string[] args)

//Look through the command line arguments and set some stuff up.
//Update the exe arguments.
hargs.Add("update", Array.Find(args, (delegate(string s) { if (s.ToLower() == "-update") { return true; } return false; })));
if (hargs["update"] != null &#038;&#038; args.Length > 1)
{
	hargs.Add("update_path", args[Array.FindIndex(args, (delegate(string s) { if (s.ToLower() == "-update") { return true; } return false; })) + 1]);
}

//Updating executable?
if (hargs["update"] != null &#038;&#038; hargs["update_path"] != null)
{
	//Make sure we know that it exists!
	if(System.IO.File.Exists(hargs["update_path"].ToString())) {
		System.IO.File.Copy(Application.ExecutablePath, hargs["update_path"].ToString(), true);

		//Start it up and exit this bitch!
		System.Diagnostics.Process.Start(hargs["update_path"].ToString());
	}
	return;
}
else
{
	if(System.IO.File.Exists(network_exe_path))
	{
		System.Diagnostics.FileVersionInfo newversion = System.Diagnostics.FileVersionInfo.GetVersionInfo(network_exe_path);
		if (newversion.FileVersion.CompareTo(Application.ProductVersion) > 0)
		{
			DialogResult dr = MessageBox.Show("There is a new version available. Download now?", "Update available", MessageBoxButtons.YesNo);
			if (dr == DialogResult.Yes)
			{
				System.Diagnostics.Process.Start(network_exe_path, "-update " + Application.ExecutablePath);
				return;
			}
		}
	}
}
</pre>
<p>&#8220;network_exe_path&#8221; is the network copy of the file and points to a UNC path (\\server\folder\app.exe). As you can see, this code doesn&#8217;t care what the local copy is named and will updated it regardless.</p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2009/05/18/358/single-exe-that-can-update-itself/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learning the nuances of Visual Studio</title>
		<link>http://josherickson.org/2009/05/16/351/learning-the-nuances-of-visual-studio</link>
		<comments>http://josherickson.org/2009/05/16/351/learning-the-nuances-of-visual-studio#comments</comments>
		<pubDate>Sat, 16 May 2009 22:13:21 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[concepts]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[thinking out loud]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=351</guid>
		<description><![CDATA[I&#8217;m starting to use Visual Studio and programming more and more in C#. Mostly this is because I&#8217;m finding that creating tools with scripts for my end users to be too cumbersome for them to use. PowerShell scripts are not easily launched by a double click, you need to allow scripts in the first place [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to use Visual Studio and programming more and more in C#. Mostly this is because I&#8217;m finding that creating tools with scripts for my end users to be too cumbersome for them to use. PowerShell scripts are not easily launched by a double click, you need to allow scripts in the first place (set-executionpolicy) and I can&#8217;t even trust that the computer has PowerShell installed! Batch files, while supported by pretty much any Windows version would need to be overly complicated or the batch language just doesn&#8217;t support what needs to be done.</p>
<p>On top of these limitations, I also need the tools to be able to stand alone, one file to download and one to run. Which is something that scripts just can&#8217;t always provide since there are just too many variables in getting them to run. Executables on the other hand can be compiled so that everything it needs, it has. Something of which is a feature I need so that my users have only one thing to worry about.</p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2009/05/16/351/learning-the-nuances-of-visual-studio/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Powerconnect switch</title>
		<link>http://josherickson.org/2009/02/09/261/dell-powerconnect-switch</link>
		<comments>http://josherickson.org/2009/02/09/261/dell-powerconnect-switch#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:08:03 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=261</guid>
		<description><![CDATA[For you Network Admins out there that are running a network with both Cisco and Dell switches. These two commands do basically the same thing.
Cisco:
show mac-address-table
Dell:
show bridge address-table
]]></description>
			<content:encoded><![CDATA[<p>For you Network Admins out there that are running a network with both Cisco and Dell switches. These two commands do basically the same thing.</p>
<p>Cisco:<br />
<code>show mac-address-table</code></p>
<p>Dell:<br />
<code>show bridge address-table</code></p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2009/02/09/261/dell-powerconnect-switch/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a random password</title>
		<link>http://josherickson.org/2009/01/21/227/creating-a-random-password</link>
		<comments>http://josherickson.org/2009/01/21/227/creating-a-random-password#comments</comments>
		<pubDate>Wed, 21 Jan 2009 15:43:10 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=227</guid>
		<description><![CDATA[Recently I was needing to create a bunch of random passwords for users and I needed to have it work in Powershell.
Since Lee Holmes&#8217; comments, I&#8217;ve updated the file and function with some of the suggestions he gave. Unfortunately, the &#60;# #&#62; help syntax throws a bunch of errors in V1, so I had to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was needing to create a bunch of random passwords for users and I needed to have it work in Powershell.</p>
<p>Since <a href="http://josherickson.org/2009/01/10/185#comments">Lee Holmes&#8217; comments</a>, I&#8217;ve updated the file and function with some of the suggestions he gave. Unfortunately, the &lt;# #&gt; help syntax throws a bunch of errors in V1, so I had to revert to my old ways.</p>
<pre>@'
&lt;#
.Synopsis
	Create a random string of letters.
.Description
	Create a random string of letters (upper and lower) and numbers for
	use in passwords.
.Parameter Length
	How long do you want the password to be? (Default is 8.)
.Example
	PS&gt; createPassword 10

.ReturnValue
	[string]
.Link

.Notes
NAME:      Verb-Noun
AUTHOR:    Josh Erickson
LASTEDIT:  1/21/2009
#Requires -Version 2.0
#&gt;
'@ | out-null

function createPassword {
	param(
		[int] $length = 8
	);

	if($length -eq $Null) {
		$length = 8;
	}

	$tmppwd = @();
	$rand = new-object system.random -argumentlist $(date).tick;

	for($i = 0; $i -lt $length; $i++) {
		#caps 65, 90
		$a = $rand.next(0,100);
		if($a -lt 33) {
			$tmppwd += ,[char]$rand.next(97,122);
		} elseif($a -ge 34 -and $a -lt 66) {
			$tmppwd += ,[char]$rand.next(65,90);
		} else {
			$tmppwd += ,[char]$rand.next(48,57);
		}
	}

	[string]::join("",$tmppwd);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2009/01/21/227/creating-a-random-password/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unprotecting Word Documents</title>
		<link>http://josherickson.org/2008/06/27/95/unprotecting-word-documents</link>
		<comments>http://josherickson.org/2008/06/27/95/unprotecting-word-documents#comments</comments>
		<pubDate>Fri, 27 Jun 2008 20:36:16 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=95</guid>
		<description><![CDATA[A quick search around Google reveals that there are many an application that will remove the protection from Word documents. However I question the trustworthiness of these programs, what if they install key loggers, or trojans, or some other nefarious code? So I did some research and scripting to make my own document cracker, and [...]]]></description>
			<content:encoded><![CDATA[<p>A quick search around Google reveals that there are many an application that will remove the protection from Word documents. However I question the trustworthiness of these programs, what if they install key loggers, or trojans, or some other nefarious code? So I did some research and scripting to make my own document cracker, and it was incredibly simple.</p>
<p>It&#8217;s a Powershell script, but I&#8217;m sure you smart people out there can make a neato interface for it with your Vb Script or C#, or even port it! You can get the source <a href="http://josherickson.org/wp-content/uploads/unprotectword.ps1">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2008/06/27/95/unprotecting-word-documents/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MergeXML</title>
		<link>http://josherickson.org/2008/06/03/86/mergexml</link>
		<comments>http://josherickson.org/2008/06/03/86/mergexml#comments</comments>
		<pubDate>Tue, 03 Jun 2008 18:24:28 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/?p=86</guid>
		<description><![CDATA[A recent project at work required me to merge two XML documents together and thus this was born, MergeXML. It&#8217;s written for Powershell and thus can be used for a variety of things. From a simple command line utility to an entire login script (which is why I need it).
MergeXML
]]></description>
			<content:encoded><![CDATA[<p>A recent project at work required me to merge two XML documents together and thus this was born, MergeXML. It&#8217;s written for Powershell and thus can be used for a variety of things. From a simple command line utility to an entire login script (which is why I need it).<a href="http://josherickson.org/wp-content/uploads/funcmergexml.ps1"></a></p>
<p><a href="http://josherickson.org/wp-content/uploads/funcmergexml.ps1">MergeXML</a></p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2008/06/03/86/mergexml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We need no stinkin&#8217; breather!</title>
		<link>http://josherickson.org/2008/02/19/70/we-need-no-stinkin-breather</link>
		<comments>http://josherickson.org/2008/02/19/70/we-need-no-stinkin-breather#comments</comments>
		<pubDate>Tue, 19 Feb 2008 19:29:48 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[blah]]></category>
		<category><![CDATA[tae kwon do]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/2008/02/19/70</guid>
		<description><![CDATA[Where does the weeks go? I have no idea. I just know that each day ends as soon as I wake up.
Break down of a week.

Sunday

Church (2-3)
Homework or Rest (Remainder)


Monday

Work (8)
School (2)
Bible Study (2-3)
Homework or Rest (Remainder)


Tuesday

School (8-9)
Work (2-3)
Tae Kwon Do (1)
Homework or Rest (Remainder)


Wednesday

Work (8-9)
School (1-2)
Tae Kwon Do (1)
Homework or Rest (Remainder)


Thursday

Work (6-7)
School (3-4)
Tae [...]]]></description>
			<content:encoded><![CDATA[<p>Where does the weeks go? I have no idea. I just know that each day ends as soon as I wake up.</p>
<p>Break down of a week.</p>
<ol>
<li>Sunday
<ol>
<li>Church (2-3)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Monday
<ol>
<li>Work (8)</li>
<li>School (2)</li>
<li>Bible Study (2-3)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Tuesday
<ol>
<li>School (8-9)</li>
<li>Work (2-3)</li>
<li>Tae Kwon Do (1)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Wednesday
<ol>
<li>Work (8-9)</li>
<li>School (1-2)</li>
<li>Tae Kwon Do (1)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Thursday
<ol>
<li>Work (6-7)</li>
<li>School (3-4)</li>
<li>Tae Kwon Do (1)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Friday
<ol>
<li>Work (8-11)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
<li>Saturday
<ol>
<li>Work (5-6)</li>
<li>Homework or Rest (Remainder)</li>
</ol>
</li>
</ol>
<p><em>Note that the Rest in &#8220;Homework or Rest&#8221; includes relaxing and hanging out.</em></p>
<p>So anywhere from 58 to 70 hours of my week are taking in doing school, work, TKD, or something church related! Considering I set aside roughly 7-8 hours a night for sleep which leaves about 16 hours left to everything else. So each day I have is divided roughly between work 50%, school/homework 35% and rest 15%.</p>
<p>I can&#8217;t wait for school to be over.</p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2008/02/19/70/we-need-no-stinkin-breather/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Network Mapping: Deuce</title>
		<link>http://josherickson.org/2008/01/29/66/network-mapping-deuce</link>
		<comments>http://josherickson.org/2008/01/29/66/network-mapping-deuce#comments</comments>
		<pubDate>Tue, 29 Jan 2008 06:16:43 +0000</pubDate>
		<dc:creator>josh</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://josherickson.org/2008/01/29/66</guid>
		<description><![CDATA[Today I realized that most of the addresses that had issues with incorrect locations of the network map may have been related to old and expired reverse DNS entries. Apparently part of our supernet DNS wasn&#8217;t being deleting old reverse lookup entries. Of all the misplaced network nodes, the entries seemed to all corresponded to [...]]]></description>
			<content:encoded><![CDATA[<p>Today I realized that most of the addresses that had issues with <a href="http://josherickson.org/2008/01/25/65">incorrect locations of the network map</a> may have been related to old and expired reverse DNS entries. Apparently part of our supernet DNS wasn&#8217;t being deleting old reverse lookup entries. Of all the misplaced network nodes, the entries seemed to all corresponded to  that part of the supernet. We&#8217;ll have to wait about a week for the DNS service to finally clean out it&#8217;s lists, but I&#8217;m hopeful that that&#8217;s the reason for the jumping nodes!</p>
]]></content:encoded>
			<wfw:commentRss>http://josherickson.org/2008/01/29/66/network-mapping-deuce/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
