SlideShare uma empresa Scribd logo
1 de 162
Baixar para ler offline
The Canadian Public
Broadcaster on a Diet
Slimming down for a whole nation
Barbara Bermes and Blake Crosby
#velocityconf
The Canadian Public Broadcaster on a Diet
Slimming down for a whole nation
Velocity 2013
#velocityconf
Barbara // bbinto
Senior Architect, Mobile Web
Digital Operations, CBC
Blake // blakecrosby
Team Lead, Media Production Support
MO&T, CBC
#velocityconf
Today’s workout
#velocityconf
Before we get started
#velocityconf
#velocityconf
Canada?
Who? What?
#velocityconf
#velocityconf
#velocityconf
#velocityconf
Canadian Broadcasting Corporation
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Large internal and external digital ecosystem
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Large internal and external digital ecosystem
3 mobile websites
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Large internal and external digital ecosystem
3 mobile websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Desktop site page views ~5Mio/day
Large internal and external digital ecosystem
3 mobile websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Desktop site page views ~5Mio/day
Mobile Touch site page views ~ 500K/day
Large internal and external digital ecosystem
3 mobile websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#velocityconf
Canadian Broadcasting Corporation
National public radio and television broadcaster
Kind of like the NPR but not really - the CBC employs commercial advertising to supplement its federal funding
Desktop site page views ~5Mio/day
Mobile Touch site page views ~ 500K/day
News app page views ~1Mio/day
Large internal and external digital ecosystem
3 mobile websites
11 iOS, 3 Android, 5 Blackberry, 3 Windows apps
#velocityconf
Mandate: The 1991 Broadcasting Acts states that...
...the programming provided by the Corporation should:
vi. be made available throughout Canada by the most appropriate and efficient means and as resources
become available for the purpose, and
vii. reflect the multicultural and multiracial nature of Canada.”
#velocityconf
Performance
Why the need for speed?
#velocityconf#velocityconf
#velocityconf
“Ultimately performance is about respect”
Brad Frost
#velocityconf
Mobile & performance
Why is performance for mobile so crucial?
#velocityconf
It’s a Mobile (Browser) World
0
500
1000
1500
2000
2007 2008 2009 2010 2011 2012 2013 2014 2015
Desktop Internet Users
Mobile Internet Users
Source: Morgan Stanley
Numberofglobalusersinmillions
#velocityconf
Performance on Mobile
#velocityconf
Performance on Mobile
Battery-driven
#velocityconf
Performance on Mobile
Battery-driven Small CPU/GPU
#velocityconf
Performance on Mobile
Battery-driven Small CPU/GPU
Network connectivity
and latency
#velocityconf
Performance on Mobile
Battery-driven Small CPU/GPU
Network connectivity
and latency
Data usage
#velocityconf
You’re dealing with impatient users
“74% of mobile web users expect a page
to load in 5 seconds or less”
Gomez
#velocityconf
“Start with Metrics”
Creating A Performance Culture
Steve Souders
#velocityconf
Anatomy of a CBC page: Tell a story
#velocityconf
Anatomy of a CBC page: Tell a story
#velocityconf
Anatomy of a CBC page: Tell a story
#velocityconf
Anatomy of a CBC page: Tell a story
#velocityconf
Anatomy of a CBC page: Tell a story
#velocityconf
Quick weight assessment for desktop and mobile
#velocityconf
A typical CBC story
#velocityconf
Put them on the scale!
#velocityconf
www.cbc.ca
b.scorecardresearch.com
metrics.cbc.ca
gscounters.us1.gigya.com
cdn.gigya.com
pagead2.googlesyndication.com
3%3%
3%
6%
8%
78%
Domain breakdown: HTTP requests
#velocityconf
www.cbc.ca
b.scorecardresearch.com
metrics.cbc.ca
gscounters.us1.gigya.com
cdn.gigya.com
pagead2.googlesyndication.com
4%
11%
0%
1%
1%
83%
Domain breakdown: Bytes
#velocityconf
#velocityconf
Fully loaded
247kB
HTTP requests
36
#velocityconf
www.cbc.ca
pagead2.googlesyndication.com
cdn.gigya.com
thumbnails.cbc.ca
plusone.google.com
sitelife.cbc.ca
googleads.g.doubleclick.net
gscounters.us1.gigya.com
b.scorecardresearch.com
ib.adnxs.com
cdn.clicktale.net
ad.doubleclick.net
cm.g.doubleclick.net
metrics.cbc.ca
cm.eyedemand.com
apis.google.com
feed.theplatform.com
voken.eyereturn.com
d.adgear.com
cdn.adgear.com
fast.fonts.com
ssl.gstatic.com
www.gstatic.com
www.google.com
a.visualrevenue.com
t.visualrevenue.com
graph.facebook.com
resources.eyereturn.com
eyereact.eyereturn.com
adxhm.d.chango.com
cdn.api.twitter.com
s.clicktale.net	
1%1%1%1%1%1%1%1%1%1%1%1%
1%
1%
1%
1%
1%
1%
1%
2%
2%
2%
2%
2%
2%
2%
4%
4%
4%
5%
5%
48%
Domain breakdown: HTTP requests
#velocityconf
www.cbc.ca
pagead2.googlesyndication.com
cdn.gigya.com
thumbnails.cbc.ca
plusone.google.com
sitelife.cbc.ca
googleads.g.doubleclick.net
gscounters.us1.gigya.com
b.scorecardresearch.com
ib.adnxs.com
cdn.clicktale.net
ad.doubleclick.net
cm.g.doubleclick.net
metrics.cbc.ca
cm.eyedemand.com
apis.google.com
feed.theplatform.com
voken.eyereturn.com
d.adgear.com
cdn.adgear.com
fast.fonts.com
ssl.gstatic.com
www.gstatic.com
www.google.com
a.visualrevenue.com
t.visualrevenue.com
graph.facebook.com
resources.eyereturn.com
eyereact.eyereturn.com
adxhm.d.chango.com
cdn.api.twitter.com
s.clicktale.net	
0%0%0%0%1%0%0%0%0%0%1%0%
4%
1%1%0%
2%
0%0%0%0%1%0%0%0%1%
2%
9%
28% 4%
5%
36%
Domain breakdown: Bytes
#velocityconf
#velocityconf
Fully loaded
1,539kB
HTTP requests
164
#velocityconf
Result of assessment: Too heavy? Unhealthy, compared to what?
#velocityconf
Steve Souders and httparchive.org to the rescue
Repository of web performance information and to track web trends
#velocityconf
Content breakdown
Page Size (kB)
0 200 400 600 800
765
247
CBC HTTP Archive Mobile
HTTP Requests
0 18 35 53 70
60
36
Data from June 2013
#velocityconf
Content breakdown
Page Size (kB)
0 800 1600
1462
1539
CBC HTTP Archive
HTTP Requests
0 45 90 135 180
92
164
Data from June 2013
#velocityconf
What are our options for successful weight measuring?
#velocityconf
Synthetic Testing Real User Monitoring
You run the test User runs the test
Measures experience of exact one selected
configuration
Measures experience of “actual user”
(peace of mind). You get to know your user better
Establish baseline performance level
Get concrete information about user’s latency,
bandwidth, page load time
Tools
private/public WebPagetest (API), PageSpeed (API),
phantomJS, commercial products etc.
Tools
boomerang.js, Google Analytics, commercial
products etc.
#velocityconf
Collecting measurements - Synthetic
#velocityconf
Create your own performance dashboard
#velocityconf
Setup your own HTTP Archive to track and monitor trends
#velocityconf
• MySQL and PHP
• WebPagetest API key (or private instance)
• Check out latest source code and DB schema
(even dump)
• Run batches e.g. daily via cronjob
Setup HTTP Archive
#velocityconf
• ~ 44 CBC URLs
(cbc.ca/news, cbc.ca/sports, cbc.ca/video, regular story page etc.)
• Crawl and compute daily
• Measure and monitor trends
• Compare directly to Top Alexa HTTP archive
• Run queries against database to find bottlenecks
• Extend provided graphs
Start collecting
#velocityconf
Query the database directly
#velocityconf
40% of selected URLs use Google hosted jQuery version
select count(distinct(pageid)) as count,
(100* count(distinct(pageid))/[NumberOfUniqueRequests]) as percent
from requests where
url like "%ajax.googleapis.com/ajax/libs/jquery/%"
and mimeType like "%script%"
Hosted frameworks
#velocityconf
48% of selected URLs use Facebook plugins directly instead of Gigya
select count(distinct(pageid)) as count,
(100* count(distinct(pageid))/[NumberOfUniqueRequests]) as percent
from requests where
(url like "%://connect.facebook.net%"
or url like "%://static.ak.fbcdn.net%")
and mimeType like "%script%"
3rd party scripts
#velocityconf
Visualize data with local HTTP Archive instance
#velocityconf
Out-of-the box setup
#velocityconf
#velocityconf
Custom pie charts
#velocityconf
Collecting measurements - Real user monitoring (RUM)
#velocityconf
boomerang.js: JavaScript library for RUM
Measures the page load time, latency, bandwidth (and more) experienced by real users
#velocityconf
t_done Perceived load time of the page
bw User's measured bandwidth in bytes/s
lat User's measured HTTP latency in ms
Collecting RUM
#velocityconf
+
#velocityconf
+
Captain RUM
#velocityconf
• Add script to touch news landing page sends beacon.gif
with params (e.g. t_done, bw, lat, UA etc.)
• Define sampling rate
• Parse Apache log files for beacon.gif, extract params
and import into database
• Very noisy data, need to be normalized
+
Captain RUM
#velocityconf
Captain RUM results
#velocityconf
Latency in ms for CBC touch news landing page
0
10
20
30
40
200 300 400 500 600 700 800 900 1000 2000
1%1%1%1%
2%
4%
7%
18%
37%
27%
Data points: 1913
#velocityconf
RUM page load time (PLT) in ms for CBC touch news landing page
0
7.5
15
22.5
30
500 700 1000 2000 3000 5000 7000 10000 15000 50000
2%2%
4%
5%
13%
21%
26%
13%
10%
3%
Data points: 4864
#velocityconf
Bandwidth distribution for CBC touch news landing page
1%7%
41%
24%
21%
6%
<64Kbps
64-256Kbps
256-512Kbps
512Kbps-1.6Mbps
1.6-3Mbps
3-8Mbps
Data points: 8994
#velocityconf
With RUM data “[...] your real users are experiencing page load times
that are twice as long as their corresponding synthetic
measurements.”
Steve Souders
#velocityconf
Comparing synthetic test results with RUM
#velocityconf
Tools
Target
Network Profile
Data points
CBC news touch landing page CBC news touch landing page
1) Public WebPagetest
No Mobitest (DSL/Wifi)
2) PhantomJS with Slowy for shaping connection
Captain Rum
(boomerang.js, parsed beaon.gif params into DB)
1) 100
2) 100
After de-noising data: 4864
1) 3G simulation (“apples with apples”)
2) Slowy app with 3G simulation
Real user, baby!
Median and 95th percentile
of page load time (PLT)
Median and 95th percentile
of page load time (PLT)
Synthetic Testing Real User Monitoring
Measurements
#velocityconf
Page load time for touch news landing page (RUM and synthetic)
RUM (t_done)
PhantomJS (3G)
WebPagetest (3G)
0 2750 5500 8250 11000
5005 ms
3726.5 ms
1926.5 ms
6094 ms
5246 ms
10088 ms
95th percentile
Median
RUMSynthetic
#velocityconf
• Synthetic
• Lots of variances possible
• Challenges to properly simulate for mobile
• RUM
• Users benefit from cache
• Android wrapper app faster than Android browser
Some observations
#velocityconf
Avoid dangerous temptations
#velocityconf
That’s a lot of cookies
Yikes! Oh No!
Temptations
#velocityconf
Tipping the scale
Temptations
#velocityconf
Cookies on a diet
#velocityconf
• Use the path option to limit cookie scope
Cookies on a diet
#velocityconf
• Use the path option to limit cookie scope
• Store your static assets at a different domain
(images.cbc.ca)
Cookies on a diet
#velocityconf
• Use the path option to limit cookie scope
• Store your static assets at a different domain
(images.cbc.ca)
• Don’t use cookies for fun
Cookies on a diet
#velocityconf
• Use the path option to limit cookie scope
• Store your static assets at a different domain
(images.cbc.ca)
• Don’t use cookies for fun
• Ask: Do you really need them?
Cookies on a diet
#velocityconf
Other temptations (front-end)
#velocityconf
3rd party monsters
#velocityconf
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
• They are unpredictable, scary, disruptive, sneaky and
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
• They are unpredictable, scary, disruptive, sneaky and
• Could slow down your site
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
• They are unpredictable, scary, disruptive, sneaky and
• Could slow down your site
• Could bring down your site
(SPOF - single point of failure)
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
• They are unpredictable, scary, disruptive, sneaky and
• Could slow down your site
• Could bring down your site
(SPOF - single point of failure)
• Could do things you don’t want them to do
Monsters?
#velocityconf
• Ads, tracking, social buttons etc.
• They are unpredictable, scary, disruptive, sneaky and
• Could slow down your site
• Could bring down your site
(SPOF - single point of failure)
• Could do things you don’t want them to do
• Will add weight and complexity to your page
Monsters?
#velocityconf
What would a life without ads feel like....????
#velocityconf
The wonderful life without ads
#velocityconf
CBC Touch Mobile without ads
#velocityconf
Using no (client-side) ads code reduced our page load time by ~40%
40%
#velocityconf
Using server-side ads code over client-side ads code saved us
~20% of page load time
20%
#velocityconf
Get in
shape
#velocityconf
• Last mile acceleration (use GZip compression)
• Take advantage of a CDN, if possible
• Only use cookies where necessary
• Caches are your friend
Server and back-end
#velocityconf
Dedicated mobile sites
#velocityconf
• Decide on the server what to serve
• Different websites (Text, Rich, Touch) for
optimized experience
• Optimized and different images for all of our 3
mobile sites
• Edge side include technology (ESI) for device
detection and/or conditional loading
Server-side optimization
& device detection
#velocityconf
Responsive web design and web performance
#velocityconf
“72% of the sites using responsive design don't optimize for
mobile” (86% in 2012)
Guy Podjarny
72%
#velocityconf
Responsive Web Design with Server Side Components
RESS
Heavy resource lifting should be done on the server
#velocityconf
Exercises that worked for CBC
#velocityconf
• Very important to support If-Modified-
Since requests
• Allows caches to properly cache
content. Don’t cache bust!
The power of If-
Modified-Since
#velocityconf
The proof
28kb
12kb
0
7.5
15
22.5
30
10/29/2011 11/01/2011 11/04/2011 11/07/2011 11/10/2011 11/13/2011 11/16/2011
kBytesperHit
#velocityconf
Before and after
#velocityconf
• Heavy 404 Page?
• Browser will download the 404 page even if
it’s for a broken image or other asset
Keep those 404s in check
#velocityconf
Definitely not super thin
#velocityconf#velocityconf
#velocityconf#velocityconf
#velocityconf
The difference ....
5.2kB 1.1kB
Before After
80%
#velocityconf
Global Shell
#velocityconf
Global Shell
• Shared by all
• Visual representation
#velocityconf
Global Shell
• Shared by all
• Visual representation
#velocityconf
Global Shell
• Shared by all
• Visual representation
• Non-visual representation
• SSI variables in header to serve ads and tracking
• Global scripts, 3rd party scripts and stylesheets
#velocityconf
Improvement is easier than you think
#velocityconf
• Re-factored code: Removed old/un-used code
• Moved some scripts to the bottom of page
• Minified and concatenated scripts and CSS files to
reduce file size and HTTP requests
How did we improve
#velocityconf
Why optimizing manually if you can automate it?
Included performance optimization into your deployment and release process
#velocityconf
• Maven, Ant Tools and Plugins
• Closure Compiler (Google)
• Minify-maven-plugin
• HTMLCompressor
• Confess
• cssembed.jar or compass for data:uri
Automated & built-in tools
#velocityconf
• If you can’t / don’t want to use Maven / Ant
• You should use taskrunners and scaffolding:
Grunt, Yeoman
• Continuous integration (e.g SPOFcheck, yslow)
Automated & built-in tools
#velocityconf
What were the results?
#velocityconf
Global Shell: Before and after
#velocityconf
Global Shell: Before and after
0
6
12
18
24
HTTP Requests
18
24
Before After
25%
68
69.4
70.8
72.2
73.6
75
Page Weight (kB)
69.8
71.9
3%
0
0.25
0.5
0.75
1
Start to render (s)
0.691
0.942
26%
0
0.325
0.65
0.975
1.3
Visually complete (s)
0.9
1.3
30%
Improvements
#velocityconf
Slimmed down! But the danger with all diets ....
#velocityconf
Yo-yo effect
Don’t gain the weight back
#velocityconf
If you don’t monitor your weight, you can also make it worse...
#velocityconf#velocityconf
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Ads turned off
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Ads turned off
Source: Keynote Daily Reports
#velocityconf
3rd Party monsters interrupt
0
2.5
5
7.5
10
7/30/12 8/10/12 8/21/12 9/1/12 9/12/12 9/23/12 10/4/12 10/15/12 10/26/12
ArithmeticMeanins
Global Shell ISP Issues
Client-side Ads
Ads turned off
Server-side Ads
Source: Keynote Daily Reports
#velocityconf
A user who has to endure an 8-second download
delay spends only 1% of their total viewing time looking at
the featured promotional space on a landing page.
In contrast, a user who receives instantaneous page
rendering spends 20% of viewing time within the
promotional area (source: Nielsen)
#velocityconf
CBC’s fitness tips - Take aways
#velocityconf
Create a culture of performance
Bring everyone on board
Fitness Tip
#velocityconf
Start today, collect measurements
Fitness Tip
Run tests frequently, use free or commercial tools to help
#velocityconf
Visualize data and complexity to illustrate performance success and
bad hits (show before and after)
Fitness Tip
A picture is worth a thousand words
#velocityconf
Automate performance optimization
Fitness Tip
#velocityconf
Watch those 3rd party monsters
Evaluate their impact, ask and push for server-side solutions or use non-blocking, asynchronous solutions
Fitness Tip
#velocityconf
Serve only what the client needs
Device detection, server-side components and responsive web design
Fitness Tip
#velocityconf
Use RUM and synthetic testing
Fitness Tip
Get to know your users’ performance and your features’ performance
#velocityconf
Monitor your fitness level, setup reports
Fitness Tip
#velocityconf
Share your ideas and knowledge
CBC’s Web Performance Working Group
Fitness Tip
#velocityconf
Set a performance budget
Fitness Tip
#velocityconf
Run quick performance tests on mocks and prototypes
Fitness Tip
#velocityconf
There is always room for improvement
Fitness Tip
Keep the momentum
#velocityconf
Questions?
/blakecrosby
/bbinto
Thank you!
Office Hours
Today 2:45pm
Exhibit Hall (Table 3)
#velocityconf
Photo Credits
•http://beautygirlsmom.com/wp-content/uploads/2011/01/diet-funny-sign-spelled-out-vegetable.jpg
•http://www.cyklblog.com/wp-content/uploads/2011/06/so-many-push-ups.jpg
•http://photobucket.com/images/yo+yo+puppy+dog+yoyo+animated+gif+funny/
•http://www.wallpaper-welt.de/gros/film/monster-ag/Monster%20AG.jpg
•http://www.passiveaggressivenotes.com/2007/07/29/this-is-why-your-server-is-cranky/
•http://4.bp.blogspot.com/-NnFPM5Fgbao/TaIkVwyusEI/AAAAAAAAMPw/fdDbbvgJRb8/s1600/054.jpg
•http://thefulltimedomesticgoddess.com/wp-content/uploads/2011/09/girls-holding-hands-bw.jpg
•http://cartoonswalls.com/walls/monsters_university_desktop_wallpaper-wide.jpg
•http://41inmylife.files.wordpress.com/2011/06/weight_scale.jpg
•http://blogs.scientificamerican.com/the-curious-wavefunction/files/2012/08/boeing_777_cockpit.jpg
•http://www.liquorlockerla.com/wp-content/uploads/Captain-Morgan-Spiced-Rum-1.75.jpghttp://4.bp.blogspot.com/-Ylnf651-NMg/UW_-ak4lvwI/AAAAAAAAAZs/7UeqyWrrUys/s1600/Boomerang.png
•http://2.bp.blogspot.com/-ZrxT4-q5Hrw/UH1kIPawjqI/AAAAAAAAJeg/7f8TCiH2Wao/s1600/you-can-do-it.jpg
•http://upload.wikimedia.org/wikipedia/commons/7/77/Celine_Dion_Concert_Singing_'Taking_Chances'_2008.jpg
•http://static.wix.com/media/130ef9_bab26cc8c87a64719072275bba963573.jpg
Sources
•http://www.slideshare.net/stoyan/psychology-of-performance
•http://www.stevesouders.com/blog/2012/11/14/comparing-rum-synthetic-page-load-times/
•http://bradfrostweb.com/blog/post/performance-as-design/
•“Who killed my battery: Analyzing Mobile Browser Consumption” http://www2012.wwwconference.org/proceedings/proceedings/p41.pdf
•http://www.slideshare.net/guypod/performance-implications-of-mobile-design
•http://www.cbc.ca/m/touch/sports/story/2013/03/05/sp-paralympics-oscar-pistorius.html
•Desktop: http://www.webpagetest.org/result/130315_TQ_WT1/
•Mobile:http://www.webpagetest.org/result/130315_1X_X18/
•http://coding.smashingmagazine.com/2012/11/13/the-vanilla-web-diet/
•http://www.gomez.com/wp-content/downloads/19986_WhatMobileUsersWant_Wp.pdf

