Google I/O Sessions Day 1: Keynote - HTML5, Closure Library, Buzz API, and HTML5 Applications
Table of Contents
- Sessions
- Day 1: Keynote
- Opening up Closure Library
- What is it
- Problem statement
- Testing and stability
- Open Sourcing the Closure was a 20% project
- 400+ engineers have contributed
- Not procedural
- OSCON will have perforce2SVN
- Implement this against static/ with svn:externsl
- Use a cmo. namespace
- PPull in the base.js with the dependencies then the
- This also in cludes the rich text editor
- Namespacing
- Dependency mapping
- What is the tesing used for each of the components
- Necessary bootstrapping
- Dependency features are available
- closurebuild.er.py should bePOC for Canvas
- Implemenation of compiled version
- The test structure
- Test suite is based on the care HTL
- Patches are now possible
- @closuretools
- Discussion group is closure-library-discuss
- Office hours: 2:30 - 5:00 Space B
- Code splitting is an advanced configuration
- Google Buzz API api
- Developing with HTML5 html5
- Day 2: Keynote android googletv
- Google Analytics APIs: End to end javascript python
- What is the level of the sophistication for measuring app performance
- Four key compnent
- Core Process
- Visitor Interaction Model
- Account Mangemnt Overview
- Example: Using GA to integrate with CMS
- Using watchers for GA before the loading
- Using custom variables to track gold vs. basic members
- Provide event tracking to ensure that data is being tracked
- Create a acheduleable application to export data
- new AnalyticsService with the Google API
- Surf the stream: Google Buzz, location, and social gaming python buzz
- Building real-time web apps with App Engine and the Feed API
- Hackers Lounge: Building HTML5 Applications javascript canvas
- SEO site advice from the experts seo
- The keyword meta tag isn't even used by Google
- Put some text on your page
- What will users type and put that
- Use reviews and content associated with content
- Determine how much of the content is available
- If using WordPress be sure to update
- Keywords and title with text can help
- What is the way to differentiate the content on site to encourage back-linking
- Google Webmaster
- SkipFish looks for third-party malware
- Fonts should be used instead of images
- Many of the sites were
- Don't get too focused on on trophy phrase
- Only look for what is in the server logs
- Look at video and Twitter and Facebook
- Consider using dashes or periods rather than underscores
- GWT seems to create reasonable data by default
- Bread crumbs need to be consdered in advance as part of the structures
- Unfriendly URLs
- rel=canonical
- www vs no sub-domain
- Use of shortners would be just as valid assuming a permanent redirection isused
- Optimize every bit of your site serving and web pages with Page Speed
- Four new product features
- Why is performance is important
- Building blocks: processing, bandwidth, RTT, Parse, fetch, render, JS
- See Google Spped Tracer
- Example page load
- Three speed guideslines
- Example
- Tools (Page Speed SDK, beacon supports)
- mopagespeed
- Deferred loaders may create stairstep effects with current browsers
- Chrome and other current browser look at speculative fetching of JS
- HTML 5 updates
- Summary
- Classmate Project or Initiatives
- TODO Use the Closure tools to indicate actions in the parse tree
- TODO Greate a future plan for front-end
- TODO Latitude API
- TODO Feeds API
- Web Fonts
- TODO App Store launch
- TODO Review the full Google Analyitcs API
- TODO Google Analytics through the Android SDK
- TODO Google Analytics Query Explorer
- TODO Use Google Analytics to get all cities and cache the results
- Yahoo! Analytics API review and POC for Front-end
- Integrate school views with school search
- Implement deferred loading for GA with var _gaq = _gaq || []
- Create helper links to reduce the number of clicks by school id
- The person implementing features needs to drive features
- Move to queue and async loader for Analytics
- "Google App Scripts Analytics" for Analytics@Docs
- "Use the other box"
- SkipFish
- Fetch as GoogleBot
- Make it easier for non-developers to push changes for the site
- SEO and other tasks that pull front-end resources should include in training
- GWT POC of community or directory
- Create a meta description to summarize directory
- Make the links point to the same place: remove the index; be consistent
- NextSprocket.com: best ideas
- ajaxcrawling: Better indexing with #!
- TODO Research MAYDAY-Update
- See Google Speed Tracer POC
- PageSpeed: Logging of deprecated JavaScript through beacon option
- PageSpeed: Evaluate the impact of specify cache validator
- Web Master Tools: Get access to Web Master Tools
- Gomez: Get access to the login associated with the pages
- TODO hartopagespeed
- Will Gomez report ongoing reports about the performance
- Widget POC to reduce dependency on the application stack
- PageSpeed beta now allow individual tracking of ads and trackers only
- Initiative for faster initial presentation with chunking of HTML header
- Preparation
- Classmate Project or Initiatives
Sessions
Day 1: Keynote
General emphasis on HTML5 as the future. Should try out Wave again.
Most of these noted externally; should
http://googlewavedev.blogspot.com/2010/05/google-wave-platform-updates-at-io-see.html
Opening up Closure Library
Author is with Google Books team.
What is it
Originally HTML/CSS/DOM were just web document now that we have web appplications
How to make them more maintainable
"JavaScript, like Perl, is often thought of as write-only."
Problem statement
Have a number of different styles, collaboration is difficult, managing complexit yis difficult.
This usupports better OO with defined interfaces
Testing and stability
Google has a submitqueue before someting is include in the core libary
Open Sourcing the Closure was a 20% project
400+ engineers have contributed
Not procedural
This moves
OSCON will have perforce2SVN
Implement this against static/ with svn:externsl
Use a cmo. namespace
PPull in the base.js with the dependencies then the
This also in cludes the rich text editor
Namespacing
This includes all of the core setup fuctnion that gointo the nnamespace
Dependency mapping
What is the tesing used for each of the components
Necessary bootstrapping
Dependency features are available
this includes calcdeps.py and bin/build/closurebuilder.py
closurebuild.er.py should bePOC for Canvas
Implemenation of compiled version
kill base.js with the feature JavaScript.
Replace with compiled.js
The test structure
Use filennametest.html as the baseis
This has ost of the API documentation
Test suite is based on the care HTL
/trunk/alltests.html
all
also includes goog.test
Patches are now possible
http://closuretools.blogspot.com
A copyright change
@closuretools
Discussion group is closure-library-discuss
Office hours: 2:30 - 5:00 Space B
Code splitting is an advanced configuration
Google Buzz API api
Lookat at the Google Code oacurl.
Integrating Google Buzz.
How to pull all of the data into a single location.
Standards: OAuth, Atom, RESTful API, JSON, Activity Streams
Seesmic: Post to Twitter and Buzz at same time
Developing with HTML5 html5
History
1995 is the first; CSS was finally available in 1996
Latency o
XHR was to allow for Ajax apps
Chromabrush
localStorage
window.openDatabase
new Worker
new dgrag event listenters
Day 2: Keynote android googletv
Android
Google TV
Number of amusing TV selections:
- Search sites for "youtube.com": results include "Mother's Day MILF"
- Nicolas Cage:
- Sex in the city
- MSNBC: Dating advice about a bad boyfriend
Google Analytics APIs: End to end javascript python
Google APIs - Nick Mihailovski
Google Analytics measures performance of your website. Learn advanced techniques on how to use our tracking, processing and data export APIs as we walk you through an example of creating a most visited pages web element for your website.
Session type: 201 Attendee requirements: Intermediate Knowledge of Google Analytics, Javascript Tags: Google Analytics, JavaScript, Java, Gadgets, Mobile, ga.js, Video Hashtag: #googleapis5
Date: Thursday May 20 Time: 10:15am-11:15am Room: 2
https://wave.google.com/wave/waveref/googlewave.com/w+0iIr7fEYA
What is the level of the sophistication for measuring app performance
Four key compnent
- Collection
- Managment
- Export
- Procesing
Core Process
How is all of the data calculated.
There are 80 dimension and 95 metrics.
The initial login provides the tracking code with is applied to
Collect the goals, filters, and profiles into into a data structure.
Visitor Interaction Model
Visitor Session and Hit
vid remains the same, the session is the cmp value, and the ist is persited as well.
Eache of these are part of the Visis count the number of session?
dimensions are calulated as a session hit of type page.
The pagePath is returned.
This ignores any transactions.
Account Mangemnt Overview
Look at the client libraris with Javascript .
This would be part of the data export API.
There are number of queries options available.
How to get API reviews and training before a project is actually needed.
Example: Using GA to integrate with CMS
This creates a mashup
Use a name to track a specific id. What is considered popular elements in Classmates? Could be discussion areas / communities / schools.
Could this be wired into
Using watchers for GA before the loading
Using custom variables to track gold vs. basic members
This is already done.
Provide event tracking to ensure that data is being tracked
Create a acheduleable application to export data
The variable name is ttop links. set dimention
new AnalyticsService with the Google API
setFilters setDiensions setMetrics setSort
These are thkey items to have the top lines based on the id
Surf the stream: Google Buzz, location, and social gaming python buzz
http://code.google.com/events/io/2010/sessions/surf-the-stream-google-buzz-social-gaming.html
Social Web - Bob Aman, Timothy Jordan
Google Buzz has a feature-rich API that allows you to do all kinds of interesting things with conversations and location. In this session we'll build a Buzz-tastic mobile game using App Engine, HTML5, and the Buzz API for social awesomeness.
Session type: 201 Attendee requirements: Knowledge of Python, the web and a good spirited nature. Tags: Buzz, Social, mobile, HTML5, App Engine Hashtag: #buzzbingo
Date: Thursday May 20 Time: 11:30am-12:30pm Room: 1
URLs
What is the Buzz product and how could it be productized
ShareThis
this new features allos conversations to be shared across the internet.
Essentially, in order to pull in the kind of product development that would be possible with the technologies there would likely need to have a doubling of the number of front-end developers.
This however competes with the approach currently used of having product owners define.
What happens is that CMO is fairly far behind.
Boxee
Buzz Bingo
Uses the Buzz API and then with the Buzz system.
This was implemented in Python.
- Get a client
- Create a oauth consumer
- Set the key and secret.
- Define the scope
- Get the auth token
- Specify the callback to consume the oauth verifier
- Get an access token based on the verifier token
- Get a list of topics
- Select a random set of twenty four toiics
- Create a board based on a 2d array in a Square
- Application polls Buzz for any new keywords and score posts
- Mark the board based on the intersection between comments and topics
- Award badges
Ecosystem
Open protocols drive with weave, salmon, pubsubhubbub and oauth.
Building real-time web apps with App Engine and the Feed API
Google APIs, App Engine - Brett Bavar, Moishe Lettvin
We're introducing two new APIs which you can use to power real-time web apps: the App Engine Channel API and the Feed API v2 with push updates. Learn how the new Channel API allows you to push data from your App Engine app to an end user's browser. Also, learn how the new version of the Feed API allows you to subscribe to PubSubHubbub feeds and receive updates pushed to the browser.
Session type: 201 Attendee requirements: Basic familiarity with JavaScript Tags: Real-time web, App Engine, Feed, API, PubSubHubbub, Javascript Hashtag: #googleapis6
Date: Thursday May 20 Time: 1:00pm-2:00pm Room: 2
Hackers Lounge: Building HTML5 Applications javascript canvas
SEO site advice from the experts seo
Tech Talks - Matt Cutts, Greg Grothaus, Evan Roseman
A perfect opportunity to get your website reviewed by the experts in the Google Search Quality team. Attendees can get concrete search engine optimization (SEO) feedback on their own sites. We'll also answer real-life questions that affect developers when it comes to optimizing their websites for search.
Session type: Tech Talk Attendee requirements: Perfect for web developers who want to learn more about search engine optimization (SEO) Tags: Search, SEO, site architecture Hashtag: #techtalks-seo
Date: Thursday May 20 Time: 2:15pm-3:15pm Room: 8
The keyword meta tag isn't even used by Google
Put some text on your page
What will users type and put that
Use reviews and content associated with content
This was about the site rodsbot.com.
Determine how much of the content is available
If using WordPress be sure to update
Keywords and title with text can help
Does this really work with things like name and content items.
What is the way to differentiate the content on site to encourage back-linking
Google Webmaster
SkipFish looks for third-party malware
Fonts should be used instead of images
Many of the sites were
Don't get too focused on on trophy phrase
Only look for what is in the server logs
Look at video and Twitter and Facebook
Consider using dashes or periods rather than underscores
GWT seems to create reasonable data by default
If looking at an optimization strategy .
Bread crumbs need to be consdered in advance as part of the structures
Unfriendly URLs
If making a new site and you can make this happen. If you can have a keyword in the URL it might help but isn't a big help.
Don't do an 8 month project to make this work.
Search engines work with the web as it is.
The canonical URL from the team wasn't a bit concern.
rel=canonical
Can just be used to point to a central location.
www vs no sub-domain
Does the "Canonical URL" strategy really help out at all when given the engineering time.
URLs behind the gate are irrellevant. If behind the gate point to a public location. Just looking at not dividing the content.
The project was a complete waste of webdev resources to rebuild the URL.
Use of shortners would be just as valid assuming a permanent redirection isused
Optimize every bit of your site serving and web pages with Page Speed
http://code.google.com/events/io/2010/sessions/optimize-site-serving-page-speed.html
Tech Talks - Richard Rabbat, Bryan McQuade
Page Speed is an open-source Firefox/Firebug Add-on. Webmasters and web developers can use Page Speed to evaluate the performance of their web pages and to get suggestions on how to improve them. Learn about the latest rules of web development we've added, optimizations that we've updated, go over a new refreshed UI, see how to collect data through beacons to track progress over time, cut and paste fixes, and how to work with 3rd party libraries more effectively, including Google Analytics.
Session type: 101 Tags: Design, Web development, Website optimization, Page Speed, Analytics Hashtag: #techtalks-speed
Date: Thursday May 20 Time: 3:30pm-4:30pm Room: 9
Four new product features
Why is performance is important
Only three traditional examples.
Building blocks: processing, bandwidth, RTT, Parse, fetch, render, JS
How to measure a complex DOM.
See Google Spped Tracer
Example page load
- DNS lookup
- TCP Connect
- HTTP Request
- Server procesing
- Parse and layout
- RenderSubrequests
Three speed guideslines
- Serve fewer bytes
- Parallelize resource download
- Promote modern browsers
Example
Tools (Page Speed SDK, beacon supports)
mopagespeed
Performs the minification; would not be something to be used.
How would this support cached values for
Deferred loaders may create stairstep effects with current browsers
Chrome and other current browser look at speculative fetching of JS
HTML 5 updates
Storage
SQL
WebGL
Drag and Drop
Summary
Key links are available at
The goal of the sessions were to find areas of growth in integrating
Unless the people implementing the features are driving part of the acquisition of data there isn't a growth of knowledge.
The goal of front-end shouldn't be to focus effort on keeping people out but to simplify the process for monitoring the value of changes and ensure that a discussion is possible.
This first starts by building the reporting and analytical infrastructure to help others release their changes.
Problem:
- Front-end is a bottle-neck for the release
- There should be some way to have tracking of the changes released to production
- Rollback and an exit strategy should be critical with all front-end projects
- Increasing the complexity without these goals in mind won't improve quality or release time
Classmate Project or Initiatives
TODO Use the Closure tools to indicate actions in the parse tree
TODO Greate a future plan for front-end
TODO Feeds API
Web Fonts
TODO App Store launch
TODO Review the full Google Analyitcs API
TODO Google Analytics through the Android SDK
Send this to Jin.
TODO Google Analytics Query Explorer
TODO Use Google Analytics to get all cities and cache the results
We shoudn't have to have this defined for each of the initial login pages.
Yahoo! Analytics API review and POC for Front-end
Integrate school views with school search
Implement deferred loading for GA with var _gaq = _gaq || []
Create helper links to reduce the number of clicks by school id
Is this available in any way that tracks back to the number of schools.
Is this substantially different from
communityId,memberCount
The person implementing features needs to drive features
Move to queue and async loader for Analytics
"Google App Scripts Analytics" for Analytics@Docs
"Use the other box"
SkipFish
Fetch as GoogleBot
Make it easier for non-developers to push changes for the site
This is based on the requirements associated with the SEO review.
SEO and other tasks that pull front-end resources should include in training
GWT POC of community or directory
Create a meta description to summarize directory
Make the links point to the same place: remove the index; be consistent
NextSprocket.com: best ideas
ajaxcrawling: Better indexing with #!
This likely wouldn't help on the directory pages.
We wouldn't traditionally have that useful given the
TODO Research MAYDAY-Update
See Google Speed Tracer POC
PageSpeed: Logging of deprecated JavaScript through beacon option
PageSpeed: Evaluate the impact of specify cache validator
Web Master Tools: Get access to Web Master Tools
Who has the account for this?
Gomez: Get access to the login associated with the pages
TODO hartopagespeed
Will Gomez report ongoing reports about the performance
Widget POC to reduce dependency on the application stack
This would also allow for easier testing and performance would still be tested with.