<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>justaddwater.dk &#187; Errors</title>
	<atom:link href="http://justaddwater.dk/category/errors/feed/" rel="self" type="application/rss+xml" />
	<link>http://justaddwater.dk</link>
	<description>Instant Usability &#38; Web Standards</description>
	<lastBuildDate>Thu, 02 Feb 2012 08:51:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Power Tool for Webmasters</title>
		<link>http://justaddwater.dk/2007/10/19/google-power-tool-for-webmasters/</link>
		<comments>http://justaddwater.dk/2007/10/19/google-power-tool-for-webmasters/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 14:02:56 +0000</pubDate>
		<dc:creator>Thomas Watson Steen</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Search Engines]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/10/19/google-power-tool-for-webmasters/</guid>
		<description><![CDATA[If you run a blog or any other website for that matter, you might want to check out Google Webmaster Central &#8211; in particular their Google Webmaster Tool &#8211; if you haven&#8217;t already seen it. Google Webmaster Tool is a great tool for webmasters who want to see and manage how Google crawls their site(s). [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://justaddwater.dk/wp-content/uploads/2007/10/tools2.gif" alt="Google Webmaster Tools logo" style="margin: 0pt 0pt 1em 1em; float: right" />If you run a blog or any other website for that matter, you might want to check out <a href="http://www.google.com/webmasters/">Google Webmaster Central</a> &#8211; in particular their <a href="http://www.google.com/webmasters/tools/">Google Webmaster Tool</a> &#8211; if you haven&#8217;t already seen it.</p>
<p><strong>Google Webmaster Tool is a great tool for webmasters who want to see and manage how Google crawls their site(s).</strong> If you have a Google ID you can add all the sites that you control to a dashboard. From here you can see intimate details for each site. After adding justaddwater.dk I found that Google was encountering some HTTP errors when crawling our site. This of cause is very important since other users unfortunately also encounter these errors.</p>
<p><img src="http://justaddwater.dk/wp-content/uploads/2007/10/googlewebmastertools-http-errors.png" alt="Google Webmaster Tools: Dashboard, Web crawl errors" /></p>
<p>When diving into the errors I can see that some links to our site point at stuff that is not there. I unfortunately cant see where these links come from. They could be external or internal I guess, but I have to manually look at my site to see. <strong>Adding a &#8220;source&#8221; for the link would be very easy for Google and be a great benefit to the webmaster.</strong></p>
<p>Besides web crawling problems, the tool also gives loads of other interesting information. I suggest you take a look your self, but to just summarize I quote Google:</p>
<p><strong>Statistics</strong></p>
<blockquote><p><strong>Top search queries</strong><br />
See which search queries most often returned pages from your site, and which of them were clicked.</p>
<p><strong>Crawl stats</strong><br />
See your distribution info for your site, including the current PageRank for pages on your site.</p>
<p><strong>Subscriber stats</strong><br />
If your site publishes feeds of its content, this page will display the number of users who have subscribed to these feeds using Google products such as iGoogle, Google Reader, or Orkut.</p>
<p><strong>What Googlebot sees</strong><br />
See details about how the Googlebot sees your site.</p>
<p><strong>Index stats</strong><br />
Learn how your site is indexed by Google, including which pages are indexed, and which other sites point to your site.</p></blockquote>
<p><strong>Links</strong></p>
<blockquote><p><strong>Pages with external links</strong><br />
See which pages on your site have links pointing to them from other sites.</p>
<p><strong>Sitelinks</strong><br />
See which links on your site have been identified as candidates for appearing directly in Google search results.</p>
<p><strong>Pages with internal links</strong><br />
See which pages on your site have links pointing to them internally from elsewhere on your site.</p></blockquote>
<p><strong>Sitemaps</strong><br />
Add and manage your <a href="http://www.sitemaps.org/" title="Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling.">sitemaps</a> (including <a href="http://googlewebmastercentral.blogspot.com/2007/10/introducing-code-search-sitemaps.html" title="Google Webmaster Central Blog: Introducing Code Search Sitemaps">code sitemaps</a>).</p>
<p><strong>Tools</strong></p>
<blockquote><p><strong>Analyze robots.txt</strong><br />
See whether your robots.txt file blocks specific URLs as is, or with modifications you make. Test against various Google user-agents, too.</p>
<p><strong>Enable enhanced image search</strong><br />
Enable Google&#8217;s enhanced search for images on your site, including advanced labeling techniques for images hosted by Google.</p>
<p><strong>Manage site verification</strong><br />
See all verified owners of this site, and optionally reverify them.</p>
<p><strong>Set crawl rate</strong><br />
See statistics about how often Google crawls your site, and optionally adjust that speed if desired.</p>
<p><strong>Set preferred domain</strong><br />
Associate a preferred domain with this site, to always or never show the leading &#8220;www.&#8221; in Google&#8217;s search results.</p>
<p><strong>Remove URLs</strong><br />
Remove content from the Google index, including expediting that removal.</p></blockquote>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/Google+Webmaster+Tools" rel="tag">Google Webmaster Tools</a>, <a href="http://technorati.com/tag/Google+Webmaster+Central" rel="tag"> Google Webmaster Central</a>, <a href="http://technorati.com/tag/sitemap" rel="tag"> sitemap</a>, <a href="http://technorati.com/tag/sitemaps" rel="tag"> sitemaps</a>, <a href="http://technorati.com/tag/tool" rel="tag"> tool</a>, <a href="http://technorati.com/tag/review" rel="tag"> review</a>, <a href="http://technorati.com/tag/search+engines" rel="tag"> search engines</a>, <a href="http://technorati.com/tag/http+errors" rel="tag"> http errors</a>, <a href="http://technorati.com/tag/accessibility" rel="tag"> accessibility</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/10/19/google-power-tool-for-webmasters/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Lenovo Power Supply Almost Caught Fire</title>
		<link>http://justaddwater.dk/2007/10/08/lenovo-power-supply-almost-caught-fire/</link>
		<comments>http://justaddwater.dk/2007/10/08/lenovo-power-supply-almost-caught-fire/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 10:33:00 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Errors]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/10/08/lenovo-power-supply-almost-caught-fire/</guid>
		<description><![CDATA[I have mentioned before usability issues of my Lenovo Thinkpad T60p computer. Usability issues is one thing. Another—and potential deadly—thing happened Saturday evening at home. This is what I write to our internal support and expect them to forward. Saturday evening I put the power plug in the laptop to recharge. I came back to [...]]]></description>
			<content:encoded><![CDATA[<p>I have mentioned before usability issues of my Lenovo Thinkpad T60p computer. Usability issues is one thing. Another—and potential deadly—thing happened Saturday evening at home. This is what I write to our internal support and expect them to forward.</p>
<blockquote><p> Saturday evening I put the power plug in the laptop to recharge. I came back to the room (our home office) 10 minutes later and saw the computer not charging. I noticed a high frequent sound and traced it to the power supply, which was incredibly hot, and smelled bad. I immediately unplugged it.</p>
<p>I have no exact temperature for the power supply, it felt like holding on a hot cup of coffe. Also the cord itself felt softer than usual because of the hot temperature. I have marked on the cord a mark, where the weight of the power supply pressed a mark into the cord.</p>
<p>I am convinced that if I had not seen what happened, the power supply would have set the entire room on fire.</p>
<p>For some strange reason, the power supply is working again the day after.</p>
<p>Technical details from the power supply and PC</p>
<ul>
<li>Lenovo AC Adapter 90W 20V rev H</li>
<li>Serial number: 11S92P1107Z1ZD2L73W8P6</li>
<li>P/N 92P1108</li>
<li>PA-1900-08I</li>
<li>(used for my Lenovo Thinkpad T60p widescreen type &#8220;8742-CTO&#8221;, S/N &#8220;L3-A8843 07/04&#8243;, Product id &#8220;8742Y18&#8243;)</li>
</ul>
<p>Question for Lenovo:</p>
<p>How can you convince me that it&#8217;s safe to use the power supply and put it back in the wood shelf in my home office?</p>
<p>Is this periodical error something that could  potentionally happen to the other power supply I use?</p>
<p>Thanks in advance for taking time to answer my questions professionally and seriously.</p>
<p>/Jesper Rønn-Jensen</p></blockquote>
<p>We need to get a smoke alarm in our home office. From saturday on, all electronics is turned off at home when sleeping. This includes the wireless internet connection, printer, and also the telephone which is connected to the same power plug.</p>
<p>To everybody with a similar power supply: <strong>Unplug the power supply when unattended!</strong></p>
<p>Related info:</p>
<ul>
<li><a href="http://justaddwater.dk/2007/07/25/lenovo-problem-no-wireless-reconnect-after-standby/" rel="bookmark" title="Permanent Link to Lenovo Problem: No Wireless Reconnect After Standby"><span class="title">Lenovo Problem: No Wireless Reconnect After Standby</span></a> (Jul 25)</li>
<li><a href="http://justaddwater.dk/2007/05/17/new-laptop-with-better-defaults/" rel="bookmark" title="Permanent Link to New Laptop With Better Defaults"><span class="title">New Laptop With Better Defaults</span></a><span class="title"></span> <span class="time">(May 17)</span><a href="http://justaddwater.dk/2007/05/17/new-laptop-with-better-defaults/" rel="bookmark" title="Permanent Link to New Laptop With Better Defaults"><span class="time"> </span></a></li>
</ul>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/lenovo" rel="tag">lenovo</a>, <a href="http://technorati.com/tag/laptop" rel="tag"> laptop</a>, <a href="http://technorati.com/tag/burning" rel="tag"> burning</a>, <a href="http://technorati.com/tag/fire" rel="tag"> fire</a>, <a href="http://technorati.com/tag/danger" rel="tag"> danger</a>, <a href="http://technorati.com/tag/hazard" rel="tag"> hazard</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/10/08/lenovo-power-supply-almost-caught-fire/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Debugging CSS: My Best Productivity Tip Ever</title>
		<link>http://justaddwater.dk/2007/04/30/debugging-css-my-best-productivity-tip-ever/</link>
		<comments>http://justaddwater.dk/2007/04/30/debugging-css-my-best-productivity-tip-ever/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 22:07:26 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/04/30/debugging-css-my-best-productivity-tip-ever/</guid>
		<description><![CDATA[Firebug keeps surprising me. I&#8217;ve recently been working on code for several web designs and this little trick helped me to understand existing HTML and CSS much faster. Just to give an example I use our Justaddwater RSS feed page (but could be any page). Before you start, get Firebug for Firefox (if you haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Firebug keeps surprising me. I&#8217;ve recently been working on code for several web designs and this little trick helped me to understand existing HTML and CSS much faster. Just to give an example I use our Justaddwater RSS feed page (but could be any page).</p>
<p>Before you start, <a href="http://www.getfirebug.com/">get Firebug</a> for Firefox (if you haven&#8217;t got it already).</p>
<ol>
<li> Press F12 and the Firebug window appears below in the browser window</li>
<li>Start the HTML inspector and mouse over any element, you want to learn about.<br />
<a href="http://justaddwater.dk/wp-content/uploads/2007/04/firebug-css-tip-start-html-inspector.png" title="firebug-css-tip-start-html-inspector.png"><img src="http://justaddwater.dk/wp-content/uploads/2007/04/firebug-css-tip-start-html-inspector-thumb.png" alt="firebug-css-tip-start-html-inspector-thumb.png" /></a></li>
<li>Now, you can see the HTML, the hierachy,and the CSS rules. For me it has been very useful, that overridden CSS rules are marked with strikethrough text. That&#8217;s a very handy information when CSS specificity plays in with a trick or two.</li>
<li>Press escape to stop inspector mode, and move mouse down to CSS rules.</li>
<li>Mouse over the CSS rules reveal a small icon to toggle the line. See screenshot animation below.</li>
</ol>
<p><img src="http://justaddwater.dk/wp-content/uploads/2007/04/firebug-css-bugfix-toggle.gif" alt="firebug-css-bugfix-toggle.gif" /></p>
<p>This trick will probably completely replace my use of &#8220;edit CSS&#8221; in <a href="https://addons.mozilla.org/en-US/firefox/addon/60" title="Web developer toolbar Firefox Add-on">Webdeveloper toolbar</a>, the nifty <a href="https://addons.mozilla.org/en-US/firefox/addon/2104" title="CSSViewer Firefox Add-on">CSSViewer add-on</a>, and the <a href="http://slayeroffice.com/tools/modi/v2.0/modi_help.html" title="Slayeroffice: Modi2 (mouse over DOM inspector) by Steve Chipmann">mouseover DOM inspector</a> bookmarklet.</p>
<p>Related info:</p>
<ul>
<li>Justaddwater: <a href="http://justaddwater.dk/2005/11/30/web-developers-collection-of-browser-tools/" rel="bookmark" title="Permanent Link: Web developer’s collection of browser tools">Web developer’s collection of browser tool</a> (November 2005)</li>
<li><a href="http://www.getfirebug.com/keyboard.html">Firebug keyboard shortcuts</a></li>
</ul>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/css" rel="tag">css</a>, <a href="http://technorati.com/tag/debug" rel="tag"> debug</a>, <a href="http://technorati.com/tag/debugging" rel="tag"> debugging</a>, <a href="http://technorati.com/tag/style+editor" rel="tag"> style editor</a>, <a href="http://technorati.com/tag/css+view" rel="tag"> css view</a>, <a href="http://technorati.com/tag/firefox+plugin" rel="tag"> firefox plugin</a>, <a href="http://technorati.com/tag/firefox+add-on" rel="tag"> firefox add-on</a>, <a href="http://technorati.com/tag/modi2" rel="tag"> modi2</a>, <a href="http://technorati.com/tag/slayeroffice" rel="tag"> slayeroffice</a>, <a href="http://technorati.com/tag/firebug" rel="tag"> firebug</a>, <a href="http://technorati.com/tag/productivity" rel="tag"> productivity</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/04/30/debugging-css-my-best-productivity-tip-ever/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Hillarious Error: &#8220;No Error Message Found&#8221;</title>
		<link>http://justaddwater.dk/2007/03/05/hillarious-error-no-error-message-found/</link>
		<comments>http://justaddwater.dk/2007/03/05/hillarious-error-no-error-message-found/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 13:57:26 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Errors]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/03/05/hillarious-error-no-error-message-found/</guid>
		<description><![CDATA[<p>ACD See systems tells me this error message when I follow a link to an invoice.</p>
<p>Very funny that there is an error message telling me "no error message found".</p>
<p><a href="http://justaddwater.dk/wp-content/uploads/2007/03/acdsystems-no-error-message-found.png" title="acdsystems-no-error-message-found.png"><img src="http://justaddwater.dk/wp-content/uploads/2007/03/acdsystems-no-error-message-found-thumbnail.png" alt="acdsystems-no-error-message-found-thumbnail.png" /></a>
</p>]]></description>
			<content:encoded><![CDATA[<p>ACD See systems tells me this error message when I follow a link to an invoice.</p>
<p>Very funny that there is an error message telling me &#8220;no error message found&#8221;.</p>
<p><a href="http://justaddwater.dk/wp-content/uploads/2007/03/acdsystems-no-error-message-found.png" title="acdsystems-no-error-message-found.png"><img src="http://justaddwater.dk/wp-content/uploads/2007/03/acdsystems-no-error-message-found-thumbnail.png" alt="acdsystems-no-error-message-found-thumbnail.png" /></a></p>
<p>I purchased an upgrade ACDSee license almost 2 months ago, but this is what happens when I try to follow the link in the invoice.</p>
<p>One good thing, however. Very handy for the developers and tech support to have an error codes shown. In this way, error messages are more traceable if an error happens.</p>
<p>I&#8217;m considering using this on a current project I&#8217;m  working on. But we will probably end up hiding the technical error codes initially (but possible to show on a click on &#8220;technical info&#8221; link).</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/acdsee" rel="tag">acdsee</a>, <a href="http://technorati.com/tag/website" rel="tag"> website</a>, <a href="http://technorati.com/tag/errors" rel="tag"> errors</a>, <a href="http://technorati.com/tag/error+messages" rel="tag"> error messages</a>, <a href="http://technorati.com/tag/usability" rel="tag"> usability</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/03/05/hillarious-error-no-error-message-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Mail Downtime</title>
		<link>http://justaddwater.dk/2007/02/07/google-mail-downtime/</link>
		<comments>http://justaddwater.dk/2007/02/07/google-mail-downtime/#comments</comments>
		<pubDate>Wed, 07 Feb 2007 13:19:13 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Errors]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/02/07/google-mail-downtime/</guid>
		<description><![CDATA[Right now, Google Mail disappeared just as I was about to send an email. And I thought this would never happen! (2 minutes later the service is up and running again) UPDATE: Two things happened after going online again. I found out my mail was actually sent before the server went down (so I ended [...]]]></description>
			<content:encoded><![CDATA[<p>Right now, Google Mail disappeared just as I was about to send an email.</p>
<p><img id="image536" src="http://justaddwater.dk/wp-content/uploads/2007/02/gmail-service-unavailable.png" alt="GMail service unavailable (google server down)" /></p>
<p>And I thought this would never happen!</p>
<p>(2 minutes later the service is up and running again)</p>
<p><strong>UPDATE:</strong> Two things happened after going online again.</p>
<p>I found out my mail was actually sent before the server went down (so I ended up sending the mail twice)</p>
<p>According to the chat window in GMail, I&#8217;m now logged out. But I can still view, send mail and perform any other action in GMail. See screenshot below.</p>
<p><img id="image537" src="http://justaddwater.dk/wp-content/uploads/2007/02/gmail-chat-logged-out.png" alt="GMail chat service logged out (but google mail still working)" /></p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/google" rel="tag">google</a>, <a href="http://technorati.com/tag/mail" rel="tag"> mail</a>, <a href="http://technorati.com/tag/gmail" rel="tag"> gmail</a>, <a href="http://technorati.com/tag/downtime" rel="tag"> downtime</a>, <a href="http://technorati.com/tag/uptime" rel="tag"> uptime</a>, <a href="http://technorati.com/tag/server" rel="tag"> server</a>, <a href="http://technorati.com/tag/failure" rel="tag"> failure</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/02/07/google-mail-downtime/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why Web Standards Matter (Case Study)</title>
		<link>http://justaddwater.dk/2006/06/29/webstandards-case-study/</link>
		<comments>http://justaddwater.dk/2006/06/29/webstandards-case-study/#comments</comments>
		<pubDate>Thu, 29 Jun 2006 14:03:01 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2006/06/29/webstandards-case-study/</guid>
		<description><![CDATA[Project managers often have a hard time understanding web standards and why they matter. In this case, my arguments made a perfect business case for the managers of a particular project.]]></description>
			<content:encoded><![CDATA[<p>Project managers often have a hard time understanding web standards and why they matter. In this case, my arguments made a perfect business case for the managers of a particular project.</p>
<p>Recently I was called out to debug some javascript code that did not perform. There was really not a big problem in Firefox, but Internet Explorer hung using 20 seconds or more each time the script was activated by the user.</p>
<p>It was one of those applications where you click on a little plus to expand a list of units in a subgroup. The list that caused the trouble contained 1,416 rows.</p>
<p>The subgroup was invisible and already rendered. On click a display style property changed from
<div class="codesnip-container" >display:none</div>
<p> to
<div class="codesnip-container" >display:block</div>
<p>. <strong>Unfolding the list took 19 seconds in IE</strong>. WHAT?</p>
<h3>A first look</h3>
<p>A brief investigation hinted something was wrong:</p>
<ul>
<li>Content/markup ratio: 23%/77%</li>
<li>Page contained 27,000 elements in the DOM</li>
<li>W3C HTML Validator unable to validate</li>
<li>Firefox HTML validator gave 6 HTML errors and 15,700 warnings</li>
<li>No JavaScript errors, though</li>
</ul>
<p>There were plenty of transparent spacer gifs, and <strong>the spacer gifs were used in empty table cells</strong>. A brief count in the DOM revealed that 5,400 of the 7,200 images were transparent gifs. Uh oh.</p>
<h3>Most important pitfall: TOO many elements in DOM</h3>
<p>JavaScript really was not the problem here, because there was nothing but an innocent
<div class="codesnip-container" >display:block</div>
<p> statement. The problem had to be rendering related and I got suspicious as the hidden list contained:</p>
<ul>
<li>One giant table element with
<div class="codesnip-container" >display:none</div>
</li>
<li>Inside that 1,416 rows</li>
<li>Each of the rows had a table cell with one new table inside it.</li>
<li>Each nested table had 15 cells (four of which contained only transparent spacer.gifs)</li>
<li>Tables nested six levels deep on the page</li>
</ul>
<p>All this equals <strong>bloated HTML </strong>and 27,000 total HTML elements on the page. Here&#8217;s how we got down to 11,000 elements without removing any content:</p>
<h3>Strategy for reducing element count</h3>
<p>These were my recommendations for reducing element count and thereby improving performance:</p>
<p><strong>Avoid JavaScript</strong>. We found that in this situation, the javascript performance had big variations on different browsers (and on the same browser, with different people logged in). In this case, we were able to avoid JavaScript, which is not always the case.</p>
<p><strong>Remove validation errors and warnings</strong>. Browsers are coded after the HTML specifications, HTML specifications tell browser vendors how their code should interpret valid HTML. If the code is not valid, sometimes browsers guess what they think the source code means. The only thing specified in the HTML standard is how valid code behaves. Invalid code is left for the browser to do whatever it pleases. If, for instance, a
<div class="codesnip-container" >form</div>
<p> element is nested directly in a
<div class="codesnip-container" >table</div>
<p> element, it&#8217;s not allowed. But what will the browser do about it? Render the element? Or silently ignore it? Can you submit forms at all from the page? If your form cannot submit, it can be a big risk to use HTML that does not validate.</p>
<p>In this particular case, there were 6 errors and 15,700 warnings (all of which could be easily fixed).</p>
<p><strong>Remove elements without content</strong>. Originally each of the 1416 rows had its own table element. Additionally, a lot of transparent images were placed in empty table cells. All of this clutter was removed. We ended up using six table columns in the parent table, compared to originally 15 columns in each of the 1416 child tables. This really adds up when you consider that in our baseline example we had 1416 rows. All in all we reduced HTML footprint with 40%.</p>
<h3>Result</h3>
<table width="100%" cellspacing="1" style="background: #eeeeee">
<tr>
<th></th>
<th>Before</th>
<th>After</th>
</tr>
<tr>
<td>display:none on subgroup:</td>
<td>19 sec</td>
<td>&lt;0.5 sec</td>
</tr>
<tr>
<td>
<div class="codesnip-container" >document.getElementsByTagName(&#8216;*&#8217;).length</div>
<p>:</td>
<td>27,000</td>
<td>11,471</td>
</tr>
<tr>
<td>Number of image tags:</td>
<td>7,200</td>
<td>1,426</td>
</tr>
<tr>
<td>Number of tables:</td>
<td>1,416</td>
<td>11</td>
</tr>
<tr>
<td>HTML validation errors:</td>
<td>6</td>
<td>0</td>
</tr>
<tr>
<td>HTML validation warnings:</td>
<td>15,700</td>
<td>0</td>
</tr>
<tr>
<td>IE memory consumption (avg):</td>
<td>46MB</td>
<td>35MB</td>
</tr>
<tr>
<td>IE memory consumption (peak).</td>
<td>58MB</td>
<td>36MB</td>
</tr>
</table>
<h3>Long-term findings</h3>
<ul>
<li>Don&#8217;t use JavaScript for general page layout rendering. Think really really hard if it can be done without JavaScript. One example: Print should be done with CSS</li>
<li>If there is no way around it, use standard JavaScript libraries were browser bugs, etc are hidden for the programmer</li>
<li>Tables used for layout are evil. Use tables for table-based content ONLY</li>
<li>HTML code is really messy and hard to maintain. Should be cleaned up to avoid similar situations in the future. Clean up nested tables, table cells with transparent gifs. Use CSS where appropriate could shave up to 50-70% of HTML footprint</li>
<li>Many HTML validation errors. Code improperly nested, forgotten end-tags: Ideally, the pages should have no validation errors. It&#8217;s an achievable work worth the effort and very educational way of working with the code</li>
</ul>
<h3>Long-term benefits</h3>
<p>In general, several benefits could be gained by raising the knowledge of HTML, CSS, Javascript, web standards, and browser issues.</p>
<ul>
<li>Include easier maintenance</li>
<li>Lower risk of change</li>
<li>Lower risk of browser incompatibilities</li>
<li>Lower risk of browser crashes</li>
</ul>
<h3>Browser tools</h3>
<p>These tools I used for quick investigation of the HTML page:</p>
<ul>
<li><a title="Firefox Add-ons: HTML validator" href="https://addons.mozilla.org/firefox/249/">HTML validator Firefox extension</a> by <a title="Marc Gueury Mozilla homepage" href="http://users.skynet.be/mgueury/mozilla/">Marc Gueury</a></li>
<li><a title="Firefox Add-ons: Firebug" href="https://addons.mozilla.org/firefox/1843/">Firebug Firefox extension</a> by <a title="Joe Hewitt website" href="http://www.joehewitt.com/">Joe Hewitt</a></li>
<li>Content/markup ratio with <a title="Slayeroffice: Page Info Favelet" href="http://slayeroffice.com/?c=/content/tools/pagenfo.html">pageinfo bookmarklet</a> by Slayeroffice (Steve Chipman) <small>who has a <a title="Slayeroffice: Javascript the cat" href="http://slayeroffice.com/archives/?p=140">cat named Javascript</a>!</small></li>
<li>Counting of HTML elements with <a title="Squarefree: Javascript Shell" href="http://www.squarefree.com/shell/">JavaScript shell bookmarklet</a> by Jesse Ruderman:
<div class="codesnip-container" >document.getElementsByTagName(&#8216;*&#8217;).length</div>
<p><small>could be done dicectly from the browser address bar by typing:</small></p>
<div class="codesnip-container" >javascript:alert(document.getElementsByTagName(&#8216;*&#8217;).length);</div>
</li>
</ul>
<p>More info on my firefox extensions in the article: <a rel="bookmark" title="Permanent Link to Web developer’s collection of browser tools" href="http://justaddwater.dk/2005/11/30/web-developers-collection-of-browser-tools/">Web developer’s collection of browser tools</a> (Nov 30th, 2005).</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/webstandards" rel="tag">webstandards</a>, <a href="http://technorati.com/tag/w3c" rel="tag"> w3c</a>, <a href="http://technorati.com/tag/browser+errors" rel="tag"> browser errors</a>, <a href="http://technorati.com/tag/code" rel="tag"> code</a>, <a href="http://technorati.com/tag/performance" rel="tag"> performance</a>, <a href="http://technorati.com/tag/javascript" rel="tag"> javascript</a>, <a href="http://technorati.com/tag/html" rel="tag"> html</a>, <a href="http://technorati.com/tag/dom" rel="tag"> dom</a>, <a href="http://technorati.com/tag/spacer.gif" rel="tag"> spacer.gif</a>, <a href="http://technorati.com/tag/" rel="tag"> </a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2006/06/29/webstandards-case-study/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Misleading Error Messages &#8211; Litteraly!</title>
		<link>http://justaddwater.dk/2006/06/20/misleading-error-messages-litteraly/</link>
		<comments>http://justaddwater.dk/2006/06/20/misleading-error-messages-litteraly/#comments</comments>
		<pubDate>Tue, 20 Jun 2006 09:46:53 +0000</pubDate>
		<dc:creator>Thomas Watson Steen</dc:creator>
				<category><![CDATA[Errors]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2006/06/20/misleading-error-messages-litteraly/</guid>
		<description><![CDATA[We all know that giving the user a correct error message is essential. It is important that the message is clearly visible and written in a way so that there is no doubt what the problem is. Today I was updating my profile photo on Technorati (the current one was of the little fellow in [...]]]></description>
			<content:encoded><![CDATA[<p>We all know that giving the user a correct error message is essential. It is important that the message is clearly visible and written in a way so that there is no doubt what the problem is.</p>
<p>Today I was updating my profile photo on Technorati (the current one was of the little fellow in the top banner of this site, and the new was the same that I use on this blog).</p>
<p>So I went to Account -> Your Photo at Technorati, clicked the &#8220;Browse&#8221; button, located the photo on my hard drive and clicked &#8220;Upload&#8221;. But apparently something went wrong and I got the following error message:</p>
<p><img alt="Technorati: Profile Photo Upload Failed" id="image316" src="http://justaddwater.dk/wp-content/uploads/2006/06/technorati-photo-upload-failed.png" /></p>
<p>As you can see my old photo was still there and the error message read &#8220;<strong>Photo upload failed</strong>. Please try again in a few minutes.&#8221;</p>
<p>I then waited and tried again, but with the same result. I finaly gave up.</p>
<p>But suddenly I saw the following on our blog front-page on Technorati:</p>
<p><img alt="Technorati: Profile photo upload didn't fail!" id="image317" src="http://justaddwater.dk/wp-content/uploads/2006/06/technorati-photo-upload-ok.png" /></p>
<p>Hey! This is the new picture &#8211; not the old one. But how? Didn&#8217;t the error message just tell me otherwise?</p>
<p><strong>In their eager to display error messages in every problematic situation Technorati might have overdone it a bit ;)</strong></p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/technorati" rel="tag">technorati</a>, <a href="http://technorati.com/tag/error+messages" rel="tag"> error messages</a>, <a href="http://technorati.com/tag/error+message" rel="tag"> error message</a>, <a href="http://technorati.com/tag/usability" rel="tag"> usability</a>, <a href="http://technorati.com/tag/profile" rel="tag"> profile</a>, <a href="http://technorati.com/tag/photo" rel="tag"> photo</a>, <a href="http://technorati.com/tag/upload" rel="tag"> upload</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2006/06/20/misleading-error-messages-litteraly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

