<?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>No Mod Required &#187; firefox</title>
	<atom:link href="http://www.drunkenfist.com/304/category/web/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drunkenfist.com/304</link>
	<description>Rob Larsen writes on entertainment, sports and culture.</description>
	<lastBuildDate>Wed, 08 Feb 2012 02:28:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Code I Like &#8211; Link Prefetching</title>
		<link>http://www.drunkenfist.com/304/2008/11/24/code-i-like-link-prefetching/</link>
		<comments>http://www.drunkenfist.com/304/2008/11/24/code-i-like-link-prefetching/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 21:35:45 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Code I Like]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[tips-and-tricks]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.drunkenfist.com/304/?p=5119</guid>
		<description><![CDATA[I was reading John Resig's Browser Page Load Performance post earlier today and followed up from there on the concept of Link prefetching. Currently supported by Firefox 2+, Link prefetching is a browser based mechanism for fetching "future" content. Considering I wrote (and ultimately scrapped*) similar functionality for my gallery pages, I was obviously intrigued. [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading John Resig's <a href="http://ejohn.org/blog/browser-page-load-performance/">Browser Page Load Performance</a> post earlier today and followed up from there  on the concept of Link prefetching. Currently supported by Firefox 2+, <a href="https://developer.mozilla.org/en/Link_prefetching_FAQ">Link prefetching</a> is a browser based mechanism for fetching "future" content. Considering I wrote (and ultimately scrapped*) similar functionality for my gallery pages,  I was obviously intrigued.<br />
<span id="more-5119"></span><br />
In its basic version it looks like this:</p>
<p><code>&lt;link rel=&quot;prefetch&quot; href=&quot;/images/big.jpeg&quot;&gt;</code></p>
<p>With the <code>href</code> being the target content and the <code>rel</code> attribute triggering the prefetching mechanism. Pretty simple. I've already implemented it here on my gallery pages.</p>
<p>One thing I would like to see, <a href="https://developer.mozilla.org/en/Link_prefetching_FAQ#Are_anchor_(.3ca.3e)_tags_prefetched.3f">and this is hinted at on the above linked Mozilla FAQ page</a>, is prefetching performed automatically on anchor (&lt;a&gt;) tags with <code>rel</code> attribute set appropriately. In my mind that would be any anchor with a <code>rel</code> attribute of  <code>next</code>, but the <code>prefetch</code> value would be fine as well. Personally, if that were supported I wouldn't have any (or very little) work to do to take advantage of this feature and in a general sense it would build on what people are already doing using <code>prev</code>, <code>next</code> and <code>toc</code> <code>rel</code> attributes on gallery links.</p>
<p>*it was scrapped because I hated the idea of forcing bandwidth usage on people with metered accounts. Since this is a browser based mechanism, it should be relatively painless for people in that situation to control whether or not content is prefetched. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.drunkenfist.com/304/2008/11/24/code-i-like-link-prefetching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome So Far- 1.73% Market Share</title>
		<link>http://www.drunkenfist.com/304/2008/09/16/google-chrome-so-far-173-market-share/</link>
		<comments>http://www.drunkenfist.com/304/2008/09/16/google-chrome-so-far-173-market-share/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 03:27:31 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.drunkenfist.com/304/?p=4892</guid>
		<description><![CDATA[At least with my sites. Over the two weeks it's been live I've seen 26567 visits at the sites I have analytics for and 462 of them have been with Chrome. Admittedly, the vast majority of those visits have been to this site, so it's not as broad a sampling as I would like, but [...]]]></description>
			<content:encoded><![CDATA[<p>At least with my sites. Over the two weeks it's been live I've seen 26567 visits at the sites I have analytics for and 462 of them have  been with Chrome.</p>
<p>Admittedly, the vast majority of those visits have been to this site, so it's not as broad a sampling as I would like, but it's still and interesting number after just two weeks.</p>
<p>For reference here are the DrunkenFist.com numbers for the two weeks it's been out</p>
<table width="90%" border="1" cellspacing="0" cellpadding="3">
<tr>
<th>Browser</th>
<th>Number of Visits</th>
<th>Percentage</th>
</tr>
<tr>
<td>1. 	Firefox	</td>
<td>11,279 	</td>
<td>48.76%</td>
</tr>
<tr>
<td>2. 	Internet Explorer	</td>
<td>9,358</td>
<td> 40.45% </td>
</tr>
<tr>
<td>3. 	Safari	</td>
<td>890</td>
<td> 3.85% </td>
</tr>
<tr>
<td>4. 	Opera</td>
<td> 556</td>
<td> 2.40%</td>
</tr>
<tr>
<td> 	5. 	Chrome</td>
<td> 399</td>
<td> 1.72%</td>
</tr>
</table>
<p>As you can see Chrome is nipping close at Opera's heels. Can Safari be far behind? We'll see how it all plays out. </p>
<p>In case you were wondering&#8230; <strong>YES</strong> I do love the fact that Firefox browsers are the #1 browser of choice of DrunkenFist.com visitors.</p>
<p>What are other people seeing in terms of Chrome adoption?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drunkenfist.com/304/2008/09/16/google-chrome-so-far-173-market-share/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My New GetElementsByClass() + a Safari 3.1 Oddity</title>
		<link>http://www.drunkenfist.com/304/2008/07/16/my-new-getelementsbyclass-a-safari-31-oddity/</link>
		<comments>http://www.drunkenfist.com/304/2008/07/16/my-new-getelementsbyclass-a-safari-31-oddity/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 03:39:20 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.drunkenfist.com/304/?p=4672</guid>
		<description><![CDATA[To make use of the native getElementsByClassName I rewrote my getElementsByClass function to use the method where possible. Here's the code*: function getElementsByClass(theClass,node) { var classElements = []; var i; if ( node == null ) { node = document } if (node.getElementsByClassName) { var tempCollection = node.getElementsByClassName(theClass); for (i = 0; i &#60; tempCollection.length [...]]]></description>
			<content:encoded><![CDATA[<p>To make use of the native <a href="http://www.drunkenfist.com/304/2008/07/02/say-hello-to-javascripts-native-getelementsbyclassname/">getElementsByClassName</a> I rewrote my getElementsByClass function to use the  method where possible. </p>
<p>Here's the code*:<br />
<span id="more-4672"></span></p>
<div class="code_sample">
<pre><code>function getElementsByClass(theClass,node) {
    var classElements = [];
    var i;
    if ( node == null ) {
    	node = document
    }
    if (node.getElementsByClassName) {
    	var tempCollection = node.getElementsByClassName(theClass);
        for (i = 0; i &lt; tempCollection.length ; i++) {
    		classElements.push(tempCollection[i])
    	}
    }
    else {
    	var els = node.getElementsByTagName(&quot;*&quot;);
    	var elsLen = els.length;
    	var pattern = new RegExp(&quot;(^|\\s)&quot;+theClass+&quot;(\\s|$)&quot;);
    	for (i = 0; i &lt; elsLen; i++) {
    		if ( pattern.test(els[i].className) ) {
    			classElements.push(els[i]);
    		}
    	}
    }
    return classElements;
};</code></pre>
</div>
<p>The above code works as expected in Firefox 2, 3; IE 6,7,8, Opera 9.5 and Safari 2.</p>
<p>Interestingly it doesn't work in Safari 3.1. Safari supports the native getElementsByClassName, so one would expect it to work alongside Firefox 3 and Opera 9.5.</p>
<p>It does not.</p>
<p>Here's a sample. Click "start" and everything should go from blue to black (which means the class is removed from the LIs) and the numbers should read "10 0". The 10 is the length of the collection returned by my function when the test starts. The 0 refers to the length after the test has run it's course and the class has been removed.  </p>
<p><iframe src="http://www.drunkenfist.com/web/samples/getElementsByClass/" width="80%" height="400px" ></iframe> </p>
<p>Safari 3.1 looks like this:</p>
<p><a href='http://media.drunkenfist.com/304/wp-content/uploads/2008/07/untitled-1.png'><img src="http://media.drunkenfist.com/304/wp-content/uploads/2008/07/untitled-1-300x210.png" alt="" title="untitled-1" width="300" height="210" class="alignnone size-medium wp-image-4675" /></a></p>
<p>So the count is 10, even though there are 0 instances of the class in the DOM:</p>
<p><img src="http://media.drunkenfist.com/304/wp-content/uploads/2008/07/no-class.png" alt="" title="no-class" width="400" height="249" class="alignnone size-full wp-image-4676" /></p>
<p>This is the code I'm running:</p>
<div class="code_sample">
<pre><code>function testSafari() {
    $(&quot;messages&quot;).innerHTML = getElementsByClass(&quot;sample&quot;).length;
    var samples = getElementsByClass(&quot;sample&quot;);
    for (i=0;i&lt;samples.length;i++) {
	    removeClass(samples[i],&quot;sample&quot;);
    }
    $(&quot;messages&quot;).innerHTML += &quot;    &quot;+getElementsByClass(&quot;sample&quot;).length;
}</code></pre>
</div>
<p>I've approached the problem from a few different angles (not exhaustive) and taking a quick look at the WebKit source it seems to me that Safari might be incorrectly caching the results of the getElementsByClassName call. I haven't had the time I would like to test this to see what might be happening in specific, but that's what it feels like. </p>
<p>Anyone know more about the guts of WebKit? Am I onto something? Or is my nonexistent Apple dev knowledge showing? <img src='http://www.drunkenfist.com/304/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>For the webdev crowd, anyone else seen anything like this? Is it something stupid that I'm doing that I'm just not seeing (and therefore not actually a bug)? </p>
<p>That's always my first assumption, but the native method works in both Opera and Firefox so I'm more confident than normal that the issue isn't my fault.</p>
<p>*I used to have support for a specific tag. When rewriting it I thought "I never use the tag argument, I'm dropping it." Of course, as soon as I did that one of my co-workers used the tag argument in a script he was writing for a site we were working on. I'll be adding the tag option back in.</p>
<p>Also, this version relies on support for Array.push(). Our little library adds it in with this:</p>
<div class="code_sample">
<pre><code>
if(!Array.prototype.push) {
    function array_push() {
        for(var i=0;i&lt;arguments.length;i++){
	        this[this.length]=arguments[i]
        };
        return this.length;
    }
    Array.prototype.push = array_push;
}
</code></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.drunkenfist.com/304/2008/07/16/my-new-getelementsbyclass-a-safari-31-oddity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Won&#039;t IE6 Die? AKA My View of Current Browser Usage</title>
		<link>http://www.drunkenfist.com/304/2008/06/26/why-wont-ie6-die-aka-my-view-of-current-browser-usage/</link>
		<comments>http://www.drunkenfist.com/304/2008/06/26/why-wont-ie6-die-aka-my-view-of-current-browser-usage/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 20:12:34 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.drunkenfist.com/304/?p=4638</guid>
		<description><![CDATA[The following table outlines current browser usage across several sites for which I have analytics access. This represents the trailing 30 days, ending yesterday, 2008-06-25. While not a full cross section of the Internet there's a reasonable spread between the sites in terms of age and technology experience, so this sample should be reasonably interesting [...]]]></description>
			<content:encoded><![CDATA[<p>The following table outlines current browser usage across several sites for which I have analytics access. This represents the trailing 30 days, ending yesterday, 2008-06-25. While not a full cross section of the Internet there's a reasonable spread between the sites in terms of age and technology experience, so this sample should be reasonably interesting to those of you who care about such things. It's interesting enough for me to post about <img src='http://www.drunkenfist.com/304/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<table style="width::450px" cellpadding="4" border=1" >
<tr>
<th>&nbsp;</th>
<th>IE 6</th>
<th>IE 7</th>
<th>Firefox (all ) </th>
<th>Safari (all ) </th>
<th>Other</th>
<th>Total Visitors</th>
</tr>
<tr>
<th>Totals</th>
<td>15133</td>
<td>24739</td>
<td>20165</td>
<td>3102</td>
<td>2649</td>
<td>65788</td>
</tr>
<tr>
<th>Percentages</th>
<td>23%</td>
<td>38%</td>
<td>31%</td>
<td>5%</td>
<td>4%</td>
<td></td>
</tr>
</table>
<p>As you can see, while it's now third, Internet Explorer 6 is still hanging on with unfortunate tenacity. Which means we still have great pain to deal with when trying to develop cross-browser web sites in this rich, interactive era.</p>
<p>I also means there's demand for people like me who know how to handle the beast, so I guess I should look to that as a silver lining&#8230;</p>
<p>Still, die IE6 die.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drunkenfist.com/304/2008/06/26/why-wont-ie6-die-aka-my-view-of-current-browser-usage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SaveTheDevelopers.org AKA Save Me From the Pain of IE6</title>
		<link>http://www.drunkenfist.com/304/2008/03/25/savethedevelopersorg-aka-save-me-from-the-pain-of-ie6/</link>
		<comments>http://www.drunkenfist.com/304/2008/03/25/savethedevelopersorg-aka-save-me-from-the-pain-of-ie6/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 17:50:50 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.drunkenfist.com/304/2008/03/25/savethedevelopersorg-aka-save-me-from-the-pain-of-ie6/</guid>
		<description><![CDATA[SaveTheDevelopers.org :: Making The Web A Better Place Say no to IE 6! Our current campaign focuses on assisting users in upgrading their Internet Explorer 6 web browser. This campaign will result in former IE 6 users having a more enjoyable experience on the web while (hopefully) creating a less stressful and complicated environment for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.savethedevelopers.org/index.php">SaveTheDevelopers.org :: Making The Web A Better Place</a></p>
<blockquote><p>Say no to IE 6! Our current campaign focuses on assisting users in upgrading their Internet Explorer 6 web browser. This campaign will result in former IE 6 users having a more enjoyable experience on the web while (hopefully) creating a less stressful and complicated environment for web developers by hastening the retirement of an outdated browser.</p></blockquote>
<p><span id="more-4443"></span><br />
<em>Say it loud!</em></p>
<p>I've been writing <a href="http://www.drunkenfist.com/304/category/web/ie7/">about the slow adoption rate for a while now</a> and it's still a source of frustration. Over the past month this site has seen 9,078 visitors using IE6.* Which is precisely 9,078 too many. </p>
<p>Honestly? In some sense it's a positive number, as the overall percentage of users on IE6 is shrinking. It's still not shrinking fast enough, however, so sentiments like the above speak to me like a call from up on high.</p>
<p>Sure, my site (and really all of my sites) looks fine in IE6, but it's still a pain to have to support it, even if it's just the extra bytes I have to serve other browsers (in the form of conditional comments.) And really, being the stickler for good experiences that I am, I still have to test and bug-fix for IE6 whenever I add new features or styles. Supporting two version of IE is awful, especially when one is so much better than the other.</p>
<p>I won't even get started on the issues at work. </p>
<p><em>Okay, maybe a little</em>. </p>
<p>While I've got a hip, upgrading crowd that visits this site, the people we build for at work are generally running old, locked down machines running whatever browser their IT department wants to support. Care to guess what browser that might be? </p>
<p>Yeah. </p>
<p>IE6. </p>
<p><strong>*sob* </strong></p>
<p>*compared to 32,372 using Firefox and 15,385 using Internet Explorer 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drunkenfist.com/304/2008/03/25/savethedevelopersorg-aka-save-me-from-the-pain-of-ie6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

