Rough notes from the sessions I attended at Google IO. The sessions are going to be available in Video so, if you want more detail (or more accuracy
), you can check out the videos.
Vic Gundotra Keynote:
· 2 hour session walking through entire conference material mostly with demos: Open Social, Google Web Toolkit, Android, Gears,
· 8 Main Conference Tracks with multiple concurrent sessions in each:
o AJAX & Javascript
o APIs & Tools
o Maps & Geo
o Mobile
o Social
o Code Labs
o Tech Talks
o Fireside Chat
· All recorded and will be available publically.
OpenSocial: A Standard for the Social Web
· How do we socialize objects online without creating yet another social network (there are already at least 100)?
· API for controlled exchange of Friends, Profiles, and Activities (the update stream)
· Recommends Hal Varian’s (Google Chief Economist) ”Information Rules”
o OpenSoicial is an implementation of Chapter 8
· Association of Google, MySpace, and Yahoo!
o http://opensocial.org
· More than 275M users of OpenSocial
· How to build an OpenSocial application?
o JavaScript Version 0.7 now and REST services coming soon
o Three groupings of the API
§ People & friends
§ Activities
§ Persistence
o Programming model is async. Send a request and set a callback function that gets called on completion.
o Update of activity field: postActivity(text) – also supports setting priority
o Example server side REST services:
§ /people/{guid}/@all: collection of all people connected to the user
§ /peple/{guid}/@friends: friends
· Main sell is to allow small sites to gain critical mass when friction of yet another login system and initial lack of users would have blocked. Make it easier on users.
· Showed a map of the world showing that different social networks have won in different geographies all over the world.
o E.g. LiveJournal (Rusia), Orkut (Brazil)
· OpenSocial gets you to all their users so plan to localize your application (OpenSocial is designed to support localication)
· OpenSocial Terms:
o Container: the site (Hi5, MySpace, etc.)
o Owner: author/owner of the page
o Viewer: person viewing the page
· Apache Shindig is an open source implementation with a goal of allowing new sites to host open social applications in well under an hour.
· Shindig is an Apache Incubator project: http://incubator.apache.org/shindig
· Summary: make the web more social, current version is 0.7, and 0.8 includes REST.
· OpenSocial has 11 sessions in addition to this one at Google IO.
Google App Engine
· This session packed. Others quite lightly filled.
· Google App Engine does one thing well
o App engine handles HTTP requests, nothing else
o Resources are scaling automatically
o Highly scalable store based on BigTable
· An application is a directory with everything underneath it
· Single file app.yaml in app root directory
o Defines app metadata
o Maps URL patterns in regex to request handlers
o Seperates static files from program fiels
· Dev Server (SDK) emulates deployment environment
· Request Handlers:
o Python script invoked as though it were a CGI script
o Environment variables give request parameters
§ PATH_INFO
§ QUERY_STRING
§ HTTP_REFERER
o Write response to stdout
· Runtime is Python only but the fact that it is specified in app.yaml suggests that more will eventually be added.
· Showed Django support and how to use GAE with Django
o Showed a minimal main.py
§ Import os from google.appengine.ext.webapp import util, ….
o Also showed minimal settings.py
· Note: Existing Django apps will NOT port easily to GAE.
Google Docs + Gears == Google Docs Offline
· Google Docs Offline Architecture:
o Document editor
o Spreadsheet editor
o Presentation editor
o Authentication
o Docs Home (doclist)
· Overall, no big breakthroughs. It’s just Docs offline but its work well done.
· Challenges to disconnected operation:
o Upgrade is a challenge: Now that code is being installed remotely, the server needs to support old code at least until the new code is pushed out and installed.
· Possible solutions for static resources: fail to upgrade, sticky sessions, resource database, or serve the old version.
·