I found the following QoS tester tool that seems to work very well for stress testing routers or servers to find bottlenecks in your network:

It allows you to test jitter, packet loss, and out of order packets over a specified UDP port between two networks.  From that data you can use an online mean opinion score (MOS) calculator to figure out the estimated voice quality.


We had a new ESXi host to install recently with the latest 4.1, but the server didn’t have a disk (yet) for us to install it on. Fortunately, our Fiber Channel SAN had a spare LUN with some extra drives that we could use. I destroyed the LUN and the virtual disk and pulled out a spare drive to stick it into the new server. Simple enough and now we can install ESXi.

Well, not quite… [more]

When we started the installer, it would always hang on loading the storage drivers. No matter what version of ESX or ESXi we attempted to install, the application would hang before the software even had an opportunity to start installing and always at the storage drivers. After some discussion with one of the other engineers, I had an epiphany. Maybe that drive still had some remnants of the old RAID 5 array and the server was looking for the remaining disks. I booted the server to a SmartStart CD, fired up the Array Configuration Utility, destroyed and recreated the array, and attempted the reinstall of ESXi. Success!

Moral of the story: When repurposing a hard drive that was formally a part of an array, make sure to actually wipe the disk clean instead of simply destroying the array to completely verify that there are no longer any remnants of the former array configuration.



On January 3rd, 2011 Rick Regan reported on his blog Exploring Binary that the following statement causes PHP to hang in an infinite loop.

               <?php $d = '2.2250738585072011e-308'; echo $d; ?>

The problem occurred when the string '2.2250738585072011e-308' is converted to a double precision floating point number in a subroutine named zend_strtod().  The code takes a string that represents a floating point number and tries to return the nearest double precision floating point number.  A standard double precision floating point number is 64 bits wide: 1 bit for the sign, 11 bits for the exponent, and 52 bits for the fractional part.  The problem number written as a hexadecimal floating point constant looks like 0x0FFFFFFFFFFFFFp-1022.  This means the number is almost the smallest number that can be represented in 64 bits that is close to zero without being zero and the fractional part is all 1’s.  The routine zend_strtod() works by converting the string into an approximate floating point number and then tries to refine the approximation in successive loops.  The problem comes when the routine uses the 80 bit floating point registers in most Intel processors.  The 80 bit floating point registers are a legacy from the 8087 Floating Point Coprocessor that Intel introduced in 1980.  With the wider 80 bit hardware registers, the processor can represent more values between the problem number and zero.  The unwanted precision ended up causing the routine to loop endlessly trying to refine the approximate floating point number.  This “unwanted precision” has been at the root of many floating point bugs and it’s likely to show up again in other programs and operating system libraries. [more]

The solution chosen by the PHP committers was to mark the variables used in the refinement to be “volatile”. This causes the compiler to keep the values in memory and not use the hardware registers for comparison or arithmetic operations.

This bug has been fixed in PHP version 5.3.5 and 5.2.17 on January 6th, 2011.  Here is a link to a test script to determine if your version of PHP is affected by this bug


It’s a pain to make sure that every site you enter credentials or nonpublic information (such as credit card info) into is encrypted.  I’d be willing to bet that even security aware people get complacent sometimes and assume that since was encrypted the last time I used it, it’s probably still encrypted. 

Now there’s an add-on for Firefox that makes it much more obvious when the site you’re looking at is or isn’t encrypted.  It’s called “SSLPersonas”.  Despite its name, you’ll need to look for it under add-ons/extensions, not themes/personas.  It dynamically changes the entire web browser theme depending on what kind of page you’re on.  By default, it uses your current theme for unencrypted websites (i.e. HTTP).  It switches to a blue theme with a lock for HTTPS sites with a traditional certificate (i.e. not extended validation (EV)).  It switches to a green theme with locks and a certificate for HTTPS sites with an EV certificate.  And, finally, it switches to an orange them with a triangle and exclamation mark for HTTPS sites that have a broken/expired certificate.  The themes it uses are customizable, so you could make the broken certificate use a McDonald’s Hamburgalar theme if you wanted.



Sometime back while I was out of the office, my system crashed with a blue screen message about a hard drive failure.   Fortunately, I was able to restart and save any essential files that weren't already backed up.  When I got back to the office I ran SpinRite on the hard drive, it didn't find any problems, and I have yet to have another crash.

But recently I launched a program which I had running during the crash.  The program appeared in the task bar but nothing happened.  When I clicked on the task bar icon it expanded to show a program instance, but nothing happened. When I right clicked on the task bar icon, it expanded to show the program, "Pin the program to the taskbar" and "Close Window."  I clicked on the program and got an error saying the program could not access a needed file and the program was terminating.  I tried several times to get the program to run and each time I couldn't see the program and eventually getting the same error.  I tried several fixes such as renaming the offending file, deleting the file, etc., but nothing worked.  Finally I restored to a virtual machine where I was able to run the application and finish my work.

