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.
improving the performance of Rails web ApplicationsJohn McCaffrey
This presentation is the first in a series on Improving Rails application performance. This session covers the basic motivations and goals for improving performance, the best way to approach a performance assessment, and a review of the tools and techniques that will yield the best results. Tools covered include: Firebug, yslow, page speed, speed tracer, dom monster, request log analyzer, oink, rack bug, new relic rpm, rails metrics, showslow.org, msfast, webpagetest.org and gtmetrix.org.
The upcoming sessions will focus on:
Improving sql queries, and active record use
Improving general rails/ruby code
Improving the front-end
And a final presentation will cover how to be a more efficient and effective developer!
This series will be compressed into a best of session for the 2010 http://windycityRails.org conference
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
John McCaffrey gives a presentation on cloud tools for development. He discusses terminology related to hosting and deploying applications. Some hosting options he covers include self-hosting, Amazon Web Services, EngineYard, Heroku, and AppHarbor. John then demonstrates deploying applications to Heroku and monitoring tools. He finishes by discussing collaboration tools like email, chat, screen sharing, and code repositories on services like GitHub.
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
This document provides an overview of techniques for developing high performance web applications. It discusses why front-end performance matters, and outlines best practices for optimizing page load times, using responsive interfaces, loading and executing JavaScript efficiently, and accessing data. The presentation recommends tools for monitoring and improving performance, such as Firebug, Page Speed, and YSlow.
The document discusses optimizing web performance for mobile devices. It covers mobile web platforms and browsers, the importance of performance on mobile, tools for measuring performance, optimizing initial loading and above-the-fold content within 1 second, and maintaining responsiveness. The key recommendations are to measure on real devices, avoid redirects, reduce requests, load above-the-fold content quickly and defer the rest, and prioritize simplicity over complex designs and frameworks.
This document discusses how to avoid getting lost in the current JavaScript landscape. It begins by looking at modern web development trends like HTML5, CSS3, ES6, and expectations of fast page loads. It then examines traditional page lifecycles versus single page applications and various JavaScript frameworks. The document advocates for progressive enhancement and outlines strategies like "Hijax" and using the HTML5 History API to improve traditional approaches. It also discusses issues like code duplication, the benefits of isomorphic JavaScript, and tools for frontend development including Grunt, Gulp, asset bundlers, and test runners. It concludes by providing recommendations on technologies to adopt, consider, or stop using to develop with a progressive enhancement approach.
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.
improving the performance of Rails web ApplicationsJohn McCaffrey
This presentation is the first in a series on Improving Rails application performance. This session covers the basic motivations and goals for improving performance, the best way to approach a performance assessment, and a review of the tools and techniques that will yield the best results. Tools covered include: Firebug, yslow, page speed, speed tracer, dom monster, request log analyzer, oink, rack bug, new relic rpm, rails metrics, showslow.org, msfast, webpagetest.org and gtmetrix.org.
The upcoming sessions will focus on:
Improving sql queries, and active record use
Improving general rails/ruby code
Improving the front-end
And a final presentation will cover how to be a more efficient and effective developer!
This series will be compressed into a best of session for the 2010 http://windycityRails.org conference
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
John McCaffrey gives a presentation on cloud tools for development. He discusses terminology related to hosting and deploying applications. Some hosting options he covers include self-hosting, Amazon Web Services, EngineYard, Heroku, and AppHarbor. John then demonstrates deploying applications to Heroku and monitoring tools. He finishes by discussing collaboration tools like email, chat, screen sharing, and code repositories on services like GitHub.
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
This document provides an overview of techniques for developing high performance web applications. It discusses why front-end performance matters, and outlines best practices for optimizing page load times, using responsive interfaces, loading and executing JavaScript efficiently, and accessing data. The presentation recommends tools for monitoring and improving performance, such as Firebug, Page Speed, and YSlow.
The document discusses optimizing web performance for mobile devices. It covers mobile web platforms and browsers, the importance of performance on mobile, tools for measuring performance, optimizing initial loading and above-the-fold content within 1 second, and maintaining responsiveness. The key recommendations are to measure on real devices, avoid redirects, reduce requests, load above-the-fold content quickly and defer the rest, and prioritize simplicity over complex designs and frameworks.
This document discusses how to avoid getting lost in the current JavaScript landscape. It begins by looking at modern web development trends like HTML5, CSS3, ES6, and expectations of fast page loads. It then examines traditional page lifecycles versus single page applications and various JavaScript frameworks. The document advocates for progressive enhancement and outlines strategies like "Hijax" and using the HTML5 History API to improve traditional approaches. It also discusses issues like code duplication, the benefits of isomorphic JavaScript, and tools for frontend development including Grunt, Gulp, asset bundlers, and test runners. It concludes by providing recommendations on technologies to adopt, consider, or stop using to develop with a progressive enhancement approach.
This document provides an agenda and information for a class on databases, debugging, forms, and APIs. It includes exercises to set up debugging in VS Code and create a page that allows querying a database table. Key topics covered are debugging, generators, bundling, HTTP requests, parsing request bodies, asynchronous JavaScript, JSON, and RESTful APIs. Students are also instructed on requirements for their upcoming Project 3 presentations and Homework 11 assignment.
The document provides an overview of the modern JavaScript ecosystem. It discusses the main execution environments (browsers, Node.js, io.js), web servers (Express, Hapi, Koa), package managers (NPM, Bower), task runners (Grunt, Gulp, Broccoli), front-end frameworks (jQuery, Backbone, Angular, Ember, React), module systems (AMD, CommonJS, ES6 modules), and JavaScript flavors/transpilers (CoffeeScript, TypeScript, Dart, ES6). It also outlines the typical development workflow from writing code to compilation/packaging to deployment on a web server to usage in a browser.
An updated (and less technical) slide pack presented as a keynote at Mastering SAP Technologies 2013 in South Africa covering some of the lessons we learned implementing SAP Process Integration over the years.
Making the case for the consideration of network topologies on the performance of UI technologies, and presenting some sample measurements across traditional SAP GUI, WebDynpro for ABAP, and the UI5-based Fiori apps.
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteKristine Howard
Talk given at WordCamp Sydney on September 24, 2016.
The Web is an industry that thrives on the new… but what about building sites that last?
In 1996, I used my newly acquired HTML skills to build a fan site for my favourite author.
Twenty years later, the site – roalddahlfans.com – is still alive and kicking.
I’ll trace the development of the site over the years, which mirrors both my own career journey as a developer and the trajectory of the web as a whole.
I’ll also talk about the challenges I faced during my recent 6-month project to convert the whole site – nearly 1500 pages – to WordPress, dragging it into the 21st century at last.
10 Things You Can Do to Speed Up Your Web App TodayChris Love
Web Performance is a serious issues these days. 80% of web performance issues are in the client. Many developers either do not realize what they are leaving on the table and how that affects the success of their application. These are 10 things any web developer can do in about 30-60 minutes to drastically increase page load times and thus increase the application's profitability.
Creating scalable web sites that can handle many simultaneous requests and still provide fast experience for each user is hard. Historically, the industry was not differentiating Scalability and Performance, but with emergence of front-end engineering, new field of Web Performance Optimization was born and it became critical to approach them separately. Sergey Chernyshev will compare these two directions of web engineering and describe the differences between them, he will also cover current performance trends and describe different approaches to take in order to measure and analyze Web Performance in comparison to traditional methods that are successfully used to test scalability of web systems.
This document discusses various techniques for improving Rails application performance, including reducing roundtrips through CSS sprites and data URIs, using tools like Firebug and NewRelic to diagnose issues, avoiding N+1 queries, and leveraging caching, monitoring, and scaling. It also briefly mentions plugins like Bullet and tools like RubyProf that can help optimize applications.
The Dawson Way of Doing Things: A Study of Our Path Using WordPressJonathan Perlman
Dawson College in Montreal, Quebec, Canada with 10,000+ students and 1,000+ faculty and staff has adopted WordPress as our primary web publishing platform. We’ve mostly had success, but we’ve also had our share of failures and growing pains. In this case study, I’m going to talk about how we started out with WordPress in 2010, migrated our main website a few years later to a multi-site install and how it all evolved to what we have today. Since then, we’ve adopted the “lean and mean” mantra to building sites, while making them easy to update. This case study will showcase the front and back-ends of our higher profile sites to show how we achieved our goals. We’ll also explain how we manage expectations, do our development, choose plugins and tools, and which themes we’ve come to rely on.
Single Page Applications or SPAs are a hot topic today, however most developers feel lost. We are going to explore the basic concepts of a SPA, go over a few gotchas and traps and cover some best practices. This is not a talk about a specific framework, but more of a breakdown of how a SPA is composed, many key working concepts and some techniques you should employ for a successful modern web application.
This document discusses tools and techniques for optimizing Ruby performance. It begins by looking at common expensive tasks like database operations, network access, and inefficient algorithms. It then discusses tools for benchmarking and profiling Ruby code like Benchmark, benchmark-ips, and stackprof. The document provides examples of optimizing ActiveRecord queries and using caching and memoization. It also discusses optimizing the environment through server, database, and caching configuration. Finally, it notes that in some CPU-intensive or async tasks, Ruby may not be the best tool.
This document describes a web cache deception attack where an attacker can exploit how web servers and caching mechanisms handle requests for non-existent files. Specifically, if a request is made for a page plus a non-existent file extension, like http://www.example.com/account.php/stylesheet.css, some systems will return the content of the page rather than a 404. This allows an authenticated user's private page to be cached and then accessed by an attacker. The document provides examples of frameworks like Django and servers like IIS that can be exploited this way. It also discusses how caching services like Cloudflare have addressed this issue. Mitigations are proposed like only caching files if headers allow it and returning 302/404
This document provides an agenda for a class on databases and asynchronous JavaScript. It includes presentations of Project 2, a review of asynchronous concepts like callbacks, promises, and async/await. It also covers differences between SQL and NoSQL databases, examples of using SQL and MongoDB, and an introduction to using a Postgres database on Bluemix. Homework involves SQL queries on a Stack Overflow database and students are notified to begin working on Project 3, which will involve a database backend and chatbot.
Flexible UI Components for a Multi-Framework WorldKevin Ball
Slides from Flexible UI Components talk given at Web Unleashed 2017
Build UI components that work seamlessly in every JavaScript Framework.
Your core UI elements shouldn’t have to be different for your marketing site than they are in your application just because the former uses jQuery while the latter is built using Angular or React.
Lessons learned from work on ZURB Foundation 7.
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
The document discusses integration hell, which can occur when developing software if changes and deployments happen too frequently without proper processes. It provides details on a real-world project with 6 developers, over 900 files, and a deployment every 43 minutes on average. Recommendations are made around using tools like Git, Jenkins, virtualenv, and others to help manage the integration process and spot problems early.
The document summarizes the New York Times' use of WordPress as a backend platform to power their live coverage and blogging needs. Some key points:
- WordPress is used to power live blogs, events, and coverage through custom post types and a Backbone admin interface that produces JSON content for front-end display.
- Migrating to the NYT5 project required refactoring WordPress to work within the new PHP framework and routing system rather than being the sole application.
- Over time the "Blogs" team transitioned to focus on WordPress and supporting interactive needs, developing new live coverage tools and responsive frontend implementations.
- REST API usage and custom endpoints were built
This document discusses various tools and approaches for automating web application testing. It covers infrastructure options like using boxes, VMs, and cloud services. It also discusses frameworks for test automation including Windmill, Selenium, WatiR, and others. The document provides examples of continuous integration tools like Hudson and ways to approach test coverage, maintenance of the automation environment, and expanding the infrastructure over time. It emphasizes that test automation can help development and QA teams while increasing reliability.
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
This class covers reviewing Git and server commands, Bootstrap tables, and introduces some new JavaScript topics like variables, user input/output, and variable scope. The homework assignment asks students to update their pizza ordering application to allow items to be typed in and generate a receipt with columns for item details and calculated totals. Key topics reviewed include Git commands like log, blame, checkout, Bootstrap tables and responsive design, JavaScript variables, parsing user input, and variable scope.
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.
Make Drupal Run Fast - increase page load speedAndy Kucharski
What does it mean when someone says “My Site is slow now”? What is page speed? How do you measure it? How can you make it faster? We’ll try to answer these questions, provide you with a set of tools to use and explain how this relates to your server load.
We will cover:
- What is page load speed? – Tools used to measure performance of your pages and site – Six Key Improvements to make Drupal “run fast”
++ Performance Module settings and how they work
++ Caching – biggest gainer and how to implement Boost
++ Other quick hits: off loading search, tweaking settings & why running crons is important
++ Ask your host about APC and how to make sure its set up correctly
++ Dare we look at the database? Easy changes that will help a lot!
- Monitoring Best practices – what to set up to make sure you know what is going on with your server – What if you get slashdoted? Recommendation on how to quickly take cover from a rhino.
This document provides an agenda and information for a class on databases, debugging, forms, and APIs. It includes exercises to set up debugging in VS Code and create a page that allows querying a database table. Key topics covered are debugging, generators, bundling, HTTP requests, parsing request bodies, asynchronous JavaScript, JSON, and RESTful APIs. Students are also instructed on requirements for their upcoming Project 3 presentations and Homework 11 assignment.
The document provides an overview of the modern JavaScript ecosystem. It discusses the main execution environments (browsers, Node.js, io.js), web servers (Express, Hapi, Koa), package managers (NPM, Bower), task runners (Grunt, Gulp, Broccoli), front-end frameworks (jQuery, Backbone, Angular, Ember, React), module systems (AMD, CommonJS, ES6 modules), and JavaScript flavors/transpilers (CoffeeScript, TypeScript, Dart, ES6). It also outlines the typical development workflow from writing code to compilation/packaging to deployment on a web server to usage in a browser.
An updated (and less technical) slide pack presented as a keynote at Mastering SAP Technologies 2013 in South Africa covering some of the lessons we learned implementing SAP Process Integration over the years.
Making the case for the consideration of network topologies on the performance of UI technologies, and presenting some sample measurements across traditional SAP GUI, WebDynpro for ABAP, and the UI5-based Fiori apps.
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteKristine Howard
Talk given at WordCamp Sydney on September 24, 2016.
The Web is an industry that thrives on the new… but what about building sites that last?
In 1996, I used my newly acquired HTML skills to build a fan site for my favourite author.
Twenty years later, the site – roalddahlfans.com – is still alive and kicking.
I’ll trace the development of the site over the years, which mirrors both my own career journey as a developer and the trajectory of the web as a whole.
I’ll also talk about the challenges I faced during my recent 6-month project to convert the whole site – nearly 1500 pages – to WordPress, dragging it into the 21st century at last.
10 Things You Can Do to Speed Up Your Web App TodayChris Love
Web Performance is a serious issues these days. 80% of web performance issues are in the client. Many developers either do not realize what they are leaving on the table and how that affects the success of their application. These are 10 things any web developer can do in about 30-60 minutes to drastically increase page load times and thus increase the application's profitability.
Creating scalable web sites that can handle many simultaneous requests and still provide fast experience for each user is hard. Historically, the industry was not differentiating Scalability and Performance, but with emergence of front-end engineering, new field of Web Performance Optimization was born and it became critical to approach them separately. Sergey Chernyshev will compare these two directions of web engineering and describe the differences between them, he will also cover current performance trends and describe different approaches to take in order to measure and analyze Web Performance in comparison to traditional methods that are successfully used to test scalability of web systems.
This document discusses various techniques for improving Rails application performance, including reducing roundtrips through CSS sprites and data URIs, using tools like Firebug and NewRelic to diagnose issues, avoiding N+1 queries, and leveraging caching, monitoring, and scaling. It also briefly mentions plugins like Bullet and tools like RubyProf that can help optimize applications.
The Dawson Way of Doing Things: A Study of Our Path Using WordPressJonathan Perlman
Dawson College in Montreal, Quebec, Canada with 10,000+ students and 1,000+ faculty and staff has adopted WordPress as our primary web publishing platform. We’ve mostly had success, but we’ve also had our share of failures and growing pains. In this case study, I’m going to talk about how we started out with WordPress in 2010, migrated our main website a few years later to a multi-site install and how it all evolved to what we have today. Since then, we’ve adopted the “lean and mean” mantra to building sites, while making them easy to update. This case study will showcase the front and back-ends of our higher profile sites to show how we achieved our goals. We’ll also explain how we manage expectations, do our development, choose plugins and tools, and which themes we’ve come to rely on.
Single Page Applications or SPAs are a hot topic today, however most developers feel lost. We are going to explore the basic concepts of a SPA, go over a few gotchas and traps and cover some best practices. This is not a talk about a specific framework, but more of a breakdown of how a SPA is composed, many key working concepts and some techniques you should employ for a successful modern web application.
This document discusses tools and techniques for optimizing Ruby performance. It begins by looking at common expensive tasks like database operations, network access, and inefficient algorithms. It then discusses tools for benchmarking and profiling Ruby code like Benchmark, benchmark-ips, and stackprof. The document provides examples of optimizing ActiveRecord queries and using caching and memoization. It also discusses optimizing the environment through server, database, and caching configuration. Finally, it notes that in some CPU-intensive or async tasks, Ruby may not be the best tool.
This document describes a web cache deception attack where an attacker can exploit how web servers and caching mechanisms handle requests for non-existent files. Specifically, if a request is made for a page plus a non-existent file extension, like http://www.example.com/account.php/stylesheet.css, some systems will return the content of the page rather than a 404. This allows an authenticated user's private page to be cached and then accessed by an attacker. The document provides examples of frameworks like Django and servers like IIS that can be exploited this way. It also discusses how caching services like Cloudflare have addressed this issue. Mitigations are proposed like only caching files if headers allow it and returning 302/404
This document provides an agenda for a class on databases and asynchronous JavaScript. It includes presentations of Project 2, a review of asynchronous concepts like callbacks, promises, and async/await. It also covers differences between SQL and NoSQL databases, examples of using SQL and MongoDB, and an introduction to using a Postgres database on Bluemix. Homework involves SQL queries on a Stack Overflow database and students are notified to begin working on Project 3, which will involve a database backend and chatbot.
Flexible UI Components for a Multi-Framework WorldKevin Ball
Slides from Flexible UI Components talk given at Web Unleashed 2017
Build UI components that work seamlessly in every JavaScript Framework.
Your core UI elements shouldn’t have to be different for your marketing site than they are in your application just because the former uses jQuery while the latter is built using Angular or React.
Lessons learned from work on ZURB Foundation 7.
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
The document discusses integration hell, which can occur when developing software if changes and deployments happen too frequently without proper processes. It provides details on a real-world project with 6 developers, over 900 files, and a deployment every 43 minutes on average. Recommendations are made around using tools like Git, Jenkins, virtualenv, and others to help manage the integration process and spot problems early.
The document summarizes the New York Times' use of WordPress as a backend platform to power their live coverage and blogging needs. Some key points:
- WordPress is used to power live blogs, events, and coverage through custom post types and a Backbone admin interface that produces JSON content for front-end display.
- Migrating to the NYT5 project required refactoring WordPress to work within the new PHP framework and routing system rather than being the sole application.
- Over time the "Blogs" team transitioned to focus on WordPress and supporting interactive needs, developing new live coverage tools and responsive frontend implementations.
- REST API usage and custom endpoints were built
This document discusses various tools and approaches for automating web application testing. It covers infrastructure options like using boxes, VMs, and cloud services. It also discusses frameworks for test automation including Windmill, Selenium, WatiR, and others. The document provides examples of continuous integration tools like Hudson and ways to approach test coverage, maintenance of the automation environment, and expanding the infrastructure over time. It emphasizes that test automation can help development and QA teams while increasing reliability.
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
This class covers reviewing Git and server commands, Bootstrap tables, and introduces some new JavaScript topics like variables, user input/output, and variable scope. The homework assignment asks students to update their pizza ordering application to allow items to be typed in and generate a receipt with columns for item details and calculated totals. Key topics reviewed include Git commands like log, blame, checkout, Bootstrap tables and responsive design, JavaScript variables, parsing user input, and variable scope.
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.
Make Drupal Run Fast - increase page load speedAndy Kucharski
What does it mean when someone says “My Site is slow now”? What is page speed? How do you measure it? How can you make it faster? We’ll try to answer these questions, provide you with a set of tools to use and explain how this relates to your server load.
We will cover:
- What is page load speed? – Tools used to measure performance of your pages and site – Six Key Improvements to make Drupal “run fast”
++ Performance Module settings and how they work
++ Caching – biggest gainer and how to implement Boost
++ Other quick hits: off loading search, tweaking settings & why running crons is important
++ Ask your host about APC and how to make sure its set up correctly
++ Dare we look at the database? Easy changes that will help a lot!
- Monitoring Best practices – what to set up to make sure you know what is going on with your server – What if you get slashdoted? Recommendation on how to quickly take cover from a rhino.
Magento sites need optimization to load fast and provide a good user experience. Speeding up a site increases sales and improves SEO. Factors that impact load time include network transfers and the resource-intensive nature of Magento. Benchmarking tools like APDEX, Funkload, Yslow and Pagespeed help measure performance and set goals, such as loading the homepage in under 1.5 seconds. Architectures must be sized properly and include techniques like splitting front and back ends, enabling caching, and using a CDN. The Nitrogento extension automates optimizations like blocking caching, sprite generation, and asset minification to significantly improve performance.
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
I gave this talk on 4/27/11 at the Boston PHP Meetup Group. It covers both server side and client side optimizations, as well as monitoring tools and techniques.
When addressing website performance issues, developers typically jump to conclusions, focusing on the perceived causes rather than uncovering the real causes through research.
Mitchel Sellers will show you how to approach website performance issues with a level of consistency that ensures they're properly identified and resolved so you'll avoid jumping to conclusions in the future.
You can watch the webinar recording here:
https://www.postsharp.net/documentation/video?id=190066128
2019 StartIT - Boosting your performance with BlackfireMarko Mitranić
A workshop held in StartIT as part of Catena Media learning sessions.
We aim to dispel the notion that large PHP applications tend to be sluggish, resource-intensive and slow compared to what the likes of Python, Erlang or even Node can do. The issue is not with optimising PHP internals - it's the lack of proper introspection tools and getting them into our every day workflow that counts! In this workshop we will talk about our struggles with whipping PHP Applications into shape, as well as work together on some of the more interesting examples of CPU or IO drain.
MeasureWorks - Why people hate to wait for your website to load (and how to f...MeasureWorks
My slides from DrupalJam 2014... About why users abandon your website and best practices to align content and speed to create a fast user experience, and continue to keep it aligned for every release
This document discusses web performance optimization and provides tips to improve performance. It emphasizes that performance is important for user experience, search engine optimization, conversion rates, and costs. It outlines common causes of performance issues like round-trip times, payload sizes, browser rendering delays, and inefficient JavaScript. Specific recommendations are given to optimize images, stylesheets, scripts, and browser rendering through techniques like compression, caching, deferred loading, and efficient coding practices. A variety of tools for measuring and improving performance are also listed.
Shopzilla redesigned their architecture to improve performance and scalability. The new design simplified layers, utilized caching extensively, and applied best practices for front-end performance. This led to significant business benefits including a 7-12% increase in conversion rates, 8-120% increase in search engine sessions, and a 225% increase in development velocity. Performance testing was a key part of the new approach.
This document provides information on improving Drupal performance through various techniques including performance testing, caching, optimizing database and server configurations, using tools like Varnish, load balancers, and CDNs, and addressing inefficient code. It also discusses a case study of using scalable cloud hosting and caching strategies to handle peak traffic for a site during major awards events.
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
The document discusses Django, an open-source web framework for Python. It highlights how Django can shorten development time for web applications by automating common tasks. It provides examples of how Django handles data modeling, views, templates, and other features out of the box. The document also lists many successful websites built with Django that demonstrate its performance, scalability, and popularity in the developer community.
Web Performance & You - HighEdWeb Arkansas VersionDave Olsen
Today, a web page can be delivered to a desktop computer, a television, or a handheld device like a tablet or a phone. While a technique like responsive design helps ensure that our web sites look good across that spectrum of screen sizes we may forget our web sites should also be able to perform equally well across that same spectrum. While more and more of our users are shifting their Internet usage to these more varied platforms and connection speeds our development practices might not be keeping up.In this session we’ll review why optimizing web performance should be an important step in the development of responsive websites. We’ll look at the tools that can help you understand and measure the performance of those sites as well as discuss front-end and server-side techniques that can be used to help you improve their performance. Finally, since the best way to test your site is to have real devices in hand, we’ll share “lessons learned” so you can set-up your own device lab similar to what we have at West Virginia University.This presentation builds upon Dave’s “Optimization for Mobile” chapter in Smashing Magazine’s “The Mobile Book.”
This document introduces and summarizes Django, an open-source web framework written in Python. It highlights key features of Django, including its automated administration interface, object-relational mapper (ORM), generic views, forms, URL configuration, templates, internationalization support, and built-in user authentication. The document also discusses how Django aims to minimize the time it takes to develop software through automation, reusable apps, and other features. Examples are provided of large sites built with Django to demonstrate its performance and scalability.
The document discusses techniques for improving web page performance, including making fewer HTTP requests through image maps, CSS sprites, inline images, and combined scripts and stylesheets. It also covers using a content delivery network, adding expiration headers, CSS/JavaScript optimization, parallel downloads, cookies, browser caching, and more. Case studies and experiments demonstrate the impact of these techniques on major websites. The goal is to help web developers optimize front-end performance.
Mobile User Experience:Auto Drive through Performance MetricsAndreas Grabner
Believe it or not - 85% of mobile apps are removed after first usage! In this presentation - given at the APM Meetup in Singapore in April 2015 - I talked about the challenges, best practices and especially metrics to avoid this situation.
Key Points of the Presentation
The two key trends "Internet of Things" and "DevOps" play a big role in our life when we talk about User Experience and especially mobile user experience. In this presentation I tell you what metrics to use to make sure you deliver your ideas faster to your mobile end users but also ensuring the right quality and user experience so that your users stay loyal and dont delete the mobile app after first usage.
The document discusses the importance of front-end performance optimization for web pages. It provides 14 rules for optimizing front-end performance, including minimizing HTTP requests, using a content delivery network, gzipping components, and others. Case studies show front-end optimizations can yield 40-50% performance improvements. Research found the percentage of users with empty caches is higher than expected, so pages should be optimized for both primed and empty caches.
Our application got popular and now breaks under load. The document discusses common issues that cause applications to break as user load increases, such as overuse of shared scopes, inefficient database queries, and slow client-side performance. It provides examples of better approaches and techniques to optimize performance, such as using distributed caching, improving query efficiency through joins, compressing assets, and prioritizing critical CSS and JavaScript.
Similar to Windy cityrails performance_tuning (20)
The document contains data in bar and pie charts, with the bar chart showing orange at 100, blue at 76, and green at 35, and the pie chart showing data points of 30, 70, and 11. It also mentions a nice beach.
A Taste of TDD: The basics of TDD, why it is hard and how to do it betterJohn McCaffrey
A Taste of TDD: Basic overview of Agile Testing, TDD in practice, Pros/Cons of Test Driven Development, Recent TDD Controversey (DHH, Kent Beck, Martin Fowler), and some strategies for doing it well.
This is a lead in to a full Agile Workshop on Scrum/XP, TDD, and Pairing
Becoming a more Productive Rails DeveloperJohn McCaffrey
Tips and tricks for how to accelerate your technical learning, take better notes, search in the right places, get help faster, solidify your understanding and hold on to what you've learned.
LeanStartup:Research is cheaper than developmentJohn McCaffrey
The document discusses the importance of conducting thorough research before beginning development on a new project. It argues that research is cheaper than development and can help define the problem, understand existing terminology and solutions, identify target customers, and find market trends. Both primary and secondary research methods are covered, including interviews, online searches, social bookmarking, and polling forums. The presentation provides tips for creating a project profile and researching problems, customers, influencers, and monitoring competitors. It emphasizes gathering useful data and testing hypotheses before taking action.
Becoming a more productive Rails DeveloperJohn McCaffrey
A presentation by John McCaffrey of RailsPerformance.com on how to manage technical information, ask technical questions, expand Ruby and Rails knowledge, and work on interesting side projects for open source, non-profits or as a freelancer
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
(reposting with clearer title)
Performance tuning presentation from WindyCityRails 2010.
Why performance matters
The right way to approach it
Front end testing tools
Automated testing tools
Common problems and the ways to solve them in Rails
Rails specific tools
bullet
slim_scrooge
rack bug
request log analyzer
rails indexes
PDF Generation in Rails with Prawn and Prawn-to: John McCaffreyJohn McCaffrey
breakdown of the most commonly used pdf libraries in rails projects,and an in depth review of prawn
example pdfs and code can be seen at prawn.heroku.com
More info at www.RailsPerformance.com
Cassandra to ScyllaDB: Technical Comparison and the Path to SuccessScyllaDB
What can you expect when migrating from Cassandra to ScyllaDB? This session provides a jumpstart based on what we’ve learned from working with your peers across hundreds of use cases. Discover how ScyllaDB’s architecture, capabilities, and performance compares to Cassandra’s. Then, hear about your Cassandra to ScyllaDB migration options and practical strategies for success, including our top do’s and don’ts.
How to Optimize Call Monitoring: Automate QA and Elevate Customer ExperienceAggregage
The traditional method of manual call monitoring is no longer cutting it in today's fast-paced call center environment. Join this webinar where industry experts Angie Kronlage and April Wiita from Working Solutions will explore the power of automation to revolutionize outdated call review processes!
Move Auth, Policy, and Resilience to the PlatformChristian Posta
Developer's time is the most crucial resource in an enterprise IT organization. Too much time is spent on undifferentiated heavy lifting and in the world of APIs and microservices much of that is spent on non-functional, cross-cutting networking requirements like security, observability, and resilience.
As organizations reconcile their DevOps practices into Platform Engineering, tools like Istio help alleviate developer pain. In this talk we dig into what that pain looks like, how much it costs, and how Istio has solved these concerns by examining three real-life use cases. As this space continues to emerge, and innovation has not slowed, we will also discuss the recently announced Istio sidecar-less mode which significantly reduces the hurdles to adopt Istio within Kubernetes or outside Kubernetes.
Dev Dives: Mining your data with AI-powered Continuous DiscoveryUiPathCommunity
Want to learn how AI and Continuous Discovery can uncover impactful automation opportunities? Watch this webinar to find out more about UiPath Discovery products!
Watch this session and:
👉 See the power of UiPath Discovery products, including Process Mining, Task Mining, Communications Mining, and Automation Hub
👉 Watch the demo of how to leverage system data, desktop data, or unstructured communications data to gain deeper understanding of existing processes
👉 Learn how you can benefit from each of the discovery products as an Automation Developer
🗣 Speakers:
Jyoti Raghav, Principal Technical Enablement Engineer @UiPath
Anja le Clercq, Principal Technical Enablement Engineer @UiPath
⏩ Register for our upcoming Dev Dives July session: Boosting Tester Productivity with Coded Automation and Autopilot™
👉 Link: https://bit.ly/Dev_Dives_July
This session was streamed live on June 27, 2024.
Check out all our upcoming Dev Dives 2024 sessions at:
🚩 https://bit.ly/Dev_Dives_2024
Brightwell ILC Futures workshop David Sinclair presentationILC- UK
As part of our futures focused project with Brightwell we organised a workshop involving thought leaders and experts which was held in April 2024. Introducing the session David Sinclair gave the attached presentation.
For the project we want to:
- explore how technology and innovation will drive the way we live
- look at how we ourselves will change e.g families; digital exclusion
What we then want to do is use this to highlight how services in the future may need to adapt.
e.g. If we are all online in 20 years, will we need to offer telephone-based services. And if we aren’t offering telephone services what will the alternative be?
Multimodal Retrieval Augmented Generation (RAG) with MilvusZilliz
We've seen an influx of powerful multimodal capabilities in many LLMs. In this talk, we'll vectorize a dataset of images and texts into the same embedding space, store them in Milvus, retrieve all relevant data using multilingual texts and/or images and input multimodal data as context into GPT-4o.
Metadata Lakes for Next-Gen AI/ML - DatastratoZilliz
As data catalogs evolve to meet the growing and new demands of high-velocity, unstructured data, we see them taking a new shape as an emergent and flexible way to activate metadata for multiple uses. This talk discusses modern uses of metadata at the infrastructure level for AI-enablement in RAG pipelines in response to the new demands of the ecosystem. We will also discuss Apache (incubating) Gravitino and its open source-first approach to data cataloging across multi-cloud and geo-distributed architectures.
What is an RPA CoE? Session 4 – CoE ScalingDianaGray10
How to scale a COE to meet organizational missions.
Topics covered:
• What is the original focal area?
• How to expand the COE globally.
• Is a centralized or decentralized model better for scaling?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Leveraging AI for Software Developer Productivity.pptxpetabridge
Supercharge your software development productivity with our latest webinar! Discover the powerful capabilities of AI tools like GitHub Copilot and ChatGPT 4.X. We'll show you how these tools can automate tedious tasks, generate complete syntax, and enhance code documentation and debugging.
In this talk, you'll learn how to:
- Efficiently create GitHub Actions scripts
- Convert shell scripts
- Develop Roslyn Analyzers
- Visualize code with Mermaid diagrams
And these are just a few examples from a vast universe of possibilities!
Packed with practical examples and demos, this presentation offers invaluable insights into optimizing your development process. Don't miss the opportunity to improve your coding efficiency and productivity with AI-driven solutions.
2. John McCaffrey: Its all about me Doing Rails since 2007 3rd time presenting at WindyCityRails 2008: Advanced Firebug and JS unit testing 2009: PDF Generation in Rails 2010: Rails Performance Tuning Addicted to Performance Tuning railsperformance.blogspot.com Feedback: spkr8.com/t/4413 Or bit.ly/PerfR8 @J_McCaffrey [email_address] (the slides will be available, with tons of extra references)
3. What are we gonna cover? Performance touches a lot of layers We have a very diverse audience
4. Measuring Page Load Fixing page load problems Analyzing Server Performance Database issues Ruby issues Q&A Starting off on the right foot
5. It all started... def organization_branches get_organizations .flatten.uniq.select{|org| org.children.size > 0} end def organization_leaves get_organizations .flatten.uniq.select{|org| org.children.size == 0} end def load_organizations branches = current_user .organization_branches leaves = current_user .organization_leaves @branches = branches.to_json(: only => [:id, :name]) @leaves = leaves.to_json(: only => [:id, :name]) @organizations = @criteria .branch ? leaves.collect {|o| [ o.name.titleize, o.id ] }.sort : branches.collect {|o| [ o.name.titleize, o.id ] }.sort end
6. def organization_branches get_organizations .flatten.uniq.select{|org| org.children.size > 0} end def organization_leaves get_organizations .flatten.uniq.select{|org| org.children.size == 0} end def load_organizations branches = current_user .organization_branches leaves = current_user .organization_leaves @branches = branches.to_json(: only => [:id, :name]) @leaves = leaves.to_json(: only => [:id, :name]) @organizations = @criteria .branch ? leaves.collect {|o| [ o.name.titleize, o.id ] }.sort : branches.collect {|o| [ o.name.titleize, o.id ] }.sort end It all started... 2811 queries! Down to 17!!
7. And then... Invoicing issue: If a customer resubmits an order with 2 years, they should be charged $9 but were only being charged $4.50 Do people ever calculate the ROI on software projects? 53626 * $4.50 = $241,317 (just in the last year)
8. Our theme of the day: Leverage Multiplying the power of your efforts, to achieve the greatest value
10. Performance and Business metrics: Shopzilla.com http://www.phpied.com/the-performance-business-pitch/ Went from 6 sec down to 1.2sec
11. Fred Wilson: Speed is the most important feature 10 Golden Principles of Successful Web Apps Fred Wilson, Venture Capitalist www.avc.com Speed Instant Utility Software is media Less is More Make it programmable Make it personal Make it RESTful Discoverability Clean Playful
13. Give yourself a fighting chance, make a plan Alois Reitbauer, dynatrace Anti-patterns Thinking Scalability something you just sprinkle on later Guessing, not testing Ad-hoc, unstructured Waiting until it hurts, not proactively planning Thinking that any early planning is Premature optimization Video on wiki.parleys.com
14. Premature optimization "Premature optimization is the root of all evil" -Donald Knuth
17. Premature optimization "Premature optimization is the root of all evil' -Donald Knuth "Quoting Knuth, as a way to avoid planning for performance issues, is a cop-out" @J_McCaffrey "Don't waste time on making optimization changes until you KNOW they are necessary"
18. If you can not measure it, you can not improve it. — Lord Kelvin
19. Let's do this the right way Measure: Understand the tools to use, at each layer, to measure and monitor performance Create repeatable tests: Be able to invoke the system and easily test Isolate your changes: One thing at a time That's it: Measure, Test, Isolated changes
20. Terminology Response time (avg) == Latency Requests per second == Throughput Load : How much work is there? Utilization : How much of the resources are in use? Scalability : How well can we handle the load? Throughput : How many tasks can be done per unit of time? Concurrency : How many tasks can we do at once? Capacity : How big can our throughput go before things fall apart?
21. Terminology Performance: The resources and Time for a single request Measured in Response Time Throughput: The number requests that can be handled per/time Measured in Requests per second Scalability: Ability to grow and handle more requests, without significantly degrading the experience Performance != Scalability
22. Terminology Let's say: 1 worker that can compute a job in .5 sec Throughput = 2 jobs per sec Latency = .5 sec per job Performance != Scalability Adding more workers will not improve the latency But not having enough workers can increase the response time, due to Queuing and delay
23. Resources: Things that we want to measure System Business Time Cpu Memory Network Disk Money Development time QA and testing time User time
28. Firebug Netpanel Simple and repeatable way to measure page load Usually, less than 20% of the time is spent in fetching the HTML So how do we optimize the other 80%?
29. YSlow Created by Steve Souders Observes the netpanel data, applies rules and gives you a score. Deep understanding of how the browser works Its the best way to have a repeatable, measurement of your site's load performance http://developer.yahoo.com/yslow/
30. YSlow Minimize HTTP Requests Use a Content Delivery Network Add an Expires or a Cache-Control Header Gzip Components Put StyleSheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript and CSS Avoid Redirects Remove Duplicate Scripts Configure ETags Make AJAX Cacheable Use GET for AJAX Requests Reduce the Number of DOM Elements No 404s Reduce Cookie Size Use Cookie-Free Domains for Components Avoid Filters Do Not Scale Images in HTML Make favicon.ico Small and Cacheable
32. Google Page speed Similar to YSlow includes paint events separates out ads, trackers from your content better recommendations and optimizations 1 click to see optimized version of your files http://code.google.com/speed/page-speed
35. Make it repeatable http://www.showslow.com/ track your site, or your competitors will check every 24hrs for you webpagetest.org gtmetrix.org zoompf.com loadimpact.com gomez.com
36. Summary Page load is the place to start Read everything in the Yslow and PageSpeed rules Encourage other devs to play with YSlow, PageSpeed Show Webpagtest.org, and zoompf.com Now that we have a way to measure page performance, we can think about making changes
37. Measuring Page Load Fixing page load problems Analyzing Server Performance Database issues Ruby issues Q&A Starting off on the right foot
38. Isn't everyone already doing this? Analysis of the Alexa top 1000 sites found: 42% don't gzip 44% have more than 2 css files 56% serve css from a cookied domain 62% don't minify 31% have more than 100k size css
39. Compress with Gzip Can save you 50% to 80% of your bandwidth Simplest performance improvement you can make Beware differences in browsers File types: html, js, css, xml, rss, txt, font, json Probably the simplest and smartest thing you can do for your app!
40. Combine and minify javascript and css Jsmin or YUICompressor, or Sprockets Asset_packager javascript_include_tag :cache => "cache/all" Load common js libraries from google http://github.com/rpheath/google_ajax_libraries_api Sprites and image optimzation spriteme.org JqueryUI already gives you sprited images Image optimization Smush.it
41. Expires and Browser Caching Setting a far future expires tells the browser not to ask for the file Using the query string lets us break the caching by having the browser ask for a new file There is a problem with using a URL query string this way http://blog.eliotsykes.com/2010/05/06/why-rails-asset-caching-is-broken/
42. Rails Caching Take your dynamic content, and make it static Page Action Fragment Full length tutorials http://railslab.newrelic.com/ http://railscasts.com/episodes?search=caching Greg Pollack Aloha on Rails http://vimeo.com/10860860
43. Measuring Page Load Fixing page load problems Analyzing Server Performance Database issues Ruby issues Q&A Starting off on the right foot
48. Commercial tools New Relic Developer plugin is a good start Free version doesn’t get you much Bronze version with heroku Scoutapp.com Similar to new Relic Large selection of community plugins
49. Testing tools Apache bench ab -n 10 -c 2 http://www.somewhere.com/ Httperf httperf --server localhost --port 3000 --uri / --num-conns 10000 Jmeter yes, its ugly, but its powerful
50. Measuring Page Load Fixing page load problems Analyzing Server Performance Database issues Ruby issues Q&A Starting off on the right foot
51. Database issues Common database issues Bad queries Not utilizing explain Inadequate indexes N+1 queries Selecting more data than is needed Inconsistent queries for the same data
52. Query_reviewer Common database issues Bad queries Not utilizing explain http:// github.com/dsboulder/query_reviewer Runs explain on all of your queries, outputs to div in page
53. Rails_indexes http://github.com/eladmeidar/rails_indexes Foreign key indexs • Columns that need to be sorted • Lookup fields • Columns that are used in a GROUP BY • Rake tasks to find missing indexes. New one I haven’t tried yet http:// github.com/samdanavia/ambitious_query_indexer
54. Bullet plugin Bullet plugin • http://github.com/flyerhzm/bullet Help you reduce the number of queries with alerts (and growl).
55. Slim_scrooge Be more specific in your select http://github.com/sdsykes/slim_scrooge Instruments your code Observes the usage pattern Suggests/changes your select statement When invoked within the exact same context
56. Ruby Issues Most are due to memory problems Slow GC Not release references Capturing scope Profiling will reveal what’s going on http:// guides.rubyonrails.org/performance_testing.html If you want to learn everything there is to know about profiling Aman Gupta Joe Damato http:// timetobleed.com / http:// memprof.com / They’ve already identified and fixed several memory leaks
57. Ruby issues: Faster Ruby Libraries C Extension++ • XML parser http://nokogiri.org/ • JSON parser http://github.com/brianmario/yajl-ruby/ • CSV parser http://www.toastyapps.com/excelsior/ • HTTP client http://github.com/pauldix/typhoeus Date http:// github.com/jeremyevans/home_run
58. Take home points Performance Performance affects the bottom line The biggest performance win is usually in improving the load time Continue to monitor and test your apps performance over time Gzip, combine and minify to get a big boost Lack of indexes is likely to be one of your biggest backend issues Try to stay up to date with Gems, Plugins, and latest Rails Upgrading to ruby 1.9 will give you a huge performance boost
59. Links: great info on performance Performance Scaling Rails series http:// railslab.newrelic.com / RailsCasts.com Velocity Conference http://en.oreilly.com/velocity2010 google io conference http://code.google.com/events/io/2010/ dynatrace site http:// ajax.dynatrace.com /pages/ http:// www.igvita.com / http:// www.mysqlperformanceblog.com /
61. Beyond ySlow: improving page performance outside the initial load MySql and Postgres Database tuning Heroku: Building Scalable apps from the start Tuning performance for Mobile devices Performance Improvements coming in Rails 3, and 3.1 Speeding up your tests
62. Wait, I made it through that? Architectural musings Background long running tasks Email, image processing, reports, feeds Leverage Rack, Sinatra or Padrino Parallel processing, Event Machine Learn from heroku, scalable from the start Revaluate your cloudy-ness Great RailsConf presentation by James Golick
63. Wait, I made it through that? Designing for performance Watch how they really use it Multiple tabs? Back and forth between list and detail view Great presentation at WindyCityRails2009 by David Eisinger Optimizing perceived performance Make it feel fast
64. Questions for you Architectural musings Moving to or already on Ruby 1.9? Serving your content from a separate domain? Cookieless?