<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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>Comments on: My take on Browser Sniffing vs Object Detection</title>
	<atom:link href="http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/</link>
	<description></description>
	<lastBuildDate>Wed, 10 Feb 2010 20:41:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Browser detection is still useful &#124; Karmagination</title>
		<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/comment-page-1/#comment-65431</link>
		<dc:creator>Browser detection is still useful &#124; Karmagination</dc:creator>
		<pubDate>Sat, 01 Aug 2009 00:21:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davglass.com/?p=138#comment-65431</guid>
		<description>[...] some take on object detection vs user agent sniffing which I am not going to discussing in this [...]</description>
		<content:encoded><![CDATA[<p>[...] some take on object detection vs user agent sniffing which I am not going to discussing in this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dav Glass</title>
		<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/comment-page-1/#comment-54379</link>
		<dc:creator>Dav Glass</dc:creator>
		<pubDate>Sat, 31 Jan 2009 23:25:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davglass.com/?p=138#comment-54379</guid>
		<description>Hey --

I added you to the Blogroll ;)

My take on this is why should I add &quot;cruft&quot; code to check something that I know only affects one browser? As for IE fixing the issue, that is great, but the YUI browser sniffing includes a major version, so I can check against that and update it when needed.

I guess I should have mentioned the IE 6 select box bleeding issue as another problem that can&#039;t be solved with feature/object detection. Is there any way to test that a select will bleed through an element? Nope. There are other GUI based issues that people don&#039;t run into until they are dealing with widgets/gui apps. Which is where browser sniffing is more of a factor than in utilities..</description>
		<content:encoded><![CDATA[<p>Hey &#8211;</p>
<p>I added you to the Blogroll <img src='http://blog.davglass.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>My take on this is why should I add &#8220;cruft&#8221; code to check something that I know only affects one browser? As for IE fixing the issue, that is great, but the YUI browser sniffing includes a major version, so I can check against that and update it when needed.</p>
<p>I guess I should have mentioned the IE 6 select box bleeding issue as another problem that can&#8217;t be solved with feature/object detection. Is there any way to test that a select will bleed through an element? Nope. There are other GUI based issues that people don&#8217;t run into until they are dealing with widgets/gui apps. Which is where browser sniffing is more of a factor than in utilities..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dav Glass</title>
		<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/comment-page-1/#comment-54378</link>
		<dc:creator>Dav Glass</dc:creator>
		<pubDate>Sat, 31 Jan 2009 23:18:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davglass.com/?p=138#comment-54378</guid>
		<description>I would assume it&#039;s IE7 since that is the first one in the string ;)

Yes there are all kinds of them in the wild, but there is a limit to what you can and can&#039;t support in situations where there is no way to use feature/object detection. So there is only one thing left to do, sniff.</description>
		<content:encoded><![CDATA[<p>I would assume it&#8217;s IE7 since that is the first one in the string <img src='http://blog.davglass.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Yes there are all kinds of them in the wild, but there is a limit to what you can and can&#8217;t support in situations where there is no way to use feature/object detection. So there is only one thing left to do, sniff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicholas C. Zakas</title>
		<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/comment-page-1/#comment-54371</link>
		<dc:creator>Nicholas C. Zakas</dc:creator>
		<pubDate>Sat, 31 Jan 2009 21:25:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davglass.com/?p=138#comment-54371</guid>
		<description>Hey Dav,

First off, glad your site is back up. Wanted to reply but couldn&#039;t...drove me nuts. :)

To answer your question of if my solution is the same as browser sniffing, the answer is no. I, of all people, know the arguments both for and against each type of sniffing. My concern with getBoundingClientRect was twofold: 1) IE might fix its implementation in a future version, which would then require me to update the script when I know what that version is, 2) one of the other browsers might change their implementation to match IE&#039;s. My ridiculously hacky, dirty solution that you cite protects against both of those circumstances. 

My main concern with writing code is how long it can continue to work as expected without any updates. A solution that is tied to a specific browser implementation is inherently fragile; a solution that uses the implementations as a guide to determine the best course of action without assumptions is better. That&#039;s how I ended up with this solution (though, in typical Nicholas fashion, my original description was a bit too terse to really make that clear).

Btw, what&#039;s a guy gotta do to get a blogroll? Would an autographed book do the trick? :)</description>
		<content:encoded><![CDATA[<p>Hey Dav,</p>
<p>First off, glad your site is back up. Wanted to reply but couldn&#8217;t&#8230;drove me nuts. <img src='http://blog.davglass.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To answer your question of if my solution is the same as browser sniffing, the answer is no. I, of all people, know the arguments both for and against each type of sniffing. My concern with getBoundingClientRect was twofold: 1) IE might fix its implementation in a future version, which would then require me to update the script when I know what that version is, 2) one of the other browsers might change their implementation to match IE&#8217;s. My ridiculously hacky, dirty solution that you cite protects against both of those circumstances. </p>
<p>My main concern with writing code is how long it can continue to work as expected without any updates. A solution that is tied to a specific browser implementation is inherently fragile; a solution that uses the implementations as a guide to determine the best course of action without assumptions is better. That&#8217;s how I ended up with this solution (though, in typical Nicholas fashion, my original description was a bit too terse to really make that clear).</p>
<p>Btw, what&#8217;s a guy gotta do to get a blogroll? Would an autographed book do the trick? <img src='http://blog.davglass.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shawn Medero</title>
		<link>http://blog.davglass.com/2009/01/browser-sniffing-vs-object-detection/comment-page-1/#comment-54278</link>
		<dc:creator>Shawn Medero</dc:creator>
		<pubDate>Fri, 30 Jan 2009 09:16:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davglass.com/?p=138#comment-54278</guid>
		<description>Pro users who tweak their user-agent strings seem should certainly assume a &quot;proceed at your own risk&quot; mindset. Normally, I&#039;m like you... I try to find the middle ground and use whatever tools are in my toolbox where appropriate.

How about your take on users who have had their browser&#039;s user-agent string modified unknowingly? For instance, on the Windows operating system it is quite easy for software to modify the user-agent string (via the registry) and insert anything from innocent vendor identifiers to common render engine strings. Here&#039;s a user-agent string straight from a recent web server log:

&lt;code&gt;Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Sky Broadband; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1))&lt;/code&gt;

There are all sorts of improbable combinations like this in the wild... do you assume this is IE7 or IE6? Without doing object detection, I&#039;m not sure you&#039;d get a definitive answer. (I&#039;d like to trust that what&#039;s happening is a series of strings being appended. Thus the MSIE 6.0;... bit is cruft injected by a 3rd party. Relying on that type assumption doesn&#039;t seem like a great idea.)</description>
		<content:encoded><![CDATA[<p>Pro users who tweak their user-agent strings seem should certainly assume a &#8220;proceed at your own risk&#8221; mindset. Normally, I&#8217;m like you&#8230; I try to find the middle ground and use whatever tools are in my toolbox where appropriate.</p>
<p>How about your take on users who have had their browser&#8217;s user-agent string modified unknowingly? For instance, on the Windows operating system it is quite easy for software to modify the user-agent string (via the registry) and insert anything from innocent vendor identifiers to common render engine strings. Here&#8217;s a user-agent string straight from a recent web server log:</p>
<p><code>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Sky Broadband; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1))</code></p>
<p>There are all sorts of improbable combinations like this in the wild&#8230; do you assume this is IE7 or IE6? Without doing object detection, I&#8217;m not sure you&#8217;d get a definitive answer. (I&#8217;d like to trust that what&#8217;s happening is a series of strings being appended. Thus the MSIE 6.0;&#8230; bit is cruft injected by a 3rd party. Relying on that type assumption doesn&#8217;t seem like a great idea.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