Mais conteúdo relacionado

Semelhante a The Canadian Public Broadcaster on a Diet: Slimming Down for a Whole Nation

WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSM
WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSMWebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSM
WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSMBarbara Bermes
 
Microservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaMicroservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaVMware Tanzu
 
How Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSocketsHow Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSocketsSajjad "JJ" Arshad
 
The CBC on a diet - Slimming down for a whole nation
The CBC on a diet - Slimming down for a whole nationThe CBC on a diet - Slimming down for a whole nation
The CBC on a diet - Slimming down for a whole nationBarbara Bermes
 
Cut the cord cfcs-oct14-2018
Cut the cord  cfcs-oct14-2018Cut the cord  cfcs-oct14-2018
Cut the cord cfcs-oct14-2018hewie
 
VTA Hack My Ride Lightning Talks
VTA Hack My Ride Lightning TalksVTA Hack My Ride Lightning Talks
VTA Hack My Ride Lightning TalksSCVTA
 
What Is Backstage Overview Google Day
What Is Backstage Overview Google DayWhat Is Backstage Overview Google Day
What Is Backstage Overview Google DayIan Forrester
 
Some Web Technology Thought Starters
Some Web Technology Thought StartersSome Web Technology Thought Starters
Some Web Technology Thought Startersdianasch
 
