<?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>StevenMcNutt.com</title>
	<atom:link href="http://www.stevenmcnutt.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stevenmcnutt.com</link>
	<description>Steve&#039;s Tech Blog</description>
	<lastBuildDate>Sun, 04 Mar 2012 15:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>DPM and Hyper-V and iSCSI</title>
		<link>http://www.stevenmcnutt.com/2012/02/04/dpm-and-hyper-v-and-iscsi/</link>
		<comments>http://www.stevenmcnutt.com/2012/02/04/dpm-and-hyper-v-and-iscsi/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 15:24:57 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Server Support]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[iSCSI]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=300</guid>
		<description><![CDATA[<p>It seemed like a good idea, and it still seems like a good idea when it works, but when my combination of Data Protection Manager, Hyper-V, and iSCSI gets grumpy, it gives me ulcers.</p> <p>My recent issue started, as it usually does with this setup, with a power outage. The power went out, and <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2012/02/04/dpm-and-hyper-v-and-iscsi/">DPM and Hyper-V and iSCSI</a></span>]]></description>
			<content:encoded><![CDATA[<p>It seemed like a good idea, and it still seems like a good idea when it works, but when my combination of Data Protection Manager, Hyper-V, and iSCSI gets grumpy, it gives me ulcers.</p>
<p>My recent issue started, as it usually does with this setup, with a power outage. The power went out, and when it came back on all the servers came back up properly.   &#8220;No Problem&#8221;, I thought, however a little bit later I noticed that DPM was having issues backing up the virtual servers on one of the virtual hosts.  I tried to kick the backup jobs off manually, but they failed with a VSS error of event ID 12305, &#8220;Volume/disk not connected or not found&#8221; and that the VSS provider was in a &#8220;bad state&#8221;.  I tried some of the easy things that I found on the &#8216;net but to no avail.  I figured I&#8217;d reboot the box and that it would &#8220;figure itself out &#8220;when it came back up (which is often the case when my DPM backups delightfully start bombing out on a virtual host).  This time however, the server came up and my iSCSI virtual machines were <em>gone</em>, unlisted in the Hyper-V manager.  Despite the fact that Hyper-V has delisted virtual machines on me several times in the past as well, it never ceases to cause me to question my career choice when it happens.</p>
<p>Investigating, I saw that the iSCSI drive along with the virtual disks were there so my hope was that the VHDs were okay.  When Hyper-V was trying to add the virtual machines it was kicking out an error along the lines of an OID that couldn&#8217;t be found.  Distressed, I decided to just recreate the virtual machines from the VHDs (not a first for me either), however I made the fortunate mistake of letting Hyper-V store the virtual machines in the default directory on the system partition.  The first two machines started up fine, but the third kicked out an error that it couldn&#8217;t write the memory file.  I had forgotten that Hyper-V keeps a swap file of the memory for the virtual machine and I had run out of space for such files on the system partition.  I figured that I&#8217;d have to recreate the virtual machines, again, but in their original directories on the iSCSI drive.  Before I went through that work again though, I figured I would take a shot at modifying the XML config for the servers that I had just created.</p>
<p>It was then in the Hyper-V ProgramData folder that noticed something peculiar &#8211; the links to the original non-operational virtual machines weren&#8217;t working.  When I pulled the directory listing I found them pointing at &#8216;F:&#8217;, but there was a different drive on &#8216;F:&#8217; and the virtual machine iSCSI drive had been moved to &#8216;H:&#8217;.  It turns out that after the power outage the server had decided to snag an unassigned iSCSI drive that was on an attached Netgear ReadyNas box and assign it to &#8216;F:&#8217;.  The Virtual Host had worked fine through the week because the drive mapping didn&#8217;t take affect until after I rebooted the server.  After reassigning the drives my Hyper-V and DPM are happy again, but I&#8217;m sure they&#8217;ll get back at me eventually.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2012/02/04/dpm-and-hyper-v-and-iscsi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suppressing Duplicate Crystal Labels</title>
		<link>http://www.stevenmcnutt.com/2011/10/19/suppressing-duplicate-crystal-labels/</link>
		<comments>http://www.stevenmcnutt.com/2011/10/19/suppressing-duplicate-crystal-labels/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 21:18:25 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[MAS 90]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=292</guid>
		<description><![CDATA[<p>For our file folders at the end of the year we would run a Crystal report that would find all the vendors who were issued payments over the year.  These labels would only consist of the vendor name and number (and the fiscal year, but that was handled with a text and parameter field).  However, after <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/10/19/suppressing-duplicate-crystal-labels/">Suppressing Duplicate Crystal Labels</a></span>]]></description>
			<content:encoded><![CDATA[<p>For our file folders at the end of the year we would run a Crystal report that would find all the vendors who were issued payments over the year.  These labels would only consist of the vendor name and number (and the fiscal year, but that was handled with a text and parameter field).  However, after a large upgrade our Mas90 install (to version ~4.something), the report would duplicate some vendors, and not print others at all.  Digging into it I discovered that the report was set to use a table that nominally tracked AP vendor payments per period and that in the past this table kept a cumulative total for each vendor over the course of a year.</p>
<p>In the new version though, the new periods were broken out by months, essentially making the table a dupe of the AP check history table in Mas90.  Now when the report was run, a label would be printed for every check issued to a vendor, and as a filter the report left payments out that were less than $100 (which was fine for a whole year, but bad for each month!).</p>
<p>I poked around and after consulting a couple different websites I came up with the following fix:</p>
<ul>
<li>I put the vendor number field into a group</li>
<li>I suppressed the group header and footer sections (right click-&gt;suppress (no drill down))</li>
<li>Went to Report-&gt;Selection Formulas-&gt;Group</li>
<li>Added the following formula : {AP_CheckHistoryHeader.CheckDate}=Minimum ({AP_CheckHistoryHeader.CheckDate},{AP_CheckHistoryHeader.VendorNo})</li>
</ul>
<p>What the last line does is it only picks out the first date that the vendor appears.  This can still lead to duplicates if the vendor was issued more than one check on <em>that</em> same day, but it&#8217;s much better than getting twelve labels for many of the vendors!</p>
<p>(By the way, there might be a better way to do this as I don&#8217;t know too much about Mas90, and even less when it comes to Crystal Reports; but I was given the evil eye for mentioning that I could do this up in .Net or, even worse, with an Excel/Word mail merge where the &#8216;remove duplicates&#8217; function had been used in Excel).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/10/19/suppressing-duplicate-crystal-labels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Patches</title>
		<link>http://www.stevenmcnutt.com/2011/10/12/adobe-patches/</link>
		<comments>http://www.stevenmcnutt.com/2011/10/12/adobe-patches/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 19:59:12 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Desktop Support]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Group Policy]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=289</guid>
		<description><![CDATA[<p>In the past I&#8217;ve had good luck &#8216;stacking&#8217; Adobe Flash Player installs on top of each other in group policy.  For some reason one of the newer versions (10.3.183.7) choked, leaving something along the lines of an  &#8217;FP_AX_MSI_INSTALLER&#8217; error in the event viewer.  That error led me to this post which stated, more or less, that <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/10/12/adobe-patches/">Adobe Patches</a></span>]]></description>
			<content:encoded><![CDATA[<p>In the past I&#8217;ve had good luck &#8216;stacking&#8217; Adobe Flash Player installs on top of each other in group policy.  For some reason one of the newer versions (10.3.183.7) choked, leaving something along the lines of an  &#8217;FP_AX_MSI_INSTALLER&#8217; error in the event viewer.  That error led me to <a href="http://forums.adobe.com/message/3412956#3412956">this post</a> which stated, more or less, that a computer logon batch file is the best bet (so &#8217;90s!).  I implemented the batch file and had no issues getting everyone&#8217;s Flash updated (do note though that you&#8217;ll need to do a double detect if you have 64 bit systems in your environment as the version key is at &#8220;HKLM\SOFTWARE\Wow6432Node\Macromedia\FlashPlayer&#8221; on 64 bit systems).</p>
<p>It was at this point that I moved on to Acrobat Reader.  I was a little puzzled because I downloaded the latest version (10.1.1), but after installing it, it reported that it was only &#8217;10.1.0&#8242;.  It turns out the &#8216;.1&#8242; is a standalone patch that is included with the distribution.  Unfortunately, as I&#8217;d found with Office 2007, group policy does not do .msp files (msi patch files).  Right away I thought of my Flash Player install batch file, but Acrobat Reader (as near as I can tell) does not have a version registry key like Flash Player.  I hunted for an easy way out, but finally gave up and wrote a program to return the Acrobat Reader version (based on what&#8217;s reported by the installed executable file).  <a href="http://www.stevenmcnutt.com/files/adobestuff.zip">You can download the excutable and the batch files that I used for Adobe Flash Player and Acrobat Reader here</a>.  (Note: if the computer does not have Acrobat Reader installed, the detector should return the string &#8220;NotInstalled&#8221;.  I didn&#8217;t worry much about this detection as I have the batch file in the group policy that installs Acrobat Reader.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/10/12/adobe-patches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resetting The Raiser&#8217;s Edge Password</title>
		<link>http://www.stevenmcnutt.com/2011/08/07/resetting-the-raisers-edge-password/</link>
		<comments>http://www.stevenmcnutt.com/2011/08/07/resetting-the-raisers-edge-password/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 19:27:01 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Server Support]]></category>
		<category><![CDATA[Raiser's Edge]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=272</guid>
		<description><![CDATA[<p>I notice that Blackbaud now has a utility out that handles Supervisor password resets without going through the faxing rigamarole, but when I had to do this I don&#8217;t know if that would have been a big help anyway as my customer A) Needed supervisor access to Raiser&#8217;s Edge right away and B) They had fired the <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/08/07/resetting-the-raisers-edge-password/">Resetting The Raiser&#8217;s Edge Password</a></span>]]></description>
			<content:encoded><![CDATA[<p>I notice that Blackbaud now <a href="http://www.facebook.com/note.php?note_id=488103571245&amp;comments&amp;ref=mf">has a utility</a> out that handles Supervisor password resets without going through the faxing rigamarole, but when I had to do this I don&#8217;t know if that would have been a big help anyway as my customer A) Needed supervisor access to Raiser&#8217;s Edge right away and B) They had fired the one employee who had both supervisor access and was the Blackbaud support user.</p>
<p>The two things I did have though was administrator access to the Raiser&#8217;s Edge MS SQL database and the SQL Server Management Studio.  My quick and dirty fix was to open the database (re7), open &#8216;tables&#8217; and then find the &#8216;USERS&#8217; table (dbo.USERS).  I then right-clicked the table and then chose &#8216;open table&#8217;.  There is one other thing that&#8217;s needed for this procedure at this point: a password that <em>is</em> known.  In this case I had the one&#8217;s below:</p>
<p><a href="http://www.stevenmcnutt.com/wp-content/uploads/2011/08/repassword.jpg"><img class="aligncenter size-full wp-image-273" title="repassword" src="http://www.stevenmcnutt.com/wp-content/uploads/2011/08/repassword.jpg" alt="" width="168" height="65" /></a></p>
<p>I&#8217;ll point out that I put no energy into checking out the hashing code used (i.e., can the PASSWORD field be blank?  Are the passwords hashed the same on every RE install?, etc.).  In this case all I did was copied the PASSWORD hash field from an account whose password was known to the Supervisor PASSWORD field.  (It goes without saying that I also backed the database up first (right click the database-&gt;tasks-&gt;Back Up&#8230;))</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/08/07/resetting-the-raisers-edge-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nortel BCM Log Parser</title>
		<link>http://www.stevenmcnutt.com/2011/07/28/nortel-bcm-log-parser/</link>
		<comments>http://www.stevenmcnutt.com/2011/07/28/nortel-bcm-log-parser/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 20:03:27 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[BCM]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=268</guid>
		<description><![CDATA[<p>I had originally coded this project in VB and never got it into a distributable format.  For example, I had all the file paths and database connection strings hard coded.  After educating myself a bit on C# I recoded the application in that language, and have the program using LINQ instead of (oof!) OLE.  <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/07/28/nortel-bcm-log-parser/">Nortel BCM Log Parser</a></span>]]></description>
			<content:encoded><![CDATA[<p>I had originally coded this project in VB and never got it into a distributable format.  For example, I had all the file paths and database connection strings hard coded.  After educating myself a bit on C# I recoded the application in that language, and have the program using LINQ instead of (oof!) OLE.  I also now have it coded to accept values specific to a user&#8217;s environment via an XML settings file.</p>
<p>What the program does at this point is that it reads the call detail recording logs that are stored in a directory and commits them to an MS SQL/SQLexpress database.  For my own purposes I have all the default settings set on the BCM for recording the log files, so if you&#8217;ve changed any of these settings this program may not work.  As well, I have my logs FTP&#8217;d every day to a server share that I can access via UNC (i.e. \\server\logfiles).</p>
<p>I have a little setup menu within the program so that you can create the database, set the settings, and then write the settings out to an XML file for future use. Using the XML settings file the program can be scheduled to run if the XML settings file is given to the program as a variable (ex, NortelLogParser c:\settings.xml).</p>
<p>In the future I hope to develop a web front end for the database, but for the time being you&#8217;ll have to use Excel or some other tool to query the database for the information that you want.</p>
<p><a href="http://www.stevenmcnutt.com/files/NortelLogParser.zip">Click here to download.</a></p>
<p><strong>UPDATE:</strong> I just noticed (12/14/2011) that the field detection is still a little buggy, and a feature that I added after the fact of associating a record with the file it came out of lags by a day.  The program is still better than nothing, but I do have to patch it up a bit when I get some time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/07/28/nortel-bcm-log-parser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Command Line Argument</title>
		<link>http://www.stevenmcnutt.com/2011/07/25/command-line-argument/</link>
		<comments>http://www.stevenmcnutt.com/2011/07/25/command-line-argument/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 21:13:22 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=263</guid>
		<description><![CDATA[<p>Firing up the way-back machine, I recalled interfaces from Exchange versions past that would immediately return some nice data, such as mailbox size, item counts, etc.  I set out to try and recreate some of these interfaces, but it seemed that a lot of the coding examples were in C#, a language that I <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/07/25/command-line-argument/">Command Line Argument</a></span>]]></description>
			<content:encoded><![CDATA[<p>Firing up the way-back machine, I recalled interfaces from Exchange versions past that would immediately return some nice data, such as mailbox size, item counts, etc.  I set out to try and recreate some of these interfaces, but it seemed that a lot of the coding examples were in C#, a language that I wasn&#8217;t very familiar with.</p>
<p>Undeterred, I went through some C# lessons and I now have what I hope is a decent &#8220;working IT guy&#8217;s&#8221; knowledge of it&#8217;s inner workings.  Unfortunately at this point, I can&#8217;t exactly remember what I was missing from the past Exchange interfaces that drove me to learn C# to begin with, apart from the table that had the mailbox sizes.</p>
<p>I eventually determined that the Powershell command that I needed was:</p>
<p style="padding-left: 30px;">Get-MailboxStatistics -server &lt;exchange server name&gt;| Select-Object DisplayName, TotalItemSize, ItemCount,StorageLimitStatus,LastLogonTime | Out-GridView&#8221;</p>
<p>I figured my C# coding skills would have to apply to something else as I could just as easily put that line into a batch file! For some reason, though, launching the command from a batch file would open the &#8216;Grid View&#8217;, but it would close immediately, so back to C#</p>
<p>I had the program working fine on my desktop, and had it set to either ask for a server name, or accept a command line argument that would contain the server name. For reasons I still don&#8217;t fathom, the command line argument wouldn&#8217;t work on the Exchange server itself. I eventually had to change the code from:</p>
<p style="padding-left: 30px;">if (args[0] != null)<br />
ServerName = args[0];</p>
<p>to:</p>
<p style="padding-left: 30px;">if (args.Length&gt;0)<br />
{<br />
if (args[0] != null)<br />
{<br />
ServerName = args[0];</p>
<p>Which makes more sense, I guess, but I don&#8217;t know why the former only worked on the desktop unless there&#8217;s some variation of the .Net runtimes between the desktop and server in how they handle command line arguments?</p>
<p>Anyway, if you&#8217;d care for a little program that auto-launches this grid view,<a href="http://www.stevenmcnutt.com/files/GetMailboxStats.zip"> I&#8217;ve posted it here</a>.  It includes the user&#8217;s display name, their mailbox size, the number of items, and if they&#8217;ve exceeded their quota.  You may need <a href="http://www.yellow-bricks.com/2011/02/24/using-the-out-gridview-feature-in-powercli/">this note </a>if you get an &#8216;index out of bound&#8217; error due to the Powershell visual GUI elements not being installed (obviously you&#8217;ll need a 64 bit machine with the Exchange Powershell add-on installed).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/07/25/command-line-argument/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Remote Desktop With XP</title>
		<link>http://www.stevenmcnutt.com/2011/06/01/remote-desktop-with-xp/</link>
		<comments>http://www.stevenmcnutt.com/2011/06/01/remote-desktop-with-xp/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 00:31:33 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Terminal Server]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=256</guid>
		<description><![CDATA[<p>Faced with an aging remote access server with dubious patches I wanted to move a little more quickly to a Windows Server 2008 R2 terminal server, but there is an issue: there&#8217;s no support for NLA connections within XP out of the box.  True, there&#8217;s some registry hacks to enable the feature, but I <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/06/01/remote-desktop-with-xp/">Remote Desktop With XP</a></span>]]></description>
			<content:encoded><![CDATA[<p>Faced with an aging remote access server with dubious patches I wanted to move a little more quickly to a Windows Server 2008 R2 terminal server, but there is an issue: there&#8217;s no support for NLA connections within XP out of the box.  True, there&#8217;s some registry hacks to enable the feature, but I couldn&#8217;t have end user&#8217;s doing that, so I resolved to write a program to do it for them.  It wasn&#8217;t until I was almost done that I discovered that, alas, <a href="http://support.microsoft.com/kb/951608">Microsoft had already written one</a>.</p>
<p>I hate to be outdone to that extent so <a href="http://www.stevenmcnutt.com/files/enablexpnla.zip">I&#8217;m still posting mine here</a>: a zip file which contains a Windows forms version, and a command line version, both of which run remarkably faster than Microsoft&#8217;s patch.  My program(s) will check to make sure that it&#8217;s the proper version of the OS (Windows XP with service pack 3) and that the registry entries need to be added (with visual output).  No backups are taken,<a href="http://www.stevenmcnutt.com/files/enablexpnla.zip"> so use at your own (minimal) risk</a>!</p>
<p>(Although I typically share my code, I must admit to being slightly embarrassed at it&#8217;s condition since it&#8217;s my first full fledged C# program.  I&#8217;ll share if I get around to cleaning it up so that it doesn&#8217;t look like a VB guy wrote a C# program <img src='http://www.stevenmcnutt.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Now to patch up all the other Windows XP issues with the Remote Desktop Connection services in Windows 2008 r2&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/06/01/remote-desktop-with-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contact Forms and WordPress</title>
		<link>http://www.stevenmcnutt.com/2011/05/16/contact-forms-and-wordpress/</link>
		<comments>http://www.stevenmcnutt.com/2011/05/16/contact-forms-and-wordpress/#comments</comments>
		<pubDate>Mon, 16 May 2011 20:42:27 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[WebDev]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=250</guid>
		<description><![CDATA[<p>I&#8217;m rebuilding my company&#8217;s website around WordPress, but a sticking point is a web contact form. This appeared to be no problem as there&#8217;s several nice contact form add-ins for WordPress. However, it didn&#8217;t matter which one I used, Contact Form 7, Fast Secure Contact Form, Contact ColdForm, they all didn&#8217;t work. I&#8217;d hit <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/05/16/contact-forms-and-wordpress/">Contact Forms and WordPress</a></span>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m rebuilding my company&#8217;s website around WordPress, but a sticking point is a web contact form. This appeared to be no problem as there&#8217;s several nice contact form add-ins for WordPress. However, it didn&#8217;t matter which one I used, Contact Form 7, Fast Secure Contact Form, Contact ColdForm, they all didn&#8217;t work. I&#8217;d hit submit and the page would cycle back (or in the case of CF7, the spinning arrow would just sit there forever). I rebuilt the server by importing the theme and WordPress settings in a different website and the forms worked, until I restored the MySql database.</p>
<p>At that point I knew it had to be one of the dozens of customizations I had done to WordPress that was causing the forms to fail. And after a bit of a search, I found it: my custom permalink.  It turns out that although most of the rest of WordPress is forgiving about <em>not</em> rewriting URLs, the contact forms are not.  This was on IIS7 so I had to download and install<a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=D05111C1-B4F7-45F3-8F60-A8F2B9D49ED1&amp;displaylang=en"> the URL rewrite module</a> and then follow the somewhat cryptic instructions <a href="http://learn.iis.net/page.aspx/466/enabling-pretty-permalinks-in-wordpress/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/05/16/contact-forms-and-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Google is Winning</title>
		<link>http://www.stevenmcnutt.com/2011/04/21/why-google-is-winning/</link>
		<comments>http://www.stevenmcnutt.com/2011/04/21/why-google-is-winning/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 19:14:01 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=232</guid>
		<description><![CDATA[<p>So I need service pack 1 for Windows Server 2008 R2, and what better place to find it than by doing a search on Microsoft&#8217;s download site (http://www.microsoft.com/downloads)?</p> <p></p> <p>Okay, maybe Google will be able to dig up this difficult to find file, which I guess is stored on a thrid party site or <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/04/21/why-google-is-winning/">Why Google is Winning</a></span>]]></description>
			<content:encoded><![CDATA[<p>So I need service pack 1 for Windows Server 2008 R2, and what better place to find it than by doing a search on Microsoft&#8217;s download site (<a href="http://www.microsoft.com/downloads">http://www.microsoft.com/downloads</a>)?</p>
<p><a href="http://www.stevenmcnutt.com/wp-content/uploads/2011/04/mssearch.jpg"><img class="aligncenter size-full wp-image-234" title="mssearch" src="http://www.stevenmcnutt.com/wp-content/uploads/2011/04/mssearch.jpg" alt="" width="653" height="211" /></a></p>
<p>Okay, maybe Google will be able to dig up this difficult to find file, which I guess is stored on a thrid party site or something:</p>
<p><a href="http://www.stevenmcnutt.com/wp-content/uploads/2011/04/google-search.jpg"><img class="aligncenter size-full wp-image-233" title="google search" src="http://www.stevenmcnutt.com/wp-content/uploads/2011/04/google-search.jpg" alt="" width="708" height="169" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/04/21/why-google-is-winning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tragedy of the IP Address Commons</title>
		<link>http://www.stevenmcnutt.com/2011/03/24/tragedy-of-the-ip-address-commons/</link>
		<comments>http://www.stevenmcnutt.com/2011/03/24/tragedy-of-the-ip-address-commons/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 16:50:14 +0000</pubDate>
		<dc:creator>Steven McNutt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.stevenmcnutt.com/?p=218</guid>
		<description><![CDATA[<p>This story detailing Microsoft&#8217;s purchase of Nortel&#8217;s IPv4 address blocks has a quote that sums up the IPv4 shortage issue:</p> <p>The Regional Internet Registries, which allocate IP addresses, do not typically view IP as an asset that can be bought and sold. There are processes being developed for assignees to return unused IPv4 to the <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.stevenmcnutt.com/2011/03/24/tragedy-of-the-ip-address-commons/">Tragedy of the IP Address Commons</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.theregister.co.uk/2011/03/24/microsoft_ip_spend/">This story</a> detailing Microsoft&#8217;s purchase of Nortel&#8217;s IPv4 address blocks has a quote that sums up the IPv4 shortage issue:</p>
<blockquote><p>The Regional Internet Registries, which allocate IP addresses, do not typically view IP as an asset that can be bought and sold. There are processes being developed for assignees to return unused IPv4 to the free pool, for the good of the internet community.</p></blockquote>
<p>The &#8216;good of the Internet community&#8217;?  Have these people used the Internet? <img src='http://www.stevenmcnutt.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>IPv6 is being billed as the cure-all, but unfortunately there is as of yet far too much legacy technology out there to make discarding IPv4 worthwhile. This has led to a shortage of IPv4 addresses, however, if there was a market available where people could buy or sell the IPv4 blocks that they own it would bring added IPv4 capacity to the market.  Even if fully implemented, IPv6&#8242;s vast address space merely covers up for the incompetence of the RIR&#8217;s management of the address blocks and doesn&#8217;t actually address any fundamental flaws in IPv4 (while arguably, <a href="http://www.techrepublic.com/whitepapers/ipv6-and-spam/972565">creating whole new undesirable issues</a>).</p>
<p>As an example, at my current location we have a whole class C address block (~253 usable addresses) that we acquired back in the day when one would call and request a number of addresses and the IPv4 addresses were handed over with very few questions asked.  Most companies this size get by with one to five addresses using PAT and whatnot, but I have the advantage of running an ultra-inefficient Internet setup with huge swaths of dynamic NAT pools, static addresses to equipment that I might need once a year, and a honeypot sitting on top of well over 150 of the remaining addresses.  For a price which would justify a move to a more efficient setup under an ISP address block we might be willing to part with them, otherwise there&#8217;s no cost justification in having to make the changes. </p>
<p>Due to the existence of large <a href="http://www.govtech.com/security/Dark-Spaces.html">&#8216;dark IP address blocks&#8217;</a>, the current lack of true ownership and transferability of these blocks has led to a shortage of those that can be used, and an Internet &#8216;slum&#8217; where hackers can hang out in address pools that have gone fallow.  There is no real shortage, only a &#8216;commons&#8217; that has been improperly managed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenmcnutt.com/2011/03/24/tragedy-of-the-ip-address-commons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

