Google I/O Sessions Day 1: Keynote - HTML5, Closure Library, Buzz API, and HTML5 Applications
Table of Contents
- 1. Sessions
- 1.1. Day 1: Keynote
- 1.2. Opening up Closure Library
- 1.2.1. What is it
- 1.2.2. Problem statement
- 1.2.3. Testing and stability
- 1.2.4. Open Sourcing the Closure was a 20% project
- 1.2.5. 400+ engineers have contributed
- 1.2.6. Not procedural
- 1.2.7. OSCON will have perforce2SVN
- 1.2.8. Implement this against static/ with svn:externsl
- 1.2.9. Use a cmo. namespace
- 1.2.10. PPull in the base.js with the dependencies then the
- 1.2.11. This also in cludes the rich text editor
- 1.2.12. Namespacing
- 1.2.13. Dependency mapping
- 1.2.14. What is the tesing used for each of the components
- 1.2.15. Necessary bootstrapping
- 1.2.16. Dependency features are available
- 1.2.17. closurebuild.er.py should bePOC for Canvas
- 1.2.18. Implemenation of compiled version
- 1.2.19. The test structure
- 1.2.20. Test suite is based on the care HTL
- 1.2.21. Patches are now possible
- 1.2.22. @closuretools
- 1.2.23. Discussion group is closure-library-discuss
- 1.2.24. Office hours: 2:30 - 5:00 Space B
- 1.2.25. Code splitting is an advanced configuration
- 1.3. Google Buzz API api
- 1.4. Developing with HTML5 html5
- 1.5. Day 2: Keynote android googletv
- 1.6. Google Analytics APIs: End to end javascript python
- 1.6.1. What is the level of the sophistication for measuring app performance
- 1.6.2. Four key compnent
- 1.6.3. Core Process
- 1.6.4. Visitor Interaction Model
- 1.6.5. Account Mangemnt Overview
- 1.6.6. Example: Using GA to integrate with CMS
- 1.6.7. Using watchers for GA before the loading
- 1.6.8. Using custom variables to track gold vs. basic members
- 1.6.9. Provide event tracking to ensure that data is being tracked
- 1.6.10. Create a acheduleable application to export data
- 1.6.11. new AnalyticsService with the Google API
- 1.7. Surf the stream: Google Buzz, location, and social gaming python buzz
- 1.8. Building real-time web apps with App Engine and the Feed API
- 1.9. Hackers Lounge: Building HTML5 Applications javascript canvas
- 1.10. SEO site advice from the experts seo
- 1.10.1. The keyword meta tag isn't even used by Google
- 1.10.2. Put some text on your page
- 1.10.3. What will users type and put that
- 1.10.4. Use reviews and content associated with content
- 1.10.5. Determine how much of the content is available
- 1.10.6. If using WordPress be sure to update
- 1.10.7. Keywords and title with text can help
- 1.10.8. What is the way to differentiate the content on site to encourage back-linking
- 1.10.9. Google Webmaster
- 1.10.10. SkipFish looks for third-party malware
- 1.10.11. Fonts should be used instead of images
- 1.10.12. Many of the sites were
- 1.10.13. Don't get too focused on on trophy phrase
- 1.10.14. Only look for what is in the server logs
- 1.10.15. Look at video and Twitter and Facebook
- 1.10.16. Consider using dashes or periods rather than underscores
- 1.10.17. GWT seems to create reasonable data by default
- 1.10.18. Bread crumbs need to be consdered in advance as part of the structures
- 1.10.19. Unfriendly URLs
- 1.10.20. rel=canonical
- 1.10.21. www vs no sub-domain
- 1.10.22. Use of shortners would be just as valid assuming a permanent redirection isused
- 1.11. Optimize every bit of your site serving and web pages with Page Speed
- 1.11.1. Four new product features
- 1.11.2. Why is performance is important
- 1.11.3. Building blocks: processing, bandwidth, RTT, Parse, fetch, render, JS
- 1.11.4. See Google Spped Tracer
- 1.11.5. Example page load
- 1.11.6. Three speed guideslines
- 1.11.7. Example
- 1.11.8. Tools (Page Speed SDK, beacon supports)
- 1.11.9. mo_pagespeed
- 1.11.10. Deferred loaders may create stairstep effects with current browsers
- 1.11.11. Chrome and other current browser look at speculative fetching of JS
- 1.12. HTML 5 updates
- 2. Summary
- 2.1. Classmate Project or Initiatives
- 2.1.1. TODO Use the Closure tools to indicate actions in the parse tree
- 2.1.2. TODO Greate a future plan for front-end
- 2.1.3. TODO Latitude API
- 2.1.4. TODO Feeds API
- 2.1.5. Web Fonts
- 2.1.6. TODO App Store launch
- 2.1.7. TODO Review the full Google Analyitcs API
- 2.1.8. TODO Google Analytics through the Android SDK
- 2.1.9. TODO Google Analytics Query Explorer
- 2.1.10. TODO Use Google Analytics to get all cities and cache the results
- 2.1.11. Yahoo! Analytics API review and POC for Front-end
- 2.1.12. Integrate school views with school search
- 2.1.13. Implement deferred loading for GA with var _gaq = _gaq || []
- 2.1.14. Create helper links to reduce the number of clicks by school id
- 2.1.15. The person implementing features needs to drive features
- 2.1.16. Move to queue and async loader for Analytics
- 2.1.17. "Google App Scripts Analytics" for Analytics@Docs
- 2.1.18. "Use the other box"
- 2.1.19. SkipFish
- 2.1.20. Fetch as GoogleBot
- 2.1.21. Make it easier for non-developers to push changes for the site
- 2.1.22. SEO and other tasks that pull front-end resources should include in training
- 2.1.23. GWT POC of community or directory
- 2.1.24. Create a meta description to summarize directory
- 2.1.25. Make the links point to the same place: remove the index; be consistent
- 2.1.26. NextSprocket.com: best ideas
- 2.1.27. ajaxcrawling: Better indexing with #!
- 2.1.28. TODO Research MAYDAY-Update
- 2.1.29. See Google Speed Tracer POC
- 2.1.30. PageSpeed: Logging of deprecated JavaScript through beacon option
- 2.1.31. PageSpeed: Evaluate the impact of specify cache validator
- 2.1.32. Web Master Tools: Get access to Web Master Tools
- 2.1.33. Gomez: Get access to the login associated with the pages
- 2.1.34. TODO har_to_pagespeed
- 2.1.35. Will Gomez report ongoing reports about the performance
- 2.1.36. Widget POC to reduce dependency on the application stack
- 2.1.37. PageSpeed beta now allow individual tracking of ads and trackers only
- 2.1.38. Initiative for faster initial presentation with chunking of HTML header
- 2.2. Preparation
- 2.1. Classmate Project or Initiatives
1. Sessions
1.1. 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
1.2. Opening up Closure Library
Author is with Google Books team.
1.2.1. 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."
1.2.2. Problem statement
Have a number of different styles, collaboration is difficult, managing complexit yis difficult.
This usupports better OO with defined interfaces
1.2.3. Testing and stability
Google has a submitqueue before someting is include in the core libary
1.2.6. Not procedural
This moves
1.2.7. OSCON will have perforce2SVN
1.2.9. Use a cmo. namespace
1.2.12. Namespacing
This includes all of the core setup fuctnion that gointo the nnamespace
1.2.13. Dependency mapping
1.2.15. Necessary bootstrapping
1.2.16. Dependency features are available
this includes calcdeps.py and bin/build/closurebuilder.py
1.2.18. Implemenation of compiled version
kill base.js with the feature JavaScript.
Replace with compiled.js
1.2.19. The test structure
Use filenname_test.html as the baseis
This has ost of the API documentation
1.2.20. Test suite is based on the care HTL
/trunk/all_tests.html
all
also includes goog.test
1.2.21. Patches are now possible
http://closuretools.blogspot.com
A copyright change
1.2.22. @closuretools
1.3. Google Buzz API api
Lookat at the Google Code oacurl.
Integrating Google Buzz.
How to pull all of the data into a single location.
1.4. Developing with HTML5 html5
1.4.1. Wave
1.4.2. History
1995 is the first; CSS was finally available in 1996
Latency o
XHR was to allow for Ajax apps
1.4.3. Chromabrush
1.4.4. localStorage
1.4.5. window.openDatabase
1.4.6. new Worker
1.4.7. new dgrag event listenters
1.5. Day 2: Keynote android googletv
1.5.1. Android
1.5.2. 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
1.6. 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
1.6.2. Four key compnent
- Collection
- Managment
- Export
- Procesing
1.6.3. 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.
1.6.4. 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.
1.6.5. 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.
1.6.6. 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
1.6.8. Using custom variables to track gold vs. basic members
This is already done.
1.6.10. Create a acheduleable application to export data
The variable name is ttop links. set dimention
1.6.11. new AnalyticsService with the Google API
setFilters setDiensions setMetrics setSort
These are thkey items to have the top lines based on the id
1.7. 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
1.7.1. URLs
1.7.3. 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.
1.7.4. Boxee
1.7.5. 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
1.7.6. Ecosystem
Open protocols drive with weave, salmon, pubsubhubbub and oauth.
1.8. 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
1.10. 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
1.10.2. Put some text on your page
1.10.4. Use reviews and content associated with content
This was about the site rodsbot.com.
1.10.7. Keywords and title with text can help
Does this really work with things like name and content items.
1.10.9. Google Webmaster
1.10.12. Many of the sites were
1.10.17. GWT seems to create reasonable data by default
If looking at an optimization strategy .
1.10.19. 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.
1.10.20. rel=canonical
Can just be used to point to a central location.
1.10.21. 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.
1.11. 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
1.11.1. Four new product features
1.11.2. Why is performance is important
Only three traditional examples.
1.11.3. Building blocks: processing, bandwidth, RTT, Parse, fetch, render, JS
How to measure a complex DOM.
1.11.4. See Google Spped Tracer
1.11.5. Example page load
- DNS lookup
- TCP Connect
- HTTP Request
- Server procesing
- Parse and layout
- RenderSubrequests
1.11.6. Three speed guideslines
- Serve fewer bytes
- Parallelize resource download
- Promote modern browsers
1.11.7. Example
1.11.9. mo_pagespeed
Performs the minification; would not be something to be used.
How would this support cached values for
2. 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
2.1. Classmate Project or Initiatives
2.1.3. TODO Latitude API
2.1.4. TODO Feeds API
2.1.5. Web Fonts
2.1.6. TODO App Store launch
2.1.8. TODO Google Analytics through the Android SDK
Send this to Jin.
2.1.10. 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.
2.1.14. 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
2.1.18. "Use the other box"
2.1.19. SkipFish
2.1.20. Fetch as GoogleBot
2.1.21. Make it easier for non-developers to push changes for the site
This is based on the requirements associated with the SEO review.
2.1.26. NextSprocket.com: best ideas
2.1.27. ajaxcrawling: Better indexing with #!
This likely wouldn't help on the directory pages.
We wouldn't traditionally have that useful given the
2.1.28. TODO Research MAYDAY-Update
2.1.29. See Google Speed Tracer POC
2.1.32. Web Master Tools: Get access to Web Master Tools
Who has the account for this?
2.1.34. TODO har_to_pagespeed
2.1.36. Widget POC to reduce dependency on the application stack
This would also allow for easier testing and performance would still be tested with.