Stemkoski
Web design tips & tricks plus anything else I want to talk about…

This fix wont solve all Google Analytics tracking problems but it does address a specific issue. Outside of this problem, there are many other issues including disabled cookies, disabled JavaScript etc. that cannot be helped or fixed. If you have an existing website and Google Analytics is installed properly but is not collecting data please read on.

I recently talked to a new customer with an existing website. Her website was working great and was bringing in lots of business, however, no matter what she did she could not get Google Analytics to work on her website. The website was well designed, and modern, the Google Analytics tracking code was installed properly and the code did not contain any errors. I was perplexed so I started digging deeper.

The Solution:

After reviewing her code and analyzing her website I started reviewing the source code to see if some of the other JavaScript was somehow interfering with the Google Analytics. This was not the problem, but the problem was directly related to JavaScript. Some of the JavaScript code copy and pasted from another source contained a small syntax error. This syntax error occurred early in the page and was preventing the rest of the on page JavaScript including Google Analytics from being executed. The error, didn’t however effect the user experience and had gone unnoticed by her previous development company. Once we repaired the issue Google Analytics begin to function as expected.

Note: If you think this may be your problem I would suggest installing the web developer toolbar for Firefox. It has a fantastic error and warning notification system that will help you find and debug these types of errors.

On Thursday, Shawn and I attended the GetListed.org Local University conference at Northern Quest Casino here in Spokane. This was a great event, brought to town by our good friend Ed Reese from Sixth Man Marketing. Being a web professional in Spokane is difficult. All of the exciting workshops and conferences take places in major U.S. cities. Seattle is relatively nearby, and it gets its share of exciting web design / SEO events but even a half day conference in Seattle generally requires a hotel stay and hours of traveling.

In some ways this puts Spokane Web Designers, Developers, and SEOs at a disadvantage. We either have to make costly trips, pay expensive conference fees, and sacrifice precious work time to learn about new industry innovations or we are relegated to watching post conference video presentations. Don’t get me wrong, I am very thankful these options exist but it is not the same as interacting with industry experts. Also, if people less motivated than I, they are unlikely to take the time to research these virtually attend these events on their own. I believe this creates a barrier to information and contributes to a lack of innovation in our local market. In time, this will cause our local designers and developers to fall behind the national competition in major cities. This trend is bad for our regional economy and the local customers that rely on us to be industry experts.

What was this Event About?

This event was primarily an introductory course to Google Local and SEO. This event was really useful for anyone involved with marketing a website but it was especially useful for those with little or no practical knowledge of SEO. I personally do quite a bit of reading on the topic and I follow several of the presenters’ blogs so I wasn’t expecting much new information. For me, this was primarily a refresher course but for the business owners in attendance there was a wealth of useful information.

While the presentations were good, I believe most of the new information I learned was in response to audience questions to the experts. The event allowed for two separate Q/A sessions and there were some great questions asked by the attendees.

What did I really think about the event?

As I said previously this was a great event. If GetListed.org’s Local University was return to Spokane, I would attended again, even if it were just to hear the same information. Prior to the event, we didn’t know how technical the information would be so we didn’t market the event to our clients. In retrospect it would have been a great event to bring clients to, especially those with local retail locations who could benefit from better leveraging of Google Local.

I only have 2 complaints about the event. The first, it would have been nice to have a 10-15 minute intermission after the first Q/A session to get up, stretch, and socialize. During the 3rd hour I begin to lose some focus and I think a break would’ve helped immensely. Second, I think it would be a good idea to put the entire presentation into one Powerpoint file to make it easier to jump from person to person. It appeared the presentations were very coordinated, however, the different styles of presentation and the constant changing between presentations was a bit distracting.
One other note, I really enjoyed having a hand-out for Ed’s presentation and it would be great to have some take-away documents from each presenter even if it just had their contact information, an overview of what they do, their blog address, and some general points regarding their presentation.

So who did the presenting?

David Mihm
Ed Reese
Mike Blumenthal
Mary Bowling
Matt McGee

What is the website for the event?

You can read more about the event at: http://getlisted.org/spokane/

This year we had 3 Christmas events. The first was with my side of the family the week prior to Christmas and the last two were with Kayla’s family on Christmas Eve and Christmas day. Since I have been too busy lately with work and family to sit down and write I thought I would share a few photos from Christmas Eve. They’re mostly of Holden, Leah, and Mya our nieces and nephews on Kayla’s side.

Reading text files with PHP isn’t really too difficult. I have done it quite a few times but it isn’t something I do everyday. A few weeks ago, I wrote a simple script to read a text file and it has been working great, until today. Originally, the script I wrote was reading a very simple text file and it had no problems. Unfortunately, today I tried to use it to read a larger text file and discovered that when reading remote files fopen will stop after a packet is available. If you need to read a larger file this can be a real problem.

Original
Below is the original script that had the problem with larger files, it works great with local files and also with short remote files. Check it out here:

