As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. Drupal already tackles several issues pretty well. But there's more we can do!
You can solve several additional problems today, just by installing extra modules (such as Support file Cache), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions.
For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site.
Drupal CDN integration: easier, more flexible and faster!Wim Leers
90% of the page loading time is spent on retrieving CSS, JavaScript and images. There are lots of techniques to reduce this, but using a CDN is the most effective. Currently it's expensive to integrate with a CDN (especially if you want to avoid vendor lock-in) and it's hard to serve file A from a CDN, file B from a static file server and file C from neither. In this session, you'll learn about the push-to-CDN model, which makes all of this trivial.
Session Overview
This session will explain how a CDN (Content Delivery Network) improves page loading times and how you should analyze the page loading performance while evaluating a CDN. Existing techniques for integrating a CDN with Drupal will be compared and an alternative, comprehensive solution will be presented.
Agenda
- How pages are loaded by the browser
- How a CDN improves page loading times
- Evaluating the results
- Existing Drupal CDN integration techniques
- Push-to-CDN model: pros & cons
- CDN integration module: synchronization via Drupal or highly scalable daemon
- Alternative uses: create your own CDN, massive back-up tool
Goals
- You should have a good overview of the different techniques to integrate Drupal with a CDN.
- You should have learned how you can evaluate page loading performance to know which files should be served from a CDN.
The technology landscape is changing with every passing year. The technology landscape is changing with every passing year. More people than ever before are now online. It also means that the ways that people are accessing the web all over the world are changing, too.
In this talk, I talk about the different techniques coupled with few case studies on how to improve front-end performance.
From InfoSec World 2009, Josh Abraham (of Rapid7) and I did a talk on owning the browser and why it's completely a broken concept... if you loved the presentation here are the slides!
Drupal CDN integration: easier, more flexible and faster!Wim Leers
90% of the page loading time is spent on retrieving CSS, JavaScript and images. There are lots of techniques to reduce this, but using a CDN is the most effective. Currently it's expensive to integrate with a CDN (especially if you want to avoid vendor lock-in) and it's hard to serve file A from a CDN, file B from a static file server and file C from neither. In this session, you'll learn about the push-to-CDN model, which makes all of this trivial.
Session Overview
This session will explain how a CDN (Content Delivery Network) improves page loading times and how you should analyze the page loading performance while evaluating a CDN. Existing techniques for integrating a CDN with Drupal will be compared and an alternative, comprehensive solution will be presented.
Agenda
- How pages are loaded by the browser
- How a CDN improves page loading times
- Evaluating the results
- Existing Drupal CDN integration techniques
- Push-to-CDN model: pros & cons
- CDN integration module: synchronization via Drupal or highly scalable daemon
- Alternative uses: create your own CDN, massive back-up tool
Goals
- You should have a good overview of the different techniques to integrate Drupal with a CDN.
- You should have learned how you can evaluate page loading performance to know which files should be served from a CDN.
The technology landscape is changing with every passing year. The technology landscape is changing with every passing year. More people than ever before are now online. It also means that the ways that people are accessing the web all over the world are changing, too.
In this talk, I talk about the different techniques coupled with few case studies on how to improve front-end performance.
From InfoSec World 2009, Josh Abraham (of Rapid7) and I did a talk on owning the browser and why it's completely a broken concept... if you loved the presentation here are the slides!
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/)
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...Katie Sylor-Miller
Raiders of the Fast Start: Frontend Performance Archeology
There are a lot of books, articles, and online tutorials out there with fantastic advice on how to make your websites performant. It all seems easy in theory, but applying best practices to real-world code is anything but straightforward. Diagnosing and fixing frontend performance issues on a large legacy codebase is like being an archaeologist excavating the remains of a lost civilization. You don’t know what you will find until you start digging!
Pick up your trowels and come along with Etsy’s Frontend Systems team as we become archaeologists digging into frontend performance on our large, legacy mobile codebase. I’ll share real-life lessons you can use to guide your own excavations into legacy code:
What tools and metrics we used to diagnose issues and track progress.
How we went beyond server-driven best practices to focus on the client.
Which fixes successfully increased conversion, and which didn’t.
Our work, like all good archaeology, went beyond artifacts and unearthed new insights into our culture. We at Etsy pride ourselves on our culture of performance, but, like all cultures, it needs to adapt and reinvent itself to account for changes to the landscape. Based on what we’ve learned, we are making the case for a new, organization-wide, frontend-focused performance culture that will solve the problems we face today.
Front End Optimization [Cloud Connect 2012]Strangeloop
From Hooman's presentation at the Cloud Performance Summit at Cloud Connect 2012:
Accelerating applications can mean different things to different people. In web applications, performance is impacted by everything from infrastructure to code to back-end processing to browser capabilities. This can get even more complicated in cloud environments. In this discussion, we'll focus on the issues surrounding the "front-end" performance of the application which includes all interactions between the browser and the app after the dynamic content (the base HTML) has been generated and delivered to the browser. We will discuss the major front-end performance pain points and some strategies for mitigating them (including hidden complications and gotchas), ultimately leading to a better perceived user experience.
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
Web sites can be fast and responsive once you understand the process web browsers use to load and run web pages. We'll look at using tools like WebPageTest to analyze and optimize web pages.
Making users happy is a goal that unifies everyone on the team. The key then is to establish metrics that reflect user happiness. In the world of performance, we haven’t always done a great job of this. Often, performance metrics track how our pages are built which might not be correlated with a joyous user experience, and we start optimizing our stack for the sake of optimizing our stack. Luckily, momentum is building around UX-centered metrics such as start render time, time-to-interact, and first meaningful paint. Steve Souders discusses these new metrics that help us build web apps that produce the fast, joyous experiences our users want.
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
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/)
Raiders of the Fast Start: Frontend Performance Archaeology - Performance.now...Katie Sylor-Miller
Raiders of the Fast Start: Frontend Performance Archeology
There are a lot of books, articles, and online tutorials out there with fantastic advice on how to make your websites performant. It all seems easy in theory, but applying best practices to real-world code is anything but straightforward. Diagnosing and fixing frontend performance issues on a large legacy codebase is like being an archaeologist excavating the remains of a lost civilization. You don’t know what you will find until you start digging!
Pick up your trowels and come along with Etsy’s Frontend Systems team as we become archaeologists digging into frontend performance on our large, legacy mobile codebase. I’ll share real-life lessons you can use to guide your own excavations into legacy code:
What tools and metrics we used to diagnose issues and track progress.
How we went beyond server-driven best practices to focus on the client.
Which fixes successfully increased conversion, and which didn’t.
Our work, like all good archaeology, went beyond artifacts and unearthed new insights into our culture. We at Etsy pride ourselves on our culture of performance, but, like all cultures, it needs to adapt and reinvent itself to account for changes to the landscape. Based on what we’ve learned, we are making the case for a new, organization-wide, frontend-focused performance culture that will solve the problems we face today.
Front End Optimization [Cloud Connect 2012]Strangeloop
From Hooman's presentation at the Cloud Performance Summit at Cloud Connect 2012:
Accelerating applications can mean different things to different people. In web applications, performance is impacted by everything from infrastructure to code to back-end processing to browser capabilities. This can get even more complicated in cloud environments. In this discussion, we'll focus on the issues surrounding the "front-end" performance of the application which includes all interactions between the browser and the app after the dynamic content (the base HTML) has been generated and delivered to the browser. We will discuss the major front-end performance pain points and some strategies for mitigating them (including hidden complications and gotchas), ultimately leading to a better perceived user experience.
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
Web sites can be fast and responsive once you understand the process web browsers use to load and run web pages. We'll look at using tools like WebPageTest to analyze and optimize web pages.
Making users happy is a goal that unifies everyone on the team. The key then is to establish metrics that reflect user happiness. In the world of performance, we haven’t always done a great job of this. Often, performance metrics track how our pages are built which might not be correlated with a joyous user experience, and we start optimizing our stack for the sake of optimizing our stack. Luckily, momentum is building around UX-centered metrics such as start render time, time-to-interact, and first meaningful paint. Steve Souders discusses these new metrics that help us build web apps that produce the fast, joyous experiences our users want.
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Administrivia: Golden Tips for Making JIRA HumAtlassian
JIRA is a powerful tool that can be used for many different things. Often the critical path to a successful deployment is configuring and administering the system properly. This session explores best practices in JIRA administration, with practical experiences from JIRA customer experts.
Customer Speaker: Joanna Thurmann of Polycom
Key Takeaways:
* General tips and tricks on administration
* Security, workflow and performance configurations
* Ideas for improving adoption and uptake
Presented at SCREENS 2013 in Toronto.
Details at fitc.ca/screens
In this talk, Digiflare lead iOS developer Justin Howlett will discuss the impact of performance on User Experience. Justin will discuss easy to implement platform agnostic techniques, technologies and libraries to improve your user experience through performance. Although most techniques and technologies are platform agnostic many of the case studies and examples will be presented in native Objective-C for iOS.
Educate 2017: Quick 'n Lazy: How we keep things speedy while staying out of y...Learnosity
Watch the video of this session: https://youtu.be/_mVwU2qjmUw?t=1s
Our code runs on your page so we have a responsibility not to hog the memory, bandwidth, and CPU cycles that you need to deliver the best experience to your users.
That’s why we aim to make our APIs the fastest part of any page or product.
In this session, we’ll look at some specific examples of how we keep things fast at all levels of our architecture by using only the resources that we need, when we need them. We’ll talk about how we detect performance issues, and some improvements we’d like to make in the future. We’ll also have some suggestions to help client developers get the best performance out of Learnosity’s products.
[Workshop] Analyzing Your Deliverables: Developing the Optimal Documentation ...Scott Abel
Presented by Nicki Bleiel at Documentation and Training LIfe Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company.
Other factors that can’t be ignored, such as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns will also be discussed, including:
Analyzing the Product
* Intended audience; delivery method (desktop, web application, etc.); competitor offerings; software development methodology. The UI as part of the Help system. Product Management expectations.
Identifying User Wants and Needs
* Preferences and expectations for information; work environment; knowledge and experience levels.
Ascertaining Internal Needs and Opportunities
* Working with Training, Support, and Marketing to reduce duplication and provide the user with consistent, useful information.
* Finding ways to incorporate information from other departments to improve documentation.
Accessing Deliverable Options
* What is the optimum mix for the product?
* The traditional: online help, manuals, embedded help, job aids, forums, web sites, technical support knowledgebases.
* Emerging trends: wikis, blogs, RSS feeds, software demonstrations, podcasts, and other collaborative tools. They can supplement and/or enhance the traditional. Or, they may be a better fit for internal knowledge management or marketing use.
Optimizing the Library
* Single-sourcing; best practices for structuring information; continuous publishing
Analyzing Your Deliverables: Developing the Optimal Documentation LibraryScott Abel
Presented Nicki Bleiel at Documentation and Training Life Sciences, June 23-26, 2008 in Indianapolis.
Documentation deliverables have evolved beyond manuals and online help in recent years, and with the emergence of Web 2.0, things are changing faster than ever. Technical communicators have many more options to enhance the user experience, and developing many of them provide the opportunity to work with other departments to find a more holistic approach to content development and delivery. But there is no one-size-fits-all set of solutions. This workshop will review the types of analysis you need to do to determine which deliverables are right for your project, your customer, and your company. Product analysis, user expectations and needs, internal needs, deliverable options, and optimizing your library will all be discussed; as well as translation needs, staff/time constraints, file size limitations, corporate image and control, and proprietary concerns.
This is a presentation that a UD colleague and I did at Villanova on March 30, 2009. We were asked to share our strategies and challenges in implementing Drupal as a campus-wide IT-hosted service.
A presentation about web standards and accessibility I gave to the ASIS&T group at Wayne State University.
Full Explanation:
http://wsuasist.blogspot.com/2009/03/web-standards-and-accessibility.html
Just In Time Scalability Agile Methods To Support Massive Growth PresentationLong Nguyen
IMVU is an online destination where adults and teens meet new people in 3D. IMVU won the 2008 Virtual Worlds Innovation Award and was also named a Rising Star in the 2008 Silicon Valley Technology Fast 50 program.
These are excerpts from the IMVU PDF presentation of their architecture which can be viewed or downloaded here.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
3. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
Sunday, February 8, 2009
4. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
• Toolbox
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
Sunday, February 8, 2009
5. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
Sunday, February 8, 2009
6. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
Sunday, February 8, 2009
7. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion • Bachelor thesis
• Hammerhead • JS at the bottom
• YSlow • CDN integration
• Jiffy
Sunday, February 8, 2009
8. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion • Bachelor thesis
• Hammerhead • JS at the bottom
• YSlow • CDN integration
• Jiffy • Questions?
Sunday, February 8, 2009
9. Why does it matter?
• Users care about performance!
• Amazon: 100 ms of extra load time caused a 1% drop in sales
• Google: 500 ms of extra load time caused 20% fewer searches
• Fast web sites are rewarded, slow web sites are punished
source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation
Sunday, February 8, 2009
10. What is it?
HTML Components
• End user response time
• 10-20%: the HTML document
(mix of back-end + front-end)
90%
• 80-90%: the components in the page
(front-end only)
• More effective to focus on front-end
10%
performance!
source: http://stevesouders.com/hpws/
Sunday, February 8, 2009
11. Terminology: page loading performance
page loading or front-end performance: the time it takes to
load a web page and all its components (CSS, JS, images …)
includes
page rendering or back-end performance: the time the server
needs to render a web page
Sunday, February 8, 2009
12. Why is it important to Drupal?
Sunday, February 8, 2009
13. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
Sunday, February 8, 2009
14. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
• Drupal’s numbers
• Big, high-traffic web sites
• Popular (>125,000 sites): optimization affects many sites
Sunday, February 8, 2009
15. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
• Drupal’s numbers
• Big, high-traffic web sites
• Popular (>125,000 sites): optimization affects many sites
• Drupal is international (thanks to i18n/L10n)
• International audiences: high network latencies
• Developing countries: low-speed connections
Sunday, February 8, 2009
16. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
Sunday, February 8, 2009
17. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
Sunday, February 8, 2009
18. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
3. YSlow: while improving page loading performance (detailed profiling)
Sunday, February 8, 2009
19. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
3. YSlow: while improving page loading performance (detailed profiling)
4. Jiffy: for measuring real-world page loading performance (big scale profiling)
Sunday, February 8, 2009
20. Toolbox: 1. Cuzillion
Tool for quickly constructing web pages to see how components interact
Sunday, February 8, 2009
25. Toolbox: 2. Hammerhead
• Firebug extension
• Makes it easier to stay aware of page loading performance while developing
Sunday, February 8, 2009
26. Toolbox: 3. YSlow
Checks how well a page implements 14 basic rules (actually 34)
Sunday, February 8, 2009
27. Toolbox: 4. Jiffy
• Raison d’être: 3rd-party • Jiffy, on the other hand:
performance monitoring
systems (Gomez, Keynote):
• Can measure every page load if desired
• Limited number of
measurement points
• Runs in the browser: it’s JS code
• Real-world browsers
• No real-world browsers
used
• Can measure anything
• Paid
• Open source!
Jiffy.mark(quot;slow3PStartquot;);
jQuery.getScript(‘http://slowsite.com/slow.js’);
Jiffy.measure(quot;slow3PDonequot;, quot;slow3PStartquot;);
Sunday, February 8, 2009
28. Terminology: CDN
A content delivery network (CDN) is a collection of web servers distributed
across multiple locations to deliver content more efficiently to users. The server
selected for delivering content to a specific user is typically based on a
measure of network proximity.
source: http://developer.yahoo.com/performance/rules.html#cdn
Sunday, February 8, 2009
29. Drupal + YSlow: things to keep in mind
Sunday, February 8, 2009
30. Drupal + YSlow: things to keep in mind
• YSlow score does not necessarily reflect real-world performance, e.g.:
• Using a CDN, but a slow or non-global one
Sunday, February 8, 2009
31. Drupal + YSlow: things to keep in mind
• YSlow score does not necessarily reflect real-world performance, e.g.:
• Using a CDN, but a slow or non-global one
• Striving to a perfect YSlow score is good
• Especially in Drupal core: affects many sites and developers
• But don’t forget to check real-world performance!
Sunday, February 8, 2009
32. Drupal + YSlow: The Good
• Conform to YSlow rules through:
Sunday, February 8, 2009
33. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
Sunday, February 8, 2009
34. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
• Very simple Drupal core configuration changes
Sunday, February 8, 2009
35. Drupal + YSlow: The Good
• Rule 1: Make fewer HTTP requests
• Remarks
• Problem: “dumb bundling” of CSS/JS files (see later)
• How to enable?
• Enable at admin/settings/performance
Sunday, February 8, 2009
37. Default CSS aggregation CSS/JS aggregation
Sunday, February 8, 2009
38. Drupal + YSlow: The Good
• Rule 3: Add an Expires header
• Rule 4: Gzip components
• Rule 5: Put CSS at the top
Sunday, February 8, 2009
39. Drupal + YSlow: The Good
• Rule 6: Put JS at the bottom
• Rule 7: Avoid CSS expressions
• Rule 8: Make JS and CSS external
Sunday, February 8, 2009
40. Drupal + YSlow: The Good
• Rule 9: Reduce DNS lookups
• Remarks
• External JS (e.g. Google Analytics) should be cached on your server
• How to enable?
• Proper setting in Google Analytics module
• Hacking other modules?
Sunday, February 8, 2009
42. Drupal + YSlow: The Good
• Rule 11: Avoid Redirects
• Rule 12: Remove Duplicate Scripts
Sunday, February 8, 2009
43. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
Sunday, February 8, 2009
44. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
Sunday, February 8, 2009
45. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
Sunday, February 8, 2009
46. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
• Web server configuration
Sunday, February 8, 2009
47. Drupal + YSlow: The Easy Fixes
• Rule 1: Make fewer HTTP requests
• How to fix?
• Intelligent bundling of CSS/JS files: Support file Cache module (Drupal 5
only)
Sunday, February 8, 2009
48. Drupal + YSlow: The Easy Fixes
• Rule 4: Gzip components
• How to fix?
• Apache 2: edit your .htacces/httpd.conf
AddOutputFilterByType DEFLATE text/css application/x-javascript
• Use a CDN
• Drupal 7: core patch?
Sunday, February 8, 2009
49. Drupal + YSlow: The Easy Fixes
• Rule 10: Minify JavaScript
• Remarks
• Use JSMIN, not Packer!
• How to fix?
• Javascript Aggregator module (Drupal 5 & 6)
Sunday, February 8, 2009
51. Drupal + YSlow: The Hard Problems
• Rule 2: Use a CDN
• The Tricky Thing
• Far future Expires headers are more effective, but require unique filenames
• How to fix?
• Drupal core patch: file_url()
• CDN integration module
Sunday, February 8, 2009
52. Drupal + YSlow: The Hard Problems
• Rule 6: Put JS at the bottom
• The Tricky Thing
• JS that affects the style of a web page cannot be at the bottom
• How to fix?
• Manual hacks :(
• Drupal core patch necessary to change default location (see later)
Sunday, February 8, 2009
53. Drupal + YSlow: The Hard Problems
• Rule 14: Make AJAX Cacheable
• Remarks
• Possible today, but structured approach would be better
• How to fix?
• Drupal 7 will support multiple rendering formats!
• Gzip-ability should be a follow-up patch
Sunday, February 8, 2009
54. Drupal + YSlow: recap
• Many things are already good out-of-the-box
• Easy fixes
• Intelligent bundling of CSS/JS
• Gzipping components
• JS minification
• Hard problems
• Using a CDN
• Putting JS at the bottom
• Make AJAX cacheable
Sunday, February 8, 2009
55. Other optimizations
• Image optimization! (PNG-8, PNG instead of GIF, progressive JPEG …)
• Prefetching (part of the HTML5 specification)
<link rel=quot;prefetchquot; href=quot;/images/big.jpegquot;>
• The 20 new rules (post- and pre-load components, flush the buffer early …)
•…
Sunday, February 8, 2009
56. Bachelor thesis
I’ll solve 2 of the 3 hard problems: CDN integration and JS at the bottom.
Hasselt University has allowed me to work in an open source fashion and all of
my work will therefor be available for everybody. Thanks!
My promotor will be Prof. dr. Wim Lamotte and I will be guided by Stijn Agten
and Maarten Wijnants.
Sunday, February 8, 2009
57. Bachelor thesis: JS at the bottom
• Not enough work/too easy for an entire bachelor thesis
• Will be a core patch
• Change the default location to “footer”
• Clear guidelines on how to separate “style JS” from “non-style JS”
Sunday, February 8, 2009
58. Bachelor thesis: CDN integration
• Plenty of work for a bachelor thesis
• 3 parts
1. Daemon for synchronization, written in Python (back-end)
2. Drupal core patch to unify generation of file URLs and allow to alter them
3. Drupal module for administration and reporting (front-end)
Sunday, February 8, 2009
59. Bachelor thesis: CDN integration
• Daemon goals
• Ability to use any CDN transparently (FTP, rsync, Amazon S3 …)
• Ability to mix CDNs and static file servers
• Post-processing: image optimization, CSS/JS compression … transcoding?
• Detect files instantly through file system event monitor (inotify on Linux)
• Other use cases: backup system, automatically sharing files within LAN …
Sunday, February 8, 2009
60. Bachelor thesis: collaborating companies
The following Drupal companies The following CDN companies
will be evaluating my work and will be providing their services
giving feedback. for free for testing purposes.
A big thanks
to all of them!
Sunday, February 8, 2009
61. Questions?
Relevant links:
• This presentation – along with relevant links – can be found online at
http://wimleers.com/talk/fosdem-2009
• You can track my bachelor thesis’ progress at
http://wimleers.com/tags/bachelor-thesis
• Questions & feedback are welcome! Contact me via
http://wimleers.com/contact
Sunday, February 8, 2009
Editor's Notes
Student at Hasselt University
Freelance Drupal developer
Intern at Mollom
Popularity numbers: d.o usage statistics
Conclusion: important for:
- Drupal project growth
- More Happy People
Create a simple test: the effect of an inline script between 2 images in different browsers.
Webkit: executes script, then displays images
Firefox: displays first image, executes script, displays second image
Notice how both images finish loading at the same time.
Notice how the second image finishes loading about 2 seconds after the first one.
I’ll only cover the 14 that were first published
- Apache logs => database (script on cron) => reports
- Mark (start timing) & measure (measure elapsed time) approach
- June 2008
- dumb bundling reduces the effectiveness of aggregation
script downloading? -> no other downloads are started, not even from other domain names
== blocks parallel downloads
- Packer:
* typically higher compression ratio, but:
* adds a decompression delay on every page load!
script downloading? -> no other downloads are started, not even from other domain names
== blocks parallel downloads