The little things that make a difference

For too long now, the overall browser of choice has been Internet Explorer.  So for many years, we have done website programming and testing primarily on that particular platform, finding that has to be 100% correct and complete, and if it doesn’t really work as well in the other browsers, that it’s ok, we can live with 4% of the people not seeing the page exactly the same.   Now I’ve been around the web since the beginning days of the browser wars, back when Netscape Gold was a modern marvel that my computer at the time couldn’t run.  Since then I’ve seen many browsers come and go, and the big names that are sticking around are of course IE, FireFox, Safari and Opera, and they all work a little differently.  I’ve been a fan of FireFox since before 1.0, and will continue to be, as long as someone keeps putting out little things that make me happy.

Two things that I use every day for programming and debugging are found as FireFox add-ons.  IE has an awful (and I mean awful) Developer Toolbar that usually causes more errors than it helps correct, but FireFox has Firebug and the Web Developer Toolbar which together make my job a little easier.  The toolbar is great for helping identify display problems, or data problems as they are displayed.  I can disable and enable various pieces of the browsing experience (CSS, javascript, etc) and I can have different pieces of the DOM (Document Object Model) highlighted and noted.  Firebug has a bit of crossover in this area, but the thing I use the most is the console, which keeps a log of things that happen within the document.

Yesterday’s debugging issue of doom was a problem with some ‘ajax’ programming.  Using jQuery, I had set up a custom interface to drag and drop items which would assign projects to people.   AJAX was used to call a function from a coldfusion page, which was being sent the data, and returning text regarding how the process fared. For some reason, it was only working the first time through.  Using the web toolbar I could see that, all of my ids were correct, it was sending the correct information to the form.  Even with a javascript alert box I was able to see the data was correct.  By using firebug console, I was able to find out that the information being sent to the actual coldfusion page was identical on the second try, as the first, I could see the form information that was posted, and the returning text.  By using this information, I narrowed down the problem to a javascript function that was holding the old information in a field and not getting the new information.  Within a few minutes, I was able to rectify the problem that had me stumped for a lot longer than I cared to admit, and I could finally release the program.  Who’d have thought one little bug could fix another.