{"id":584,"date":"2007-09-26T20:20:57","date_gmt":"2007-09-26T11:20:57","guid":{"rendered":"https:\/\/regex.info\/blog\/2007-09-26\/584"},"modified":"2007-09-26T20:20:57","modified_gmt":"2007-09-26T11:20:57","slug":"high-performance-web-sites","status":"publish","type":"post","link":"https:\/\/regex.info\/blog\/2007-09-26\/584","title":{"rendered":"High Performance Web Sites"},"content":{"rendered":"\n\n<div class='img_right'><a href=\"http:\/\/www.oreilly.com\/catalog\/9780596529307\/?CMP=ILC-Home3&amp;ATT=9780596529307\"><img loading=\"lazy\" decoding=\"async\" src=\"\/i\/hpws.gif\" width=\"270\" height=\"354\"\nborder=\"0\"\nid=\"ihpws\"\/><\/a><\/div>\n\n<p>A book written by a friend of mine at Yahoo!, for which <span class='nobr'>I did<\/span> <span class='nobr'>a\ntechnical<\/span> review last summer, was published earlier this month. <a\nhref=\"http:\/\/www.oreilly.com\/catalog\/9780596529307\/?CMP=ILC-Home3&amp;ATT=9780596529307\">High\nPerformance Web Sites<\/a> by <a href=\"http:\/\/stevesouders.com\/\">Steve\nSouders<\/a> is just crammed full of real-world, practical information on\nhow to present <span class='nobr'>a web<\/span> site so that it loads faster for the user.<\/p>\n\n<p>The main thrust of the book are 15 rules for better server&harr;browser\nperformance. Although I've been doing web-related engineering since 1994,\nmany of the rules were new to me.<\/p>\n\n<p>Some of the rules are completely common-sense, such as to include an\nexpires field in the response header where you can, such as with images.<\/p>\n\n<p>The benefit of some other rules, though, is less clear until you get the\nexplanation in the prose of the book. For example, if you refer to external\nstyle sheets, they should be referenced from near the top of the page, but\nexternal JavaScript should generally be referenced from the end of the\npage. This ordering can make a <i>huge<\/i> difference in how fast <span class='nobr'>a page<\/span>\nappears to load. Why? <span class='nobr'>See Rules<\/span> 5 and 6 of his book.<\/p>\n\n<p>The book ends with a long chapter that looks in depth at the front page\nof <span class='nobr'>a bunch<\/span> of popular web sites: Amazon, AOL, CNN, eBay, Google, MSN,\nMySpace, Wikipedia, Yahoo!, and YouTube. (Oddly, the front page of my blog\nfailed to make the cut.) You might be surprised at how bad some of the pages\nare.<\/p>\n\n<p>I received a copy of the book today (signed by the author, no less\n&mdash; thanks Steve!) and am excited because it seems to cover something\nthat wasn't covered much in the manuscript that <span class='nobr'>I reviewed<\/span>: <span class='nobr'>a plugin<\/span> for\nFirefox's <a href=\"http:\/\/www.getfirebug.com\/\">Firebug<\/a>, Joe Hewitt's\nmost excellent page debugger and inspector. The plugin, <a\nhref=\"http:\/\/developer.yahoo.com\/yslow\/\">YSlow<\/a> (&#8220;Why Slow?&#8221;), analyzes\n<span class='nobr'>a page<\/span> with the book's rules in mind, generating <span class='nobr'>a report<\/span> indicating areas\nfor improvement.<\/p>\n\n<p>Steve's title at Yahoo is <b>Chief Performance Yahoo!<\/b>, <span class='nobr'>a position<\/span>\nthat <span class='nobr'>I think<\/span> it's fair for me to say <span class='nobr'>I informally<\/span> created and held in the\nearly days of Yahoo. Starting in 1997, <span class='nobr'>I built<\/span> &#8220;Jeffrey's Page\nChecker&#8221; in my spare time, an internal engineering tool which checked\n<span class='nobr'>a web<\/span> page for correctness, and reported various metrics about its fluff\n(wasted whitespace, image overhead, etc.). <span class='nobr'>It's decidedly<\/span> a &#8220;Web\n1.0&#8221; tool, old and clunky, but <span class='nobr'>I know<\/span> that it's still at Yahoo\nbecause just the other day, <a href=\"http:\/\/jeremy.zawodny.com\/blog\/\"><span class='nobr'>a\nfriend<\/span><\/a> sent me <span class='nobr'>a screenshot<\/span> of it still alive. <span class='nobr'>A note in<\/span> an upper\ncorner read &#8220;<i>The what's new page was last updated 7 years, 0\nmonths ago.<\/i>&#8221; Ah, the nostalgia.<\/p>\n\n<p>Although it is still <i>at<\/i> Yahoo, <span class='nobr'>I doubt<\/span> that it's <i>in use<\/i> at\nYahoo. Nevertheless, current Yahoo! Employees can find it at <a\nhref=\"http:\/\/checker.yahoo.com\">http:\/\/checker.yahoo.com<\/a>.<\/p>\n\n<p>Sadly, way back then, the position was informal, so it didn't come with\nthe buckets of cash, options, and accolades that I'm sure Steve is showered\nwith on <span class='nobr'>a daily<\/span> basis. <img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-includes\/images\/smilies\/icon_biggrin.gif\" width=\"15\" height=\"15\"\nid=\"ibiggrin\"\nstyle=\"padding:0; margin:0; border:none\"\/>\n\n<span class='nobr'>I can't<\/span> speak to the first two, but he certainly deserves all the accolades\nhe gets, as the book represents <span class='nobr'>a lot<\/span> of research, tool-building, and\npresentation that any web-related engineer can value greatly from. Highly\nRecommended.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>A book written by a friend of mine at Yahoo!, for which I did a technical review last summer, was published earlier this month. High Performance Web Sites by Steve Souders is just crammed full of real-world, practical information on how to present a web site so that it loads faster for the user.<\/p> <p>The main thrust of the book are 15 rules for better server&harr;browser performance. Although I've been doing web-related engineering since 1994, many of the rules were new to me.<\/p> <p>Some of the rules are completely common-sense, such as to include an expires field in the response [...]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/posts\/584"}],"collection":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/comments?post=584"}],"version-history":[{"count":0,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/posts\/584\/revisions"}],"wp:attachment":[{"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/media?parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/categories?post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/regex.info\/blog\/wp-json\/wp\/v2\/tags?post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}