Reducing Download Speed in Firefox (Throttling)

At work, I often need to download extremely large files (software updates, etc) that can severely cripple internet usage for other staff. Unfortunately, additional bandwidth or internet providers aren’t currently available in our area and purchasing new hardware is out of the question because of budget constraints. Typically, I use Mozilla Firefox on Windows XP so finding an addon to better throttle my downloads shouldn’t be difficult. I also would like to be able to restrict only bandwidth to certain sites and not restrict any internal network traffic whatsoever.

Conveniently, Firefox Throttle meets my needs exactly and allows exclusions for specific websites or specific IP Addresses.

  • Included Features:
  • Limit download and upload rates for all open Firefox windows/tabs and downloads
  • Bursting mode (allow short rate “bursting” after inactivity)
  • Preset and custom limits
  • Configurable lists for IP addresses and domains that should be throttled or excluded from throttling
  • Automatically excluded LAN IPs

After running, Firefox Throttle for four hours I have found it to meet my needs and have also found out there’s a plugin for Internet Explorer too called IE Throttle.

Determine if Skype is Installed

The easiest method of checking whether Skype is installed is actually to check for a Registry Key. We, of course, can’t check C:Program Files for a Skype Directory because the user could have installed elsewhere (or maybe if 64 bit the operating system did?)

Skype’s API Document provides us with the following information:

To check if Skype is installed, in regedit check if the following key exists: HKCUSoftwareSkypePhone, SkypePath . This key points to the location of the skype.exe file. If this key does not exist, check if the HKLMSoftwareSkypePhone, SkypePath key exists. If the HKCU key does not exist but the HKLM key is present, Skype has been installed from an administrator account but not been used from the current account.

Generally, I only care if the Current User has configured Skype, so I will ignore the HKEY_LOCAL_Machine information and instead rely entirely on the HKEY_CURRENT_USER information.

You must make sure you reference: Microsoft.Win32 for the registry functions or modify the snippet slightly.

        using Microsoft.Win32;

        //Function uses Microsoft.Win32 to check registry value of 
        //HKEY_CURRENT_USERSoftwareSkypePhoneSkypePath and returns false if
        //the key is null
        private bool isSkypeUser()
        {
            RegistryKey skype = Registry.CurrentUser.OpenSubKey(@"SoftwareSkypePhone");

            if (skype != null && skype.GetValue("SkypePath") != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

Website Compatibility Testing (Chrome,IE,FireFox,Opera)

When dealing with clients, prospects, or even employers I won’t generally mention specific browsers that I test my websites in and haven’t really had the question come up much. I honestly would prefer my clients / employeers spend money on something else rather than achieving perfect pixel positioning in every browser, but if they want to achieve this than I won’t complain too much! :-)

For the most part, Chrome, Firefox, and Opera are extremely similar in their rendering ( ~ 100% standards compliance and often have implemented a lot of the draft recommendations) on Windows and seem to be only slightly different at rendering from their respective Windows version on Linux and Macs.

Google Chrome
I haven’t had many occasions where Firefox has rendered differently than Chrome or Chrome has rendered differently than Opera. I usually just install the latest version on a VM for Vista, and Windows XP and haven’t really worried about the old versions as they have rendered almost identically.

Internet Explorer
Normally, you are unable to have multiple versions of Internet Explorer installed on the same operating system. When you upgrade Internet Explorer from 6 to 7 or from 7 to 8 even, most of the actual updates are occuring in the Windows folder.

A very clever individual discovered there was a method of getting multiple versions of IE (multi_ie) working side by side, unfortunately, this doesn’t seem to work any more in XP SP3, or in Windows Vista which i am stuck using at times.

Surprisingly, I found out that Microsoft offers the Internet Explorer Application Compatibility VPC Images which is a group of virtual harddrives created for Microsoft Virtual PC. There’s a whole selection of machine which include: IE6, IE7 (for Vista and XP), IE8 (for Vista and XP) which will definitely help me in my testing and I hope that you will find it helpful too.

Mozilla Firefox
Firefox is extremely strong in standards compliance and seems to account for about 20% of the internet browsers in use especially outside of business. Finding and installing old versions of Firefox isn’t overly difficult, although I do use oldapps.com for versions of browsers and have done very well so far. Typically, I use .0 and .5 releases of Firefox for testing as there’s almost no way I could realistically evaluate my websites in every version of the browser and I haven’t found there to be too many differences in minor releases.

Webdevelopers have a couple of options for testing with Firefox, we can use the standalone / portable ones or install multiple versions instead of using several virtual machines.Installing multiple versions of Firefox is actually fairly easy, as long as you follow the directions: multiple versions of firefox

Opera
Opera has always sort of been an interesting browser as it outlasted Netscape even though it also fought through the browser wars. Opera also used to be shareware and is now free for the PC. Opera is probably one of the better browsers out there as it is sleek, quick, standards compliant, and has some of the better multiple tab handling. Unless asked directly about, I don’t make it a habit of testing in Opera even though I personally enjoy the browser.

PHP On IIS & My Epic Battle (Failed to write session data)

Recently, I have been busy using Windows Server 2003 and IIS to host a web-enabled application written in PHP,using the PEAR modules, and MySQL and MS SQL.

I couldn’t really believe how much messing around is necessary to get PHP to function correctly, and to properly use the PEAR modules. I have probably spent two hours modifying the php.ini file based on what I have found on php.net and around the internet.

My webapp, needed sessions and of course I kept getting warnings and critcal errors from PHP. I found so much information that was just plain wrong and probably never was correct. My latest problem in this epic battle was this warning:

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0

Eventually, I read through my PHP.ini file from start to finish and found this information:

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP’s session functions.

;
; As of PHP 4.0.1, you can define the path as:
;
; session.save_path = “N;/path”
;
; where N is an integer. Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories. This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
;
; NOTE 1: PHP will not create this directory structure automatically.
; You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
; use subdirectories for session storage
;
; The file storage module creates files using mode 600 by default.
; You can change that by using
;; session.save_path = “N;MODE;/path”
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process’s umask.

In conclusion, if you will run your web-enabled application on a Windows PC you must set the session.save_path to something and you must create the directory structure yourself. I am using the session.save_path = “C:temp” and recommend you do something similiar.

Slider by webdesign