The document discusses techniques for optimizing front-end web performance. It provides examples of how much time is spent loading different parts of top websites, both with empty caches and full caches. The "performance golden rule" is that 80-90% of end-user response time is spent on the front-end. The document also outlines Yahoo's 14 rules for performance optimization, which include making fewer HTTP requests, using content delivery networks, adding Expires headers, gzipping components, script and CSS placement, and more.
AD1387: Outside The Box: Integrating with Non-Domino Apps using XPages and Ja...
Users don’t care where their data lives. They just want to get their work done quickly and efficiently. They would prefer to do their work without opening three different applications and five different browser tabs. That means your applications need to share data and work well with other applications. So what can you do? Use XPages and Java, of course!
Kathy and Julian will give you integration tips and examples of connecting your XPages apps to both IBM and non IBM technologies. Walk away with a head full of knowledge and a sample database full of working code. NOTE: this session is geared towards XPages and Java developers, beginners welcome!
A presentation from Julian Robichaux (panagenda) and Kathy Brown (PSC Group).
200, 404, 302. Is it a lock combination? A phone number? No, they're HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It's time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.
[cssdevconf] Adaptive Images in Responsive Web Design
This document summarizes Christopher Schmitt's presentation on adaptive images in responsive web design. The presentation covered:
1. Using the browser width, screen resolution, and bandwidth to determine the appropriate image to serve through feature testing rather than browser sniffing.
2. Techniques for serving responsive images including using .htaccess files, the <picture> element, and JavaScript libraries like HiSRC that select images based on various tests.
3. Workarounds for older browsers including using background-size: 100%, SVG images, and font-based solutions.
As programmers, we concentrate so much on the server/backend side of things that we often forget to measure performance from the Client's viewpoint. This presentation describes a bunch of techniques that can be used to speed up our websites.
This document discusses tuning web performance from a frontend perspective. It covers the impact of performance on user experience, development tools for optimization like Firebug and Chrome DevTools, and various techniques for website optimization including reducing requests, optimizing images, leveraging caching, minimizing JavaScript, and improving loading efficiency. The goal is to provide an overview of concepts and tools for optimizing frontend performance.
The document discusses configuring CQ security. It covers security basics, denial of service attacks, repository attacks, access control, and dispatcher configuration. For denial of service attacks, it recommends protecting CQ with a firewall, caching resources, and limiting selectors. For repository attacks, it notes POST requests can manipulate content and install bundles, so access must be restricted. It describes CQ actions, permissions, and how ACLs are evaluated in CQ.
A web performance optimisation case study presented by Seatwave at the London Web Performance Meetup, Jan 2011.
The PDF is in Landscape so you might be better to download it and then shift-ctrl-+ to rotate it clockwise in Adobe Acrobat Reader.
This document discusses various techniques for managing user experience and preferences on macOS, including:
- Using the defaults command to modify system and application preferences through NSUserDefaults and CFPreferences.
- Managing proprietary application preferences which may store settings in custom locations rather than the system preferences. This requires examining application documentation and potentially using scripts.
- Configuration profiles, which define settings that can be installed via MDM or by double-clicking a profile file. Profiles set preferences that cannot easily be changed by users.
- Considering whether defaults, scripts, or profiles are best suited based on the environment, applications, and specific settings being managed.
The document discusses various techniques for improving front-end website performance, including reducing the number of HTTP requests, using content delivery networks and caching, gzip compression, optimizing CSS and JavaScript loading, image optimization, and lazy loading of content not visible initially. Specific techniques mentioned include combining files, setting long cache expiration headers, minifying files, parallelizing downloads, and deferring non-critical JavaScript initialization. The goal is to render an initial version as fast as possible through optimizations that reduce page load time.
There have long been links on the internet that take the unwary user to a page with unexpected or malicious content. Most of these attempts rely on the user to click on the link to be successful. However, the latest variation has moved beyond simple text links to "Google-image poisoning" - placing malware in the middle of Google searches for images where users have traditionally had no reason to be wary. Our presentation will focus on How malware writers are able to infect the average website; detailed analyses of the PHP script used to infect s ites and SEO techniques to get infected images at the top of search results.
Sample code: https://github.com/cqsupport/webinar-dispatchercache
Webinar Recording: http://my.adobeconnect.com/p7th2gf8k43/
Optimizing dispatcher cache covering:
Best practices for using the dispatcher
Tips and tricks for improving performance
Common pitfalls to avoid
How to design your site so you get the most out of your Dispatcher
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
The document discusses how remote apps allow developers to integrate third party applications into Atlassian's OnDemand service. Remote apps use a simple descriptor file to register the app and define things like permissions, pages, and macros. This avoids the complexity of developing plugins and allows apps to be built using any programming language. Examples are provided of how to create a Lucidchart diagramming app using remote apps.
This document discusses optimizing Joomla templates for high performance. It recommends tools like Firebug and YSlow to measure performance, and optimizing assets like JavaScript, CSS, and images. JavaScript should be moved to the end of the page, unused code removed, and files minified and compressed. CSS should be moved to the head and stripped of unused rules. Images can be optimized by using sprites, compression, and delivery via a CDN. The optimization process involves these techniques applied at each stage of development.
The document provides an overview of developing high performance web applications, focusing on optimizing front-end performance. It discusses why front-end performance matters, and provides best practices for optimizing page load time, developing responsive interfaces, and efficiently loading and executing JavaScript. The document also covers DOM scripting techniques, tools for profiling and analyzing performance, and how the performance monitoring service Gomez can be extended to better measure client-side metrics.
The document discusses techniques for improving website performance, including:
1. Focusing on front-end optimizations as they account for 80-90% of response time.
2. Following the 80/20 rule - optimizing the 20% of code that affects 80% of response time like assets on the front-end.
3. Using techniques like image sprites, combined scripts and stylesheets, CDNs, caching, gzip compression, and reducing cookie sizes and HTTP requests to improve response times.
This document discusses techniques for improving web performance. It begins with research on how caching and cookies impact performance. It then outlines 14 rules for optimizing performance, such as making fewer HTTP requests, using content delivery networks, gzipping components, placing scripts at the bottom of pages, and avoiding redirects. Case studies demonstrate how following these rules can significantly improve page load times. The document emphasizes starting performance improvements by focusing on front-end optimizations and advocates evangelizing best practices.
The document provides 14 tips for optimizing website performance based on the 80/20 rule. The tips include minimizing HTTP requests by combining files, using a CDN, adding caching headers, gzipping files, optimizing CSS and JS placement, avoiding redirects and duplicate scripts, and making Ajax cacheable. Following these best practices can significantly improve page load times by reducing network requests and making better use of browser caching.
Modern progressive web applications are complex pieces of software running in the browser. Fastly offers unparalleled control over the way the bytes fly from your servers to the user, enabling many of the features of advanced progressive web apps to truly shine. This talk will show how these latest web technologies can best take advantage of smarts in the network to deliver your web app at top speed.
The document discusses various techniques for optimizing the front-end performance of websites, including minification, CSS sprites, domain sharding, image optimization, and HTTP caching. It provides examples and best practices for each technique to reduce file sizes, HTTP requests, and load times to improve user experience.
Cache is King discusses the importance of caching for website performance. It shows that enabling caching through techniques like setting Cache-Control headers can reduce page load times significantly. Specifically, using max-age to set expiration times for cacheable assets avoids unnecessary HTTP requests. For dynamic content, no-cache must be used to prevent caching. The document advocates being explicit with caching directives and measuring caching behavior to identify opportunities to optimize websites for cached access.
The document discusses optimization of the presentation tier of web applications. It notes that the presentation tier is often overlooked despite being responsible for over 30% of client/server performance. Some key optimizations discussed include reducing HTTP requests, optimizing response objects by reducing size and load pattern, JavaScript minification and placement, image sprites, caching, and ensuring valid HTML markup.
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
Google Developer Days Japan 2009 - Designing OpenSocial Apps For Speed and Scale
Original slides from Arne Roomann-Kurrik & Chris Chabot with a few Zen quotes and references added by me:-)
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital Marketers
We all know that site speed matters not only for users but also for search rankings. As marketers, how can we measure and improve the impact of site speed? Mat will cover a range of topics and tools, from the basic quick wins to some of the more surprising and cutting-edge techniques used by the largest websites in the world.
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
Presentation given in WP Meetup in October 2019.
Includes fresh new tips from summer/fall 2019!
A Must read for all WordPress site owners and developers.
The document provides a performance test analysis of the hotels.com website. It identifies several opportunities to improve performance, including: reducing the number of HTTP requests by combining files; using a content delivery network to improve response times; compressing components with gzip; avoiding redirects; using cookie-free domains; minifying JavaScript and CSS; not scaling images in HTML; and reducing cookie size. Implementing these recommendations could help speed up page loading.
This document discusses ways to improve web performance for mobile users. It outlines goals like achieving a speed index between 1,100-2,500 and first meaningful paint within 1-3 seconds. Various techniques are presented for hacking first load times, data transfer, resource loading, images and user experience. These include avoiding redirects, using HTTP/2 and service workers, modern cache controls, responsive images, preloading resources, and ensuring consistent frame rates. The overall message is that mobile performance needs more attention given average load times and high bounce rates on slow mobile sites.
[convergese] Adaptive Images in Responsive Web Design
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
This document provides practical strategies for improving front-end performance of websites. It discusses specific techniques like making fewer HTTP requests by combining files, leveraging browser caching with far-future expires headers, gzipping components, using CSS sprites, and deploying assets on a content delivery network. It also summarizes key rules from tools like YSlow and PageSpeed for optimizing front-end performance.
The document discusses optimizing frontend performance. It recommends reducing HTTP requests by combining CSS files into one file and using sprites and data URIs for images. It also suggests automating minification, compression, and image optimization. Performance should be monitored using tools like WebPagetest, YSlow, and PageSpeed. Frontend optimizations like these can reduce page load times and bandwidth usage.
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)
While the principles of responsive web design can make sites look better on mobile devices, they don’t necessarily load faster than a site designed for desktops. And as more and more sophisticated WordPress themes emerge, with their multiple options and fancy sliders, websites just keep getting more and more bloated.
This presentation will help cut out the junk that’s larding up your sites so you can better meet the demand of users wanting fast-loading user experiences–no matter the device or connection.
Presented at WordCamp Salt Lake City 2013 (http://2013.slc.wordcamp.org/)
The document provides best practices for optimizing frontend performance by reducing page load time. It discusses ways to reduce the number of HTTP requests, DNS lookups, redirects and duplicate scripts. It also recommends techniques like minifying assets, leveraging caching, prioritizing critical components, optimizing images and using content delivery networks.
Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction is a technique to automatically generate wrappers to extract information from web sources. It involves learning extraction rules from labeled examples to construct a wrapper as a finite state machine or set of delimiters. Two main wrapper induction systems are WIEN, which defines wrapper classes including LR, and STALKER, which uses a more expressive model with extraction rules and landmarks to handle structure hierarchically. Remaining challenges include selecting informative examples, generating label pages automatically, and developing more expressive models.
This document summarizes a tutorial given by Bing Liu on opinion mining and summarization. The tutorial covered several key topics in opinion mining including sentiment classification at the document and sentence level, feature-based opinion mining and summarization, comparative sentence extraction, and opinion spam detection. The tutorial provided an overview of the field of opinion mining and abstraction as well as summaries of various approaches to tasks such as sentiment classification using machine learning methods and feature scoring.
The document provides an overview of Huffman coding, a lossless data compression algorithm. It begins with a simple example to illustrate the basic idea of assigning shorter codes to more frequent symbols. It then defines key terms like entropy and describes the Huffman coding algorithm, which constructs an optimal prefix code from the frequency of symbols in the data. The document discusses how the algorithm works, its advantages in achieving compression close to the source entropy, and some limitations. It also covers applications of Huffman coding like image compression.
Do not crawl in the dust different ur ls similar text
The document describes the DustBuster algorithm for discovering DUST rules - rules that transform one URL into another URL that contains similar content. The algorithm takes as input a list of URLs from a website and finds valid DUST rules without requiring any page fetches. It detects likely DUST rules based on a large support principle and small buckets principle. It then eliminates redundant rules and validates the remaining rules using a sample of URLs to identify rules that transform URLs with similar content. Experimental results on logs from two websites show that DustBuster is able to discover DUST rules that can help improve crawling efficiency.
Performance Of Web Applications On Client MachinesCurelet Marius
Performance of Web applications on client machines. This paper refers to the performance of Web browsers and applications in general and of JavaScript code on the client machine.
An overview of web performance automation in the Production environment - "faster ways to make your website faster". Covers things like sample .htaccess files through to performance accelerators like mod_pagespeed and Aptimize through to DSA's like Cotendo.
London Web Performance Meetup: Performance for mortal companiesStrangeloop
You're probably familiar with the well-known performance success stories from companies like Amazon, Google, Microsoft and Shopzilla. But how relevant are these megasites to "mortal companies" that don't make billions of dollars per year or have teams of in-house performance engineers to do their bidding?
Strangeloop president Joshua Bixby walks through case studies of Strangeloop customers like AutoAnything.com and Artbeads.com to show how mortal companies have improved performance and achieved measurable success, including:
· Increased revenue by 13%
· Increased cart size by 6%
· Increased conversions by 9%
Joshua offers practical tips for successfully evangelizing performance within your organization. He also gives a snapshot of the current performance landscape in North America, as well as a sense of where the industry is headed.
AD1387: Outside The Box: Integrating with Non-Domino Apps using XPages and Ja...panagenda
Users don’t care where their data lives. They just want to get their work done quickly and efficiently. They would prefer to do their work without opening three different applications and five different browser tabs. That means your applications need to share data and work well with other applications. So what can you do? Use XPages and Java, of course!
Kathy and Julian will give you integration tips and examples of connecting your XPages apps to both IBM and non IBM technologies. Walk away with a head full of knowledge and a sample database full of working code. NOTE: this session is geared towards XPages and Java developers, beginners welcome!
A presentation from Julian Robichaux (panagenda) and Kathy Brown (PSC Group).
200, 404, 302. Is it a lock combination? A phone number? No, they're HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It's time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.
This document summarizes Christopher Schmitt's presentation on adaptive images in responsive web design. The presentation covered:
1. Using the browser width, screen resolution, and bandwidth to determine the appropriate image to serve through feature testing rather than browser sniffing.
2. Techniques for serving responsive images including using .htaccess files, the <picture> element, and JavaScript libraries like HiSRC that select images based on various tests.
3. Workarounds for older browsers including using background-size: 100%, SVG images, and font-based solutions.
As programmers, we concentrate so much on the server/backend side of things that we often forget to measure performance from the Client's viewpoint. This presentation describes a bunch of techniques that can be used to speed up our websites.
This document discusses tuning web performance from a frontend perspective. It covers the impact of performance on user experience, development tools for optimization like Firebug and Chrome DevTools, and various techniques for website optimization including reducing requests, optimizing images, leveraging caching, minimizing JavaScript, and improving loading efficiency. The goal is to provide an overview of concepts and tools for optimizing frontend performance.
The document discusses configuring CQ security. It covers security basics, denial of service attacks, repository attacks, access control, and dispatcher configuration. For denial of service attacks, it recommends protecting CQ with a firewall, caching resources, and limiting selectors. For repository attacks, it notes POST requests can manipulate content and install bundles, so access must be restricted. It describes CQ actions, permissions, and how ACLs are evaluated in CQ.
Seatwave Web Peformance Optimisation Case StudyStephen Thair
A web performance optimisation case study presented by Seatwave at the London Web Performance Meetup, Jan 2011.
The PDF is in Landscape so you might be better to download it and then shift-ctrl-+ to rotate it clockwise in Adobe Acrobat Reader.
This document discusses various techniques for managing user experience and preferences on macOS, including:
- Using the defaults command to modify system and application preferences through NSUserDefaults and CFPreferences.
- Managing proprietary application preferences which may store settings in custom locations rather than the system preferences. This requires examining application documentation and potentially using scripts.
- Configuration profiles, which define settings that can be installed via MDM or by double-clicking a profile file. Profiles set preferences that cannot easily be changed by users.
- Considering whether defaults, scripts, or profiles are best suited based on the environment, applications, and specific settings being managed.
The document discusses various techniques for improving front-end website performance, including reducing the number of HTTP requests, using content delivery networks and caching, gzip compression, optimizing CSS and JavaScript loading, image optimization, and lazy loading of content not visible initially. Specific techniques mentioned include combining files, setting long cache expiration headers, minifying files, parallelizing downloads, and deferring non-critical JavaScript initialization. The goal is to render an initial version as fast as possible through optimizations that reduce page load time.
There have long been links on the internet that take the unwary user to a page with unexpected or malicious content. Most of these attempts rely on the user to click on the link to be successful. However, the latest variation has moved beyond simple text links to "Google-image poisoning" - placing malware in the middle of Google searches for images where users have traditionally had no reason to be wary. Our presentation will focus on How malware writers are able to infect the average website; detailed analyses of the PHP script used to infect s ites and SEO techniques to get infected images at the top of search results.
Sample code: https://github.com/cqsupport/webinar-dispatchercache
Webinar Recording: http://my.adobeconnect.com/p7th2gf8k43/
Optimizing dispatcher cache covering:
Best practices for using the dispatcher
Tips and tricks for improving performance
Common pitfalls to avoid
How to design your site so you get the most out of your Dispatcher
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Atlassian
The document discusses how remote apps allow developers to integrate third party applications into Atlassian's OnDemand service. Remote apps use a simple descriptor file to register the app and define things like permissions, pages, and macros. This avoids the complexity of developing plugins and allows apps to be built using any programming language. Examples are provided of how to create a Lucidchart diagramming app using remote apps.
This document discusses optimizing Joomla templates for high performance. It recommends tools like Firebug and YSlow to measure performance, and optimizing assets like JavaScript, CSS, and images. JavaScript should be moved to the end of the page, unused code removed, and files minified and compressed. CSS should be moved to the head and stripped of unused rules. Images can be optimized by using sprites, compression, and delivery via a CDN. The optimization process involves these techniques applied at each stage of development.
The document provides an overview of developing high performance web applications, focusing on optimizing front-end performance. It discusses why front-end performance matters, and provides best practices for optimizing page load time, developing responsive interfaces, and efficiently loading and executing JavaScript. The document also covers DOM scripting techniques, tools for profiling and analyzing performance, and how the performance monitoring service Gomez can be extended to better measure client-side metrics.
The document discusses techniques for improving website performance, including:
1. Focusing on front-end optimizations as they account for 80-90% of response time.
2. Following the 80/20 rule - optimizing the 20% of code that affects 80% of response time like assets on the front-end.
3. Using techniques like image sprites, combined scripts and stylesheets, CDNs, caching, gzip compression, and reducing cookie sizes and HTTP requests to improve response times.
This document discusses techniques for improving web performance. It begins with research on how caching and cookies impact performance. It then outlines 14 rules for optimizing performance, such as making fewer HTTP requests, using content delivery networks, gzipping components, placing scripts at the bottom of pages, and avoiding redirects. Case studies demonstrate how following these rules can significantly improve page load times. The document emphasizes starting performance improvements by focusing on front-end optimizations and advocates evangelizing best practices.
The document provides 14 tips for optimizing website performance based on the 80/20 rule. The tips include minimizing HTTP requests by combining files, using a CDN, adding caching headers, gzipping files, optimizing CSS and JS placement, avoiding redirects and duplicate scripts, and making Ajax cacheable. Following these best practices can significantly improve page load times by reducing network requests and making better use of browser caching.
Modern progressive web applications are complex pieces of software running in the browser. Fastly offers unparalleled control over the way the bytes fly from your servers to the user, enabling many of the features of advanced progressive web apps to truly shine. This talk will show how these latest web technologies can best take advantage of smarts in the network to deliver your web app at top speed.
The document discusses various techniques for optimizing the front-end performance of websites, including minification, CSS sprites, domain sharding, image optimization, and HTTP caching. It provides examples and best practices for each technique to reduce file sizes, HTTP requests, and load times to improve user experience.
Cache is King discusses the importance of caching for website performance. It shows that enabling caching through techniques like setting Cache-Control headers can reduce page load times significantly. Specifically, using max-age to set expiration times for cacheable assets avoids unnecessary HTTP requests. For dynamic content, no-cache must be used to prevent caching. The document advocates being explicit with caching directives and measuring caching behavior to identify opportunities to optimize websites for cached access.
The document discusses optimization of the presentation tier of web applications. It notes that the presentation tier is often overlooked despite being responsible for over 30% of client/server performance. Some key optimizations discussed include reducing HTTP requests, optimizing response objects by reducing size and load pattern, JavaScript minification and placement, image sprites, caching, and ensuring valid HTML markup.
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
Google Developer Days Japan 2009 - Designing OpenSocial Apps For Speed and Scale
Original slides from Arne Roomann-Kurrik & Chris Chabot with a few Zen quotes and references added by me:-)
SearchLove San Diego 2018 | Mat Clayton | Site Speed for Digital MarketersDistilled
We all know that site speed matters not only for users but also for search rankings. As marketers, how can we measure and improve the impact of site speed? Mat will cover a range of topics and tools, from the basic quick wins to some of the more surprising and cutting-edge techniques used by the largest websites in the world.
The 5 most common reasons for a slow WordPress site and how to fix them – ext...Otto Kekäläinen
Presentation given in WP Meetup in October 2019.
Includes fresh new tips from summer/fall 2019!
A Must read for all WordPress site owners and developers.
The document provides a performance test analysis of the hotels.com website. It identifies several opportunities to improve performance, including: reducing the number of HTTP requests by combining files; using a content delivery network to improve response times; compressing components with gzip; avoiding redirects; using cookie-free domains; minifying JavaScript and CSS; not scaling images in HTML; and reducing cookie size. Implementing these recommendations could help speed up page loading.
This document discusses ways to improve web performance for mobile users. It outlines goals like achieving a speed index between 1,100-2,500 and first meaningful paint within 1-3 seconds. Various techniques are presented for hacking first load times, data transfer, resource loading, images and user experience. These include avoiding redirects, using HTTP/2 and service workers, modern cache controls, responsive images, preloading resources, and ensuring consistent frame rates. The overall message is that mobile performance needs more attention given average load times and high bounce rates on slow mobile sites.
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
This document provides practical strategies for improving front-end performance of websites. It discusses specific techniques like making fewer HTTP requests by combining files, leveraging browser caching with far-future expires headers, gzipping components, using CSS sprites, and deploying assets on a content delivery network. It also summarizes key rules from tools like YSlow and PageSpeed for optimizing front-end performance.
The document discusses optimizing frontend performance. It recommends reducing HTTP requests by combining CSS files into one file and using sprites and data URIs for images. It also suggests automating minification, compression, and image optimization. Performance should be monitored using tools like WebPagetest, YSlow, and PageSpeed. Frontend optimizations like these can reduce page load times and bandwidth usage.
Does This Theme Make My Website Look Fat? (Wordcamp SLC 2013)Adam Dunford
While the principles of responsive web design can make sites look better on mobile devices, they don’t necessarily load faster than a site designed for desktops. And as more and more sophisticated WordPress themes emerge, with their multiple options and fancy sliders, websites just keep getting more and more bloated.
This presentation will help cut out the junk that’s larding up your sites so you can better meet the demand of users wanting fast-loading user experiences–no matter the device or connection.
Presented at WordCamp Salt Lake City 2013 (http://2013.slc.wordcamp.org/)
The document provides best practices for optimizing frontend performance by reducing page load time. It discusses ways to reduce the number of HTTP requests, DNS lookups, redirects and duplicate scripts. It also recommends techniques like minifying assets, leveraging caching, prioritizing critical components, optimizing images and using content delivery networks.
Wrapper induction construct wrappers automatically to extract information f...George Ang
Wrapper induction is a technique to automatically generate wrappers to extract information from web sources. It involves learning extraction rules from labeled examples to construct a wrapper as a finite state machine or set of delimiters. Two main wrapper induction systems are WIEN, which defines wrapper classes including LR, and STALKER, which uses a more expressive model with extraction rules and landmarks to handle structure hierarchically. Remaining challenges include selecting informative examples, generating label pages automatically, and developing more expressive models.
This document summarizes a tutorial given by Bing Liu on opinion mining and summarization. The tutorial covered several key topics in opinion mining including sentiment classification at the document and sentence level, feature-based opinion mining and summarization, comparative sentence extraction, and opinion spam detection. The tutorial provided an overview of the field of opinion mining and abstraction as well as summaries of various approaches to tasks such as sentiment classification using machine learning methods and feature scoring.
The document provides an overview of Huffman coding, a lossless data compression algorithm. It begins with a simple example to illustrate the basic idea of assigning shorter codes to more frequent symbols. It then defines key terms like entropy and describes the Huffman coding algorithm, which constructs an optimal prefix code from the frequency of symbols in the data. The document discusses how the algorithm works, its advantages in achieving compression close to the source entropy, and some limitations. It also covers applications of Huffman coding like image compression.
Do not crawl in the dust different ur ls similar textGeorge Ang
The document describes the DustBuster algorithm for discovering DUST rules - rules that transform one URL into another URL that contains similar content. The algorithm takes as input a list of URLs from a website and finds valid DUST rules without requiring any page fetches. It detects likely DUST rules based on a large support principle and small buckets principle. It then eliminates redundant rules and validates the remaining rules using a sample of URLs to identify rules that transform URLs with similar content. Experimental results on logs from two websites show that DustBuster is able to discover DUST rules that can help improve crawling efficiency.
5. Exceptional Performance
started in 2004
quantify and improve the performance of
all Yahoo! products worldwide
center of expertise
build tools, analyze data
gather, research, and evangelize best
practices
6. Scope
performance breaks into two categories
– response time
– efficiency
current focus is response time
of web products
8. percentage of time spent on the front-end
Back-end vs. Front-end
Empty Cache Full Cache
amazon.com 82% 86%
aol.com 94% 86%
cnn.com 81% 92%
ebay.com 98% 92%
google.com 86% 64%
msn.com 97% 95%
myspace.com 96% 86%
wikipedia.org 80% 88%
yahoo.com 95% 88%
youtube.com 97% 95%
9. The Performance Golden Rule
80-90% of the end-user response time is
spent on the front-end. Start there.
• Greater potential for improvement
• Simpler
• Proven to work
12. 80/20 Performance Rule
Vilfredo Pareto:
80% of consequences come from 20% of causes
Focus on the 20% that affects 80% of the
end-user response time.
Start at the front-end.
14. 1
user requests
www.yahoo.com
2
user requests
other web pages
3
user re-requests
www.yahoo.com
Empty vs. Full Cache
0 0.5 1 1.5 2 2.5 3
image
stylesheet
script
script
dns lookup
image
image
image
image
image
dns lookup
script
image
image
image
image
image
image
image
image
script
image
image
image
image
image
image
image
image
script
dns lookup
image
image
html
dns lookup
with an empty cache
16. Empty vs. Full Cache
0 0.5 1 1.5 2 2.5 3
image
image
html
Expires header
1
user requests
www.yahoo.com
2
user requests
other web pages
3
user re-requests
www.yahoo.com
with a full cache
17. Empty vs. Full Cache
empty cache
2.4 seconds
full cache
0.9 seconds
83% fewer bytes
90% fewer HTTP requests
18. How much does this benefit our users?
It depends on how many users have
components in cache.
• What percentage of users view a page with
an empty cache*?
* “Empty cache” means the browser has to request the components
instead of pulling them from the browser disk cache.
• What percentage of page views are done
with an empty cache*?
20. Add a new image to your page
<img src="image/blank.gif" height="1" width="1"/>
with the following response headers:
Expires: Thu, 15 Apr 2004 20:00:00 GMT
Last-Modified: Wed, 28 Sep 2006 23:49:57 GMT
}1 px
Browser Cache Experiment
21. Browser Cache Experiment
Requests from the browser will have
one of these response status codes:
200 – The browser does not have the image
in its cache.
304 – The browser has the image in its cache,
but needs to verify the last modified date.
22. Browser Cache Experiment
What percentage of users
view with an empty cache?
# unique users with at least
one 200 response
total # unique users
What percentage of page
views are done with an
empty cache?
total # of 200 responses
# of 200 + # of 304
responses
}1 px
23. 0.0%
10.0%
20.0%
30.0%
40.0%
50.0%
60.0%
70.0%
80.0%
90.0%
100.0%
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
day of experiment
percentage
unique users with empty cache
page views with empty cache
Surprising Results
page views with
empty cache
40-60% ~20%
users with
empty cache
24. Experiment Takeaways
Keep in mind the empty cache user
experience. It might be more prevalent
than you think!
Use different techniques to optimize full
versus empty cache experience.
26. 1
user requests
www.yahoo.com
HTTP Quick Review
HTTP response header sent by the web server:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Set-Cookie: C=abcdefghijklmnopqrstuvwxyz; domain=.yahoo.com
27. 1
user requests
www.yahoo.com
HTTP Quick Review
2
user requests
finance.yahoo.com
HTTP request header sent by the browser:
GET / HTTP/1.1
Host: finance.yahoo.com
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; …
Cookie: C=abcdefghijklmnopqrstuvwxyz;
31. Impact of Cookies on Response Time
80 ms delay dialup users
Cookie Size Time Delta
0 bytes 78 ms 0 ms
500 bytes 79 ms +1 ms
1000 bytes 94 ms +16 ms
1500 bytes 109 ms +31 ms
2000 bytes 125 ms +47 ms
2500 bytes 141 ms +63 ms
3000 bytes 156 ms +78 ms
keep sizes low
33. Analysis of Cookie Sizes across the Web
Total Cookie Size
Amazon 60 bytes
Google 72 bytes
Yahoo 122 bytes
CNN 184 bytes
YouTube 218 bytes
MSN 268 bytes
eBay 331 bytes
MySpace 500 bytes
34. Experiment Takeaways
eliminate unnecessary cookies
keep cookie sizes low
set cookies at appropriate domain level,
or hosting assets on a new domain
set Expires date appropriately
– earlier date or none removes cookie sooner
40. Maximizing Parallel Downloads
response time
(seconds)
aliases
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1 2 4 5 10
average 36 x 36 px (0.9 Kb) 116 x 61 px (3.4 Kb)
41. Maximizing Parallel Downloads
response time
(seconds)
rule of thumb: use at least two but no more than four aliases
0.00
0.20
0.40
0.60
0.80
1.00
1.20
1.40
1 2 4 5 10
average 36 x 36 px (0.9 Kb) 116 x 61 px (3.4 Kb)
42. Experiment Takeaways
consider the effects of CPU thrashing
DNS lookup times vary across ISPs and
geographic locations
domain names may not be cached
44. How to optimize?
• basic optimization rules
• optimizing assets (images, scripts, and
styles)
• optimizations specific to scripts
• optimizations specific to styles
46. 14 things to check
1. Make fewer HTTP requests
2. Use a CDN
3. Add an Expires header
4. Gzip components
5. Put CSS at the top
6. Move JS to the bottom
7. Avoid CSS expressions
8. Make JS and CSS external
9. Reduce DNS lookups
10. Minify JS
11. Avoid redirects
12. Remove duplicate scripts
13. Turn off ETags
14. Make AJAX cacheable and small
51. Combined Scripts,
Combined Stylesheets
combining six scripts into one eliminates
five HTTP requests
challenges:
– develop as separate modules
– number of possible combinations vs. loading
more than needed
– maximize browser cache
one solution:
– dynamically combine and cache
52. Rule 2: Use a CDN
distribute your static content before
distributing your dynamic content
amazon.com Akamai
aol.com Akamai
cnn.com
ebay.com Akamai, Mirror Image
google.com
msn.com SAVVIS
myspace.com Akamai, Limelight
wikipedia.org
yahoo.com Akamai
youtube.com
53. Rule 3: Add an Expires header
not just for images
Images Stylesheets Scripts % Median Age
amazon.com 0/62 0/1 0/3 0% 114 days
aol.com 23/43 1/1 6/18 48% 217 days
cnn.com 0/138 0/2 2/11 1% 227 days
ebay.com 16/20 0/2 0/7 55% 140 days
froogle.google.com 1/23 0/1 0/1 4% 454 days
msn.com 32/35 1/1 3/9 80% 34 days
myspace.com 0/18 0/2 0/2 0% 1 day
wikipedia.org 6/8 1/1 2/3 75% 1 day
yahoo.com 23/23 1/1 4/4 100% n/a
youtube.com 0/32 0/3 0/7 0% 26 days
54. Setting Expires header in Apache
ExpiresActive On
ExpiresByType application/x-javascript
"modification plus 2 years"
ExpiresByType text/css "modification plus
5 years"
55. When modifing an asset?
• Modify the asset name (automatically)!
– Append an epoch timestamp to the file
name, e.g. img_1185403733.png.
– Use the version number from your source
control system (cvs or svn for example),
e.g. img_1.1.png.
– Manually increment a number in the file
name (e.g. when you see a file named
img1.png, simply save the modified image
as img2.png).
56. Rule 4: Gzip components
you can affect users' download times
90%+ of browsers support compression
57. Gzip: not just for HTML
HTML Scripts Stylesheets
amazon.com x
aol.com x some some
cnn.com
ebay.com x
froogle.google.com x x x
msn.com x deflate deflate
myspace.com x x x
wikipedia.org x x x
yahoo.com x x x
youtube.com x some some
gzip scripts, stylesheets, XML, JSON (not
images, PDF)
59. Rule 5: Put CSS at the top
stylesheets block rendering in IE
http://stevesouders.com/examples/css-bottom.php
solution: put stylesheets in HEAD (per spec)
avoids Flash of Unstyled Content
use LINK (not @import)
61. Rule 6: Move scripts to the bottom
scripts block parallel downloads across all
hostnames
scripts block rendering of everything below
them in the page
IE and FF
http://stevesouders.com/examples/js-middle.php
62. Rule 6: Move scripts to the bottom
script defer attribute is not a solution
– blocks rendering and downloads in FF
– slight blocking in IE
solution: move them as low in the page as
possible
63. Rule 7: Avoid CSS expressions
used to set CSS properties dynamically in IE
width: expression(
document.body.clientWidth < 600 ?
“600px” : “auto” );
problem: expressions execute many times
– mouse move, key press, resize, scroll, etc.
http://stevesouders.com/examples/expression-counter.php
64. Rule 8: Make JS and CSS external
inline: HTML document is bigger
external: more HTTP requests, but cached
variables
– page views per user (per session)
– empty vs. full cache stats
– component re-use
external is typically better
– home pages may be an exception
65. Post-Onload Download
inline in front page
download external files after onload
window.onload = downloadComponents;
function downloadComponents() {
var elem = document.createElement("script");
elem.src = "http://.../file1.js";
document.body.appendChild(elem);
...
}
speeds up secondary pages
66. Example : Google
• once the home page has finished
loading, there is a request to get a
sprite image, which is not actually
needed until search results page loads
67. Example : Yahoo
• Conditional pre-loading -- waits for the
user to start typing in the search box.
Once you've begun typing, it's almost
guaranteed that you'll submit a search
query.
68. Dynamic Inlining
start with post-onload download
set cookie after components downloaded
server-side:
– if cookie, use external
– else, do inline with post-onload download
cookie expiration date is key
speeds up all pages
69. Rule 9: Reduce DNS lookups
typically 20-120 ms
block parallel downloads
OS and browser both have DNS caches
70. TTL (Time To Live)
www.amazon.com 1 minute
www.aol.com 1 minute
www.cnn.com 10 minutes
www.ebay.com 1 hour
www.google.com 5 minutes
www.msn.com 5 minutes
www.myspace.com 1 hour
www.wikipedia.org 1 hour
www.yahoo.com 1 minute
www.youtube.com 5 minutes
TTL – how long record can be cached
browser settings override TTL
73. Rule 10: Minify JavaScript
Minify
External?
Minify
Inline?
www.amazon.com no no
www.aol.com no no
www.cnn.com no no
www.ebay.com yes no
froogle.google.com yes yes
www.msn.com yes yes
www.myspace.com no no
www.wikipedia.org no no
www.yahoo.com yes yes
www.youtube.com no no
minify inline scripts, too
75. Rule 11: Avoid redirects
3xx status codes – mostly 301 and 302
HTTP/1.1 301 Moved Permanently
Location: http://stevesouders.com/newuri
add Expires headers to cache redirects
worst form of blocking
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
80. Rule 13: Turn off ETags
unique identifier returned in response
ETag: "c8897e-aee-4165acf0"
Last-Modified: Thu, 07 Oct 2004 20:54:08 GMT
used in conditional GET requests
If-None-Match: "c8897e-aee-4165acf0"
If-Modified-Since: Thu, 07 Oct 2004 20:54:08 GMT
if ETag doesn't match, can't send 304
81. The Problem with ETags
ETag for a single entity is always different
across servers
ETag format
– Apache: inode-size-timestamp
– IIS: Filetimestamp:ChangeNumber
Sites with >1 server return too few 304s
– (n-1)/n
Remove them
– Apache: FileETag none
– IIS: http://support.microsoft.com/kb/922703/
82. Rule 14: Make AJAX cacheable
and small
XHR, JSON, iframe, dynamic scripts can
still be cached, minified, and gzipped
a personalized response should still be
cacheable by that person
83. AJAX Example: Yahoo! Mail Beta
address book XML request
→ GET /yab/[...]&r=0.5289571053069156 HTTP/1.1
Host: us.xxx.mail.yahoo.com
← HTTP/1.1 200 OK
Date: Thu, 12 Apr 2007 19:39:09 GMT
Cache-Control: private,max-age=0
Last-Modified: Sat, 31 Mar 2007 01:17:17 GMT
Content-Type: text/xml; charset=utf-8
Content-Encoding: gzip
address book changes infrequently
– cache it; add last-modified-time in URL
85. IBM Page Detailer
packet sniffer
Windows only
IE, FF, any .exe
c:windowswd_WS2s.ini
Executable=(NETSCAPE.EXE),(NETSCP6.EXE),(firefox.exe)
free trial, $300 license
http://alphaworks.ibm.com/tech/pagedetailer
89. web development evolved
inspect and edit HTML
tweak and visualize CSS
debug and profile JavaScript
monitor network activity (caveat)
Firefox extension
free
http://getfirebug.com/
在 yahoo 的首页增加一个透明的小图 (1x1) , header 设置成 ” Expires: Thu, 15 Apr 2004 20:00:00 GMT , Last-Modified: Wed, 28 Sep 2006 23:49:57 GMT“ 。每天跟踪有多少比例的用户请求的这个小图,以及多少比例的 page view 中请求了这个小图 When the browser saves a component in its cache, it also saves the Expires and Last Modified values. Specifying an Expires date in the past forces the browser to request the image every time the page is viewed (with a few exceptions, such as when users click the browser’s “back” button to return to a page).
从浏览器返回的 response 应该是 200 ( The browser does not have the image in its cache )或者 304 ( The browser has the image in its cache, but needs to verify the last modified date )。
On the first day of the experiment, no one had these images cached so the empty cache percentage was 100%. As the days passed more users had the images cached, so the percentages dropped until at some point it reached a constant steady state.
However, we found in our study that regardless of usage patterns, the percentage of page views with an empty cache is always ~20%. empty cache 的用户很可能比你想像中要多得多
The browser saves the “C” cookie on the user’s computer and sends it back in future requests. The “domain=.yahoo.com” specifies that the browser should include the cookie in future requests within the .yahoo.com domain and all its sub-domains. For example, if the user then visits finance.yahoo.com, the browser includes the “C” cookie in the request. Since an Expires attribute is not included in this example, the cookie expires at the end of the session.
Cookies 的大小也会对用户的反应时间造成很大影响,
While the data shows that the majority of page views aren’t impacted by a significant delay, it also shows that about 2% of page views have over 1500 bytes of cookies set at the .yahoo.com domain. Although 2% sounds insignificant, at Yahoo! this translates to millions of page views per day,
The data in Table 2 reflects only cookies set at the top domain levels to eliminate any cookies that may have been set by ads
A cookie set at the .yahoo.com domain impacts the response time for every Yahoo! page in the .yahoo.com domain that a user visits. 尽量减少不必要的 cookies 将 cookie 的 size 缩小 将 cookie 放到 domain level 的时候要谨慎小心,尽量不要影响其他的 sub domain 将 expiration date 合理设置
那么到底是不是将组件分配到越多 hostname 越好呢,我们也做了测试。 The experiment measured an empty HTML document with 20 images on the page. The images were fetched from the same servers as those used by real Yahoo! pages. We ran the experiment in a controlled environment using a test harness that fetches a set of URLs repeatedly while measuring how long it takes to load the page on DSL.
We fetch 20 smaller-sized images (36 x 36 px) and 20 medium-sized images (116 x 61 px). To our surprise, increasing the number of aliases for loading the medium-size images (116 x 61px) worsens the response times using four or more aliases. Increasing the number of aliases by more than two for smaller-sized images (36 x 36px) doesn’t make much of an impact on the overall response time. On average, using two aliases is best. One possible contributor for slower response times is the amount of CPU thrashing on the client caused by increasing the number of parallel downloads. Another issue to consider is that DNS lookup times vary significantly across ISPs and geographic locations.
check out this image, used on Yahoo!'s homepage , or this one from Google's .
serving compressed HTML, CSS, client-side scripts, and any other type of text content. If you make XMLHttpRequests to services that return XML (or JSON, or plain text), make sure your server gzips as well
There's one gotcha when it comes to serving gzipped content: you must make sure that proxies do not get in your way. If an ISP's proxy caches your gzipped content and serves it to all of its customers, chances are that someone with a browser that doesn't support compression will receive your compressed content. To avoid this you can use the Vary: Accept-Encoding response header to tell the proxy to cache this response only for clients that send the same Accept-Encoding request header.
due to the nature of the scripts (they could potentially change anything on a page), browsers block all downloads when they encounters a <script> tag. So until a script is downloaded and parsed, no other downloads will be initiated.