This document discusses improving website performance. It outlines three pillars of performance: visibility, interactivity, and responsiveness. For each pillar, it recommends books and techniques. Tips include using tools like Firebug and YSlow, delaying initialization, throttling and debouncing events, and profiling code. While optimizations can improve performance, they also increase costs. The document emphasizes establishing a baseline and focusing first on low-hanging fruit before more complex optimizations. It concludes by thanking the sponsors and providing contact information.
Beyond DOM Manipulations: Building Stateful Modules with Events and PromisesCrashlytics
This document discusses the evolution of a modular application architecture using events and promises. It describes how the author transitioned from a single page application built with Backbone to independent, reusable modules. Key aspects discussed include isolating functionality into independent modules, managing dependencies between modules using events, and allowing asynchronous behavior through promises. The use of a central event object called a "Vent" is introduced to facilitate communication between modules and share data and responses. The overall goal is to build applications using isolated, reusable modules that can be composed together and communicate asynchronously through a shared event system.
Vue.js is a JavaScript framework that provides two-way binding between DOM and JavaScript, a template language for declarative rendering, and supports installation via npm, direct download, or a script tag. It allows defining where rendering will occur, setting up data, and rendering data to the DOM. Components provide reusability through templates, logic, and styles. Additional features include routing, state management with Vuex, and use of the Vue CLI for scaffolding single file components.
The document discusses improvements and changes to the Sizzle selector engine in jQuery 1.8. Key points include:
- Matching and filtering performance improved by around 10% on average.
- ID selections rooted at an element improved by 300%.
- Bugs were fixed in how different browsers handle certain selectors with querySelectorAll and matchesSelector.
- Support for combining multiple combinators in selectors was improved.
- More changes are planned prior to release, including implementing a compiler to avoid re-looping elements.
Christmas holiday experiment: creating a VueJS front that gets data through GraphQL from a decoupled WordPress install on another server. Read more on this blogpost: https://conimpeto.be/wordpress/create-a-wordpress-twentyseventeen-theme-with-vuejs-and-graphql/.
PrairieDevCon 2014 - Web Doesn't Mean Slowdmethvin
Web sites can be fast and responsive once you understand the process web browsers use to load and run web pages. We'll look at using tools like WebPageTest to analyze and optimize web pages.
The document summarizes the state of jQuery in 2013. It discusses the creation of the jQuery Foundation in 2012 to coordinate work on jQuery and related projects. It outlines major changes between jQuery 1.9 and 2.0, including dropping support for older browsers and APIs. It emphasizes that jQuery 1.9 remains suitable for most public websites, while 2.0 is better suited for newer environments. The document encourages developers to test alpha and beta versions to help improve jQuery.
The document discusses web components, which include HTML templates, custom elements, shadow DOM, and HTML imports. Web components allow the creation of reusable custom elements with their own styles and DOM structure. They provide encapsulation and help avoid issues with global namespaces. While browser support is still emerging for some features, polyfills exist and frameworks like Polymer make web components accessible today. Web components represent an important evolution of the web that will improve how code is structured and shared.
With this presentation, I am showing how to easy decouple a simple Drupal blog with Nuxt framework and GraphQL. You will be first shortly introduced to Vue.JS and Nuxt platform with some code examples and in the end, you will be able to clone a Github repository with a full working example: https://github.com/davision/nuxt-graphql-drupal-blog
This document provides instructions for integrating AngularJS into an existing legacy HTML application. It describes how to add an Angular "micro-app" by specifying a container div with Angular directives like ng-app and ng-controller. The Angular code, including a module, controller, and function calls from the legacy code, can be kept separate. Template views can also be added using ng-view and routing configuration. The process is described as relatively simple and allowing incremental integration of Angular without rewriting the entire application.
React Walk-Thru - Santa Cruz JS, May 2015Simon Sturmer
The document provides an overview of React including:
- An introduction to ES6 features like template strings and arrow functions useful for React.
- React uses a declarative paradigm where views are pure functions of state.
- JSX is just syntax sugar that compiles to regular JavaScript and is optional.
- Components can be composed to extend functionality and add defaults rather than wrapping elements.
- Major companies that use React like Netflix, AirBnB, and Facebook are listed.
Vue.js is a modern JavaScript framework for building UI on the web. It managed to combine hipster virtual DOM approach with API well known to any Angular developer. Components, SSR, CLI, state management, dev tools and much more. Besides it has smallest footprint (23kb gziped) and provides great developer experience. Those are the reasons the community and the adoption was growing rapidly last year.We'll have an intro to vue.js API and usage.
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
AngularJS is a new JavaScript framework, backed by Google, for building powerful, complex and rich client-side web applications. We will go over the features and basics of building a web application with AngularJS and we will demonstrate how to communicate with a REST server built with PHP.
This document provides an overview of a minimalist framework called Nuxt.js for creating universal server-side rendered (SSR) applications using Vue.js. Some key points covered include:
- Nuxt.js allows developers to write Vue components and pages while abstracting away concerns of client-server code splitting and routing.
- Features include automatic code splitting, SSR, routing, static file serving, bundling/minifying, and error handling.
- The framework uses a pages/ directory to define routes and components and includes Vuex and Vue-Router functionality out of the box.
- Async data loading, custom layouts, global meta tags, and asset handling are also
This document provides an introduction and overview of Vue.js, including:
- What Vue.js is and how it compares to other frameworks
- The basic concepts of single file components and getting started quickly
- How to create a development environment in one minute
- Core Vue.js features like directives, computed properties, binding styles and classes, and list rendering
- Links to additional resources on using Vue.js for routing and the latest news
This document appears to be a presentation about using Node.js at Netflix. It discusses how Netflix uses Node.js to build lightweight, modular applications with a RESTful API and JavaScript everywhere in order to reduce complexity. It also covers why Netflix chose Node.js, how everything is built as modules, asset management, templating, build processes, leveraging existing infrastructure, embracing the JavaScript ecosystem, automating processes, and failing fast to move quickly.
Transforming Front-End Disaster Code™ Into A Maintainable MasterpieceDan Gribbin
This document summarizes strategies for transforming unmaintainable front-end code ("Disaster CodeTM") into organized, high-quality code through proper planning, separation of concerns, performance optimization, and stakeholder communication. It outlines how the author's team improved their codebase ("Neptune") by adopting modular patterns like MVC, optimizing page load times, and collaborating on standards. The document stresses that upfront planning, separation of functionality, and ongoing maintenance are crucial to developing software that is sustainable, performant, and a pleasure to work with.
This document discusses best practices for developing WordPress plugins. It recommends that plugins be built as frameworks rather than blueprints, and that they are extensible, use WordPress core APIs, create custom actions and filters, allow overriding templates, and include utility functions. The document warns that plugins need to be kept up to date and that the WordPress repository does not support plugin dependencies. It provides resources for further learning.
Presentation from Denver Open Source Users Group in February 2015. http://www.meetup.com/DOSUG1/events/219099019/
AngularJS is one of today's hottest JavaScript MVC Frameworks. In this session, we'll explore many concepts it brings to the world of client-side development: dependency injection, directives, filters, routing and two-way data binding. We'll also look at its recommended testing tools and build systems. Finally, you'll learn about my experience developing several real-world applications using AngularJS, HTML5 and Bootstrap.
Max Voloshin - "Organization of frontend development for products with micros...IT Event
While our product was growing our team came to need to implement microservices. Later it became obvious that our approaches on organization of frontend development should be rethought and significantly improved.
The report contains our team's solutions for simple and comfortable frontend product development with microservices. Also, this talk is about how we along with the way updated frontend framework, separated frontend and backend, solved internalization problem and started using Docker for front end tasks.
This document provides an introduction and overview of Angular, including:
- Angular is a front-end web framework best for single page applications.
- It uses dependency injection to allow services to be injected, decorated, and mocked.
- Directives allow extending and augmenting HTML behavior, and are compiled by Angular to link them to scopes.
- Data binding in Angular syncs scope data with the DOM via one-way and two-way binding.
- Promises represent the future state of asynchronous operations and can resolve other promises.
Good karma: UX Patterns and Unit Testing in Angular with KarmaExoLeaders.com
The document discusses unit testing in Angular with Karma. It provides examples of UX patterns in Angular like binding elements to variables, lists, and click handlers. It also covers what controllers and scopes are and examples of testing components in Angular like services, factories, and UI elements. Hands-on examples are provided for setting up a test environment and writing tests.
The document provides 5 tips for writing better JavaScript code: use namespacing to avoid global functions and variables, connect events through libraries instead of inline attributes, implement a publish/subscribe pattern for cleaner communication between modules, keep markup separate from code through templating, and decorate objects to combine behaviors instead of copying code. Following these tips will result in more maintainable and extensible JavaScript applications.
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
JavaScript MVC Frameworks are all the rage these days. They’ve taken the web development world by storm. This session explores the various features of the three hottest JavaScript MVC frameworks: AngularJS, Ember.js and React.js. It also compares client-side templating vs. server-side templating and how well each framework supports Isomorphic JavaScript (code that can run both client-side and server-side). Finally, it ranks each framework on 10 different criteria using Yevgeniy Brikman’s framework scorecard.
Video on InfoQ: https://www.infoq.com/presentations/comparing-angular-ember-react
The top 10 ways to boost hybrid app performance are:
1. Test on actual devices and use tools to measure performance.
2. Avoid reflows and keeping the DOM shallow to improve performance.
3. Understand the tradeoffs of using frameworks and consider micro libraries instead.
This presentation will provide set of simple, yet powerful, JavaScript tips, tricks and best practices that should be known by all hybrid mobile app developers. These are techniques that all JavaScript programmers can use now, you didn't need to be an advanced JavaScript developer to benefit from these tips. After detailed explanations of how each technique works and when to use it, you will have become a more enlightened JavaScript developer, if you aren't already one.
5 minute presentation
20 slides
15 seconds per slide
Mobile App Feature Configuration and A/B Experimentslacyrhoades
The document discusses feature configuration and A/B testing in mobile apps. It describes how Etsy uses feature flags and continuous experimentation to iteratively develop and test new features. Features can be enabled or disabled for certain users or groups. Experiments follow a process of setting up a feature flag, determining user eligibility, coding the feature, internal testing, then launching the feature to a percentage of users while collecting analytics. This allows gathering feedback to improve products and user experience.
Adrian Gregory, Success Growth Team Lead at Optimizely
Peter Hastie, Front-end Developer at Bleacher Report
Chris Moen, Lead Web Developer at CityPASS
The Developer Showcase highlights useful tips and tricks directly from developers using Optimizely.
The session is moderated by Adrian Gregory, Success Growth Team Lead at Optimizely, and features Peter Hastie, Front--end Developer at Bleacher Report, and Chris Moen, Lead Web Developer at CityPASS, sharing how they've used advanced features in the editor and the Optimizely API to run more dynamic tests and improve performance on their site.
The covered features include:
-Testing content that appears after page-load
-Getting the most of your goals with custom events
-Testing an entire new page layout without redirects
-Getting the most of the Global CSS & Global JS
-Implementing code for efficient targeting, tracking, and segmenting
GCPUG meetup 201610 - Dataflow IntroductionSimon Su
This document provides information about Simon Su and Sunny Hu, who will be presenting on Google's BigData solution. It includes their contact information and backgrounds. Simon's areas of focus include Node.js and blogging. Sunny's skills include project management, system analysis, and Java. The document also advertises a Facebook and Google+ group for the Google Cloud Platform User Group Taiwan, where people can share experiences using GCP. It poses trivia questions about Google's infrastructure and provides timelines of Google's BigData innovations.
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)arcware
The document outlines 10 things that every WordPress plugin developer should know, including enabling debugging, prefixing functions, enqueuing scripts and styles properly, only including JS/CSS on admin pages, using AJAX in the admin, adding extensibility hooks, supporting multisite, internationalization, security, and using helpful functions and constants. It provides examples and explanations for each topic to help plugin developers write more effective and secure code.
Now you see me... Adaptive Web Design and DevelopmentJonas Päckos
Progressive enhancement is still an important approach for building responsive websites and web applications. While JavaScript can now be assumed to be widely available, progressive enhancement avoids single points of failure and improves performance by loading critical content first before non-essential enhancements. The distinction between websites and applications is also blurred, so progressive techniques remain applicable to most digital experiences on the web.
Being Epic: Best Practices for Android DevelopmentReto Meier
This document provides best practices for Android development. It discusses five "deadly sins" to avoid: sloth (being slow and unresponsive), gluttony (using system resources irresponsibly), hostility (fighting users), arrogance (fighting the system), and discrimination. It also discusses five "glorious virtues" to embrace: beauty (design), generosity (sharing), ubiquity (being everywhere), utility (being useful), and epicness (being legendary). It covers topics like performance, wake locks, navigation, preferences, undocumented APIs, screen sizes, analytics, background updates, location services, and more. The overall message is to create high-quality, useful apps that respect users and system resources.
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
Guestlecture I gave to the students ICT at Odisee, explaining the app development process, how we do certain things at Small Town Heroes, and how we implement QA throughout our process.
Presented at London Web Standards Pick 'n' Mix, 18th January 2011
Numerous tips and advice on writing JavaScript code that avoids most common pitfalls, is unmaintainable, inaccessible or slow as a dog.
Futher explanation and links to articles mentioned can be found at http://rossbruniges.posterous.com/
- JavaScript patterns like custom events, deferreds, and pub/sub can help manage asynchronous processes in the browser environment. Custom events allow defining and triggering custom events. Deferreds help manage callbacks and caching of asynchronous results. Pub/sub implements a publisher/subscriber pattern for loose coupling between modules. These patterns help modularize applications and decouple components.
YOUR RELIABLE WEB DESIGN & DEVELOPMENT TEAM — FOR LASTING SUCCESS
WPRiders is a web development company specialized in WordPress and WooCommerce websites and plugins for customers around the world. The company is headquartered in Bucharest, Romania, but our team members are located all over the world. Our customers are primarily from the US and Western Europe, but we have clients from Australia, Canada and other areas as well.
Some facts about WPRiders and why we are one of the best firms around:
More than 700 five-star reviews! You can check them here.
1500 WordPress projects delivered.
We respond 80% faster than other firms! Data provided by Freshdesk.
We’ve been in business since 2015.
We are located in 7 countries and have 22 team members.
With so many projects delivered, our team knows what works and what doesn’t when it comes to WordPress and WooCommerce.
Our team members are:
- highly experienced developers (employees & contractors with 5 -10+ years of experience),
- great designers with an eye for UX/UI with 10+ years of experience
- project managers with development background who speak both tech and non-tech
- QA specialists
- Conversion Rate Optimisation - CRO experts
They are all working together to provide you with the best possible service. We are passionate about WordPress, and we love creating custom solutions that help our clients achieve their goals.
At WPRiders, we are committed to building long-term relationships with our clients. We believe in accountability, in doing the right thing, as well as in transparency and open communication. You can read more about WPRiders on the About us page.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
Mitigating the Impact of State Management in Cloud Stream Processing SystemsScyllaDB
Stream processing is a crucial component of modern data infrastructure, but constructing an efficient and scalable stream processing system can be challenging. Decoupling compute and storage architecture has emerged as an effective solution to these challenges, but it can introduce high latency issues, especially when dealing with complex continuous queries that necessitate managing extra-large internal states.
In this talk, we focus on addressing the high latency issues associated with S3 storage in stream processing systems that employ a decoupled compute and storage architecture. We delve into the root causes of latency in this context and explore various techniques to minimize the impact of S3 latency on stream processing performance. Our proposed approach is to implement a tiered storage mechanism that leverages a blend of high-performance and low-cost storage tiers to reduce data movement between the compute and storage layers while maintaining efficient processing.
Throughout the talk, we will present experimental results that demonstrate the effectiveness of our approach in mitigating the impact of S3 latency on stream processing. By the end of the talk, attendees will have gained insights into how to optimize their stream processing systems for reduced latency and improved cost-efficiency.
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
13. <html>
<head>
<script>
__START__ = new Date;
</script>
$.ready(function() {
var time = new Date - __START__;
_gaq.push(
'_trackEvent',
'performance', 'dom_ready', '',
time, true
);
}
20. // Immediate init
$.ready(function() {
function init() {
// Do lots of stuff with #form
}
init();
});
// Delayed init
$.ready(function() {
function init() {
// Do lots of stuff with #form
}
$('#form').one('mouseenter', init);
});
34. THANK YOU
menno.vanslooten@gmail.com
@mennovanslooten
Thanks to Aan Zee (http://www.aanzee.nl) and the jQuery Foundation
Editor's Notes
\n
The only obstacle between you and a couple of cold beers\nI know it&#x2019;s been a long day of complex material\nDon&#x2019;t worry, timed to about 25 minutes. As mentally challenging as Dora the Explorer\nBefore I get started I&#x2019;d like to get to know you a little better\nBy show of hands, who here has ever received this simple request\n
So many of you have heard this. The rest will down the line. \nSuch a simple question but so hard to answer correctly\nThrough this presentation I&#x2019;d like to give you some tools to deal with it\nIdeas about how to approach the problem\nAnd some tips to help you identify the issues\nFirst, imagine this scenario\n
\nJust asking for better performance is silly. Engineers are not magicians.\nAcceleration, top speed, handling in corners\nYou could call these the pillars of a race car&#x2019;s performance\n
In my experience, these are the three attributes that define a web page&#x2019;s performance\nI will briefly go over each of them\n
Now, I realize you want to get right down to business. \nStart fixing stuff, start improving code.\nDon&#x2019;t.\nThere&#x2019;s a couple of really important things that need to be taken care of\nFirst you need to establish a base line\n
Measurable: you can express it in a number. time or operations\nRepeatable: these numbers don&#x2019;t vary wildly between tests\nif your performance varies a lot, you don't have performance issues, you have a bug.\nStable: It&#x2019;s safe to make changes because of automated testing\nAnd then: gather data on as many different platforms as possible\nThis data is your baseline.\n
Don&#x2019;t climb the tree for a coconut when there&#x2019;s a banana right in front of you.\nUnless you really like coconuts.\nOr climbing.\n
Simply said: how long does it take to look good?\n\n
I know this is a cop-out but there's just too much good stuff in there.\nIt really is required reading.\nI do have some stuff to add\n
Yahoo&#x2019;s YSlow, or Google&#x2019;s PageSpeed are tools that analyze your web page.\nVery useful tools in determining the low hanging fruit I was talking about earlier.\nBe careful though, because they also point out coconuts. \nBefore you know it you&#x2019;re climbing a tree.\n\n
Brace yourself. Code is coming.\n
Google will save all the events and average the data.\nSee how long your average user takes.\nInclude this in your baseline.\n
Simply said: 256-color PNG's with Alpha channel.\nDepending on how crazy your graphic designer is this can save 100s of KB\n
Mostly dependent on what scripts are loaded and run\nFor jQuery projects, much of this will be in a $.ready() handler.\n
For this sequel they really pulled out an all-star cast and it's just as gripping as the first one.\nI hear he's working on "Faster Web sites Strike Back"\n\n\n
\n
\n
Initialize on first click\nCheck out Doug&#x2019;s presentation tomorrow on contextual jquery\n
\n
\n
In my experience the hardest to do right\nThe hardest to get significant results\nI can think of only one low-hanging fruit: repeating events\n
Some events fire once in a while, like click events, or even mouse hover\nOthers fire a lot like a keydown event in an input\nOthers still, fire all the time\nThe last 2 categories benefit a lot from either throttling or debouncing\nThrottling: once every x milliseconds, useful for drag or resizing\nDebouncing: once before/after a series, useful for keyboard\n\n
\n
\n
\n
Responsiveness is quite easy to fake\nAll you have to do is give immediate visual feedback before doing something heavy\nSpinners, progress bars, animations, anything to show that something is happening.\n\n
These 3 pillars are all different aspects of a web page&#x2019;s performance but there is one thing that binds them:\nThey are from the user&#x2019;s perspective\nBut there are other perspectives, like the business perspective. \nThere could be money involved\n
Improving performance is a time-consuming iterative process\nLot&#x2019;s of trial and error and testing and comparing\nThere is a lot to lose and little to gain. \nThe most important gain is user happiness\nBut there are other ways to improve that,\nPerformance optimizations are relatively invisible\n
I&#x2019;ve seen performance improvements that took one man 2 days to write\nand caused bugs that took weeks to fix in total\nunit tests will only catch so much. \nand don&#x2019;t forget about maintainability. the better it performs the least flexible it probably is.\nI realize this may all sound blasphemous. Didn&#x2019;t I just recommend books by famous yahoo & google devs?\nI did, and I stand by that.\n\n\n
They are the cream of the crop devs\nworking on projects where every ms and every kb is multiplied by millions and millions of users\nNo wonder they care so much about it\nMe? I'm more this guy\n
\nDoesn&#x2019;t mean I can&#x2019;t learn from them. Just need to weigh costs and benefits of their recommendations\nThe race car&#x2019;s goal is not to drive fast but to win races.\nOur websites have goals as well. Provide info, user perform task, sometimes not clear.\nWebsite&#x2019;s performance measured in how well it achieves those goals\nIt's about our performance, how well are we doing our job.\nAre we building web sites the world needs. Or are we just making them fast?\n