Designing for Sustainability - WebVisions 2016
Designing for Sustainability - WebVisions 2016Designing for Sustainability - WebVisions 2016
Designing for Sustainability - WebVisions 2016Tim Frick
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynotegoodfriday
 
Third Party Footprint: Evaluating the Performance of External Scripts
Third Party Footprint: Evaluating the Performance of External ScriptsThird Party Footprint: Evaluating the Performance of External Scripts
Third Party Footprint: Evaluating the Performance of External ScriptsBarbara Bermes
 
DW 2015: Bjarne Myklebust - The Future of Television
DW 2015: Bjarne Myklebust - The Future of TelevisionDW 2015: Bjarne Myklebust - The Future of Television
DW 2015: Bjarne Myklebust - The Future of TelevisionTelenor Group
 
How Tracking Companies Circumvented Ad Blockers Using WebSockets
How Tracking Companies Circumvented Ad Blockers Using WebSocketsHow Tracking Companies Circumvented Ad Blockers Using WebSockets
How Tracking Companies Circumvented Ad Blockers Using WebSocketsSajjad "JJ" Arshad
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynotegoodfriday
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013Achieve Internet
 
8,000 Sites and Counting: Running a *Huge* WordPress Service
8,000 Sites and Counting: Running a *Huge* WordPress Service8,000 Sites and Counting: Running a *Huge* WordPress Service
8,000 Sites and Counting: Running a *Huge* WordPress ServiceBilly Hylton
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsWebtrends
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsWebtrends
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]Aaron Gustafson
 
