PageSourceSearch

https://andydavies.me/books/

html andydavies.me collected 2026-10-02 02:14:45 UTC 10,042 bytes, 259 lines download raw bytes

1
2<!DOCTYPE html>
3<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
4<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
5<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
6<head>
7  <meta charset="utf-8">
8  
9  <title>Books</title>
10  <meta name="author" content="Andy Davies">
11
12  
13  <meta name="description" content="Books A Pocket Guide to Web Performance As Five Simple Steps has closed, I'm making the first edition available for free You can also find many of the other Five Simple Steps authors and their books &hellip;">
14  
15
16  <!-- http://t.co/dKP3o1e -->
17  <meta name="HandheldFriendly" content="True">
18  <meta name="MobileOptimized" content="320">
19  <meta name="viewport" content="width=device-width, initial-scale=1">
20
21  
22  <link rel="canonical" href="https://andydavies.me/books/">
23  <link href="http://feeds.feedburner.com/andydavies" rel="alternate" title="Andy Davies" type="application/atom+xml">
24
25  <meta name="page.card" content="" />
26  
27
28  <link href="/favicon.png" rel="icon">
29  <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
30  
30<script src="/javascripts/modernizr-2.0.js"></script>
30
31  
31<script src="/javascripts/libs/jquery.min.js"></script>
31
32  
32<script src="/javascripts/octopress.js" type="text/javascript"></script>
32
33  
33<script src="/javascripts/boomerang-1.0.0.min.js" async></script>
33
34
35  
35<script>
36    LUX=(function(){var a=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMarks)?LUX.gaMarks:[]);var d=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMeasures)?LUX.gaMeasures:[]);var j="LUX_start";var k=window.performance;var l=("undefined"!==typeof(LUX)&&LUX.ns?LUX.ns:(Date.now?Date.now():+(new Date())));if(k&&k.timing&&k.timing.navigationStart){l=k.timing.navigationStart}function f(){if(k&&k.now){return k.now()}var o=Date.now?Date.now():+(new Date());return o-l}function b(n){if(k){if(k.mark){return k.mark(n)}else{if(k.webkitMark){return k.webkitMark(n)}}}a.push({name:n,entryType:"mark",startTime:f(),duration:0});return}function m(p,t,n){if("undefined"===typeof(t)&&h(j)){t=j}if(k){if(k.measure){if(t){if(n){return k.measure(p,t,n)}else{return k.measure(p,t)}}else{return k.measure(p)}}else{if(k.webkitMeasure){return k.webkitMeasure(p,t,n)}}}var r=0,o=f();if(t){var s=h(t);if(s){r=s.startTime}else{if(k&&k.timing&&k.timing[t]){r=k.timing[t]-k.timing.navigationStart}else{return}}}if(n){var q=h(n);if(q){o=q.startTime}else{if(k&&k.timing&&k.timing[n]){o=k.timing[n]-k.timing.navigationStart}else{return}}}d.push({name:p,entryType:"measure",startTime:r,duration:(o-r)});return}function h(n){return c(n,g())}function c(p,o){for(i=o.length-1;i>=0;i--){var n=o[i];if(p===n.name){return n}}return undefined}function g(){if(k){if(k.getEntriesByType){return k.getEntriesByType("mark")}else{if(k.webkitGetEntriesByType){return k.webkitGetEntriesByType("mark")}}}return a}return{mark:b,measure:m,gaMarks:a,gaMeasures:d}})();LUX.ns=(Date.now?Date.now():+(new Date()));LUX.ac=[];LUX.cmd=function(a){LUX.ac.push(a)};LUX.init=function(){LUX.cmd(["init"])};LUX.send=function(){LUX.cmd(["send"])};LUX.addData=function(a,b){LUX.cmd(["addData",a,b])};LUX_ae=[];window.addEventListener("error",function(a){LUX_ae.push(a)});LUX_al=[];if("function"===typeof(PerformanceObserver)&&"function"===typeof(PerformanceLongTaskTiming)){var LongTaskObserver=new PerformanceObserver(function(c){var b=c.getEntries();for(var a=0;a<b.length;a++){var d=b[a];LUX_al.push(d)}});try{LongTaskObserver.observe({type:["longtask"]})}catch(e){}};
37  </script>
37
38  
38<script src="https://cdn.speedcurve.com/js/lux.js?id=80008" async crossorigin="anonymous"></script>
38
39  
39<script>
40    var refererOrigin = 'Unknown';
41
42    if(document.referrer.length > 0 && typeof window.URL === 'function') {
43      refererOrigin = new URL(document.referrer).origin
44    }
45
46    LUX.addData('refererOrigin', refererOrigin)
47  </script>
47
48  
49    
50  
51  
52    
53  
53<script>
vendor: 353 bytes, lines 53-59
53
54    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
55    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
56    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
57    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
58    
59    ga('create', '
59UA-1591501-2
vendor: 14 bytes, lines 59-60
59', 'auto');
60  
60</script>
60
61
62
63</head>
64
65<body   >
66  <header role="banner"><hgroup>
67  <h1><a href="/">Andy Davies</a></h1>
68  
69    <h2>Web Performance Consultant</h2>
70  
71</hgroup>
72
73</header>
74  <nav role="navigation"><ul class="subscription" data-subscription="rss">
75  <li><a href="http://feeds.feedburner.com/andydavies" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
76  
77</ul>
78  
79<form action="https://google.com/search" method="get">
80  <fieldset role="search">
81    <input type="hidden" name="q" value="site:andydavies.me" />
82    <input class="search" type="text" name="q" results="0" placeholder="Search"/>
83  </fieldset>
84</form>
85  
86<ul class="main-navigation">
87  <li><a href="/">Blog</a></li>
88  <li><a href="/blog/archives/">Archives</a></li>
89  <li><a href="/about/">About</a></li>
90  <li><a href="/talks/">Talks</a></li>
91  <li><a href="/books/">Books</a></li>
92</ul>
93
94</nav>
95  <div id="main">
96    <div id="content">
97      <div>
98<article role="article">
99  
100  <header>
101    <h1 class="entry-title">Books</h1>
102    <p class="meta">
103
104
105
106
107
108
109
110
111  
112
113
114<time datetime="2014-08-30T00:00:00+01:00" pubdate data-updated="true"></time></p>
115  </header>
116  
117  <p><a name="webperformance"></a></p>
118
119<h1>A Pocket Guide to Web Performance</h1>
120
121<p><img class="left" src="/blog/images/pocket-guide-to-web-performance.jpg" title="A Pocket Guide to Web Performance" ></p>
122
123<p><em>As Five Simple Steps has closed, I'm making the first edition available for free</em></p>
124
125<p><em>You can also find many of the other Five Simple Steps authors and their books via <a href="http://www.futuresimplesteps.com/">Future Simple Steps</a></em></p>
126
127<p>Learn why performance matters, and pick up practical techniques to make smoother pages that load faster.</p>
128
129<p><a class="button" href="https://gumroad.com/l/webperformance-free">Get it for free!</a></p>
130
131<p>Web pages are getting larger and slower to load, and we seem to be relying on browser and network improvements to rescue us. Visitors have expectations that pages should be faster but by stretching their patience, there's a danger they will spend less time on our sites, visit fewer pages and buy less.</p>
132
133<p>Aimed at web designers and developers who want to learn why and how to make sites faster, this book will guide you through why performance matters, how to improve it, why the methods work, and some of the trade-offs involved.</p>
134
135<p>You'll learn practical techniques to improve website performance and be introduced to approaches that you can experiment with too.</p>
136
137<p><a name="usingwebpagetest"></a></p>
138
139<h1>Using WebPageTest</h1>
140
141<p><img class="left" src="/blog/images/using-webpagetest.jpg" title="Using WebPagetest" ></p>
142
143<p>Learn basic and advanced uses of WebPageTest, the performance measurement tool for optimizing websites. This practical guide shows users new to this tool how run tests and interpret results, and helps experienced users gain a better and more thorough understanding of hidden features in WebPageTest that make testing easier.</p>
144
145<p><a class="button" href="http://shop.oreilly.com/product/0636920033592.do">Buy from O'Reilly</a></p>
146
147<p>Written in collaboration with Rick Viscomi (<a href="https://twitter.com/rick_viscomi">@rick_viscomi</a>) and Marcel Duran (<a href="https://twitter.com/marcelduran">@marcelduran</a>) Using WebPageTest is available in print and as an ebook too.</p>
148
149  
150    <footer>
151      <p class="meta">
152        
153        
154
155
156
157
158
159
160
161
162  
163
164
165<time datetime="2014-08-30T00:00:00+01:00" pubdate data-updated="true"></time>
166        
167      </p>
168      
169    </footer>
170  
171</article>
172
173</div>
174
175<aside class="sidebar">
176  
177    <section>
178  <h1>About Me</h1>
179  <p>Web Performance Consultant</p>
180  <p><a class="email" href="mailto:[email protected]">[email protected]</a></p>
181  <p><a class="twitter" href="https://twitter.com/andydavies" rel="me">@andydavies</a></p>
182</section>
183<section>
184  <h1>Recent Posts</h1>
185  <ul id="recent_posts">
186    
187      <li class="post">
188        <a href="/blog/2021/03/25/bypassing-cookie-consent-banners-in-lighthouse-and-webpagetest/">Bypassing Cookie Consent Banners in Lighthouse and WebPageTest</a>
189      </li>
190    
191      <li class="post">
192        <a href="/blog/2020/11/16/the-case-against-anti-flicker-snippets/">The Case Against Anti-Flicker Snippets</a>
193      </li>
194    
195      <li class="post">
196        <a href="/blog/2020/10/12/strengthening-the-link-between-site-speed-and-business-outcomes/">Strengthening the Link Between Site Speed and Business Outcomes</a>
197      </li>
198    
199      <li class="post">
200        <a href="/blog/2020/10/02/reducing-the-site-speed-impact-of-third-party-tags/">Reducing the Site-Speed Impact of Third-Party Tags</a>
201      </li>
202    
203      <li class="post">
204        <a href="/blog/2020/09/22/exploring-site-speed-optimisations-with-webpagetest-and-cloudflare-workers/">Exploring Site Speed Optimisations With WebPageTest and Cloudflare Workers</a>
205      </li>
206    
207  </ul>
208</section>
209
210  
211</aside>
212
213
214    </div>
215  </div>
216  <footer role="contentinfo"><p>
217  Copyright &copy; 2008 - 2022 Andy Davies -
218  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
219</p>
220
221</footer>
222  
223
224
225
226
227
228
229  
229<script>
230  {
231    var webgl = {
232      'vendor': '',
233      'renderer': ''
234    };
235
236    try {
237
238      var c = document.createElement('canvas');
239      var g = c.getContext('webgl');
240      var d = g.getExtension('WEBGL_debug_renderer_info');
241
242      webgl.vendor = g.getParameter(d.UNMASKED_VENDOR_WEBGL);
243      webgl.renderer = g.getParameter(d.UNMASKED_RENDERER_WEBGL); 
244    }
245    catch(e) {
246      console.log(e);
247    }
248
249    ga('set', 'dimension1', webgl.vendor);  
250    ga('set', 'dimension2', webgl.renderer);  
251    ga('send', 'pageview');  
252
253  }
254  </script>
254
255
256
257
258</body>
259</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.