<?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>Ardamis &#187; troubleshooting</title>
	<atom:link href="http://www.ardamis.com/tag/troubleshooting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ardamis.com</link>
	<description>Ardamis is a blog about web development and technology in general.</description>
	<lastBuildDate>Sat, 04 Feb 2012 15:26:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Autonegotiation</title>
		<link>http://www.ardamis.com/2011/12/21/autonegotiation/</link>
		<comments>http://www.ardamis.com/2011/12/21/autonegotiation/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 16:51:58 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1816</guid>
		<description><![CDATA[Some notes on the commonly misunderstood subject of network autonegotiation, with an emphasis on duplex mismatches caused by differences in configurations of two partners to a connection.]]></description>
			<content:encoded><![CDATA[<h2>Autonegotiation</h2>
<p>Network autonegotiation is easily misunderstood.  Consider two 10/100Mb devices attached to one another &#8211; a PC connected to a router.  For each of these devices, it&#8217;s possible to configure the connection to use either 1) a fixed speed and duplex or 2) to negotiate the optimal shared speed and duplex with whatever it is connecting to.  What is not intuitive is that both devices must be configured with the same settings.  The connection will suffer a performance hit, or may not work at all, if the two devices are configured differently.</p>
<blockquote><p>A common misconception about autonegotiation is that it is possible to manually configure one link partner for 100 Mbps full-duplex and autonegotiate to full-duplex with the other link partner. In fact, an attempt to do this results in a duplex mismatch. This is a consequence of one link partner autonegotiating, not seeing any autonegotiation parameters from the other link partner, and defaulting to half-duplex.</p>
<p><a href="http://www.cisco.com/en/US/products/hw/switches/ps4324/products_tech_note09186a0080094713.shtml#auto_neg" title="Best Practices for Catalyst 4500/4000, 5500/5000, and 6500/6000 Series Switches Running CatOS Configuration and Management">http://www.cisco.com/en/US/products/hw/switches/ps4324/products_tech_note09186a0080094713.shtml#auto_neg</a></p></blockquote>
<p>If both devices are configured to autonegotiate speed and duplex, then each will attempt to make the best possible connection among the possibilities they have in common. However, if one of the devices is set to use a fixed speed and duplex and the other device is set to autonegotiate, the autonegotiating device can determine the speed but not the duplex of the other device and so falls back to its default duplex mode.  In the case of Cisco switches, the default duplex mode is half-duplex.</p>
<blockquote><p>&#8230;it is possible for a[n autonegotiating] link partner to detect the speed at which the other link partner operates, even though the other link partner is not configured for auto-negotiation. In order to detect the speed, the link partner senses the type of electrical signal that arrives and sees if it is 10 Mb or 100 Mb. </p>
<p>It is not possible to detect the correct duplex mode in the same method that the correct speed can be detected. In this case, the [...] port of [the autonegotiating] switch [...] is forced to select the default duplex mode. On Catalyst Ethernet ports, the default mode is auto-negotiate. If auto-negotiation fails, the default mode is half-duplex.</p>
<p><a href="http://www.cisco.com/en/US/tech/tk389/tk214/technologies_tech_note09186a0080094781.shtml" title="Configuring and Troubleshooting Ethernet 10/100/1000Mb Half/Full Duplex Auto-Negotiation">http://www.cisco.com/en/US/tech/tk389/tk214/technologies_tech_note09186a0080094781.shtml</a></p></blockquote>
<p>Half-duplex as a default duplex mode is not unique to Cisco switches.  Below is a link to an article on www.dell.com written by Rich Hernandez, a senior engineer with the Server Networking and Communications Group at Dell, that contains a table summarizing &#8220;all possible combinations of speed and duplex settings, both on 10/100/1000-capable switch ports and on NICs.&#8221;  Included are combinations that would yield no link or link fail conditions, as well as combinations that would yield a duplex mismatch.</p>
<p><a href="http://www.dell.com/content/topics/global.aspx/power/en/ps1q01_hernan?c=us&#038;cs=555&#038;l=en&#038;s=biz" title="Gigabit Ethernet Auto-Negotiation">http://www.dell.com/content/topics/global.aspx/power/en/ps1q01_hernan?c=us&#038;cs=555&#038;l=en&#038;s=biz</a></p>
<p>The importance of using identical settings on both sides of a network connection is stressed in a KB article from www.symantec.com with information on how an autonegotiating port may report that it has established a full-duplex connection with a NIC configured for 100MBs/Full, but in fact is communicating at less than expected capacity. </p>
<blockquote><p>Only by explicitly setting both sides of the link to the same duplex mode would the link work flawlessly.</p>
<p><a href="http://www.symantec.com/business/support/index?page=content&#038;id=TECH87827" title="DOCUMENTATION: What is a network link duplex mismatch or conflict?">http://www.symantec.com/business/support/index?page=content&#038;id=TECH87827</a></p></blockquote>
<h2>Understanding link data errors</h2>
<p>The page at the link below contains two tables that explain the various errors and counters logged by a network switch and the possible causes.</p>
<p><a href="http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800a7af0.shtml#ustand" title="Understanding Data Link Errors">http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800a7af0.shtml#ustand</a></p>
<h2>Troubleshooting Ethernet Collisions</h2>
<p>Collisions may appear to indicate communication problems with a network connection, but as a technote from cisco.com states, collision counters alone are not indicative of network problems.</p>
<blockquote><p>&#8230;collisions are a way to distribute the traffic load over time by arbitrating access to the shared medium. Collisions are not bad; they are essential to correct Ethernet operation.</p>
<p>There is no set limit for &#8220;how many collisions are bad&#8221; or a maximum collision rate.  </p>
<p>In conclusion, the collisions counter does not provide a very useful statistic to analyze network performance or problems.</p>
<p><a href="http://www.cisco.com/en/US/products/hw/modules/ps2033/products_tech_note09186a008009446d.shtml" title="Troubleshooting Ethernet Collisions">http://www.cisco.com/en/US/products/hw/modules/ps2033/products_tech_note09186a008009446d.shtml</a></p></blockquote>
<h2>Late Collisions</h2>
<blockquote><p>When a collision is detected by a station after it has sent the 512th bit of its frame, it is counted as a late collision.</p>
<p>The station that reports the late collision merely indicates the problem; it is generally not the cause of the problem. Possible causes are usually incorrect cabling or a non-compliant number of hubs in the network. Bad network interface cards (NICs) can also cause late collisions.</p>
<p><a href="http://www.cisco.com/en/US/products/hw/modules/ps2033/products_tech_note09186a008009446d.shtml" title="Troubleshooting Ethernet Collisions">http://www.cisco.com/en/US/products/hw/modules/ps2033/products_tech_note09186a008009446d.shtml</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/12/21/autonegotiation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A common sense workaround for installing SetPoint in a VMware virtual machine</title>
		<link>http://www.ardamis.com/2011/11/01/setpoint-functionality-in-vmware/</link>
		<comments>http://www.ardamis.com/2011/11/01/setpoint-functionality-in-vmware/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 20:47:56 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1749</guid>
		<description><![CDATA[A workaround to installing Logitech's SetPoint utility in order to map mouse buttons on a Windows XP virtual machine running in VMWare Workstation 7.]]></description>
			<content:encoded><![CDATA[<p>I have a Windows XP guest running in VMWare Workstation 7 on a Windows 7 Ultimate host machine.  This is working pretty well.  The XP guest is nice and responsive.  I have only one gripe.  I&#8217;d like all of the buttons on my Logitech MX510 (the best mouse ever) to be mappable in the guest.</p>
<p>Starting from square one, I decided to try installing the current version of SetPoint in the guest OS.  The installation went fine, but the usual functionality of the SetPoint settings utility was absent.</p>
<div id="attachment_1795" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ardamis.com/wp-content/uploads/2011/10/setpoint-vmware.png"><img src="http://www.ardamis.com/wp-content/uploads/2011/10/setpoint-vmware-300x227.png" alt="SetPoint Settings in an XP virtual machine" title="SetPoint Settings in an XP virtual machine" width="300" height="227" class="size-medium wp-image-1795" /></a><p class="wp-caption-text">SetPoint Settings in an XP virtual machine</p></div>
<p>As shown in the screenshot, the SetPoint Settings utility displays only the Tools tab.  It is missing the My Mouse tab (and if a keyboard were installed, I presume it would be missing the Keyboard tab, too).</p>
<p>After some Googling around, it appears to be a due to the way VMware approximates the physical mouse.  VMware seems to treat USB mice connected to the host as PS/2 devices in the guest.  SetPoint, then, doesn&#8217;t detect any Logitech hardware that it can configure.</p>
<p>The question of how to obtain SetPoint functionality in virtual machines is one that has been asked many, many times before, without a satisfactory answer.  More on that in a little bit.</p>
<h2>The best work around</h2>
<p>Thankfully, it seems that, at least in the case of a Windows host and a Windows guest, installing SetPoint inside the virtual machine is not necessary.  Installing it on the host seems to make all of the functionality available in the guest.  This is the solution that I&#8217;m implementing now, and it is what I would recommend, provided you have rights to install software on the host. </p>
<h2>Paths to follow if you want to pursue installing SetPoint inside a VMware virtual machine</h2>
<p>I applaud your courage.  There are a few settings that can be tweaked that may get you closer to a working installation.</p>
<p><strong>Possible setting number one</strong></p>
<p>From the post at http://coreygilmore.com/blog/2008/04/30/better-multi-button-mouse-support-with-vmware-fusion-and-workstation/</p>
<p>Add the following line to the virtual machine&#8217;s .vmx file:</p>
<pre class="brush: plain; title: ; notranslate">
mouse.vusb.enable = &quot;TRUE&quot;
</pre>
<p>From what I can tell, this setting allows me to use the Forward and Back buttons on the mouse, but does not make the mouse detectable by SetPoint.  The remaining mouse buttons do nothing.</p>
<p><strong>Possible setting number two</strong></p>
<p>From the post at <a href="http://superuser.com/questions/35830/back-forward-mouse-buttons-do-not-work-in-vmware-workstation-6-5-guest-os/304583#304583">http://superuser.com/questions/35830/back-forward-mouse-buttons-do-not-work-in-vmware-workstation-6-5-guest-os/304583#304583</a></p>
<p>The solution given (which did not work for me) is to:</p>
<p>First add the following line to the virtual machine&#8217;s .vmx file:</p>
<pre class="brush: plain; title: ; notranslate">
usb.generic.allowHID = &quot;TRUE&quot;
</pre>
<p>An explanation of what this does, by a VMware associate, can be found in the thread at <a href="http://communities.vmware.com/thread/110919?start=15&#038;tstart=0">http://communities.vmware.com/thread/110919?start=15&#038;tstart=0</a></p>
<blockquote><p>
If you&#8217;re feeling really adventurous and/or desperate, you can take out the mouse.vusb.enable line and add this option instead:</p>
<p>usb.generic.allowHID = &#8220;TRUE&#8221;</p>
<p>Then, you&#8217;ll notice that your main mouse and keyboard (if they are USB) are available to pass through into the guest via the USB devices menu.</p>
<p>The dangerous part here is that once you pass through the mouse, it is actually disconnected from the host, so you won&#8217;t be able to ungrab from the guest just by mousing out of the Fusion window. You can still ungrab with the keyboard (ctrl-cmd I believe is the shortcut?). If you actually pass through your keyboard and your mouse, you&#8217;ll be stuck in the guest and you&#8217;ll have to shut it down (or worse, reboot your physical machine).
</p></blockquote>
<p>This sounded like a great idea, and I was willing to set up a second, PS/2 mouse to control just the host, if necessary.  Without connecting a second mouse, I tried passing the Logitech mouse as a USB device to the VM, just as I would an external hard drive, but VMware prevented this, with a warning message:</p>
<blockquote><p>
[Machine Name] &#8211; VMware Workstation<br />
Cannot connect &#8220;Logitech USB-PS/2 Optical Mouse&#8221; to this virtual machine. The host requires this device for input.<br />
[OK]
</p></blockquote>
<p>The second step would have been to go into Device Manager, click Actions, and then choose &#8220;Scan for hardware changes&#8221;.</p>
<p>I didn&#8217;t get to the second step, as I was too lazy to track down a PS/2 mouse to keep attached to the host, and I still wanted to find a software solution.  I suspect, though, that this would be were to begin, were I to need to get SetPoint running in the guest OS.</p>
<h2>Summary</h2>
<p>While I wasn&#8217;t able to figure out how to install SetPoint on a guest OS, the workaround of installing SetPoint on the host OS seems to accomplish my goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/11/01/setpoint-functionality-in-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoDaddy phpMyAdmin error #1045 &#8211; Access denied for user</title>
		<link>http://www.ardamis.com/2011/10/11/godaddy-phpmyadmin-error-1045-access-denied-for-user/</link>
		<comments>http://www.ardamis.com/2011/10/11/godaddy-phpmyadmin-error-1045-access-denied-for-user/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 02:45:33 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Web Site Dev]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[web app]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1768</guid>
		<description><![CDATA[How GoDaddy's new MySQL database form accepts mixed case characters as a username, then converts the username to lowercase without alerting you, potentially causing login problems down the road.]]></description>
			<content:encoded><![CDATA[<p>While setting up a new MySQL account at a GoDaddy hosted web site, I kept getting an error when logging in to phpMyAdmin.</p>
<blockquote><p>
<strong>Error</strong><br />
#1045 &#8211; Access denied for user
</p></blockquote>
<p>For things like database usernames/passwords and other things that I&#8217;ll never have to remember or type, I like to use a long string of random characters.  One excellent source of such strings is <a href="https://www.grc.com/passwords.htm">GRC&#8217;s Ultra High Security Password Generator</a>.  I typically use a subset of the 63 random alpha-numeric characters (a-z, A-Z, 0-9) in the bottom box.  This gives me a good mix of uppercase, lowercase, and numbers, which satisfies the requirements of most password systems that require even minimum complexity.</p>
<p>So, I picked a string of characters for the database name and a different string for the password (making sure the password contained at least 1 uppercase character and 1 number), pasted them into the config.php file I was going to use on the project and then pasted them into the database setup form and created my database.  No problem.</p>
<p>I gave it 10 or 15 minutes to get all set up and then launched phpMyAdmin.  I copied and pasted the username and password from my config file into the log in fields and wham, I got the #1045.</p>
<p>After much second guessing and more copying and pasting, all with no luck, I tried resetting the password back in the Hosting Control Center.  I waited a few more minutes for good measure and tried again.  Still, #1045 &#8211; Access denied for user.</p>
<p>Then it was time to Google, which turned up a thread full of people with the same experience at <a href="http://community.godaddy.com/groups/web-hosting/forum/topic/mysql-login-error-1045-access-denied-for-user/?sid&#038;sp=1&#038;topic_page=1&#038;num=15">http://community.godaddy.com/groups/web-hosting/forum/topic/mysql-login-error-1045-access-denied-for-user/?sid&#038;sp=1&#038;topic_page=1&#038;num=15</a>.</p>
<p>Back in the Control Center, I noticed that the mixed case characters I&#8217;d used for the database/username had been converted to lowercase.  So I tried using the lowercase version at phpMyAdmin and still no luck.</p>
<p>I submitted a support ticket, as recommended in the thread, and then called Customer Support for good measure.</p>
<p>The guy confirmed that the database was in good shape and that the last password reset took effect, then had me reset it again.  And of course, when I tried to log into phpMyAdmin a moment later with the lowercase username, it went right in.</p>
<h2>The fix (or a plausible explanation, at least)</h2>
<p>The lesson learned here, is that even though the new MySQL database setup form will accept mixed case characters as the database name/username, it will <em>silently convert them to lowercase on you</em>.  The phpMyAdmin login, then, is case sensitive, so you may want to copy and paste from the Control Center into phpMyAdmin to be sure you&#8217;re feeding it the correct username.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/10/11/godaddy-phpmyadmin-error-1045-access-denied-for-user/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring FileZilla FTP to use active mode to resolve &#8220;425 Can&#8217;t open data connection&#8221; errors</title>
		<link>http://www.ardamis.com/2011/10/07/filezilla-active-mode/</link>
		<comments>http://www.ardamis.com/2011/10/07/filezilla-active-mode/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 04:18:11 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1756</guid>
		<description><![CDATA[How to configure the FileZilla FTP client to use active mode in order to resolve "425 Can't open data connection" errors, and why they occur.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using the <a href="http://filezilla-project.org/">FileZilla</a> FTP client for many years and in that time have had only a few occasions where the application didn&#8217;t perform with the default settings.</p>
<p>One of those instances was yesterday, when I was trying to connect to my firm&#8217;s FTP site from an external network connection.  From inside the office, using the internal IP address, FileZilla connected normally and displayed the contents of the root directory after I authenticated.</p>
<p>From outside the office, connecting via the hostname <em>ftp.domain.com</em>, FileZilla would connect normally and authenticate successfully, but it would not display the contents of the root directory.  Instead, the server would send a &#8220;425 Can&#8217;t open data connection&#8221; message.  FileZilla would then report &#8220;Error: Failed to retrieve directory listing&#8221;. </p>
<p>Here&#8217;s the complete conversation between the client and the server (names and IP addresses changed to protect the firm&#8217;s identity):</p>
<pre class="brush: plain; title: ; notranslate">
Status: Resolving address of ftp.domain.com
Status: Connecting to 38.98.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Response: 220-Microsoft FTP Service
Response: 220 Company Name
Command: USER ftp_username
Response: 331 Password required for ftp_username.
Command: PASS **********
Response: 230-Welcome to the Company Name FTP service.  Unauthorized use is strictly prohibited.
Response: 230 User ftp_username logged in.
Status:	Connected
Status:	Retrieving directory listing...
Command: PWD
Response: 257 &quot;/&quot; is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Response: 227 Entering Passive Mode (192,168,0,114,13,156).
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: LIST
Response: 425 Can't open data connection.
Error: Failed to retrieve directory listing
Response: 421 Timeout (120 seconds): closing control connection.
Error: Could not read from socket: ECONNRESET - Connection reset by peer
Error: Disconnected from server
</pre>
<p>The interesting thing, I thought, was that when the server agreed to use passive mode, it did so with a port on the internal IP address, which is unroutable from outside the network.</p>
<h2>The fix is to use active mode</h2>
<p>OK, if you&#8217;re reading this, you probably just want to know how to make it work.  FileZilla uses passive mode by default, but due to the network configuration of certain servers, active mode is required to establish a data connection.  A bit of background reading with some explanation is farther down.  </p>
<p>In FileZilla, click on <strong>Edit | Settings</strong>.</p>
<p>Under <strong>Connection</strong>, click on <strong>FTP</strong> and choose <strong>Active</strong> as the Transfer Mode.</p>
<p>Under <strong>Connection</strong>, under <strong>FTP</strong>, click on <strong>Active mode</strong> and choose &#8220;Ask your operating system for the external IP address&#8221; (the default setting).</p>
<p>Under <strong>Connection</strong>, under <strong>FTP</strong>, click on <strong>Passive mode</strong> and choose &#8220;Fall back to active mode&#8221; (this is an optional setting).</p>
<h2>What is the difference between active and passive mode?</h2>
<p>According to the <a href="http://wiki.filezilla-project.org/Network_Configuration#Technical_background">FileZilla wiki page on network configuration</a>:</p>
<blockquote><p>
In passive mode, which is recommended (see below), the client sends the PASV command to the server, and the server responds with an address. The client then issues a command to transfer a file or to get a directory listing, and establishes a secondary connection to the address returned by the server.</p>
<p>In active mode, the client opens a socket on the local machine and tells its address to the server using the PORT command. Once the client issues a command to transfer a file or listing, the server will connect to the address provided by the client.
</p></blockquote>
<p>The difference, then, is which side gets to determine the address used during the connection.  In passive mode, the server provides the address, while in active mode, the client provides the address.</p>
<h2>Why do I need to use active mode?</h2>
<p>You probably shouldn&#8217;t need to use active mode, and in fact, it requires more configuration by the user of the FTP client to use active mode.</p>
<blockquote><p>
In passive mode, the router and firewall on the server side need to be configured to accept and forward incoming connections. On the client side, however, only outgoing connections need to be allowed (which will already be the case most of the time).</p>
<p>Analogously, in active mode, the router and firewall on the client side need to be configured to accept and forward incoming connections. Only outgoing connections have to be allowed on the server side.</p>
<p><a href="http://wiki.filezilla-project.org/Network_Configuration#Technical_background">http://wiki.filezilla-project.org/Network_Configuration#Technical_background</a>
</p></blockquote>
<p>So, it boils down to who&#8217;s going to be responsible for the NAT and firewall configuration.  Using passive mode places the responsibility on the server side of the connection, while using active mode places it on the client side.  Typically, the FTP server administrator should be better equipped to handle this responsibility than the average FTP client user.</p>
<blockquote><p>
<strong>Passive mode</strong></p>
<p>In passive mode, the client has no control over what port the server chooses for the data connection. Therefore, in order to use passive mode, you&#8217;ll have to allow outgoing connections to all ports in your firewall.</p>
<p><strong>Active mode</strong></p>
<p>In active mode, the client opens a socket and waits for the server to establish the transfer connection.</p>
<p><a href="http://wiki.filezilla-project.org/Network_Configuration#Setting_up_FileZilla_Client">http://wiki.filezilla-project.org/Network_Configuration#Setting_up_FileZilla_Client</a>
</p></blockquote>
<p>I&#8217;m behind a NAT router and I&#8217;ve never had any problems with passive mode.  On the other hand, I seem to be able to connect to all my sites without any problem with the client in active mode, too, and I haven&#8217;t had to open any ports in Windows Firewall or forward any ports on my router.  So maybe active mode doesn&#8217;t require as much configuration as the wiki page leads me to believe.  Or maybe I&#8217;m just getting lucky and I&#8217;ll eventually run into problems if I continue to run in active mode.</p>
<h2>Why does the server respond with the local IP address?</h2>
<p>The FileZilla people offer a a partial explanation for why I&#8217;m seeing the internal IP address when I connect using the hostname.  Back in Settings, under <strong>Connection | FTP | Passive mode</strong>, is some support text that reads: <em>Some misconfigured remote servers which are behind a router, may reply with their local IP address</em>.</p>
<p>The wiki page is pretty good reading, and has some interesting stuff on NAT, but I think that I&#8217;ll offer this plain-language, local IP address explanation when troubleshooting FTP connections.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/10/07/filezilla-active-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Native Windows compressed folders utility fails, asks for 5.99 PB free space</title>
		<link>http://www.ardamis.com/2011/07/28/native-windows-compressed-folders-utility-5-99-pb/</link>
		<comments>http://www.ardamis.com/2011/07/28/native-windows-compressed-folders-utility-5-99-pb/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 16:58:21 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1623</guid>
		<description><![CDATA[Extracting certain large zip files using Windows' native compression utility fails with a pretty neat error: You need an additional 5.99 PB to copy these files.]]></description>
			<content:encoded><![CDATA[<p>The other day, I needed to extract a 7 GB zip file containing a VMware virtual machine onto the hard drive of a nearly stock 64-bit Windows 7 Professional machine.  Because this machine did not have a third-party compression utility installed, I tried to extract it using Windows&#8217; native zip utility, called Compressed Folders.</p>
<p>This failed with a pretty neat error.</p>
<div id="attachment_1638" class="wp-caption aligncenter" style="width: 489px"><a href="http://www.ardamis.com/wp-content/uploads/2011/07/you-need-an-additional-5.99-PB-to-copy-these-files.jpg"><img src="http://www.ardamis.com/wp-content/uploads/2011/07/you-need-an-additional-5.99-PB-to-copy-these-files.jpg" alt="" title="You need an additional 5.99 PB to copy these files." width="479" height="299" class="size-full wp-image-1638" /></a><p class="wp-caption-text">You need an additional 5.99 PB to copy these files.</p></div>
<p>As you can see in the screenshot above, Windows reported that&#8230;</p>
<blockquote><p><strong>Copy Folder</strong></p>
<p>There is not enough space on Local Disk. You need an additional 5.99 PB to copy these files.</p>
<p>Local Disk<br />
Space free: 125 GB<br />
Total size: 232 GB</p>
<p>[Try Again] [Cancel]
</p></blockquote>
<p>I found the 5.99 petabyte requirement pretty amusing, but I was in a hurry, so I downloaded the excellent <a href="http://www.7-zip.org/">7-Zip</a>, unpacked the file, and set about building the vm.</p>
<p>I had meant to write a post about the error message, but some time passed and I forgot all about it.  Then, about three weeks later, someone else in the department tried to extract a copy of the file on a 32-bit Windows XP Professional machine and got the same error.  At that point, I had to investigate.</p>
<p>The Compressed Folders native Windows utility seemed to be unable to accurately calculate the free space needed to extract the file.  The file was admittedly pretty large, but was size the only reason?</p>
<p>According to the <a href="http://en.wikipedia.org/wiki/ZIP_(file_format)">Wikipedia page on ZIP files</a>, there are a number of known limitations of Compressed Folders.</p>
<blockquote><p>ZIP64, AES Encryption, split or spanned archives, and Unicode entry encoding are not known to be readable or writable by the Compressed Folders feature in Windows XP or Windows Vista.</p>
<p><a href="http://en.wikipedia.org/wiki/ZIP_(file_format)#Windows_compressed_folders">http://en.wikipedia.org/wiki/ZIP_(file_format)#Windows_compressed_folders</a></p></blockquote>
<p>None of these things applied to my file, but I found a rather telling and simultaneously ambiguous (go figure) KB article at Microsoft Support: <a href="http://support.microsoft.com/kb/301325">Compressed folder becomes corrupted when larger than 2 gigabytes</a>.</p>
<p>According to various threads, the popular theory is that the problem stems from size limitations on compressed files.  Windows Vista and later have a 4 GB limit (compressed and uncompressed size), while XP has a 2 GB limit.</p>
<p>Strangely, the same error appears before a copy process when the OS encounters a file that exceeds its maximum individual file size, which I can understand, but find a bit confusing in the context of a zip file.  Certainly, both Windows 7 and XP (NTFS) were able to handle the file to begin with, and only had a problem when decompressing it.  </p>
<p>My best guess is that the file was created using the Compressed Folders feature on XP. The file exceeded the maximum size limit for that version of Windows, but due to the bug described in MS KB article 301325, the file was created anyway using 32-bit headers.  When the file was later opened by Compressed Folders, the 64-bit headers were read (as a file of that size would naturally use 64-bit headers), but that information was garbage, preventing Windows from accurately calculating the space required to extract.</p>
<p>If anyone has a more complete understanding of the cause of this error, please leave me a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/07/28/native-windows-compressed-folders-utility-5-99-pb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fixed: XAMPP Component Status Check failure [3].</title>
		<link>http://www.ardamis.com/2011/07/10/xampp-component-status-check-failure-3/</link>
		<comments>http://www.ardamis.com/2011/07/10/xampp-component-status-check-failure-3/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 18:35:21 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Site Dev]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1603</guid>
		<description><![CDATA[A simple fix for the XAMPP Component Status Check failure [3]. error when launching the XAMPP 1.7.4 Control Panel.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m running XAMPP 1.7.4 [PHP: 5.3.5] (not as a service) on 64-bit Windows 7 Professional.  </p>
<p>I installed XAMPP to E:\xampp, and I have pinned the XAMPP Control Panel (xampp-control.exe) to the taskbar for easier access, but starting up xampp-control.exe from that shortcut throws an error:</p>
<blockquote><p><strong>XAMPP Control</strong></p>
<p>XAMPP Component Status Check failure [3].</p>
<p>Current directory: E:\xampp</p>
<p>Run this program only from your XAMPP root directory.</p>
<p>[OK] [Cancel]</p></blockquote>
<p>Strangely enough, I even get this error even when running xampp-control.exe from my XAMPP root directory, which really is E:\xampp.</p>
<p>The last post in the thread at <a href="http://www.apachefriends.org/f/viewtopic.php?f=16&#038;t=44320&#038;sid=a41029c6a36bbf5b3bb5817f37842340&#038;start=60">http://www.apachefriends.org/f/viewtopic.php?f=16&#038;t=44320&#038;sid=a41029c6a36bbf5b3bb5817f37842340&#038;start=60</a> offers a simple solution:  change the Install_Dir value under HKEY_LOCAL_MACHINE to point to C:\xampp.  According to the thread, the error message is due to a bug where the Install_Dir is checked against a hard-coded path on C:\.  That may or may not be the case, but the suggested work-around seems to be effective.</p>
<p>Here&#8217;s a registry merge for Windows 7 64-bit that will make the change for you.</p>
<pre class="brush: plain; title: ; notranslate">
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\xampp]
&quot;Install_Dir&quot;=&quot;C:\\xampp&quot;
</pre>
<p>Now xampp-control.exe launches without the error, and I haven&#8217;t noticed anything (PHP, MySQL, etc.) not working because of the bogus path.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/07/10/xampp-component-status-check-failure-3/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>How to fix the &#8220;PHP Fatal error:  Call to undefined function  get_header()&#8221; error in WordPress</title>
		<link>http://www.ardamis.com/2011/06/02/fix-for-php-fatal-error-get_header-in-wordpress/</link>
		<comments>http://www.ardamis.com/2011/06/02/fix-for-php-fatal-error-get_header-in-wordpress/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 17:07:13 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Site Dev]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[500 error]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1430</guid>
		<description><![CDATA[Fix the "PHP Fatal error: Call to undefined function get_header()" error in WordPress.]]></description>
			<content:encoded><![CDATA[<p>While making changes to my WordPress theme, I noticed that the error_log file in my theme folder contained dozens of PHP Fatal error lines:</p>
<pre class="brush: plain; title: ; notranslate">
...
[01-Jun-2011 14:25:15] PHP Fatal error:  Call to undefined function  get_header() in /home/accountname/public_html/ardamis.com/wp-content/themes/ars/index.php on line 7
[01-Jun-2011 20:58:23] PHP Fatal error:  Call to undefined function  get_header() in /home/accountname/public_html/ardamis.com/wp-content/themes/ars/index.php on line 7
...
</pre>
<p>The first seven lines of my theme&#8217;s index.php file:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php ini_set('display_errors', 0); ?&gt;
&lt;?php
/**
 * @package WordPress
 * @subpackage Ars_Theme
*/
get_header(); ?&gt;
</pre>
<p>I realized that the error was being generated each time that my theme&#8217;s index.php file was called directly, and that the error was caused by the theme&#8217;s inability to locate the WordPress <strong>get_header</strong> function (which is completely normal).  Thankfully, the descriptive error wasn&#8217;t being output to the browser, but was only being logged to the error_log file, due to the inclusion of the <strong>ini_set(&#8216;display_errors&#8217;, 0);</strong> line.  I had learned this the hard way a few months ago when I found that calling the theme&#8217;s index.php file directly would generate an error message, output to the browser, that would reveal my hosting account username as part of the absolute path to the file throwing the error.</p>
<p>I decided the best way to handle this would be to check to see if the file could find the <strong>get_header</strong> function, and if it could not, simply redirect the visitor to the site&#8217;s home page.  The code I used to do this:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php ini_set('display_errors', 0); ?&gt;
&lt;?php
/**
* @package WordPress
* @subpackage Ars_Theme
*/
if (function_exists('get_header')) {
	get_header();
}else{
    /* Redirect browser */
    header(&quot;Location: http://&quot; . $_SERVER['HTTP_HOST'] . &quot;&quot;);
    /* Make sure that code below does not get executed when we redirect. */
    exit;
}; ?&gt;
</pre>
<p>So there you have it.  No more fatal errors due to <strong>get_header</strong> when loading the WordPress theme&#8217;s index.php file directly.  And if something else in the file should throw an error, <strong>ini_set(&#8216;display_errors&#8217;, 0);</strong> means it still won&#8217;t be sent to the browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/06/02/fix-for-php-fatal-error-get_header-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>W3C Link Checker fails with an Error: 406 Not Acceptable</title>
		<link>http://www.ardamis.com/2011/04/08/w3c-link-checker-fails-with-an-error-406-not-acceptable/</link>
		<comments>http://www.ardamis.com/2011/04/08/w3c-link-checker-fails-with-an-error-406-not-acceptable/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 18:50:06 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[Web Site Dev]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1192</guid>
		<description><![CDATA[Attempting to run the W3C Link Checker against http://www.ardamis.com/ returns a 406 error message.]]></description>
			<content:encoded><![CDATA[<p>Attempting to run the <a href="http://validator.w3.org/checklink">W3C Link Checker</a> against http://www.ardamis.com/ returns an error message.</p>
<blockquote><p>Error: 406 Not Acceptable</p></blockquote>
<p>This is what the W3C says about the 406 HTTP status header:</p>
<blockquote><p><strong>406 Not Acceptable</strong><br />The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.<br />
<br /><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</a></p></blockquote>
<p>In other words, the W3C Link Checker requests the web page, and tells the web server that, by the way, it can only accept a responses in a certain format.  The web server then regrets to inform the requestor that it cannot fulfill this request, because it cannot return a response that would be acceptable to the requestor.  It does this in the form of a 406 Not Acceptable HTTP header.  The W3C Link Checker then outputs this error.</p>
<p>Other W3C apps, like <a href="http://validator.w3.org/unicorn/">Unicorn &#8211; W3C&#8217;s Unified Validator</a> and the <a href="http://validator.w3.org/">W3C HTML Validator</a> don&#8217;t seem to be sending the same HTTP headers.  (But I did note that there were a few small issues preventing the home page from passing the test, which I then fixed.) </p>
<p>Ardamis runs on WordPress, with a custom theme originally developed years ago from the Kubrick theme and a handful of plugins (as more completely described at the <a href="http://www.ardamis.com/colophon/">colophon</a> page).  I tinker with the site, from time to time, trying to speed it up or what-have-you.  But no amount of tinkering seemed to resolve this problem.  Over the course of a few months, I&#8217;d try various changes to the site to see if there was something I could do to fix this problem.  I had pretty much convinced myself that it was going to be an issue for my web host when, miraculously, after making some changes to the .htaccess file, my theme and disabling one of the plugins (which I can&#8217;t see how would possibly affect the HTTP headers) the Link Checker began working.</p>
<p>In the <a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fwww.ardamis.com%2F&#038;hide_type=all&#038;depth=&#038;check=Check">results page for www.ardamis.com</a>, it lists some of the headers used:</p>
<blockquote><p>Settings used:</p>
<ul>
<li><tt><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">Accept</a></tt>: text/html, application/xhtml+xml;q=0.9, application/vnd.wap.xhtml+xml;q=0.6, */*;q=0.5</li>
<li><tt><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">Accept-Language</a></tt>: en-US,en;q=0.8</li>
<li><tt><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36">Referer</a></tt>: sending</li>
<li>Sleeping 1 second between requests to each server</li>
</ul>
</blockquote>
<p>I&#8217;m not sure what I did to make this work, or even if it was something I did.  But further troubleshooting would have involved disabling all plugins, trying a different theme, and then ruling out WordPress entirely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2011/04/08/w3c-link-checker-fails-with-an-error-406-not-acceptable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nullsoft NetMon mirror</title>
		<link>http://www.ardamis.com/2010/12/11/nullsoft-netmon-mirror/</link>
		<comments>http://www.ardamis.com/2010/12/11/nullsoft-netmon-mirror/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 18:55:19 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1152</guid>
		<description><![CDATA[This page is a mirror of http://www.nullsoft.com/free/netmon/, with the link to the NetMon04.exe application changed to point to the file hosted at ardamis.com.]]></description>
			<content:encoded><![CDATA[<p>Because the page at http://www.nullsoft.com/free/netmon/ has been down every time I&#8217;ve tried to visit it lately, I&#8217;ve decided to reproduce it here, along with the download of the NetMon application.  Below is the content of the page, with the link updated to the file hosted at ardamis.com.</p>
<h3>introduction</h3>
<p>This is a slightly useful network monitor graphing thing for Win32.<br />
It just sits in its own window, pinging a host, and giving you a<br />
graph of how long it takes each time.</p>
<p>Because all great (err) things should be free, this should be too.<br />
Not only that, we&#8217;re pretty much giving away all rights to it, giving<br />
you the source, and letting you do what you want with it (see the<br />
license below).</p>
<h3>features</h3>
<ul>
<li>Host configuration</li>
<li>Hops configuration</li>
<li>Refresh rate configuration</li>
<li>Graph scale configuration</li>
<li>Configurable text for window</li>
<li>Automatic start-on-system-start</li>
<li>Static window size (120&#215;40)</li>
<li>Small memory footprint</li>
</ul>
<h3>license</h3>
<p> Copyright (C) 1999-2000 Nullsoft, Inc.</p>
<p>  This software is provided &#8216;as-is&#8217;, without any express or implied<br />
  warranty.  In no event will the authors be held liable for any damages<br />
  arising from the use of this software.</p>
<p>  Permission is granted to anyone to use this software for any purpose,<br />
  including commercial applications, and to alter it and redistribute it<br />
  freely, subject to the following restrictions:</p>
<p>  1. The origin of this software must not be misrepresented; you must not<br />
     claim that you wrote the original software. If you use this software<br />
     in a product, an acknowledgment in the product documentation would be<br />
     appreciated but is not required.<br />
  2. Altered source versions must be plainly marked as such, and must not be<br />
     misrepresented as being the original software.<br />
  3. This notice may not be removed or altered from any source distribution.</p>
<p>  Note that this license is borrowed from zlib.</p>
<h3>download</h3>
<p>Current version: 0.4 (8/1/00)<br />
Download: <a href="http://www.ardamis.com/downloads/netmon04.exe">netmon04.exe</a> </p>
<h3>version history</h3>
<p><a href="http://www.ardamis.com/downloads/netmon04.exe">v0.4</a> (8/1/00)</p>
<ul>
<li>first public release</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2010/12/11/nullsoft-netmon-mirror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to remove the GRUB bootloader from Windows XP</title>
		<link>http://www.ardamis.com/2010/12/06/how-to-remove-the-grub-bootloader-from-windows-xp/</link>
		<comments>http://www.ardamis.com/2010/12/06/how-to-remove-the-grub-bootloader-from-windows-xp/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 19:14:14 +0000</pubDate>
		<dc:creator>ardamis</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ardamis.com/?p=1145</guid>
		<description><![CDATA[How to replace the boot sector and MBR of Windows XP to remove the GRUB bootloader.]]></description>
			<content:encoded><![CDATA[<p>I had set up a hard drive with two Windows XP installations on separate partitions and used GRUB to choose between them at boot.  Eventually, I needed only one of these installations and wanted to clone/copy it to a separate drive.  I happened to have an old copy of Ghost 2003, so I used that to clone the partition I wanted to keep.</p>
<p>But when I tried to boot that install, all I got was the word GRUB on an otherwise blank screen after the POST.</p>
<p>I did some Googling and found the <a href="http://www.ntcompatible.com/How_to_remove_GRUB_loader_t28242.html">How to remove GRUB loader!?</a> post at <a href="http://www.ntcompatible.com">ntcompatible.com</a>.</p>
<p>Basically, you can get around this problem by replacing the boot sector and MBR.</p>
<ol>
<li>Boot into Recovery Console with the XP install media by choosing the Repair option</li>
<li>Choose the installation to work on</li>
<li>At the command prompt (assuming your installation is on C:), enter: <strong>fixboot c:</strong></li>
<li>Proceed through any warnings
<li>At the command prompt, enter: <strong>map</strong></li>
<li>Record the name of the device on which you will be writing the new master boot record</li>
<li>At the command prompt, enter: <strong>fixmbr <em>[device_name]</em></strong> (where the device name is something like <em>\Device\HardDisk0</em></li>
<li>Proceed through any warnings</li>
<li>Exit Recovery Console and reboot</li>
</ol>
<p>Resources: <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/bootcons_fixboot.mspx?mfr=true">Windows XP Professional Product Documentation &#8211; fixboot</a> and <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/bootcons_fixmbr.mspx?mfr=true">Windows XP Professional Product Documentation &#8211; fixmbr</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ardamis.com/2010/12/06/how-to-remove-the-grub-bootloader-from-windows-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

