<?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/"
	>

<channel>
	<title>Adam.Kahtava.com / AdamDotCom &#187; DOM</title>
	<atom:link href="http://adam.kahtava.com/journal/category/dom/feed/" rel="self" type="application/rss+xml" />
	<link>http://adam.kahtava.com/journal</link>
	<description>A software development blog</description>
	<pubDate>Fri, 12 Mar 2010 03:41:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Book Reviewed: Designing with Web Standards by Jeffrey Zeldman</title>
		<link>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 16:00:08 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Review]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1750</guid>
		<description><![CDATA[
The title of Jeffrey Zeldman&#8217;s book (Designing with Web Standards)Â says it all - this book promoted accessible, usable, search engine friendly web design and development through the use of XHTML and CSS whileÂ debunking the myths surrounding web standards.Â ZeldmanÂ is a wellÂ recognized nameÂ among web developers and designers - he&#8217;s the theÂ founder ofÂ A List Apart, and co-founder ofÂ The [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right;"><a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/"><img class="alignright" title="Designing with web standards" src="http://ec1.images-amazon.com/images/P/0321385551.01._SCMZZZZZZZ_.jpg" alt="" width="131" height="160" /></a></div>
<p>The title of <a href="http://en.wikipedia.org/wiki/Jeffrey_Zeldman">Jeffrey Zeldman&#8217;s</a> book (<a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551">Designing with Web Standards</a>)Â says it all - this book promoted accessible, usable, search engine friendly web design and development through the use of XHTML and CSS whileÂ debunking the myths surrounding web standards.Â ZeldmanÂ is a wellÂ recognized nameÂ among web developers and designers - he&#8217;s the theÂ founder ofÂ <a href="http://www.alistapart.com/">A List Apart</a>, and co-founder ofÂ <a href="http://www.webstandards.org/">The Web Standards Project (WaSP)</a>.Â His writing is entertaining, witty, easy to read, and insightful - it&#8217;s very much like the content we&#8217;re used to reading at <a href="http://www.alistapart.com/">A List Apart</a>.Â It&#8217;s also fair to mention that this book hasÂ been edited by industy experts and influencial writers likeÂ <a href="http://en.wikipedia.org/wiki/Eric_Meyer">Eric Myer</a>.Â Any developer that works with the web should read this book along with <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742">JavaScript: The Good Parts</a> by Douglas Crockford.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/20/book-reviewed-designing-with-web-standards/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Chronic Divitis And Classitis, What Are They?</title>
		<link>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 16:00:16 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Google Exercise]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1716</guid>
		<description><![CDATA[Jeffery Zeldman offers this entertaining definition for Divitis and Classitis:
Classitis is the measles of markup, obscuring meaning as it adds needless weight to every page. The affliction dates back to the early days of semi-CSS-capable browsers and the many designers&#8217; initially childish comprehension of how CSS works.
Alas, many have not yet outgrown that childish misunderstanding [...]]]></description>
			<content:encoded><![CDATA[<p>Jeffery Zeldman offers this entertaining definition for Divitis and Classitis:</p>
<blockquote><p><strong>Classitis is the measles of markup</strong>, obscuring meaning as it adds needless weight to every page. The affliction dates back to the early days of semi-CSS-capable browsers and the many designers&#8217; initially childish comprehension of how CSS works.<br />
Alas, many have not yet outgrown that childish misunderstanding of CSS &#8230; Classitis is as bad in its own way as the <code>&lt;font&gt;</code> tag ever was; rarely does good markup require it &#8230; At other times classitis is exacerbated by a still more serious condition &#8230; divitis &#8230;<strong> Classitis and divitis are like the needless adjectives with wich bad writing is strewen</strong>. They are the weeds in the garden of meaning. - Jeffrey Zeldman, <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a></p></blockquote>
<p><strong>An example of markup wraught with divitis and classitis:</strong><br />
<img class="alignnone size-full wp-image-1720" style="padding-left: 5px;" title="googleexercise-divitis1" src="http://adam.kahtava.com/journal/wp-content/uploads/2009/07/googleexercise-divitis1.png" alt="googleexercise-divitis1" width="470" height="455" /><br />
<em>13 <code>div</code> elements and 11 classes for a single item. What a stench! :) Â <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/non-semantic-pure-javascript/">View this markup in action.</a></em></p>
<p><strong>The equivalent markup disease free:</strong><br />
<img class="alignnone size-full wp-image-1721" style="padding-left: 5px;" title="googleexercise-semantic" src="http://adam.kahtava.com/journal/wp-content/uploads/2009/07/googleexercise-semantic.png" alt="googleexercise-semantic" width="519" height="360" /><br />
<em>Cleaner, more meaningful, and with all the functionality of the former code.Â One <code>div</code> element and 3 classes for a single item.Â Â ShamWow!Â <a href="http://adam.kahtava.com/etcetera/google-web-developer-exercises/semantic-with-jquery/">View this markup in action.</a></em></p>
<p>Both of these markup snippets are visually and functionally equivalent. In the first example the <code>divs</code>, <code>classes</code>, and cryptic <code>ids</code> weigh down the page and pollute the meaning of the markup. In the later, a more semantic / structural approach is taken Â Both these snippets were pulled from my attempts at <a href="http://adam.kahtava.com/journal/2009/07/09/the-google-exercise-revisited-semantic-markup-with-jquery/">the Google Web Developer Exercise.</a></p>
<p>Clean meaningful markup is the API that users and web crawlers consume - it&#8217;s important and easy to keep things clean, it just takes a little experience. Thank goodness for patterns like <a href="http://en.wikipedia.org/wiki/Modelâ€“viewâ€“controller">MVC</a> that let us control our API (the markup).</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/15/cronic-divitis-and-classitis-what-is-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What Is Semantic / Structural Markup and Why Does It Matter?</title>
		<link>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/</link>
		<comments>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 16:00:02 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Web Standards]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/?p=1695</guid>
		<description><![CDATA[I always found the definition of &#8220;Semantic / Structural Markup&#8221; murky on the intertubes. I thought Jeffrey Zeldman described it well in his book Designing with Web Standards.

What Is Semantic / Structural Markup?
Markup is &#8220;semantic&#8221; when tags are chosen according to what they mean. For example, tagging a headline h1 because it is the most [...]]]></description>
			<content:encoded><![CDATA[<p>I always found the definition of &#8220;Semantic / Structural Markup&#8221; murky on the intertubes. I thought Jeffrey Zeldman described it well in his book <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a>.<br />
<strong></strong></p>
<p><strong>What Is Semantic / Structural Markup?</strong></p>
<blockquote><p><strong>Markup is &#8220;semantic&#8221; when tags are chosen according to what they mean.</strong> For example, tagging a headline <code>h1</code> because it is the most important headline on the page is a semantic authoring practice. Tagging a headline <code>h1</code> &#8220;to make it look big&#8221; is not. &#8230; I use the phrase &#8220;structural markup&#8221; to mean pretty much the same thing as &#8220;semantic markup.&#8221; (&#8221;Structural markup&#8221; takes its name specifically from the idea that the web document has an outline-like structure.) - Jeffrey Zeldman,Â <a href="http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/">Designing with Web Standards</a></p></blockquote>
<p>Zeldman goes on to make many great points on why semantic markup matters, here&#8217;s my paraphrase.</p>
<p><strong>Why Does Semantic / Structural Markup Matter?</strong></p>
<ul>
<li>it helps make web sites more <a href="http://en.wikipedia.org/wiki/Web_accessibility">accessibile</a></li>
<li>it provides a means to meet <a href="http://en.wikipedia.org/wiki/Web_accessibility#Guidelines_on_accessible_web_design">government mandatied web accessibility guidelines</a></li>
<li>it&#8217;s a critical component for <a href="http://en.wikipedia.org/wiki/Search_engine_optimization">Search Engine Optimization (SEO)</a> because <em><strong>the Google search engine is the biggest blind user on the web</strong></em> - Zeldman</li>
<li>doing the right thing is the right way to do things -Â developers should have aÂ sense of prideÂ in being a craftsman :)</li>
<li>did I mention Search Engine Optimization?</li>
</ul>
<p>If you&#8217;re interested in learning more about semantic markup then view <a href="http://www.alistapart.com/">A List Apart&#8217;s</a> source code, or read their many online resources:Â <a href="http://www.alistapart.com/topics/topic/htmlxhtml/">Topics: Code: HTML and XHTML</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2009/07/13/what-is-semantic-structural-markup-and-why-does-it-matter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Book Reviewed: JavaScript: The Good Parts by Douglas Crockford</title>
		<link>http://adam.kahtava.com/journal/2008/06/07/book-reviewed-javascript-the-good-parts-by-douglas-crockford/</link>
		<comments>http://adam.kahtava.com/journal/2008/06/07/book-reviewed-javascript-the-good-parts-by-douglas-crockford/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 23:32:33 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[Book]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Programming Languages]]></category>

		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,6b653e5a-27a0-4fc6-bd15-85cd9c414372.aspx</guid>
		<description><![CDATA[Weighing in at 140+ pages of content, JavaScript: The Good Parts [Douglas Crockford] cuts through the obscurities, pleasantries, and filler found in most technical books. Instead, this book dives straight into the heart of the JavaScript language. It presents the clearest comprehensive explanation of what makes JavaScript a great programming language that I&#8217;ve encountered to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596517742"><img style="border-width: 0px; float: right;" src="http://ecx.images-amazon.com/images/I/51Mb1xCr7CL._SL500_AA240_.jpg" alt="" /></a>Weighing in at 140+ pages of content, <a href="http://www.amazon.com/gp/product/0596517742/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596517742">JavaScript: The Good Parts [Douglas Crockford]</a> cuts through the obscurities, pleasantries, and filler found in most technical books. Instead, this book dives straight into the heart of the JavaScript language. It presents the clearest comprehensive explanation of what makes JavaScript a great programming language that I&#8217;ve encountered to date. It nails the important concepts, like JavaScript&#8217;s: object oriented nature, its classless (pseudoclassical) nature, and functional nature. While covering the fundamentals like JavaScript&#8217;s: functions, lexical scoping, lambdas, prototypal inheritance, and functional inheritance.</p>
<p>This book&#8217;s size makes it approachable for all audiences, its style is terse and concise. This book has the potential to do for JavaScript, what Richie&#8217;s inspirational classic the <a href="http://www.amazon.com/gp/product/0131103628/?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131103628">C Programming Language</a> did for the C language.</p>
<p>JavaScript is the programming language of the web (AJAX), and this book will guide you through the good parts of this often misunderstood language - while this book is an excellent reference, it is not intended to replace <a href="http://adam.kahtava.com/journal/2008/03/26/book-reviewed-javascript-the-definitive-guide-by-david-flanagan/">JavaScript: The Definitive Guide</a>, you&#8217;ll do best to have both these books on hand.</p>
<p>If you enjoyed (or are considering) this book then you may want to learn more of what Douglas Crockford has to say, check out his great JavaScript video series on the <a href="http://developer.yahoo.com/yui/theater/">YUI Theater</a>.</p>
<p>I highly recommend this book. View my review on <a href="http://www.amazon.com/gp/cdp/member-reviews/A2JM0EQJELFL69/ref=cm_pdp_reviews_see_all?ie=UTF8&amp;sort_by=MostRecentReview">Amazon</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/06/07/book-reviewed-javascript-the-good-parts-by-douglas-crockford/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More on the perils of The ASP.NET AJAX Framework</title>
		<link>http://adam.kahtava.com/journal/2008/06/03/more-on-the-perils-of-the-aspnet-ajax-framework/</link>
		<comments>http://adam.kahtava.com/journal/2008/06/03/more-on-the-perils-of-the-aspnet-ajax-framework/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 15:06:27 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[ASP.NET AJAX]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,128d00d5-c819-417b-996f-268676243143.aspx</guid>
		<description><![CDATA[There&#8217;s no need to whip a dead horse (I&#8217;ve probably been griping about the ASP.NET AJAX Framework for too long), but&#8230; Jon Galloway and a group of other notable gurus (K. Scott Allen, Scott Koon, and Kevin Dente) have started a podcast, their latest segment sparked my interest since it covered ASP.NET AJAX and AJAX [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no need to whip a dead horse (I&#8217;ve probably been griping about the ASP.NET AJAX Framework for too long), but&#8230; <a href="http://weblogs.asp.net/jgalloway/default.aspx">Jon Galloway</a> and a group of other notable gurus (<a href="http://www.odetocode.com/">K. Scott Allen</a>, <a href="http://www.lazycoder.com/">Scott Koon</a>, and <a href="http://weblogs.asp.net/kdente/">Kevin Dente</a>) have started a podcast, their latest segment sparked my interest since it covered ASP.NET AJAX and AJAX Libraries / Frameworks in general.</p>
<p>I share their sentiments so I thought I&#8217;d post a brief but choppy transcript:</p>
<blockquote><p>[ASP.NET AJAX] &#8230; does offer some some nice features, they did try to take some of the common pieces of the CLR that [.NET Developers are] used to working with and move that down into a JavaScript library. So you get classes like a <a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Net/WebRequestClass/default.aspx">WebRequest</a> class that wraps the <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHttpRequest</a> &#8230; and they have a <a href="http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys/StringBuilderClass/default.aspx">StringBuilder</a>, and they added methods that we&#8217;re more accustom with &#8230;</p>
<p>that&#8217;s wonderful, but I don&#8217;t find myself needing those extensions all that often.<strong> If you want to do strictly client-side programming then something like jQuery offers you a lot more capabilities to do things that you really want to do client-side like sorting and CSS selectors.</strong> &#8230; That stuff is easy to do with an Update Panel and ASP.NET, but Update Panels aren&#8217;t always the best solution to use. &#8230;</p>
<p>the goals with ASP.NET AJAX was to integrate into the ASP.NET server-side model &#8230; that&#8217;s great for ASP.NET, but it needs more client-side features. &#8230; It works if your thinking from the ASP.NET control perspective, but <strong>if you look at it outside the ASP.NET model there are a lot easier ways to do it. </strong>&#8230;</p>
<p>ASP.NET AJAX [development] seems to have come to a standstill I&#8217;m not seeing a lot of development in that area and the rest of these [AJAX] Frameworks are doing monthly releases. <strong>Every month that goes by [the ASP.NET AJAX Framework] falls further and further behind &#8230; it needs to evolve.</strong></p></blockquote>
<p>Listen to this podcast here: <a href="http://weblogs.asp.net/jgalloway/archive/2008/05/29/technology-round-table-podcast-2-ajax-frameworks.aspx">Technology Round Table Podcast #2 - AJAX Frameworks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/06/03/more-on-the-perils-of-the-aspnet-ajax-framework/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free: Win a Copy of Beginning CSS: Cascading Style Sheets for Web Design</title>
		<link>http://adam.kahtava.com/journal/2008/04/24/free-win-a-copy-of-beginning-css-cascading-style-sheets-for-web-design/</link>
		<comments>http://adam.kahtava.com/journal/2008/04/24/free-win-a-copy-of-beginning-css-cascading-style-sheets-for-web-design/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:59:39 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Contest]]></category>

		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,0d25babc-9814-45bc-b73a-1951ac3d9b45.aspx</guid>
		<description><![CDATA[ Beginning CSS: Cascading Style Sheets for Web Design by Richard York is a great book for any web developer looking to thoroughly understand CSS.  
 This book was required pre-reading for my latest Technical Editing task - I&#39;m editing Mr. York&#39;s newest book. So in the spirit of spring, de-cluttering, and giving. I&#39;d [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0470096977?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0470096977"><img src="http://ecx.images-amazon.com/images/I/51e-K4w5wOL._AA240_SH20_.jpg" style="border: 0px none ; float: right;"></a> <a href="http://www.amazon.com/gp/product/0470096977?ie=UTF8&amp;tag=adamkahtavaap-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0470096977">Beginning CSS: Cascading Style Sheets for Web Design</a> by Richard York is a great book for any web developer looking to thoroughly understand CSS.  </p>
<p> This book was required pre-reading for my latest Technical Editing task - I&#39;m editing Mr. York&#39;s newest book. So in the spirit of spring, de-cluttering, and giving. I&#39;d like to give this book away. This book is like new with a couple minor dings (from an airport fiasco), it is in full color (like all good design books should be), and it&#39;s free!</p>
<p> <b>Contest Rules:</b> <br /> 
<ul>
<li> Comment on this post.</li>
<li> Leave a valid email in the email comment field.</li>
<li> The winner will be chosen at random and notified through email on <a href="http://en.wikipedia.org/wiki/Canada_day">Canada Day</a> (July 1st).</li>
<li> I pay for shipping.</li>
</ul>
<p> <strike>Good Luck!</strike> </p>
<p> The contest has ended and the winner is <span class="commentPermalinkStyle"><b>Devin Parrish</b>!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/04/24/free-win-a-copy-of-beginning-css-cascading-style-sheets-for-web-design/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The ASP.NET AJAX Learning Curve</title>
		<link>http://adam.kahtava.com/journal/2008/04/09/the-aspnet-ajax-learning-curve/</link>
		<comments>http://adam.kahtava.com/journal/2008/04/09/the-aspnet-ajax-learning-curve/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 14:36:06 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[ASP.NET AJAX]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,a8f6b8fe-dbc5-4963-a735-e92ad3b18d8b.aspx</guid>
		<description><![CDATA[The ASP.NET AJAX framework comes with a lot of baggage err&#8230; I mean&#8230; a huge learning curve when compared to other AJAX Frameworks like JQuery, YUI, Dojo, Prototype / Scriptaculous.
 Here&#39;s a running list of the technologies, and concepts you&#39;ll encounter when digging into ASP.NET AJAX: 

 ASP.NET 

 The Page Life Cycle
 The Control [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://en.wikipedia.org/wiki/ASP.NET_AJAX">ASP.NET AJAX</a> framework comes with a lot of baggage err&#8230; I mean&#8230; a huge learning curve when compared to other <a href="http://en.wikipedia.org/wiki/Ajax_framework">AJAX Frameworks</a> like <a href="http://jquery.com/">JQuery</a>, <a href="http://developer.yahoo.com/yui/">YUI</a>, <a href="http://dojotoolkit.org/">Dojo</a>, <a href="http://www.prototypejs.org/">Prototype</a> / <a href="http://script.aculo.us/">Scriptaculous</a>.</p>
<p> Here&#39;s a running list of the technologies, and concepts you&#39;ll encounter when digging into ASP.NET AJAX:<br /> 
<ul>
<li> ASP.NET<img src="http://adam.kahtava.com/journal/images/blog/ajax_logo.png" style="float: right;"> </li>
<ul>
<li> The Page Life Cycle</li>
<li> The Control Life Cycle</li>
<li> Web Controls</li>
<li> User Controls</li>
<li> View State</li>
<li> Session State</li>
<li> Events </li>
</ul>
<li> .NET / Classical Language </li>
<ul>
<li> Interfaces</li>
<li> Inheritance</li>
<li> Delegates</li>
<li> Multicast Delegates</li>
<li> Assemblies</li>
<li> Properties (Get / Set)</li>
<li> Constructors</li>
</ul>
</ul>
<p> In addition to these, you also have the technologies universal to all JavaScript libraries:<br /> 
<ul>
<li> JavaScript:</li>
<ul>
<li> Closures</li>
<li> Object Literals</li>
<li> JSON</li>
<li> Events</li>
<li> DOM Manipulation</li>
<li> Prototypical Inheritance</li>
<li> Constructors</li>
<li> XMLHttpRequest </li>
</ul>
<li> Cascading Style Sheets (CSS):</li>
<li> Web Services</li>
</ul>
<p> The <a href="http://en.wikipedia.org/wiki/ASP.NET_AJAX">ASP.NET AJAX</a> Framework is more complex than other <a href="http://en.wikipedia.org/wiki/Ajax_framework">AJAX frameworks</a>, I&#39;m continually lost in it&#39;s ambiguity as it attempts to skirt around the JavaScript language - I think this learning curve (and all it&#39;s confusion) is precisely why <a href="http://en.wikipedia.org/wiki/Silverlight">Silverlight</a> has so much potential.  </p>
<p> I&#39;m still diving into the low-level details, but my first impressions of the ASP.NET AJAX Framework are:  <br /> 
<ul>
<li> Obscure, ambiguous, no clear vision - it offers multiple (resource intensive) ways to avoid writing JavaScript, but then requires that you write JavaScript anyways </li>
<li> Too server centric</li>
<li> Too heavy weight (I&#39;m not appreciating how they&#39;re trying to turning JavaScript into a Java, C#, .NET clone, the overhead within the browser for these conversions seems like a huge performance bottleneck)</li>
<li> Has the potential for poor performance  </li>
</ul>
<p> Most of the <u>other</u> AJAX libraries have been written with performance, browser responsiveness, and User Experience as their number one priorities - I&#39;m still not sure about ASP.NET AJAX.  </p>
<p> How many ways can we try to avoid writing JavaScript? If an AJAX library doesn&#39;t enhance the User Experience then why use it? Regardless, I&#39;m still digging deeper.<br /> </p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/04/09/the-aspnet-ajax-learning-curve/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How Well Do You Know JavaScript?</title>
		<link>http://adam.kahtava.com/journal/2008/01/13/how-well-do-you-know-javascript/</link>
		<comments>http://adam.kahtava.com/journal/2008/01/13/how-well-do-you-know-javascript/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 19:09:19 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[AJAX]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[IE]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,b8b02f0d-1ed8-445a-a698-28458ef98622.aspx</guid>
		<description><![CDATA[
JavaScript is probably the world&#8217;s most popular and misunderstood programming languages and for good reason.
When a developer claims to know JavaScript this generally equates to one or all of the following:

 &#8220;I know what JavaScript is, I can learn JavaScript in 30 minutes&#8220;
 &#8220;JavaScript is for kids, it&#8217;s a toy language, it&#8217;s easy&#8221;
 &#8220;I just [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; padding-left: 5px;"><a href="http://www.flickr.com/photos/matthiasorfield/368716706/"><img src="http://farm1.static.flickr.com/98/368716706_d8c474a12c_m.jpg" alt="" /></a></div>
<p>JavaScript is probably the world&#8217;s most popular and misunderstood programming languages and for good reason.<br />
When a developer claims to <em>know</em> JavaScript this generally equates to one or all of the following:</p>
<ul>
<li> <em>&#8220;I know what JavaScript is, </em><em>I can learn JavaScript in 30 minutes</em><em>&#8220;</em></li>
<li> <em>&#8220;JavaScript is for kids, it&#8217;s a toy language, it&#8217;s easy&#8221;</em></li>
<li> <em>&#8220;I just copy and paste my JavaScript snippets / scripts from the internet&#8221;</em></li>
<li> <em>&#8220;JavaScript is just another programming language like C++, C#, VB.NET, or Java&#8221;</em></li>
</ul>
<p>If thoughts similar to these have crossed your mind when sizing up your JavaScript knowledge, then you probably don&#8217;t know JavaScript.</p>
<p>I would argue that if you&#8217;ve never programmed in a <a href="http://en.wikipedia.org/wiki/Functional_programming">functional programming language</a> (like: <a href="http://en.wikipedia.org/wiki/LISP">Lisp</a>, <a href="http://en.wikipedia.org/wiki/Scheme">Scheme</a>, <a href="http://en.wikipedia.org/wiki/F_Sharp_programming_language">F#</a>), never read a <a href="http://adam.kahtava.com/journal/2008/04/16/how-to-choose-a-good-technical-book/"><strong><span style="text-decoration: underline;"><em>GOOD</em></span></strong></a> book on JavaScript, or never watched a video on JavaScript, then you probably don&#8217;t understand JavaScript at all. JavaScript is starkly different than any other mainstream programming language.</p>
<p>When it comes to JavaScript, if you don&#8217;t understand the fundamentals then you&#8217;re only punishing yourself.</p>
<p><strong>Here are some things every JavaScript developer should probably understand:</strong></p>
<ul>
<li> <a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>, <a href="http://en.wikipedia.org/wiki/JavaScript#History_and_naming">Mocha</a>, <a href="http://en.wikipedia.org/wiki/Livescript">LiveScript</a>, <a href="http://en.wikipedia.org/wiki/JScript">JScript</a>, and <a href="http://en.wikipedia.org/wiki/ECMAScript">ECMAScript</a> are all essentially the same.</li>
<li> JavaScript is a prototypically inherited (<a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-based programming</a>) language which is very different than the classically inherited (<a href="http://en.wikipedia.org/wiki/Class-based_programming">class-based programming</a>) languages like C++, Java, and most of the .NET languages - you know the difference between a prototype-based programming and class-based programming language.</li>
<li> JavaScript is a loosely typed language - you know the difference between <a href="http://en.wikipedia.org/wiki/Strongly-typed_programming_language">strongly-typed programming</a> languages and <a href="http://en.wikipedia.org/wiki/Weak_typing">weak-typed</a> or loosely typed languages.</li>
<li> JavaScript is a functional <a href="http://en.wikipedia.org/wiki/Lambda_calculus">lambda</a> language - you understand lambdas and that functions in JavaScript can be lambdas.</li>
<li> JavaScript functions can be defined inside functions, inside functions, inside functions, and so on - you can demonstrate this.</li>
<li> JavaScript uses function scope, has no curly brace <em>&#8216;{}&#8217;</em> block scope - you understand that this is common attribute of most functional programming languages.</li>
<li> JavaScript has no private, public, protected assessors, no classes, no enums, no structs - you understand that all these language features can be achieved through objects and function closures.</li>
<li> JavaScript is classless, but instead it uses objects as general containers.</li>
<li> JavaScript makes use of garbage collection.</li>
<li> JavaScript uses truthy and falsy values - you understand which values are truth and falsy.</li>
<li> JavaScript makes use of the <em>&#8216;nan&#8217;</em> (not a number) and <em>&#8216;undefined&#8217;</em> values - you understand the difference between these values.</li>
<li> JavaScript has pretty good debuggers - you understand how to debug JavaScript from both IE (<a href="http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html">link</a>) and Firefox (<a href="http://www.getfirebug.com/js.html">link</a>).</li>
<li> You appreciate recursion, and understand that recursion is a useful technique in JavaScript.</li>
<li> You understand that JavaScript Namespaces should be used - you understand the importance of namespaces, and know how to create one (<a href="http://adam.kahtava.com/journal/2008/03/17/namespacing-your-javascript/">Namespacing Your JavaScript</a>).</li>
<li> You know how to avoid the <a href="http://www.dynamicsitesolutions.com/javascript/mistakes/">JavaScript pseudo-protocol</a> (<em>&lt;a href=&#8221;Javascript:alert(&#8217;hello&#8217;);&#8221;</em>), and appreciate avoiding it.</li>
<li> You know how to avoid embedding DOM Level 0 JavaScript events (<em>&lt;a onclick=&#8221;alert(&#8217;hello&#8217;);&#8221;</em>) in your mark-up / document structure, and appreciate this technique.</li>
<li> You know that JavaScript can make use of two different event models (<a href="http://www.quirksmode.org/js/events_order.html">event capturing and bubbling</a>), but we should only ever make use of bubbling.</li>
<li> You understand what <a href="http://en.wikipedia.org/wiki/JSON">JSON</a> is and how it&#8217;s used.</li>
<li> You know how to keep you JavaScript, CSS, document structure separate, and appreciate non obtrusive JavaScript.</li>
</ul>
<p>If any of these points seem foreign, then it may be time to learn JavaScript. With all the hype and buzz around Web 2.0 and AJAX it could be a great way to augment your career while broadening your programming language vocabulary.</p>
<p><strong>Great resources for learning more about JavaScript:</strong></p>
<p>Videos:</p>
<ul>
<li> <em>The JavaScript Programming Language</em>: <a href="http://video.yahoo.com/video/play?vid=111593">Part 1</a>, <a href="http://video.yahoo.com/video/play?vid=111594">Part 2</a>, <a href="http://video.yahoo.com/video/play?vid=111595">Part 3</a>, <a href="http://video.yahoo.com/video/play?vid=111596">Part 4</a></li>
<li> <em>An Inconvenient API: The Theory of the DOM</em>: <a href="http://video.yahoo.com/video/play?vid=111582">Part 1</a>, <a href="http://video.yahoo.com/video/play?vid=111583">Part 2</a>, <a href="http://video.yahoo.com/video/play?vid=111584">Part 3</a></li>
<li> <em>Advanced JavaScript:</em> <a href="http://video.yahoo.com/video/play?vid=111585">Part 1</a>, <a href="http://video.yahoo.com/video/play?vid=111586">Part 2</a>, <a href="http://video.yahoo.com/video/play?vid=111587">Part 3</a></li>
<li> <em>JavaScript: The Good Stuff</em>: <a href="http://video.yahoo.com/video/play?vid=630959">Link</a></li>
<li> All these videos are available on the <a href="http://developer.yahoo.com/yui/theater/">YUI Theater</a> - all the videos are great, watch them all!</li>
</ul>
<p>Books:</p>
<ul>
<li> <a href="http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/1565923928/?tag=adamkahtavaap-20&amp;creativeASIN=1565923928">JavaScript: The Definitive Guide by David Flanagan</a></li>
<li> <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742?tag=adamkahtavaap-20&amp;creativeASIN=0596517742">JavaScript: The Good Parts by Douglas Crockford</a></li>
</ul>
<p>Links:</p>
<ul>
<li> <a href="http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript">MDC: A re-introduction to JavaScript</a></li>
<li> <a href="http://javascript.crockford.com/code.html">Code Conventions for the JavaScript Programming Language</a></li>
<li> <a href="http://javascript.crockford.com/javascript.html">JavaScript: The World&#8217;s Most Misunderstood Programming Language</a></li>
<li> <a href="http://www.odetocode.com/Articles/473.aspx">What ASP.NET Developers Should Know About JavaScript</a></li>
<li> <a href="http://thinkingandmaking.com/entries/63">Best Practices: Implementing JavaScript for rich internet applications</a></li>
<li> <a href="http://icant.co.uk/articles/seven-rules-of-unobtrusive-javascript/">The seven rules of Unobtrusive JavaScript</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/01/13/how-well-do-you-know-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My first Greasemonkey Script: Goodbye ASP.NET Forum Ads</title>
		<link>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/</link>
		<comments>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 03:12:58 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,e81cbb41-be44-4c48-ac58-1b88c42bb95a.aspx</guid>
		<description><![CDATA[Greasemonkey is an add-on for Firefox. Through JavaScript it allows anyone the ability to dynamically modify a page as, or after it&#8217;s being rendered in the browser. This lets anyone trim the DOM, remove ads, and modify page in anyway they see fit (it also opens up some serious privacy concerns with XSS). Anyhow, I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Greasemonkey">Greasemonkey</a> is an add-on for Firefox. Through JavaScript it allows anyone the ability to dynamically modify a page as, or after it&#8217;s being rendered in the browser. This lets anyone trim the DOM, remove ads, and modify page in anyway they see fit (it also opens up some serious privacy concerns with <a href="http://en.wikipedia.org/wiki/Cross_site_scripting">XSS</a>). Anyhow, I spend a fair time on the <a href="http://forums.asp.net/139.aspx">ASP.NET forums</a>, but the advertisements have always made for a somewhat negative, but tolerable user experience.</p>
<p>Today I finally broke down and wrote my own Greasemonkey script - now formally known as <em>&#8220;The ASP.NET Forums Beautifier&#8221;</em> for lack of a better name.</p>
<p><strong>The Script Before and After: </strong></p>
<p><strong>Before - </strong>usually the ASP.NET Forums look like this:<br />
<img src="http://adam.kahtava.com/etcetera/greasemonkey/gm.forums.asp.net.before.small.png" alt="" /></p>
<p><strong>After</strong> - with my script running in Greasemonkey we get this:<br />
<img src="http://adam.kahtava.com/etcetera/greasemonkey/gm.forums.asp.net.after.small.png" alt="" /></p>
<p><em>note: the greasemonkey icon, and complete lack of fluff / advertisements on the second screenshot.</em></p>
<p>Creating this script was simpler than I expected. It was a matter of skimming through an article on <a href="http://www.cyberciti.biz/tips/how-to-write-greasemonkey-scripts.html">How to write Greasemonkey scripts</a>, using <a href="http://www.getfirebug.com/logging.html">Firebug&#8217;s JavaScript Console</a> and <a href="http://developer.mozilla.org/en/docs/JavaScript_Console">Firefox&#8217;s Error Console</a> to test my code (after all, Firefox is the new IDE, <a href="http://www.codinghorror.com/blog/archives/000780.html">Firefox as an IDE</a>), and an hour later, Viola! No more ads.</p>
<p>The <a href="http://yuiblog.com/">YUI blog</a> and <a href="http://adam.kahtava.com/journal/2007/09/16/javascript-is-awesome-i-want-to-work-with-douglas-crockford/">Douglas Crockford</a> in particular, have inspired my JavaScript renaissance. JavaScript is really interesting, it&#8217;s a functional, loosely typed programming language that uses <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-base inheritance</a>. Developing in JavaScript is a real treat from some of the more statically typed languages.</p>
<p>Download <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a> and <em><a href="http://userscripts.org/scripts/show/25869">&#8220;The ASP.NET Forums Beautifier&#8221;</a></em> for yourself. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/feed/</wfw:commentRss>
		</item>
		<item>
		<title>In Favor of Using Style Elements / Embedded Style Sheets / Style Blocks / Style Tags or Whatever You Want To Call Them inside the HTML / XHTML Body.</title>
		<link>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/</link>
		<comments>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 22:20:02 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[IE]]></category>

		<category><![CDATA[Opera]]></category>

		<category><![CDATA[Themes and Skins]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,fb97f8d5-0271-466f-a3f3-e09c53890ab0.aspx</guid>
		<description><![CDATA[I&#8217;ve been using Style Elements within the HTML Body tag to work around some of the design flaws presented in ASP.NET 2.0 Themes - see the second solution in this post for more details. I&#8217;ve been leary of using this method because it&#8217;s not a best practice, since it compromises the validity of the HTML [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://www.w3.org/TR/REC-CSS1#containment-in-html">Style Elements</a> within the HTML Body tag to work around some of the design flaws presented in ASP.NET 2.0 Themes - see the second solution in <a href="http://adam.kahtava.com/journal/c1575144-e460-464d-b993-259ce96135f4.aspx">this post</a> for more details. I&#8217;ve been leary of using this method because it&#8217;s not a best practice, since it compromises the validity of the HTML / XHTML document. I decided to do a little more research on this subject and made the following discoveries.</p>
<p><strong>Discoveries:</strong></p>
<ol>
<li> Some of the more complex web sites (<a href="http://amazon.com/">Amazon</a> and <a href="http://www.yahoo.com/">Yahoo!</a>) make use of Style Elements within the Body Element - see the source snippets below.</li>
<li> <a href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29">Gecko</a> (<a href="http://en.wikipedia.org/wiki/Firefox">Firefox</a>, <a href="http://en.wikipedia.org/wiki/Flock_%28web_browser%29">Flock</a>, <a href="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a>, etc&#8230;) based browsers automatically move Style Elements found within the Body Element into the Head Element and render the page as expected - see the rendered Document Object Model (DOM) image below.</li>
<li> <a href="http://en.wikipedia.org/wiki/Internet_Explorer">Internet Explorer</a> doesn&#8217;t move the Style Element into the Head Element, but renders the page as expected.</li>
<li> <a href="http://en.wikipedia.org/wiki/Opera_%28internet_suite%29">Opera</a>&#8230; well I wish I knew what Opera did, but the page renders as expected.</li>
</ol>
<p><strong>Source snippet from Amazon:</strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><br />
</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">table</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span>Â Â Â  </span><span style="color: blue;">&lt;/</span><span style="color: maroon;">td</span><span style="color: blue;">&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span>Â  </span><span style="color: blue;">&lt;/</span><span style="color: maroon;">tr</span><span style="color: blue;">&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">table</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;Â </p>
<p><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> <span style="color: red;">type</span><span style="color: blue;">=&#8221;text/css&#8221;&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">.lol-hr-center</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> { <span style="color: red;">margin</span>: <span style="color: blue;">5px</span>; <span style="color: red;">border-top-width</span>: <span style="color: blue;">1px</span>; </span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">/* and so on&#8230; */</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">}</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></strong></p>
<p><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">div</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> <span style="color: red;">id</span><span style="color: blue;">=&#8221;listoflists_data&#8221;</span> <span style="color: red;">style</span><span style="color: blue;">=&#8221;display:none&#8221;&gt; </span></span><br />
<em>Note how the Style element is located between the &lt;table&gt; and &lt;div&gt; tags.</em></p>
<p></span><br />
<strong>Source snippet from Yahoo!:</strong></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">h4</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;<br />
&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">a</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"> <span style="color: red;">id</span><span style="color: blue;">=&#8221;paweather&#8221;</span> <span style="color: red;">class</span><span style="color: blue;">=&#8221;details&#8221;</span> <span style="color: red;">href</span><span style="color: blue;">=&#8221;r/wb/*-http://weather.yahoo.com/forecast/USKS0448_f.html&#8221;&gt;&lt;</span><span style="color: maroon;">span</span> <span style="color: red;">class</span><span style="color: blue;">=&#8221;icon&#8221;&gt;</span>Weather <span style="color: blue;">&lt;</span><span style="color: maroon;">b</span><span style="color: blue;">&gt;&lt;</span><span style="color: maroon;">strong</span><span style="color: blue;">&gt;</span>51<span style="color: red;">&amp;deg;</span><span style="color: blue;">&lt;/</span><span style="color: maroon;">strong</span><span style="color: blue;">&gt;</span>F<span style="color: blue;">&lt;/</span><span style="color: maroon;">b</span><span style="color: blue;">&gt;&lt;/</span><span style="color: maroon;">span</span><span style="color: blue;">&gt;&lt;/</span><span style="color: maroon;">a</span><span style="color: blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong>&lt;</strong></span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong> <span style="color: red;">type</span><span style="color: blue;">=&#8221;text/css&#8221;&gt;</span><span style="color: maroon;">#patabs</span> <span style="color: maroon;">#weather</span> <span style="color: maroon;">.icon</span>{<span style="color: red;">background</span>:<span style="color: blue;">url(http://us.i1.yimg.com/us.yimg.com/i/us/we/31/b/26.gif)</span> <span style="color: blue;">3px</span> <span style="color: blue;">2px</span><span style="color: blue;">no-repeat</span>;}<span style="color: blue;">&lt;/</span><span style="color: maroon;">style</span><span style="color: blue;">&gt;</span></strong></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong></strong>&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">h4</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><br />
<em>Note how the Style element is located within the &lt;h4&gt; tag.</em><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"> </span><br />
<strong>A snapshot of the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model (DOM)</a> as seen through <a href="http://www.getfirebug.com/">Firebug</a>:</strong></p>
<blockquote><p><img src="http://adam.kahtava.com/journal/images/blog/StyleInBody1.png" alt="" /><br />
<em>Note the highlighted area references the Yahoo! source snippet from above.</em>Â<br />
<strong>Conclusion:</strong> Although the Style Element within the Body Element compromises the validity of a document, some of the leaders in web design and accessibility use this approach, so it may not be as big a work around or hack.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Underscore (_) rendering issues with Cascading Style Sheets (CSS) in Internet Explorer (IE), Firefox, and other browsers</title>
		<link>http://adam.kahtava.com/journal/2007/01/07/underscore-_-rendering-issues-with-cascading-style-sheets-css-in-internet-explorer-ie-firefox-and-other-browsers/</link>
		<comments>http://adam.kahtava.com/journal/2007/01/07/underscore-_-rendering-issues-with-cascading-style-sheets-css-in-internet-explorer-ie-firefox-and-other-browsers/#comments</comments>
		<pubDate>Sun, 07 Jan 2007 21:22:46 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,3ac7da1a-d857-4cdf-b81a-e62fe30d6ddd.aspx</guid>
		<description><![CDATA[The World Wide Web Consortium (W3C) Cascading Style Sheets (CSS) 2 specifications introduced the underscore (_) as a valid CSS naming character, this allows CSS selectors like class selectors and ID selectors to be named like:

 ._menu_item_1
 #_menu_item_2
 .menu_item_3
 #menu_item_4

However; rendering inconsistencies remain among most popular browsers when Styles, Classes, or IDs are preceded by [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.w3.org/">The World Wide Web Consortium (W3C)</a> <a href="http://www.w3.org/TR/REC-CSS2/">Cascading Style Sheets (CSS) 2 specifications</a> introduced the underscore (_) as a valid CSS naming character, this allows CSS selectors like <a href="http://www.w3.org/TR/REC-CSS2/selector.html#class-html">class selectors</a> and <a href="http://www.w3.org/TR/REC-CSS2/selector.html#id-selectors">ID selectors</a> to be named like:</p>
<ul>
<li> ._menu_item_1</li>
<li> #_menu_item_2</li>
<li> .menu_item_3</li>
<li> #menu_item_4</li>
</ul>
<p>However; rendering inconsistencies remain among most popular browsers when Styles, Classes, or IDs are preceded by the underscore character.</p>
<p><strong>Inconsistencies:</strong></p>
<p>CSS Classes and IDs with an underscore immediately after their respective delimiter (&#8217;.&#8217; Or &#8216;#&#8217;) are rendered by both Firefox and Opera, but <strong>NOT by Internet Explorer</strong>.<br />
<strong>This CSS example will NOT work in Internet Explorer, but WILL work in Firefox and Opera:</strong></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span> </span><strong><span style="color: maroon;">._idTest1</span>{</strong><br />
<span> </span><span style="color: red;">background-color</span>: <span style="color: blue;">red</span>;<br />
<span> </span>}<br />
<span> </span><strong><span style="color: maroon;">#_id_Test2</span>{</strong><br />
<span> </span><span style="color: red;">background-color</span>: <span style="color: blue;">red</span>;</span></p>
<p class="MsoNormal">Style entries preceded by an underscore are rendered by Internet Explorer (IE 6 &amp; 7), but <strong>NOT by Mozilla / Gecko (Firefox) or Opera</strong>.</p>
<p><strong>This CSS example will only work in Internet Explorer:</strong></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span> </span><span style="color: maroon;">*</span>{<br />
<span> </span><span style="color: red; font-weight: bold;">_color</span>: <span style="color: blue; font-weight: bold;">green</span>;<span><br />
</span>}</span></p>
<p>This is a documented quirk and bug, see <a href="http://wellstyled.com/css-underscore-hack.html">The Underscore Hack</a> and <a href="http://www.easy-designs.net/articles/ieUnderscoreBug/">IE Underscore Bug Test</a> for more information.</p>
<p><strong>The Results of our Underscored CSS in Internet Explorer:</strong><br />
<img src="http://adam.kahtava.com/journal/images/blog/UnderscoreTest1_IE.png" alt="" /></p>
<p><strong>The Results of our Underscored CSS in FireFox (rendered the same in Opera):</strong><strong></strong><br />
<img src="http://adam.kahtava.com/journal/images/blog/UnderscoreTest1_FF.png" alt="" /></p>
<p>This CSS quirk came up in an <a href="http://en.wikipedia.org/wiki/ASP.NET">ASP.NET</a> forum, where a poster was having cross browser issues with his menu controls. We discovered that <span><span style="font-family: arial; font-size: x-small;"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">xhtmlConformance</span><span style="color: #ff0000;"> mode</span><span style="color: #0000ff;">=&#8221;Legacy&#8221;</span><span style="color: #ff0000;"> </span><span style="color: #0000ff;">/&gt;</span></span></span> was defined in his web.config file which caused the ASP.NET Master Page control (ctl00) to be preceded by an underscore (_ctl00) which was preventing the CSS from being rendered in IE.</p>
<p><strong>Related links:</strong><br />
The <a href="http://www.easy-designs.net/articles/ieUnderscoreBug/">IE Underscore Bug Test</a><br />
The original forum thread: <a href="http://forums.asp.net/thread/1504767.aspx">menu control in master page does not get styles in ie 6.0</a>.<br />
ScottGu&#8217;s Blog: <a href="http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx">Gotcha: Don&#8217;t use &lt;xhtmlConformance mode=&#8221;Legacy&#8221;/&gt; with ASP.NET AJAX</a><br />
View the complete source code for my Underscore Test or try it on your favorite browser <a href="http://adamdotcom-script.googlecode.com/svn/trunk/Etcetera/the-css-underscore-test.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/01/07/underscore-_-rendering-issues-with-cascading-style-sheets-css-in-internet-explorer-ie-firefox-and-other-browsers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now supporting Opera 9 and other Web Development (CSS) Related Notes</title>
		<link>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/</link>
		<comments>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 19:00:07 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,5efaf26f-23e5-410c-83c7-8177e09326c1.aspx</guid>
		<description><![CDATA[I noticed that a couple visitors were using the Opera web browser, so I decided to check my site with this highly W3C CSS compliant browser - see the &#8220;Acid2 Test&#8221;.
To my horror, I found my CSS wasn&#8217;t working properly.
My blog in Opera (the CSS rendering issue):

I began debugging my site by starting up Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed that a couple visitors were using the <a href="http://www.opera.com/">Opera</a> web browser, so I decided to check my site with this highly <a href="http://www.w3.org/Style/CSS/">W3C CSS</a> compliant browser - see the <a href="http://en.wikipedia.org/wiki/Acid2">&#8220;Acid2 Test&#8221;</a>.</p>
<p>To my horror, I found my CSS wasn&#8217;t working properly.</p>
<p>My blog in Opera (the CSS rendering issue):<br />
<img src="http://adam.kahtava.com/journal/images/blog/adam.kahtava.com.opera.error.png" alt="" /></p>
<p>I began debugging my site by starting up <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> with the <a href="http://www.getfirebug.com/">Firebug</a> extension. Upon inspecting my <a href="http://www.w3.org/DOM/">Document Object Model (DOM)</a> and my rendered CSS I found a syntax error (a bug).</p>
<p>Using the Firebug extension for Firefox to view the DOM and related errors:<br />
<img src="http://adam.kahtava.com/journal/images/blog/adam.kahtava.firebug.error.png" alt="" /></p>
<p><strong>My error;</strong> I had erroneously entered <span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">*/</span> instead ofÂ <span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">/*</span> for my CSS comment. After making the changes everything rendered as expected in Opera.</p>
<p><strong>Conclusion;</strong> My site now works with Opera 9. As a rule of thumb, I generally do my CSS design in a more W3C CSS compliant browser like Firefox, Opera, etc&#8230; and then make the respective changes for proper display in IE. <a href="http://getfirebug.com/">Firebug</a> is amazing, the best web development tool I have seen in a long time. Firebug really makes debugging a breeze.</p>
<p>Other useful Firefox extensions:</p>
<ul>
<li> <a href="http://www.iosart.com/firefox/colorzilla/">Colorzilla</a> - Advanced Eyedropper, ColorPicker, Page Zoomer and other colorful goodies.</li>
<li> <a href="https://addons.mozilla.org/firefox/1532/">del.icio.us</a> - Keep, share and discover all your favorite things.</li>
<li> <a href="http://fasterfox.mozdev.org/">FasterFox</a> - Performance and network tweaks for Firefox.</li>
<li> <a href="https://addons.mozilla.org/firefox/1843/">FireBug</a> - Edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.</li>
<li> <a href="http://greasemonkey.mozdev.org/">Greasemonkey</a> - Customize the way webpages look and function (hide search engine advertisements, tweak Gmail).</li>
<li> <a href="https://addons.mozilla.org/firefox/39/">Mouse Gestures</a> - Allows you to execute common commands (like page forward/backward, close tab, new tab) by mouse gestures drawn over the current webpage, without reaching for the toolbar or the keyboard.</li>
</ul>
<p>Other useful Internet Explorer extensions / toolbars:</p>
<ul>
<li> <a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">Internet Explorer Developer Toolbar Beta 3</a> - Tools for quickly creating, understanding, and troubleshooting Web pages</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