David Buckhurst - BBC - OSL19
David Buckhurst - BBC - OSL19David Buckhurst - BBC - OSL19
David Buckhurst - BBC - OSL19marketingsyone
 

Semelhante a The Canadian Public Broadcaster on a Diet: Slimming Down for a Whole Nation (20)

WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSM
WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSMWebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSM
WebExpo Talk: EMBRACING PERFORMANCE IN TODAY’S MULTI-PLATFORM MACROCOSM
 
Microservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with KafkaMicroservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with Kafka
 
How Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSocketsHow Tracking Companies Circumvent Ad Blockers Using WebSockets
How Tracking Companies Circumvent Ad Blockers Using WebSockets
 
The CBC on a diet - Slimming down for a whole nation
The CBC on a diet - Slimming down for a whole nationThe CBC on a diet - Slimming down for a whole nation
The CBC on a diet - Slimming down for a whole nation
 
Cut the cord cfcs-oct14-2018
Cut the cord  cfcs-oct14-2018Cut the cord  cfcs-oct14-2018
Cut the cord cfcs-oct14-2018
 
VTA Hack My Ride Lightning Talks
VTA Hack My Ride Lightning TalksVTA Hack My Ride Lightning Talks
VTA Hack My Ride Lightning Talks
 
What Is Backstage Overview Google Day
What Is Backstage Overview Google DayWhat Is Backstage Overview Google Day
What Is Backstage Overview Google Day
 
