Page loading performance, also known as front-end performance, refers to how quickly a web page and all its components (CSS, JS, images) load. It is important for Drupal sites because users expect fast sites and Drupal powers many large, international sites. The document discusses tools for measuring performance like YSlow and Jiffy and provides an overview of optimizations that can be made to Drupal like enabling CSS/JS aggregation, leveraging a CDN, and putting JavaScript files at the bottom of pages. It also outlines challenges and potential solutions discussed in the author's bachelor thesis around CDN integration and relocating JavaScript.
Are you struggling to create a consistent user interface for your web app? Don't want to bring in too many expensive designers? Take a look at Bootstrap!
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comePromet Source
Grinnell College in Iowa had a website that wasn’t representing the school well, and an intranet system that had been hijacked by users to bypass the main site. When tasked with redesigning the site, Grinnell needed to differentiate itself from its peers, and bring users back. Grinnell boasts rigorous academics, an active campus, and fantastic facilities, but many schools can claim the same. One differentiator is that Grinnell celebrates the individual. Through its welcoming culture of self-governance and the ability to create your own curriculum, the college empowers students to carve their own way through the college experience. It is not the only school that allows a student to do this, though it is one of the few.
So we asked: how do we distinguish Grinnell's unique take on crafting an individual education from its peers? How do we show the activities and news happening on campus? How does Grinnell bring users back from the intranet? How do we make as many departments as possible happy with a full redesign? And lastly, how do we best use Drupal to make it all happen? We decided to demonstrate it with a website that allows users to customize their experience on the site. Learn how Grinnell College, Promet Source (the developers) and Rogue Element (the design firm) worked together to create a customizable website: how Rogue designed it, how Promet built it and how Grinnell planned to use it.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)darren_puscas
Slides from the Wordpress 101 workshop (morning session) at the Canadian Association of Labour Media Conference (CALM) in Hamilton, Ontario - May 26th, 2012
Are you struggling to create a consistent user interface for your web app? Don't want to bring in too many expensive designers? Take a look at Bootstrap!
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comePromet Source
Grinnell College in Iowa had a website that wasn’t representing the school well, and an intranet system that had been hijacked by users to bypass the main site. When tasked with redesigning the site, Grinnell needed to differentiate itself from its peers, and bring users back. Grinnell boasts rigorous academics, an active campus, and fantastic facilities, but many schools can claim the same. One differentiator is that Grinnell celebrates the individual. Through its welcoming culture of self-governance and the ability to create your own curriculum, the college empowers students to carve their own way through the college experience. It is not the only school that allows a student to do this, though it is one of the few.
So we asked: how do we distinguish Grinnell's unique take on crafting an individual education from its peers? How do we show the activities and news happening on campus? How does Grinnell bring users back from the intranet? How do we make as many departments as possible happy with a full redesign? And lastly, how do we best use Drupal to make it all happen? We decided to demonstrate it with a website that allows users to customize their experience on the site. Learn how Grinnell College, Promet Source (the developers) and Rogue Element (the design firm) worked together to create a customizable website: how Rogue designed it, how Promet built it and how Grinnell planned to use it.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)darren_puscas
Slides from the Wordpress 101 workshop (morning session) at the Canadian Association of Labour Media Conference (CALM) in Hamilton, Ontario - May 26th, 2012
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
HTML5 and CSS3: does now really mean now?Chris Mills
Code at http://people.opera.com/cmills/css3book/css3-html5-dnrmn.zip. The browser vendors love them! The browser fans and cutting edge designers are producing some really remarkable stuff, but what do HTML5 and CSS3 really mean for you, the pragmatic designer on the street? If you sidle up to one of those guys and whisper "but what about IE6 support", they are likely to slap you in the face, or run away with their hands clamped over their ears, yelling "la lala lala, I can't hear you." In this talk, Chris Mills will have a look at some of the new features of HTML5 and CSS3 - new semantics, video, media queries, rounded corners, web fonts, drop shadows and more. He will show real world examples, and then look at how they actually perform on those shady older browsers we are often called on to support. He will then look at strategies for providing support for those older browsers, including using JavaScript, fallbacks, and progressive enhancement.
I based my presention on the great "HTML5 for Web designers" by Jeremy Keith. Awesome and pragmatic book, the way I like it. Get your copy on: http://books.alistapart.com/products/html5-for-web-designers
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
In 2006 Simon wrote a successful book about learning CSS. Building the web wasn’t easy back then, but CSS was pretty basic. Simon also used to talk about systems a lot, but didn’t have many answers. Fast-forward to 2014 and everything has changed; that CSS book is both useless and wrong, and systems inform much of what we build. This talk will look at how the landscape changed for front-end designers, and how we must think more holistically about the scope of our projects. With practical examples he’ll explore the tools, methodologies and systems that reenergised him and helped make sense of the whole darned mess.
In this session Simon will share his considerable experience of managing projects; from the initial client meetings to getting sign-off on designs to finally going live, and all that comes inbetween.
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
Web Performance tuning presentation given at http://www.chippewavalleycodecamp.com/
Covers basic http flow, measuring performance, common changes to improve performance now, and several tools and techniques you can use now.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
HTML5 and CSS3: does now really mean now?Chris Mills
Code at http://people.opera.com/cmills/css3book/css3-html5-dnrmn.zip. The browser vendors love them! The browser fans and cutting edge designers are producing some really remarkable stuff, but what do HTML5 and CSS3 really mean for you, the pragmatic designer on the street? If you sidle up to one of those guys and whisper "but what about IE6 support", they are likely to slap you in the face, or run away with their hands clamped over their ears, yelling "la lala lala, I can't hear you." In this talk, Chris Mills will have a look at some of the new features of HTML5 and CSS3 - new semantics, video, media queries, rounded corners, web fonts, drop shadows and more. He will show real world examples, and then look at how they actually perform on those shady older browsers we are often called on to support. He will then look at strategies for providing support for those older browsers, including using JavaScript, fallbacks, and progressive enhancement.
I based my presention on the great "HTML5 for Web designers" by Jeremy Keith. Awesome and pragmatic book, the way I like it. Get your copy on: http://books.alistapart.com/products/html5-for-web-designers
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
In 2006 Simon wrote a successful book about learning CSS. Building the web wasn’t easy back then, but CSS was pretty basic. Simon also used to talk about systems a lot, but didn’t have many answers. Fast-forward to 2014 and everything has changed; that CSS book is both useless and wrong, and systems inform much of what we build. This talk will look at how the landscape changed for front-end designers, and how we must think more holistically about the scope of our projects. With practical examples he’ll explore the tools, methodologies and systems that reenergised him and helped make sense of the whole darned mess.
In this session Simon will share his considerable experience of managing projects; from the initial client meetings to getting sign-off on designs to finally going live, and all that comes inbetween.
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
Web Performance tuning presentation given at http://www.chippewavalleycodecamp.com/
Covers basic http flow, measuring performance, common changes to improve performance now, and several tools and techniques you can use now.
My Site is slow - Drupal Camp London 2013hernanibf
Drupal is a powerful and flexible tool to create web applications without building everything from scratch. This ability can drive developers to build complex websites without understanding what is Drupal doing behind the scenes.
The majority of Drupal performance talks mostly focus in aspects like infrastructure changes, caching strategies or comparisons between modules and architectures. Unfortunately when performance problems occur, development teams also follow strategies to replace different aspects of the platform looking only to standard aspects like slow queries without understanding and profiling the real problem.
The majority of times it is fundamental to measure and analyze what is the application is actually doing to understand te real problems. Drupal is a platform used by million of websites worlwide and its performance can in most cases be compared after measured.
In Acquia we do dozens of performance assessments per year, and even in most clients we find the same problems, often we find situations that only can be detected when measured and analized when looking to a profiler report.
In this session, I will explain how to detect performance problems looking to simple data, from logs to profiler data and providing some nice targets that can be analyzed to understand what is causing the uncommon bad performance of a site.
How Not to Be Conned by Your Drupal Vendor!pixelonion
Despite the title, this presentation aims to shed some lights to both clients & vendors on how to execute acceptable Drupal projects, focusing on asking the 10 questions discussed in the slides.
A walkthrough of various application performance tuning tools and a good workflow for where to start, from a presentation at WindyCityRails 2011 in Chicago, IL.
See the video, and more Web and Ruby/Rails Performance info at www.RailsPerformance.com
-John McCaffrey
Squeeze Maximum Performance From Your Joomla WebsiteSiteGround.com
Basic and advanced tips and tricks to optimize your Joomla website in order to achieve maximum performance - a presentation by Tenko Nikolov for JoomlaDay Chicago 2012.
Presentation at the NCTech4Good conference in Chapel Hill, NC on April 15, 2011. The presentation covers upgrading to Drupal 7 from Drupal 6 (or another system), and covers best practices, recommendations. Update.php and migrate module are both discussed.
Our presentation on Israel Rails Conference 2012. Vitaly talking about rails performance, how to measure, what to improve and just as much important - what not to improve
This PPT gives information about:
1. Install and Uninstall Modules
2. Module Management
3. Use of Default Modules
4. Why use cms
5. drupal Structure
6. Module
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Jay Hung
Convincing an organization that performance matters and is worth investing in is often a tough thing to sell. This was no different at Intuit, who operated many sites built in the pre “web standards” era. Then, one day, one test changed everything – an A/B comparison successfully demonstrated that faster page loads increased conversion and SEO. And the conversation quickly changed from “Not interested” to “How quickly can you make the rest of our pages faster?”
A performance team was formed, and optimization began across multiple properties in a phased approach with each release delivering incremental performance gains. As we iterated through the core performance principles, the team introduced additional techniques that led us to exceed our original performance goals. Techniques such as lazyloading, prefetching, smarter image optimization/spriting, and module rewrites enabled us to successfully shave off additional time.
This session will cover the steps that we took, lessons learned including what worked well or didn’t work well, as well as the performance improvements that were realized, and their impact on business metrics. Some of the topics include:
* How we went from 15s web pages to 2s web pages
* How combining CSS/JS files and image sprites had both positive as well as negative impact
* How lazy loading of resources and JavaScript rewrites improved our page render times (including our experiments with Control.js)
* How we addressed blocking as well as high-latency third-party components
* How we solved for issues/constraints arising from shared code across multiple sites
* How we optimized for user flows spanning multiple pages with positive results
* How automated benchmarking enabled us to continuously monitor our performance health
* How we succeeded in making “performance” a common theme among developers, marketers, and stakeholders
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJSSrijan Technologies
AngularJS is currently at the forefront of MVC (Model View Controller) frameworks for the web, and it makes it very simple to develop prototypes and web applications in it. But how do we ensure that the large scale applications we develop remain high performance, bug free and fast?
In this webinar, our speaker shared his learnings from developing various large scale AngularJS applications. He also shared how to create a maintainable project structure, and cover common performance bottlenecks and best practices to follow.
Watch complete webinar recording: http://youtu.be/b92Y77TExiA
The new Migrate module in Drupal 8 core is great for upgrading sites from Drupal 6 to Drupal 8. But it's useful for a lot more than just that! Migrate adds the power of any external tool to your content workflow.
Not every client is accustomed to using Drupal. Some clients might like Google Spreadsheets; others prefer Markdown files in version control. Using Migrate, you can let your clients use their preferred content building tools—even before you have a Drupal site ready for them! I'll talk about my experiences with several different Migrate-based workflows that we've used at Evolving Web.
There's already information out there about building migrations, but most of it focuses on very limited use cases: direct upgrades, or simple nodes. I'll cover many other bits and pieces you need for real-life migration projects, including:
* Hierarchical menus
* Paths and redirects
* Multilingual data
* Files and images
* Merging multiple migrations
* Writing custom migration sources and transformations
* Figuring out why your migration isn't working
Attendees with some PHP experience will get the most out of this talk—but many parts will be interesting to site builders and project managers as well.
Similar to Fosdem 2009 – improving drupal's page loading performance (20)
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
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.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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.
3. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
4. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
• Toolbox
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
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
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
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
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?
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
10. What is it?
• End user response time HTML Components
• 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/
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
13. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
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
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
17. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
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)
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)
20. Toolbox: 1. Cuzillion
Tool for quickly constructing web pages to see how components interact
21.
22.
23.
24.
25. Toolbox: 2. Hammerhead
• Firebug extension
• Makes it easier to stay aware of page loading performance while developing
26. Toolbox: 3. YSlow
Checks how well a page implements 14 basic rules (actually 34)
27. Toolbox: 4. Jiffy
• Raison d’être: 3rd-party • Jiffy, on the other hand:
performance monitoring
systems (Gomez, Keynote):
• Limited number of • Can measure every page load if desired
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("slow3PStart");
jQuery.getScript(‘http://slowsite.com/slow.js’);
Jiffy.measure("slow3PDone", "slow3PStart");
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
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
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!
33. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
34. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
• Very simple Drupal core configuration changes
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
38. Drupal + YSlow: The Good
• Rule 3: Add an Expires header
• Rule 4: Gzip components
• Rule 5: Put CSS at the top
39. Drupal + YSlow: The Good
• Rule 6: Put JS at the bottom
• Rule 7: Avoid CSS expressions
• Rule 8: Make JS and CSS external
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?
41.
42. Drupal + YSlow: The Good
• Rule 11: Avoid Redirects
• Rule 12: Remove Duplicate Scripts
43. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
44. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
45. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
46. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
• Web server configuration
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)
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?
49. Drupal + YSlow: The Easy Fixes
• Rule 10: Minify JavaScript
• Remarks
• Use JSMIN, not Packer!
• How to fix?
• Javascript Aggregator module (Drupal 5 & 6)
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
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)
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
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
55. Other optimizations
• Image optimization! (PNG-8, PNG instead of GIF, progressive JPEG …)
• Prefetching (part of the HTML5 specification)
<link rel="prefetch" href="/images/big.jpeg">
• The 20 new rules (post- and pre-load components, flush the buffer early …)
•…
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.
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”
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)
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 …
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!
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
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
Popularity numbers: d.o usage statistics
Conclusion: important for:
- Drupal project growth
- More Happy People
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&#x2019;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