Archive for December, 2008

Updating XP and Vista to support WebDAV Web Folders from Apache – Patch KB907306

If you are familiar with WebDAV or even Subversion and use Windows XP/Vista, you will appreciate this tidbit of information.

You can browse a WebDAV server in Windows XP and Vista using Windows Explorer. There is a problem though, Windows XP and Vista will try to use NTLM authentication (Active Directory) to authenticate with the server. If you configure your Apache WebDAV server with either no, basic or digest authentication, then you will hit a roadblock. Luckily Microsoft created the KB907306 patch. Unlucky for myself, other websites refer to the patch number missing the last digit ’6′. This will drive you crazy when you know you should be able to copy/paste the KB number in Google and quickly find the download page on microsoft.com. Other documents will say to search for KB90730. You should be searching for KB907306. You can search for “Software Update for Web Folders“, but you will also get a lot of other search results that are not nearly as helpful. Hopefully this blog post will save some folks the aggravation.

Now that you’re here, there is no need to search! The patch is available from the following link: http://www.microsoft.com/downloads/details.aspx?FamilyID=17c36612-632e-4c04-9382-987622ed1d64&DisplayLang=en

PHP Function HTTP Status Code Value as String

I’ve been working with the php CURL library and found that it would not return an error if the server returned a 500 error. After looking up 3 different status codes that I wasn’t very familiar with, I created the following function. It is very complete and includes additional WebDAV, Apache and Microsoft codes.

function http_status_code_string($code, $include_code=false)
{
	// Source: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

	switch( $code )
	{
		// 1xx Informational
		case 100: $string = 'Continue'; break;
		case 101: $string = 'Switching Protocols'; break;
		case 102: $string = 'Processing'; break; // WebDAV
		case 122: $string = 'Request-URI too long'; break; // Microsoft

		// 2xx Success
		case 200: $string = 'OK'; break;
		case 201: $string = 'Created'; break;
		case 202: $string = 'Accepted'; break;
		case 203: $string = 'Non-Authoritative Information'; break; // HTTP/1.1
		case 204: $string = 'No Content'; break;
		case 205: $string = 'Reset Content'; break;
		case 206: $string = 'Partial Content'; break;
		case 207: $string = 'Multi-Status'; break; // WebDAV

		// 3xx Redirection
		case 300: $string = 'Multiple Choices'; break;
		case 301: $string = 'Moved Permanently'; break;
		case 302: $string = 'Found'; break;
		case 303: $string = 'See Other'; break; //HTTP/1.1
		case 304: $string = 'Not Modified'; break;
		case 305: $string = 'Use Proxy'; break; // HTTP/1.1
		case 306: $string = 'Switch Proxy'; break; // Depreciated
		case 307: $string = 'Temporary Redirect'; break; // HTTP/1.1

		// 4xx Client Error
		case 400: $string = 'Bad Request'; break;
		case 401: $string = 'Unauthorized'; break;
		case 402: $string = 'Payment Required'; break;
		case 403: $string = 'Forbidden'; break;
		case 404: $string = 'Not Found'; break;
		case 405: $string = 'Method Not Allowed'; break;
		case 406: $string = 'Not Acceptable'; break;
		case 407: $string = 'Proxy Authentication Required'; break;
		case 408: $string = 'Request Timeout'; break;
		case 409: $string = 'Conflict'; break;
		case 410: $string = 'Gone'; break;
		case 411: $string = 'Length Required'; break;
		case 412: $string = 'Precondition Failed'; break;
		case 413: $string = 'Request Entity Too Large'; break;
		case 414: $string = 'Request-URI Too Long'; break;
		case 415: $string = 'Unsupported Media Type'; break;
		case 416: $string = 'Requested Range Not Satisfiable'; break;
		case 417: $string = 'Expectation Failed'; break;
		case 422: $string = 'Unprocessable Entity'; break; // WebDAV
		case 423: $string = 'Locked'; break; // WebDAV
		case 424: $string = 'Failed Dependency'; break; // WebDAV
		case 425: $string = 'Unordered Collection'; break; // WebDAV
		case 426: $string = 'Upgrade Required'; break;
		case 449: $string = 'Retry With'; break; // Microsoft
		case 450: $string = 'Blocked'; break; // Microsoft

		// 5xx Server Error
		case 500: $string = 'Internal Server Error'; break;
		case 501: $string = 'Not Implemented'; break;
		case 502: $string = 'Bad Gateway'; break;
		case 503: $string = 'Service Unavailable'; break;
		case 504: $string = 'Gateway Timeout'; break;
		case 505: $string = 'HTTP Version Not Supported'; break;
		case 506: $string = 'Variant Also Negotiates'; break;
		case 507: $string = 'Insufficient Storage'; break; // WebDAV
		case 509: $string = 'Bandwidth Limit Exceeded'; break; // Apache
		case 510: $string = 'Not Extended'; break;

		// Unknown code:
		default: $string = 'Unknown';  break;
	}
	if( $include_code )
		return $code . ' '.$string;
	return $string;
}

HTTP Code values are taken from the Wikipedia entry found here: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

BW3′s with friends

Hanging out at the Parma Buffalo Wild Wings with friends. Been a long night, gave another friend a ride from Columbus airport to Medina. Fun times, getting a lot of baby tips!
image

Baby T-Minus 21 Days – Infant Seat, Stroller and Monitor Ready

We’re now less than 3 weeks away from our due date! Heather and I are quite excited!

We recently made our last big purchases before the baby arrives! We got a car seat, matching stroller and an audio/video baby monitor.