Some Web Technology Thought Starters
Some Web Technology Thought StartersSome Web Technology Thought Starters
Some Web Technology Thought Starters
 
Designing for Sustainability - WebVisions 2016
Designing for Sustainability - WebVisions 2016Designing for Sustainability - WebVisions 2016
Designing for Sustainability - WebVisions 2016
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
Third Party Footprint: Evaluating the Performance of External Scripts
Third Party Footprint: Evaluating the Performance of External ScriptsThird Party Footprint: Evaluating the Performance of External Scripts
Third Party Footprint: Evaluating the Performance of External Scripts
 
DW 2015: Bjarne Myklebust - The Future of Television
DW 2015: Bjarne Myklebust - The Future of TelevisionDW 2015: Bjarne Myklebust - The Future of Television
DW 2015: Bjarne Myklebust - The Future of Television
 
How Tracking Companies Circumvented Ad Blockers Using WebSockets
How Tracking Companies Circumvented Ad Blockers Using WebSocketsHow Tracking Companies Circumvented Ad Blockers Using WebSockets
How Tracking Companies Circumvented Ad Blockers Using WebSockets
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
Responsive Web Design_2013
Responsive Web Design_2013Responsive Web Design_2013
Responsive Web Design_2013
 
8,000 Sites and Counting: Running a *Huge* WordPress Service
8,000 Sites and Counting: Running a *Huge* WordPress Service8,000 Sites and Counting: Running a *Huge* WordPress Service
8,000 Sites and Counting: Running a *Huge* WordPress Service
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
Discover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends AnalyticsDiscover the Hidden Gems in Webtrends Analytics
Discover the Hidden Gems in Webtrends Analytics
 
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
 
David Buckhurst - BBC - OSL19
David Buckhurst - BBC - OSL19David Buckhurst - BBC - OSL19
David Buckhurst - BBC - OSL19
 

Último

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

The Canadian Public Broadcaster on a Diet: Slimming Down for a Whole Nation