Rob Larsen

YSlow 0.9.3 Released

One change, excluding beacons from the score, will boost everyone's grade a little bit. Everyone that uses some sort of 1×1px image based analytics package, that is. Me? My home page gained 4 points (up to an 82 :) )*

The other important update, to me at least, means that I can fill out the missing companies from the YSlow survey I did a couple of weeks back. There were a few sites that simply wouldn't load the score. That bug appears to be fixed, so the handful of sites that escaped my earlier scrutiny will now go under the lens.

YSlow 0.9.3 Release with Firefox 3 Support (Yahoo! Developer Network blog)

*I also started serving gzipped pages this week, which should have helped the score a little bit. Actually, cached and gzipped, which, scores aside, should speed things up considerably. With this system in place, there's less work done on the server for most requests since all the tough stuff is done once and saved in the cached version and there's significantly less to download because of the compression- my home page saves nearly 10kb, from ~13kb down to 4.6kb. The total page weight of my home page is now down to 52kb.

Faster Rob! Faster!

I just realized- JavaScript is my Perl

Twice this morning I did massive, repetitive, string manipulations with JavaScript.

One took a list of files, turned it into an array and then looped through creating .htaccess entries.

The other took an HTML table output by Excel and turned it into a Definition List. I then used FireBug to copy the innerHTML of the body and pasted it into a new document, ready to be manipulated in the application I'm building (with JavaScript of course :) ) If you're curious, here's the code for that one:

<script type="text/javascript">
window.onload = function() {
    var trs = document.getElementsByTagName("TR");
    var newString ="<dl>";

    for (i=0;i<trs.length;i++){
        var tds=trs[i].getElementsByTagName("TD");
        newString +="<dt id='"+tds[1].innerHTML+"'>"+tds[4].innerHTML+"</dt>";
        newString +="<dd>"+tds[5].innerHTML+"</dd>";
    }
    newString +="</dl>"
    document.body.innerHTML=newString;
    }
</script>

Anyway, I've done this sort of thing before and I realized that I'm using JavaScript for the sort of administrative scripting that other people would use Perl or Python for.

No, there's nothing more to this post than that.

:)

I just wanted to point it out since it struck me as interesting.

Does anyone else out there use JS for this sort of thing?

Or am I a complete weirdo?

Setting Far Future Expires Headers For Images In Amazon S3

Summary:

Amazon S3 is a great option for (among other things) image hosting, YSlow is a great little tool for uncovering performance related issues with a site and using Bucket Explorer allows a person to easily upload files to the S3 service while setting custom headers. Using the tool to set far future expires headers facilitates caching which improves site performance.
(more…)

Books 2007 #11 Google Analytics

Google Analytics: an excellent introduction/reference for the ubiquitous Google Analytics web site statistics package. I learned a ton and will refer to the book for a long time to come as I continue to tinker with both my own tracking and the lower tier statistics package we'll be offering clients at work. Highly recommended for web professionals of all stripes.

Excellent new performance tool- "YSlow for Firebug"

big ups to the folks at Yahoo! for YSlow for Firebug, a Firefox/firebug add-on that provides a wealth of great information about enhancing site performance.

Here's the sample output from this site's home page*:

yslow.gif

I've increased my score from 62-82 just today. I enabled expire headers for my images with this bit of htaccess magic:

ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A604800
ExpiresByType text/css A604800
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/html A300

and turned off etags with this bit:

FileETag None
Header unset ETag

I'm looking into gzip compression and using Amazon S3 to get me over the 90+ level :)

I love messing around with this place.

*the blog totally sucks scoring 51. I've got a million little things running here, so that's not a surprise. Until my blog goes from 10-15% of my traffic to something more like 50% I'm not going to worry about it.