<?PHP
	$file = fopen("http://www.ietf.org/rfc/rfc2396.txt", "rb");
	$output = fread($file, 8192);
	fclose($file);
	echo($output);
?>

Improved
If you have a longer file then you can solve the packet issue by concatenating the file together in several groupings. An example of the revised and working script has been included below:

<?PHP
	$file = fopen("http://www.ietf.org/rfc/rfc2396.txt", "rb");
	$output = '';
	while (!feof($file)) {
	 	$output .= fread($file, 8192);
	}
	fclose($file);
	echo($output);
?>

Note: I have no idea what the text file used in this example is for. I just grabbed it from a Google search because it was large enough to demonstrate the problem I am illustrating.

It seems like there are a million different content management systems out there. Some like the ZLCMS system we use at Zipline are transferrable to another web host but occasionally we have run into web development companies with ‘proprietary’ content management systems. Many of these companies won’t allow their customers to transfer their website to another hosting company. Often, when we run into these situations the customers are willing to forfeit their content management just to get away from the web development company they are working with. On a few of these occasions we have been forced to hand backup an entire HTML website, updating images, links, etc.

Years ago I had a software program that would copy down an entire HTML site fairly accurately. Unfortunately, as the web transitioned to dynamic websites this software package could not keep up with the advances.

Today, I discovered a website backup utility that has done a fantastic job in my tests. I backed up several of our complicated dynamic websites and it has done a great job making them work in an HTML version. If you run into a situation where your website, or your customers website is being held hostage by a web design company this could be the perfect solution for you.

The software is called HTTrack Website Copier and it is a free GPL licensed software package.

Click here to download HTTrack

If you have any comments or questions please leave a comment below.

7DAnyone who reads my blog on a regular basis knows I am an amateur landscape photographer. Ever since I was very young I have enjoyed exploring and photographing the Pacific Northwest’s natural wonders. My grandfather taught me the basics of photography when I was very young. Back then we did all of our photography with 35mm cameras. Over the years I have moved to digital and increased my photography skills. Someday I hope to be able to sell my photographs but I still have a long ways to go.

Several years ago, I purchased the Canon Digital Rebel the day it was released. At the time, it was one of the first affordable SLR cameras on the market. Over the past few years my Digital Rebel has served me well but now it is time to upgrade. There have been a number of improvements to digital SLR camera technology since the original Digital Rebel was released and I am excited to take advantage of them.

Why the Canon 7D
I need a professional quality SLR. Prior to the announcement of the Canon 7D I had been looking at the Canon EOS 5D. The 5D is a fantastic camera with a ton of great features but as expected it comes with a hefty price tag. As an amateur, it is hard to justify the cost for any new equipment, especially a camera that expensive.

The Canon 7D suits me very well. It may not have as good a sensor as the 5D but it does take 1080P HD video and offer a solid 18MP CMOS Sensor. It also has a quick 19 point AF system. For the $1699 price tag it is a very nice camera and for an amateur like myself it will do a good job for me for years to come.
I was tempted to buy this camera as soon as it was released like I did with the Digital Rebel but I decided to wait until I knew a few photographers that had purchased the 7D so I could get some honest, first-hand reviews. I find that reading online camera reviews can be both good and bad. Any mid-level camera will get very good reviews and very bad reviews. Some of both come from real experts, some come from people who have either paid much more for a higher model camera and want to justify their purchase, or some are written by people that don’t know anything about good camera technology. I have read many of the 7D reviews but I like to rely on the real world feedback from my friends.

What my photographer friends are saying about the 7D so far:

  • The 7D takes great pictures and is very fast
  • The 7D is a professional grade camera and with all the options it isn’t as ‘easy’ to use as Digital Rebel
  • The 7D has a massive user manual and will take some time to learn and use
  • The 7D 19 point AF system is quick and accurate
  • The ability to switch between RAW and JPEG is very handy
  • Video quality is good and color is better than competing cameras at night
  • The viewfinder is very clear and shows exactly what you are photographing
  • The large LCD screen provides an accurate view of the photo

Based on what I have read, heard, and the price, I am going to purchase the Canon 7D in the next couple weeks. Once I get it, I will make some posts about my experiences adjusting from the basic Digital Rebel to a semi- professional camera, the 7D. I will also discuss some of the pros and cons of the 7D from my perspective.

For those of you that follow this blog on a regular basis you may have noticed I have been away for quite some time. The last 3 weeks have been very busy. Kayla and I got married on November 14th. Then we went on a honeymoon to the Bahamas which was immediately followed by a trip to my parent’s house for Thanksgiving.

Now I am back, and finally back to work. For my first blog post I am going to give a quick review of our crusie on the Norwegian Sky. This trip was our first trip to Miami, our first experience riding in a taxi (with a driver that didn’t speak English), and our first cruise. We had a great time but as with any trip there were ups and downs.

