SlideShare a Scribd company logo
1 of 101
Download to read offline
Browser, Mobile, Cloud, Social, Geo
Portrait of the developer as a kid in a candy store
Patrick Chanezon
Developer Advocate, Google
http://twitter.com/chanezon
October 16, 2009
#hdc09
Source Marshall Astor http://www.flickr.com/photos/lifeontheedge/711086777/sizes/l/#cc_license
Friday, October 16, 2009
The Web Platform is Accelerating
User
Experience
native web
1990 -- 2008 Q408 Q109 Q209 ...
iPhone 2.2:
Nov 22, 2008
canvas
app cache
database
Safari 4.0b:
Feb 29, 2009
canvas
video
app cache
database
workers
HTML
DOM
CSS
XHR
Opera Labs:
Mar 26, 2009
canvas
video
geolocation
Android 1.5:
Apr 13, 2009
canvas
geolocation
app cache
database
workers
Firefox 3.5b4:
Apr 27, 2009
canvas
video
geolocation
app cache
database
workers
Chrome 2.0:
May 21, 2009
canvas
video
geolocation
app cache
database
workers
Friday, October 16, 2009
And It’s Solving Key Developer Challenges
User
Experience
native web
HTML
DOM
CSS
XHR
Speed
Location
Graphics Storage
1990 -- 2008 Q408 Q109 Q209 ...
Friday, October 16, 2009
More Developers
0
75
150
225
300
Monthly
Contributors
to
OSS
Browsers
2002 2003 2004 2005 2006 2007 2008 2009
webkit
firefox 2.0-3.0
firefox 3.1+
chrome
Friday, October 16, 2009
More Speed
0
20
40
60
80
SunSpider
Runs
Per
Minute
2001 2003 2005 2007 Q108 Q208 Q308 Q408 Q109
100x improvement
in JavaScript performance
Friday, October 16, 2009
More Users
50
150
250
350
450
OSS
Browser
Users
(M)
2005 2006 2007 2008 2009
Friday, October 16, 2009
5>2
A More Powerful Web
Friday, October 16, 2009
Cautionary Tales of Latent Lemonade
xhr
(1999)
xml (1998)
css
(1996)
AJAX (2004)
Friday, October 16, 2009
HTML 5: A Chance to Do Things Differently
Friday, October 16, 2009
canvas video geolocation app cache &
database
web workers
Friday, October 16, 2009
0
0
width
height
Y
x
y
X
Until Recently, You Couldn’t Draw on the Web
Friday, October 16, 2009
And Graphics Weren’t Very Interactive
javascript:onClick(Draw());
Friday, October 16, 2009
The Usual Options Do This...
VML
Flash
Silverlight
Friday, October 16, 2009
... But canvas is Intrinsic to the Web
Transparent
Stack
DOM
Document Object Model (DOM) Specification
Original: http://www.w3.org/TR/REC-DOM-Level-1/
Latest: http://www.w3.org/TR/DOM-Level-3-Core/
Contributors: Netscape, Sun, Microsoft, W3C, IBM,
Novell, JavaSoft, SoftQuad Inc., Inso EPS, Texcel
Research, Arbortext
Hypertext Markup Language (HTML)
Original: http://tools.ietf.org/html/rfc1866
Latest: http://www.w3.org/TR/html5/
Contributors: T. Berners-Lee, D. Connolly, L. Masinter,
MIT, W3C, AT&T, IBM, Microsoft, Netscape, Novell,
SoftQuad, Spyglass, Adobe, Lotus, CWI, Reuters,
JavaSoft, HP, GRIF, Sun, Opera, Mozilla, Google, Apple
Hypertext Transfer Protocol (HTTP)
Original: http://tools.ietf.org/html/rfc1945
Latest: http://tools.ietf.org/html/rfc2616
Contributors: UC Urvine, Compaq, MIT, Xerox,
Microsoft, W3C, T. Berners-Lee, R. Fielding, J. Gettys,
J. Mogul, H. Frystyk, L. Masinter, P. Leach
HTTP
HTML
Friday, October 16, 2009
// canvas
defines drawing
and animation
APIs with pixel-
level control
Friday, October 16, 2009
canvas demos
Friday, October 16, 2009
SunSpider
Runs
Per
Minute
canvas Piggybacks Overall Browser Speed
Friday, October 16, 2009
Is the Web Ready for 3D?
Friday, October 16, 2009
Canvas3D, WebGL
O3D code.google.com/apis/o3d
Friday, October 16, 2009
Chrome Firefox Safari Opera
canvas
video
geolocation
app cache
database
workers
HTML 5 Support
Friday, October 16, 2009
video
canvas geolocation app cache &
database
web workers
Friday, October 16, 2009
Video is Complicated, and Outside Your Control
Friday, October 16, 2009
So What
Would
Occam Do?
© topatoco.com
Friday, October 16, 2009
// HTML 5 makes
<video> as easy
as <img>
Friday, October 16, 2009
<video> demos
Friday, October 16, 2009
Chrome Firefox Safari Opera
canvas
video
geolocation
app cache
database
workers
HTML 5 Support
Friday, October 16, 2009
geolocation
canvas video app cache &
database
web workers
Friday, October 16, 2009
Life’s Better with Location
CRM
Social Ads Games
Photos
75 ft
20 ft
500 ft
1.1 mi
2.1 mi
Places
2.8 mi
Friday, October 16, 2009
But GPS and IP Aren’t Good Enough
1. too slow
2. too constrained
3. too fuzzy
Friday, October 16, 2009
1) Cell ID and WiFi Solve The Data Problem...
Friday, October 16, 2009
Friday, October 16, 2009
2) ...And Browsers Are Now Location-Enabled
Friday, October 16, 2009
// the
geolocation api
brings browser-
based location
to your apps
Friday, October 16, 2009
geolocation demos
Friday, October 16, 2009
Chrome Firefox Safari Opera
canvas
video
geolocation
app cache
database
workers
HTML 5 Support
(iPhone)
Friday, October 16, 2009
app cache &
database
canvas video geolocation web workers
Friday, October 16, 2009
Web Apps Need to Work Everywhere
Friday, October 16, 2009
// database and
app cache store
user data and
app resources
locally
Friday, October 16, 2009
app cache & database demos
Friday, October 16, 2009
Friday, October 16, 2009
<title>Google Maps</title>
<script src="/usr/lib/mojo/framework/mojo.js"
type="text/javascript" x-mojo-version="1">
</script>
<script src="app/assistants/stage-assistant.js"
type="text/javascript"></script>
this.controller.serviceRequest
{
'palm://com.palm.location',
{
method: "getFix",
parameters: {mode: "auto"},
onSuccess: this.goFix,
onFailure: this.error
}
};
index.html
map-assistant.js
Google Maps
Friday, October 16, 2009
webOS and HTML 5
• CSS Transformations
• HTML 5 database for history & bookmarks
• Canvas in calendar application
• Extensions
- Accelerometer
- ...
Friday, October 16, 2009
webOS Accelerometer API
• Shake: distinct start, stop with magnitude
• Orientation
• Raw acceleration
- Individual acceleration per axis
- Individual Pitch, Roll, and Yaw
• ... all available from JavaScript using the
DOM Level 2 interface
Friday, October 16, 2009
Code Snippet
<script type="text/javascript">
// Set up accelerometer event handlers
window.addEventListener( "shakestart", beginShaking, true );
window.addEventListener( "shaking", isShaking, true );
window.addEventListener( "shakeend", endShaking, true );
window.addEventListener( "acceleration", handleAccel, true );
function isShaking(event) {
// event.magnitude
// ...
}
function handleAccel(event) {
// event.accelX, event.accelY, event.accelZ
// event.pitch, event.roll, event.yaw
// ...
}
</script>
Friday, October 16, 2009
webOS and HTML 5
Converge mobile and desktop
web application development
Friday, October 16, 2009
Chrome Firefox Safari Opera
canvas
video
geolocation
app cache
database
workers
HTML 5 Support
(mobile)
(mobile)
(iPhone)
Friday, October 16, 2009
web workers
canvas video geolocation app cache &
database
Friday, October 16, 2009
A More Powerful Web == More Powerful Apps
Friday, October 16, 2009
But More Power == More Responsibility
I will not hose the browser with JavaScript
I will not hose the browser with JavaScript
I will not hose the browser with JavaScript
I will not hose the browser with JavaScript
I will not hose the browser with JavaScript
I will not hose the browser with JavaScript
Friday, October 16, 2009
// web workers
defines an API
for running
background
scripts
Friday, October 16, 2009
web workers demos
Friday, October 16, 2009
Chrome Firefox Safari Opera
canvas
video
geolocation
app cache
database
workers
HTML5 Support
(iPhone)
(mobile)
(mobile)
(mobile)
Friday, October 16, 2009
HTML5 and SVG not available in IE?
• ChromeFrame plugin implements HTML5 in IE
• Shim libraries using Flash or VML to implement features
– SVGWeb: SVG
– Explorercanvas: Canvas
– Video for Everybody: Video
53
Friday, October 16, 2009
A More Powerful Web, Made Easier
Friday, October 16, 2009
App Engine and Google Web Toolkit (GWT)
Easier to Scale and Optimize Your App
Friday, October 16, 2009
200,000+
Developers
Friday, October 16, 2009
80,000+ Applications
0
100
200
300
400
500
600
700
WhiteHouse.gov
Queries
Per
Second
(QPS)
18:00 21:00 24:00 3:00 6:00 9:00 12:00 15:00 18:00 21:00 24:00 3:00 6:00 9:00 12:00 15:00 18:00 21:00 24:00 3:00
6:45pm EST:
WhiteHouse.gov
kick-off blog post
Afternoon EST:
NPR, NYTimes,
CNN coverage
5:00pm EST:
Link on Google
homepage
9:30am EST:
Deadline for
submissions
11:30am EST:
Townhall begins
5:00pm EST:
WhiteHouse.gov
wrap-up blog post
Friday, October 16, 2009
Launched in the Last 12 Months
memcache API
SSL support
system status
paid quota
cron support
database import
java runtime
X
X
X
X
X
X
X
Friday, October 16, 2009
Launched in the Last 2 Months
XMPP
Incoming email
Background processing
X
X
X
X Datastore stats
Friday, October 16, 2009
• Large object store
• Database export
Friday, October 16, 2009
Friday, October 16, 2009
Java + App Engine demo
Friday, October 16, 2009
...Hosting in the Back
UI in the Front...
Friday, October 16, 2009
GWT Browser-Proofs Your JavaScript Code...
IE
Firefox
Safari
Chrome
Friday, October 16, 2009
...But CSS Headaches Persist
Friday, October 16, 2009
Coming in GWT 2.0: In-Browser Debugging
Friday, October 16, 2009
Rich Applications, Extra-Large Codebases
Friday, October 16, 2009
LOADING
Friday, October 16, 2009
Manual Code Splitting: Not For the Faint of Heart
Friday, October 16, 2009
Coming in GWT 2.0: runAsync()
// example
public void onMySettingsLinkClicked() {
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
new MySettingsDialog().show();
}
public void onFailure(Throwable ohNoes) {
// indicate that something went wrong,
// usually a connectivity or server
problem
}
});
}
Friday, October 16, 2009
runAsync() Helps Apps Startup More Quickly
26-Nov 29-Apr 18-Jun 28-Jul 12-Sep 27-Oct 24-Dec 16-Mar
Size
of
Initial
JavaScript
Download
(KB)
375
750
1125
1500
0
7x Decrease In
Initial Download Size
with runAsync()
1400 KB
200 KB
Friday, October 16, 2009
code.google.com/appengine
code.google.com/gwt
Friday, October 16, 2009
OpenSocial
Friday, October 16, 2009
Friday, October 16, 2009
Large Reach
Over 800M in a year – and more to come!
Friday, October 16, 2009
Global Reach
Friday, October 16, 2009
OpenSocial Supporting Products
27 Google Confidential
Friday, October 16, 2009
Under the hood: Usage Stats
• 315M+ App Installs
• 85M+ Canvas Page Views / Day
• 7,500+ Apps
• 20+ Containers
Friday, October 16, 2009
The Open Stack
XRDS
Friday, October 16, 2009
Google Friend Connect
Friday, October 16, 2009
Google FriendConnect
•Uses OpenSocial
(gadgets, REST/RPC)
•Allows site owners to
mix in social data to
existing sites
•Cut and paste or
•Deep integrations
Friday, October 16, 2009
Google Friend Connect Demos
Friday, October 16, 2009
TIME.com Daily Specials
TIME.com’s Daily Specials provide a
trusted and entertaining perspective
on relevant current events.
These interactive specials use photo and
video galleries to engage the readers, and
topics can range from important
international events like the Pope visiting
the Middle East) to light hearted topics like
the Best iPhone Apps.
Recent Popular Daily Specials Pageviews
• top 10 disastrous letterman interviews - 7.4mm
• top 11 iphone applications - 5.9mm
•10 things you can like about $4 gas - 4.3mm
•10 essential sites - 3.0mm
Source: Omniture SiteCatalyst – Past 12 Months
Friday, October 16, 2009
Specials Traffic
176MM
From January – April 2009
Friday, October 16, 2009
Challenge
How can we make our daily Top 10’s
more fun and engaging?
Friday, October 16, 2009
Friday, October 16, 2009
TIME Social Lists Demo
Friday, October 16, 2009
Architecture
Javascript APIs
JSONP
HTML + JavaScript
Friday, October 16, 2009
Friday, October 16, 2009
Paul Berry, HuffingtonPost
Friday, October 16, 2009
Friday, October 16, 2009
Friday, October 16, 2009
Google Product APIs
Easier to Add Content and Services To Your Website
Search Feeds Translation Calendar
Maps Charts Contacts Documents
Comments
Auth
Photos
News
Video
Spreadsheets
Friday, October 16, 2009
Low-Level API Access Serves Many Needs...
1
2
3
4
5
Daily
API
Hits
(B)
May Jun Jul Aug Sept Oct Nov Dec Jan Feb Mar Apr May
Over 4B Google API
Hits Every Day
Friday, October 16, 2009
...But Imagine AdSense for Everything Else
Maps
Spreadsheets
Search
Video Calendars
Friday, October 16, 2009
Announcing: Google Web Elements
Copy and Paste Website Content
Friday, October 16, 2009
Google Web Elements demo
Friday, October 16, 2009
google.com/webelements
Friday, October 16, 2009
Android: Seven Months, By The Numbers
• 10 carriers in 12 countries
• 4,900+ applications in the Android Market
• 40+ app downloads per user
• #2 in U.S. mobile web browsing
• 3 platform releases, and counting...
Friday, October 16, 2009
code.google.com/android
Friday, October 16, 2009
Enjoy the candies!
http://twitter.com/chanezon
Source Marshall Astor http://www.flickr.com/photos/lifeontheedge/711086777/sizes/l/#cc_license
Mobile
Geo
Browser
Social
Cloud
Demos at
http://delicious.com/chanezon/hdc09+demos
Friday, October 16, 2009

