Journal

Thoughts, ruminations, observations, and inspiration from theMechanism.

Live blogging Google I/O: HTML5 status update

May 20, 2010 | Posted by Jeffrey Barke | Add a Comment

Ian Fette
Jeff Chang

Overview

* Recap: What’s in HTML5
* What’s happened since I/O 2009?
** Lessons learned
** New APIs
* What’s next?

What is meant by HTML5

* It’s a buzzword
* Spec has shed numerous features
* Storage specs are now separate
* File specs and others live in WebApps, DAP
* Geolocation
* WebGL

Many things were split out for convenience; too many things for a single working group

Areas we are excited by

* We’ve spent the past year on …
** Offline (Appcache, Storage)
** Media (Video, Audio, …)
** Networking (Web Sockets)
** CSS3, Paged Media, Layout
** Platform integration (Drag and Drop, Notifications, Geolocation, …)
* Focus is providing richer experience for web applications

What we've learned

Offline Apps

* Discovery and re-discovery
** Remembering to type in exact URL is difficult
** Many people don’t use bookmarks
** Web Store helps discovery and re-discovery
* Packaging as an “app” can bootstrap permissions that need to be granted before use.

Indexed Database API

* “Specability” concerns around SQL
* A simple database, no SQL
* Has a “key” (DOMString or long) and associated “value” (object, array, …)

In the process of implementing a ??? DB, but no browser yet implements it. Why not SQL!

Storing Files

* Currently implemented storage APIs (Local Storage, Session Storage, WebSQLDB) don’t meet all the use cases
* Storing binary data in Local Storage, Database can have severe performance implications
* Need to be able to treat data as a file
* Filesystem API (and FileReader, FileWriter) gives web applications a sandboxed, per-origin filesystem

Geolocation (aka “Security UI is hard”)

* Access the user’s location via a JavaScript API
* Accuracy varies based on device
* Permission model varies for embedded content (iframes)

Tied permission not to origin of JavaScript, but to top URL (for iframes and embedded maps.google.com)

Shared State between Pages

* Shared worker
** Standard, cross-browser
** Works well for apps designed around message passing
** No single script context
** Can’t pass around parts of the DOM
** Example: Controlling access to shared File System API resources from multiple tabs

* Magic iFrame
** Can pass around parts of the DOM
** Can share scripting contexts
** Example: Gmail window tearoffs

Dragging files on the web is a drag

* Intuitive, simple ways to upload, download files
* Drag-in: desktop to browser
** Listen to drop event
** Obtain File object, send via XHR
* Drag-out: browser to desktop
** DownloadURL format in DataTransfer object
** Contains file type, name, URL

Notifications

* Let the app notify the user in an unobtrusive manner
* Developer can provide HTML or plain text content
* Permission is assigned on origin basis
* Currently two specs:
** http://dev.w3.org/2006/webapi/WebNotifications/publish/
** http://www.chromium.org/developers/design-documents/desktop-notifications
* Plan to deprecate the latter in favor of the former

What’s over the horizon

TTS (text-to-speech) and voice recognition

* Voice is the hot new thing in mobile
* Let a web app accept voice commands and input
* Speak results to the user

Webcam/microphone access

* Laptops and phones today ship with integrated webcams, microphones
* Many use cases for accessing these devices:
** Videoconferencing
** Taking a picture (profile pics)
** Scanning barcodes
** Letting the world hear you sing a Lady Gaga song
* Looking to expose APIs that let you capture a single blob and a s stream

[Wow, this is a win]

Positional Audio

* Adding JS apis for enhanced audio

Web GL

* JS bindings to OpenGL
* Allows creation of 3D games in the web
* Pioneered by Firefox, now being implemented in Google Chrome, Apple Safari and more

Spread the Love

del.icio.us:Live blogging Google I/O: HTML5 status update digg:Live blogging Google I/O: HTML5 status update spurl:Live blogging Google I/O: HTML5 status update wists:Live blogging Google I/O: HTML5 status update simpy:Live blogging Google I/O: HTML5 status update newsvine:Live blogging Google I/O: HTML5 status update blinklist:Live blogging Google I/O: HTML5 status update furl:Live blogging Google I/O: HTML5 status update reddit:Live blogging Google I/O: HTML5 status update blogmarks:Live blogging Google I/O: HTML5 status update Y!:Live blogging Google I/O: HTML5 status update smarking:Live blogging Google I/O: HTML5 status update magnolia:Live blogging Google I/O: HTML5 status update segnalo:Live blogging Google I/O: HTML5 status update

Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Search the Archives
Feeds
NYC Bunker Live Cam

O'Reilly user group program member

Add to Technorati Favorites

We endorse

Basecamp

Want to work with us yet? We’re ready when you are.