The document discusses measuring web performance. It defines web performance as the time perceived by a user when loading a web resource. It explains that human perception of time is subjective and variable. It then covers various metrics for measuring performance like time to first byte and page loaded time. Finally, it discusses different tools and techniques for measuring performance, including JavaScript, browser extensions, server modules, and network sniffing.
RailsAdmin - the right way of doing data administration with Rails 3
The document discusses RailsAdmin, an open source Ruby on Rails engine that provides an easy to use interface for data administration. It provides features like CRUD (create, read, update, delete) operations, validation, authentication, searching, and an action history in an interface that is simple, secure and fast compared to writing a custom admin panel or using a CMS. The talk provides an overview of RailsAdmin and demonstrates its installation and use.
O incursiune prin unul dintre cele mai populare framework-uri de dezvoltare agila a aplicatiilor web, vazuta din perspetiva unui developer PHP. Avantaje si dezavantaje in invatarea unui nou limbaj pentru a dezvolta mult mai usor aplicatii web.
The document discusses the rapid growth of data on the web and how NoSQL databases provide an alternative to traditional relational databases by being able to handle massive amounts of unstructured and semi-structured data across a large number of servers in a simple and scalable way. It reviews different types of NoSQL databases like key-value stores, document databases, and graph databases and provides examples of popular NoSQL databases like MongoDB, CouchDB, HBase, and Neo4j that are being used by large companies to store and query large datasets.
This document discusses server-side programming using Node.js. It introduces Node.js as an event-driven I/O framework for building scalable network programs using JavaScript on the server-side. It explains some of the key benefits of Node.js, including non-blocking I/O which allows supporting many concurrent connections without threads.
This document discusses various techniques for optimizing CSS files, including gzipping to reduce file size, minimizing CSS to remove unnecessary characters, reusing code across stylesheets, and using smaller selectors. It notes that 21% of the top 1000 websites have over 100kb of CSS and describes tools like YUI Compressor that can be used to minify CSS files. Examples of optimization techniques include Facebook's use of "Big Pipe" to improve loading speeds by 50%.
RailsAdmin is a Ruby on Rails engine that provides a simple, fast, and secure interface for data administration. It was originally created as Erik Michaels-Ober's MerbAdmin project and was later ported to Rails 3. RailsAdmin provides basic CRUD operations for models with features like automatic form validation, authentication using Devise, multi-column searching, and an action history for each row. It aims to be easier and more flexible to use than writing a custom admin panel or using a CMS.
RailsAdmin - the right way of doing data administration with Rails 3Bogdan Gaza
The document discusses RailsAdmin, an open source Ruby on Rails engine that provides an easy to use interface for data administration. It provides features like CRUD (create, read, update, delete) operations, validation, authentication, searching, and an action history in an interface that is simple, secure and fast compared to writing a custom admin panel or using a CMS. The talk provides an overview of RailsAdmin and demonstrates its installation and use.
O incursiune prin unul dintre cele mai populare framework-uri de dezvoltare agila a aplicatiilor web, vazuta din perspetiva unui developer PHP. Avantaje si dezavantaje in invatarea unui nou limbaj pentru a dezvolta mult mai usor aplicatii web.
The document discusses the rapid growth of data on the web and how NoSQL databases provide an alternative to traditional relational databases by being able to handle massive amounts of unstructured and semi-structured data across a large number of servers in a simple and scalable way. It reviews different types of NoSQL databases like key-value stores, document databases, and graph databases and provides examples of popular NoSQL databases like MongoDB, CouchDB, HBase, and Neo4j that are being used by large companies to store and query large datasets.
7. Human perception of time is both
subjective and variable
actual
expected
perceived
remembered
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
8. Human perception of time is both
subjective and variable
Delay User reaction
0 - 100 ms Instant
0 - 300 ms Feels sluggish
0 - 1000 ms Machine is working
1s+ Mental context switch
10s+ I’ll come back later
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
9. Human perception of time is both
subjective and variable
Delay User reaction
0 - 100 ms Instant
0 - 300 ms Feels sluggish
0 - 1000 ms Machine is working
1s+ Mental context switch
10s+ I’ll come back later
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
10. Bing - negative impacts when adding delay
Distinct Time To
Delay Satisfaction
Queries Interaction
1000 ms - 0.7% -1.6% 1900 ms
2000 ms -1.8% -3.8% 3100ms
en.oreilly.com/velocity2009/public/schedule/detail/8523
CodeCamp NOV’12
Amazon TechO(n) Bogdan Gâza
Monday, November 19, 12
11. Importance of performance
Yahoo! - 400ms slower
6% drop in full-page traffic
Firefox Download page
- 2.2s faster avg page load time
+15.4% more downloads
CodeCamp NOV’12
Amazon TechO(n) Bogdan Gâza
Monday, November 19, 12
12. Agenda
}
What is
Measuring web performance
Take aways
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
30. High Level Metrics
clickToFirstTweet
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
31. Aggregation
AVG
Average is not always relevant
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
32. Context
Time of day Operating System
Browser Antivirus
Location Devise
Connection type Resolution
Latency ...
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
33. Measuring web performance
Subjective (qualitative) Objective (quantitative)
Focus Groups JavaScript
Case Studies Navigation timings
Interviews Browser Extensions
... Web Server Mods
... Network sniffing
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
34. Measuring web performance using JavaScript
unLoadEvent Store start in a Load next
start timestamp cookie page
loadEvent
stop timestamp
Send a beacon Page Load Time
beacon.gif? (PLT)
time=PLT stop - start
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
35. Measuring web performance using JavaScript
Pro’s Con’s
Simple JavaScript
Simple Custom Metrics Accurate for the 2nd page
... Observer effect
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
36. Measuring web performance using Navigation
Timings
domainLookupStart
navigationStart
domainLookupEnd
Unload DNS TCP REQUEST RESPONSE
...
Click connectStart
connectEnd
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
37. Measuring web performance using Navigation
Timings
domLoadComplete
QUEST RESPONSE PROCESSING ONLOAD
Load
domContentLoaded
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
38. Measuring web performance using Navigation
Timings
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
39. Measuring web performance using Navigation
Timings
Pro’s Con’s
Simple JavaScript
Lots of metrics Page Level Only
Accurate Needs browser support
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
40. Measuring web performance using Browser
Extensions
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
41. Measuring web performance using Browser Extension
Pro’s Con’s
Very complete metrics Getting users to install it
No JavaScript Not natively cross browser
Not only page level ...
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
42. Measuring web performance using a web
server mod
Web server
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
43. Measuring web performance using a web
server mod
Performance module
Web server
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
44. Measuring web performance using a web
server mod
Performance module
Web server
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
45. Measuring web performance using a web
server mod
Performance module
Registers
timestamps
Web server
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
46. Measuring web performance using a web
server mod
Performance module
Registers
timestamps
Web server
Collects &
aggregates
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
47. Measuring web performance using Web Server mod
Pro’s Con’s
Good for measuring back-end
Limited metrics
performance
Possible web server
Can be easy to deploy
performance hits
Concept of a page is
...
problematic
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
48. Measuring web performance using network sniffing
Web app
Network
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
49. Measuring web performance using network sniffing
Web app
Network
Web perf appliance
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
50. Measuring web performance using network sniffing
Web app
Network
Web perf appliance
Promiscuous mode
Assembles packets
Assembles http into pages
Collects data
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
51. Measuring web performance using network sniffing
Pro’s Con’s
No observer effect Limited metrics
Used in appliance based
Not cloud friendly
solutions
Concept of a page is
...
problematic
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12
52. Take aways
Performance is subjective, context is critical
Observations vs Experiments
W3C Nav Timings
Speed (latency) an important feature
CodeCamp NOV’12 Bogdan Gâza
Monday, November 19, 12