More Related Content

More from Patrick Chanezon

Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroPatrick Chanezon
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018Patrick Chanezon
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftPatrick Chanezon
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerPatrick Chanezon
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017Patrick Chanezon
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Patrick Chanezon
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017Patrick Chanezon
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsPatrick Chanezon
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Patrick Chanezon
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gamePatrick Chanezon
 

More from Patrick Chanezon (20)

Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018The Tao of Docker - ITES 2018
The Tao of Docker - ITES 2018
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with DockerDocker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
Docker Meetup Feb 2018 Develop and deploy Kubernetes Apps with Docker
 
DockerCon EU 2017 Recap
DockerCon EU 2017 RecapDockerCon EU 2017 Recap
DockerCon EU 2017 Recap
 
Docker Innovation Culture
Docker Innovation CultureDocker Innovation Culture
Docker Innovation Culture
 
The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017The Tao of Docker - Devfest Nantes 2017
The Tao of Docker - Devfest Nantes 2017
 
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
Docker 之道 Modernize Traditional Applications with 无为 Create New Cloud Native ...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Moby Introduction - June 2017
Moby Introduction - June 2017Moby Introduction - June 2017
Moby Introduction - June 2017
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017Containerd Donation to CNCF Cloud Native Conference Berlin 2017
Containerd Donation to CNCF Cloud Native Conference Berlin 2017
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
 

Hdc09 Keynote - Browser, Mobile, Cloud, Social, Geo Portrait of the developer as a kid in a candy store