Things we liked about our trip to the Bahamas on the Norwegian Sky

  • We liked the freestyle dining options although would’ve enjoyed more variety in food
  • The ship was clean
  • The staff was friendly and helpful although often hard to understand
  • The comedian was great and is a must see
  • The beaches and caves tour (Not super exciting but gave us a chance to find a private area on the beach to relax for a few hours)
  • Private island was busy but fun (If you go I suggest walking along the shore towards the neighboring island. We were able to find our own private area on the beach. At least for awhile.)

Things we didn’t like about our trip to the Bahamas on the Norwegian Sky

  • Lack of free Wi-Fi or other free or affordable Internet use options. (The price of Internet usage is extremely high and comes with an “activation fee”. The price was even higher than what I had read on the NCL website prior to reserving our tickets. The lack of affordable Internet access is a real downside for me. I may have to choose other vacation options in the future because it is difficult for me to be away from the computer for such an extended period.)
  • The food was very similar in all of the “free” dining rooms including the buffets. Each night there were a few options but basically wherever you went you were having the same food. I would have enjoyed some more variation which from what I understand you can find on some of the larger, newer ships.
  • Almost any activities available on and off the ship have additional fees often with price tags that don’t justify the activity. I personally would rather have the price for a number of events rolled into the initial cost of the cruise like they have done with tipping so I don’t feel nickel and dimed during the entire trip.
  • Exiting the ship was a complete mess. There was insufficient instruction and the staff at the customs area was very rude. Once we got off the ship it was a complete free for all with very nobody directing traffic. I got the feeling as soon as you stepped off the ship, Norwegian Cruise Line said goodbye and you were on your own. It would be nice if they had some sort of a system setup to help people find taxis, load their bags etc. We saw lines of people who didn’t speak good English waiting for Taxi’s far from where they actually were because there was a sign that said Taxi. I hope at some point they figured out where to go and they are not still standing there waiting.

Outside of the experience on the Norwegian Sky we spent some time in Miami. I must say we were less than impressed with Miami. Most of the people we encountered were unfriendly. Our Taxi driver didn’t speak English and couldn’t understand any of the 4 families in our Taxi. We had to direct him turn by turn to our hotel. Had we not had my iPhone we would’ve been completely lost. The worst part of the trip was the Miami airport. It was dirty, confusing, and lacked power plug-ins for laptop computers.

I was extremely thankful to return to Sea-Tac airport where there is free Wi-Fi, abundant power outlets, and decent food options. Overall we had a good time and were able to get some good photos of our experience. I have posted a number of these below for you to check out. If you have any specific questions about our trip please leave a comment below and I will respond.

The need to execute PHP in HTM or HTML files may occur for a number of reasons. The most common of which seems to be adding content managed portions to an existing HTML website. The .htm or .html pages will be part of the navigation, previously indexed by search engines, and likely linked to by other websites. Instead of changing the URL to .php for our updates we can convince the server to execute .htm or .html just as it would a .php file saving both the developer and customer from a number of headaches.
This can be done by adding the following lines to your .htaccess file.

If your web server is using PHP as an Apache Module:

AddType application/x-httpd-php .html .htm

For web servers funning PHP as CGI

AddHandler application/x-httpd-php .html .htm

If you happen to be running IIS this can still be done but it is a bit more difficult and a topic for another post on another day.

I have been doing a lot of work with jQuery lately. The jQuery library offers great cross browser support for most functions but unfortunately even this magic wand can’t solve all the problems with Internet Explorer 6 (IE6) compatibility. Previously, jQuery had a browser() function that helped detect a browser so that a developer could build a work around. The browser() function has been removed in favor of a new function called support() which helps determine if the current browser offers support for a specific piece of functionality. For many tasks this strategy works just fine but I have found some occasions where I need to sniff out IE6 and it can be done easily using standard JavaScript.

JavaScript function to determine if the current browser is IE6:

//CHECK FOR IE6
function is_ie6(){
     return ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined));
}

There are many other ways to find IE6 but this one works great. If you have another good method please list it in the comments below.

It is officially deer season in Washington State. I am a fisherman and have never been a big hunter. I have nothing against hunting and have gone myself many times but it I would much rather be fly fishing on a small stream somewhere in the forest. I have never really cared for shooting animals unless it is with a camera.
I woke up this morning, ate some Lucky Charms, scratched my privates, and read Facebook updates from friends who are out hunting today in the cold Washington fall weather. Then I went to wash my bowl and discovered this very nice looking buck eating my pumpkins and dodging hunters in my backyard. I found it quite ironic that so many of my friends were out looking for this guy and he was just hanging out in at my place, having breakfast.

Sorry the pictures are not better. The sun was rising behind him and I was shooting through my back window so the pictures are less than stellar but hopefully they’re enough to make all you hunters jealous. Of course, when Halloween comes around and I have nothing to carve I probably won’t be too happy but he was fun to watch.