Archives

Tethering is exhilarating

February 23, 2010 10:25 am | 40 Comments

I love my iPhone. That sentiment doubled the day I followed Nat Torkington’s pointer to Ten Second iPhone Tethering. Later that month I flew to Boston and basked in the freedom of having an Internet connection at the airport and hotel without paying wifi fees. Then it all came crashing down. iPhone 3.1 came out. […]

new Browserscope security tests

February 19, 2010 10:25 am | 3 Comments

Browserscope is an open source project based on my earlier UA Profiler project. The goal is to help make browsers faster, safer, and more consistent. This is accomplished by having categories of tests that measure how browsers behave in different areas. Browserscope currently has these test categories: Network, Acid3, Selectors API, Rich Text, and Security. […]

Performance of 3rd Party Content

February 17, 2010 5:17 pm | 55 Comments

Last month Jesse Robbins and I co-hosted the Velocity Summit. For the last three years we’ve gathered 30-40 industry gurus in the area of web performance and operations to help identify important topics to highlight at Velocity. One session at this year’s Velocity Summit was called “Performance for the Masses.” It was led by Pat […]

Browser Performance Wishlist

February 15, 2010 4:25 pm | 28 Comments

What are the most important changes browsers could make to improve performance? This document is my answer to that question. This is mainly for browser developers, although web developers will want to track the adoption of these improvements. download scripts without blocking SCRIPT attributes resource packages border-radius cache redirects link prefetch Web Timing spec remote […]

5e speculative background images

February 12, 2010 6:09 pm | 13 Comments

This is the fifth of five quick posts about some browser quirks that have come up in the last few weeks. Chrome and Safari start downloading background images before all styles are available. If a background image style gets overwritten this may cause wasteful downloads. Background images are used everywhere: buttons, background wallpaper, rounded corners, […]

5d dynamic stylesheets

February 12, 2010 1:13 am | 7 Comments

This is the fourth of five quick posts about some browser quirks that have come up in the last few weeks. You can avoid blocking rendering in IE if you load stylesheets using DHTML and setTimeout. A few weeks ago I had a meeting with a company that makes a popular widget. One technique they […]

5c media=print stylesheets

February 11, 2010 5:27 pm | 2 Comments

This is the third of five quick posts about some browser quirks that have come up in the last few weeks. Stylesheets set with media=”print” still block rendering in Internet Explorer. A few weeks ago a friend at a top web company pinged me about a possible bug in Page Speed and YSlow. Both tools […]

5b document.write scripts block in Firefox

February 10, 2010 5:58 pm | 9 Comments

This is the second of five quick posts about some browser quirks that have come up in the last few weeks. Scripts loaded using document.write block other downloads in Firefox. Unfortunately, document.write was invented. That problem was made a bzillion times worse when ads decided to use document.write to insert scripts into the content publisher’s […]

5a Missing schema double download

February 10, 2010 5:12 pm | 15 Comments

This is the first of five quick posts about some browser quirks that have come up in the last few weeks. Internet Explorer 7 & 8 will download stylesheets twice if the http(s) protocol is missing. If you have an HTTPS page that loads resources with “http://” in the URL, IE halts the download and […]

Browser script loading roundup

February 7, 2010 12:12 am | 8 Comments

How are browsers doing when it comes to parallel script loading? Back in the days of IE7 and Firefox 2.0, no browser loaded scripts in parallel with other resources. Instead, these older browsers would block all subsequent resource requests until the script was received, parsed, and executed. Here’s how the HTTP requests look when this […]

Page Speed 1.6 Beta – new rules, native library

February 1, 2010 9:48 pm | 8 Comments

Page Speed 1.6 Beta was released today. There are a few big changes, but the most important fix is compatibility with Firefox 3.6. If you’re running the latest version of Firefox visit the download page to get Page Speed 1.6. Phew! I wanted to highlight some of the new features mentioned in the 1.6 release […]

Zen and the Art of Web Performance

January 24, 2010 10:51 pm | 4 Comments

The Zen Wall We moved into a teardown 2BR/1BA house in 1993. After two years of infrastructure repairs (heating, plumbing, electrical, doors, windows) we started work on the yard. One of the jobs that I enjoyed most was building a dry stone retaining wall in the front yard. Here are the before and after pictures: […]

jQuery 1.4 performance

January 15, 2010 11:32 am | 5 Comments

JQuery 1.4 was released yesterday. I lifted the text from the release announcement, removed stop words, converted to lowercase, and found the ten most used words: jquery (71) function (27) performance (23) object (20) events (19) element (15) ajax (15) dom (13) json (12) request (10) That’s right, “performance” comes in third ahead of “object”, […]

Stuck inside Classic Rock

January 10, 2010 5:42 pm | 18 Comments

Help! I’m trapped inside Classic Rock and can’t get out! I grew up in the 60s and 70s listening to what is now called “classic rock”. My first album was Creedence Clearwater Revival’s Cosmo’s Factory. Ramble Tamble is still one of my favorite rock songs. I bought that album when I was 10 years old. […]

Crockford, webhosting, online dating, JSON, alert

December 10, 2009 11:14 am | 23 Comments

This is a fun story that has a security and performance point to it. Earlier today, Dion Almaer tweeted: Wow, Doug added an alert() to http://www.json.org/json2.js which just alerted a LOT of people on the Internet. Proving a point on hotlinks? I was talking to Doug about his keynote at Add-on-Con tomorrow, and asked him […]

Speed Tracer – visibility into the browser

December 10, 2009 7:46 am | 9 Comments

Is it just me, or does anyone else think Google’s on fire lately, lighting up the world of web performance? Quick review of news from the past two weeks: timeline and heap profiler added to Chrome Dev Tools Google Analytics publishes async script loading pattern latency and Page Speed recommendations added to Webmaster Tools deep […]

(down)Loading JavaScript as strings

December 7, 2009 10:58 am | 13 Comments

The Gmail mobile team and Charles Jolley from SproutCore have recently published some interesting techniques for loading JavaScript in a deferred manner. Anyone building performant web apps is familiar with the pain inflicted when loading JavaScript. These new techniques are great patterns. Let me expand on how they work and the context for using them. […]

How browsers work

December 4, 2009 1:11 pm | 2 Comments

My initial work on the Web was on the backend – C++, Java, databases, Apache, etc. In 2005, I started focusing on web performance. To get a better idea of what made them slow, I surfed numerous web sites with a packet sniffer open. That’s when I discovered that a bulk of the time spent […]

Google Analytics goes async

December 1, 2009 4:36 pm | 55 Comments

Today’s announcement that Google Analytics Launches Asynchronous Tracking is music to my ears. Not only does it make web sites faster, switching over to this async pattern improves uptime and increases the amount of analytics data gathered. I’ll touch on each of these three benefits, and wrap-up with an overview of the new code snippet. […]

Chrome dev tools

November 30, 2009 5:23 pm | 2 Comments

I just finished reading the latest post on the Chromium Blog: An Update for Google Chrome’s Developer Tools. Dynatrace’s Ajax Edition was impressive – just take a look at what John Resig had to say. I’m also impressed by what’s been added to WebKit’s Web Inspector and Chrome’s dev tools. You should definitely take them […]