Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Over-promised & under-delivered
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Peter Gasston
April 24, 2014
Technology
1
240
Over-promised & under-delivered
A.K.A. You Ruined My Holiday. Given at Front End London, April 2014.
Peter Gasston
April 24, 2014
Tweet
Share
More Decks by Peter Gasston
See All by Peter Gasston
People Don’t Change
stopsatgreen
0
180
Your Reality Here
stopsatgreen
0
120
Growing Up, Getting Serious - #SotB6
stopsatgreen
1
360
Growing Up, Getting Serious
stopsatgreen
0
100
Surveying the Landscape — November 2016
stopsatgreen
1
180
Surveying the Landscape - Fronteers
stopsatgreen
2
500
The Web vs. The Browser
stopsatgreen
0
210
Surveying the Landscape Sept. 2016
stopsatgreen
1
450
Surveying the Landscape
stopsatgreen
4
890
Other Decks in Technology
See All in Technology
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
160
Tebiki Engineering Team Deck
tebiki
0
24k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
290
配列に見る bash と zsh の違い
kazzpapa3
3
160
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
320
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
94
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Designing for Performance
lara
610
70k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Optimizing for Happiness
mojombo
379
71k
Transcript
Peter Gasston @stopsatgreen broken-links.com
Technologist & Front-end Lead rehabstudio.com
Over-promised & Under-delivered
None
None
None
You Ruined My Holiday
None
None
None
http://brandperfect.org/index.php/knowledge/reports/597-fortune-global-100-mobile-web-review
http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/
http://www.guypo.com/uncategorized/real-world-rwd-performance-take-2/
None
None
MOBILE WEB
None
None
None
None
None
None
http://brokenmobile.tumblr.com http://wtfmobileweb.com
None
We Have A Problem
None
None
None
http://www.slideshare.net/yiibu/the-emerging-global-web
We Need To Pull Our Fingers Out
What We Can Do 1. Performance
“Over a mobile connection, it may take 2 seconds to
download the initial page of HTML, but it can be immediately rendered.
“Even as the rest of the JavaScript application is being
downloaded, the user can interact with the page. It feels 5x faster.” http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product
“By rendering our page content on the server and deferring
all JavaScript execution… we’ve dropped the time to first Tweet to one-fifth of what it was.” https://blog.twitter.com/2012/improving-performance-on-twittercom
var foo = window.matchMedia('(min-width: 800px)').matches; if (foo) { // Load
functions } yepnope({ test : foo, yep : 'bigscreen.js', nope : 'smallscreen.js' });
I don’t care about: 1. ‘Retina’ photos 2. Typefaces
What We Can Do 2. Experience
None
None
<meta name="viewport" content="width=device-width, minimal-ui"> <meta name="viewport" content="width=device-width, user-scalable=no"> ✓ ✗
<input type="number"> <input type="datetime"> <input type="number" id="foo"> <label for="foo">Number</label>
None
https://developer.android.com/design/ https://developer.apple.com/library/ios/design/ http://dev.windowsphone.com/design
None
None
Doing It Right
None
None
None
Help Is On Its Way
<picture> <source media="(min-width: 45em)" srcset="large-1.jpg, large-2.jpg 2x"> <source media="(min-width: 18em)"
srcset="med-1.jpg, med-2.jpg 2x"> <source srcset="small-1.jpg, small-2.jpg 2x"> <img src="small-1.jpg" alt="Alt text”> </picture> http://picture.responsiveimages.org/
Preserve my battery life Don’t wreck my data plan https://plus.google.com/+NazmulIdris/posts/SYwhyUkHnfz
http://offlinefirst.org/
navigator.serviceWorker.register('/foo.js').then( function(serviceWorker) { serviceWorker.postMessage('Hello world!'); } }); this.addEventListener('install', function(e) {
// Do your thing }); https://github.com/slightlyoff/ServiceWorker/blob/master/explainer.md
I’m not telling you what to think. I’m just asking
you to think.
Peter Gasston @stopsatgreen broken-links.com