Car Seat -  Chicco KeyFit 30

Infant Car SeatWe decided on the Chicco KeyFit 30 car seat after narrowing our decision down to the following models:

  • Graco – SnugRide 32
  • Graco – SnugRide
  • Graco – SafeSeat
  • Baby Trend – Flex Loc
  • Evenflo – Discovery

There are some other brands that we did not consider. We basically narrowed down our search by looking at the top 10 infant car seats then filtered out models we didn’t like. Unfortunately we never researched the Maxi-Cosi brand nor considered the Cosco models. I believe Cosco does not sell infant-only seats.

For safety concerns, we focused on getting an infant-only seat. If you do a lot of research, you’ll read recommendations for having the infant-only seat that faces the rear. They recommend that your infant is rear facing for long as possible , at least the first year. The Chicco 30 we purchased gives us plenty of time to make the transition to a forward facing seat since the weight limit is 30 pounds. Other research will recommend that you never accept or purchase a used car seat. This makes sense to me, even if the car seat was never involved in an accident, the safety requirements and design improvements over the past few years should be reason enough to encourage any conscious parent-to-be to purchase a brand new infant car seat.

If you’re doing your own research on infant car seats, a good place to start is www.car-safety.org. They have links to just about all the sites you will want to read about infant car seats.

When we finally narrowed down our pick between the Graco SnugRide 32 and the Chicco KeyFit 30, it came down to weight and how easy it was to click in/out of the base.

Stroller – Chicco Cortina

The stroller purchase came after the car seat. The Chicco Cortina Stroller is well designed, easy to collapse and open, but is bulky. It will take up most of our trunk when we transport it. It is designed for the car seat though and it clicks in securely.

Baby Video MonitorInfant Monitor – Summer Infant Day & Night Video Monitor

A video based baby monitor came highly recommended from Heather’s aunts. We decided on the Summer Infant Day & Night Video Monitor. Don’t let the video feature fool you, this does audio as well as video. The monitor is setup to mainly be used for audio only but with a click of a button you can turn on the video to see what’s happening. Well lit rooms will display in color, while dark rooms at night display in black and white. It uses the 900Mhz frequency, so your Wi-fi network will not receive interference from the monitor. The camera/microphone will need to be plugged into the wall outlet. The hand held receiver is cordless and rechargeable.  The hand held receiver also includes an A/V jack and cable so you can plug it into your TV. The inclusion of the cable is not documented on any of the on-line stores we looked at. Amazon.com was the lowest price we could find for this model.

Thank You!

We’re very fortunate that our families and friends have been so helpful and giving. Just about all of the smaller items we needed we’ve received at baby showers and visits. Heather and I greatly appreciate all the clothes, accessories and toys everyone has given us. Your help has allowed us to put our money into the more expensive items like above and we greatly appreciate that!

Block Ad tracking, AdWare, Spyware and MalWare Cookies in Firefox

I just recently had my credit card number stolen. As a precautionary measure, I scanned my computer with both AntiVirus and Spyware applications. I do have AntiVirus, but occasionally a virus will get through that it doesn’t detect.

The first step is to scan your computer with a second AntiVirus application. If you are looking for others to try, check out ClamAV (freeware console application, Spyware Terminator is a GUI that uses ClamAV), F-Prot (trial) and AntiVir (freeware). The other popular ones such as McAfee and Norton will work too, I just find them to be bloated installs. Also, you may want to check your Internet provider, sometimes they offer free AntiVirus applications that otherwise cost between $30-100.

The second step is to scan your system for adware/spyware/malware. I use SpyBot Search and Destory. There are others out there but SpyBot is definitely king. Spybot though is not a service, it will not run like AntiVirus in your system tray. You will need to periodically update and run Spybot. The cost of freeware. :-)

After scanning for viruses, spyware, adware and malware, I’ve come to the conclusion that my system is clean. I did find a lot of ad tracking cookies in Firefox. Which leads to the main topic of this post, blocking these cookies in Firefox.

Blocking Ad Tracking Cookies in Firefox Instructions

I was hoping to find a Firefox plugin that would handle this automatically but to no avail I found nothing. So if you’re reading this post in hopes to find a Firefox plugin, sorry. You will have to do the painful copy/paste below that I did. I’ve tried to make it easy however by putting all of the ad-tracking sites into a publicly accessible Google spreadsheet.

Step 1: In another browser (IE, Chrome, Safari), open this Google spreadsheet which lists some of the more popular ad tracking sites. Alternatively, you can open this link in Firefox and save the spreadsheet locally and open it with either Office or OpenOffice.

Step 2: Click the Tools pull down menu, select “Options”. Click the privacy tab. Under the middle section titled “Cookies”, click the “Exceptions” button.  Copy and paste each adware site into the “Address of site:” field and click the “Block” button. Sorry, you must do each site one at a time.

I hope someone gets inspired and writes a plugin for Firefox for this. I unfortunately don’t have the time to develop such a plugin.

As far as my credit card number is concerned, the last 2 sites I ordered from with my card were Geeks.com and NewEgg.com. I also ordered some other items from NewEgg.com with my business credit card so if my business credit card also is compromised then I can rule out Geeks.com as a possible source of the card number leak.

Christmas 2008 Lights are up

The house Christmas lights are up! The 2 small trees in the front are new. Heather wants to add lights to the porch or maybe the bushes. We’ll see, looks like today will be the warmest day in Columbus for a while.
image

Heather made Cherry Pie!

Heather made cherry pie! She made her own filling even though the can of cherries came with a generic filling. It’s really good.
image