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

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.

http://bit.ly/9NEdA3

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.12. Namespacing

This includes all of the core setup fuctnion that gointo the nnamespace

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.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.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.6. new Worker

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

http://bit.ly/c8zpAV

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.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.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.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.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

http://bit.ly/io-speed

1.11.2. Why is performance is important

Only three traditional examples.

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

1.12. HTML 5 updates

1.12.1. Storage

1.12.2. SQL

1.12.3. WebGL

1.12.4. Drag and Drop

2. Summary

Key links are available at

http://twitter.com/googleio

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.5. Web Fonts

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.19. SkipFish

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.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.32. Web Master Tools: Get access to Web Master Tools

Who has the account for this?

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.