Back in the office, I asked a coworker for some help to get a fresh pair of eyes on the problem.  I showed him what was happening and I was able to reproduced the error.  He sat for a moment and then said, "I wonder if it is running off the screen."  He right clicked on the task bar icon looking for the "Move" option and it wasn't there.  (In Windows7, you have to let the task bar item expand and them right click on the instance you desire in order to see the familiar options of "Restore, Move, Size, Minimize, Maximize and Close.") [more]

Once he selected "Move" he was able to move the application window (using the arrow keys) back onto the screen so it could be viewed.

I then realized I was getting the access error, because when I right clicked on the task bar and then left clicked on the program, it was attempting to launch a second instance of the program.  It couldn't do it because the program was already running and had locked the needed files.

"Moving" windows back on the screen is often required when you work with multiple monitors and then switch to work on only one monitor.  In this Gotcha, I hadn't been working on multiple monitors, but the crash must have mixed up the window location.  "Move" fixed the problem.  If you can see an application icon on the task bar, but not on the screen, assume it is running and you need to "Move" it onto the screen.


Adobe Reader 10.0 is installed in a protected mode. One of the features of the secure mode is:

  • Cannot open PDF files whose source is DFS or NFS: PDF files in shared locations on a distributed  or networked file system (DFS/NFS) cannot be opened. Attempting to open such a file results in an error opening this document. Access denied."

The solution is to disable protected mode by completing the following steps: [more]

  1. Within Adobe Reader, go to Edit > Preferences > General and deselect Enable Protected Mode at startup.
  2. Restart Reader.

For more information, refer to the following Adobe KB article:


When I am away from the office I often set Outlook to “Work Offline.”  This allows me to have Outlook open for access to the cached information and it doesn’t try to connect and update all the folders whenever I establish a VPN back to the office.

At some point, Outlook started resorting to Work Offline every time it started.  This was troublesome as I might go for hours at a time not realizing I was Working Offline and as a result, not receiving email messages.  Before this problem, Outlook would start in whatever state (Connected or Work Offline) it was in whenever it was shut down.

In researching the problem I found many references to this problem which go all the way back to Outlook 2003. [more]

Microsoft’s solution is to create a new Outlook profile, as the existing profile has somehow become corrupted.  I really wanted to find a “cause and effect” fix, but never did.  So ultimately, I created a new profile and the problem is solved.  It seems as though this is a work around rather than a solution, but I am now Online.

To create a new Outlook profile go to Mail (32 bit) in the Control Panel (Windows 7).

  • Click on the Show Profiles button under Profiles.
  • Click on the Add button.
  • Give the new profile a different name from your existing profile.
  • Follow the instructions and Outlook will connect to the Exchange server and automatically create a new profile.
  • With a new profile, you can now have Outlook prompt you regarding which profile you want to use when Outlook starts.  You can also specify one of the profiles for Outlook to use automatically.
  • If you specify a profile, be sure you specify the new one you just created.  This will ensure Outlook will start up and look for a connection to the Exchange server rather than ignore the Exchange server and Work Offline.


Windows 2008 terminal servers handle user profiles slightly differently than Windows 2003. 

  1. Windows 2008 (and Windows 7) profiles use a different format from previous versions.  You will notice in the roaming profile folder that you get a new folder with a .v2 extension; this is to prevent the new format from being applied to older OS’s.  Essentially, the user has two different roaming profiles; one for older OS’s and one for Windows 2008 (and Windows 7).  (\\servername\profile_share\username\tsprofile for older machines, \\servername\profile_share\username\tsprofile.v2 for Windows 2008 terminal servers)
  2. They finally manage to delete the user profile when the user logs off.  I’ve noticed two issues related to this.
    • The Users folder (formerly Documents and Settings) starts having multiple folders with the users name.  wcbtest, wcbtest.datacenter, wcb.datacenter.001, wcb.datacenter.002, etc.  The event log shows an error when trying to delete the profile folder, saying that it is not empty.  I have not looked in-depth yet; there may be a solution to this.
    • If you want to run the group policy results wizard, you have to do it while the user is logged in.
  3. If the roaming profile location is unavailable, the user gets a temporary profile every time.  On Windows 2003, you would get an error saying the roaming profile location could not be contacted (if I remember correctly), but the local profile would be normal.


The Level Platforms Service Center website is probably not very standards-compliant.  We've know for some time that Firefox and Chrome browsers don’t render it properly, but I’ve recently seen more critical problems, such as the Site Management page showing a blank site-list in Chrome.  Some of the monitoring procedures require these pages, so using IE (or Firefox add-on like IE Tab) may be the only way to see everything properly.


In Microsoft Office 2007, Quick Access Toolbar definitions are stored in .QAT files that are stored in the c:\users\<username>\appdata\local\microsoft\office\ folder for each user.  For Office 2010, these are files that are formatted the same but have .officeUI extensions.  Actually, you can rename the extension of .QAT files and they'll work with 2010.

If you want to retain Quick Access Toolbars, keep a backup copy of your QAT or officeUI files and copy them to the user's appdata file on a new system.