Google I/O - A notes recap of the Keynote

May 28th, 2008

Keynote

Why does google care about developers ?

Google wants to move the internet forward

Talking about how google is moving it forward

Tensions occilated over the past 30 years, they feel they’re on the cusp of solving these tension

Mainframe
Power, not accessible
Deploying software relatively easy, as client dumb terminals

PC errors
Gave up computing power
Trade off power for accessiblity

Google is

Connectivity
It has a big impact on

Making the cloud more accessible
Keep connectivity
Making the client (browser) more powerful

Reason for a dev  wy:
Web was formed by consensus  (innovate in the open)
Google is committed to working the the OS community and giving back
Benefits google enconmically
B etter web apps means more users and more searches and therefore more money

Developers are the audience who google is most excited about

They don’t know if they’ve solved the problems the right way

Client Connectivity could

Make the client more powerful
Web browser

Offline storage
HTML5 is incorporating Gears
Gears is the bleeding edge of HTML5

Mysapace and gears
They have a partnership

Gears add async threads

Your messaging mailbox is now using gears to create a better search experience, off loading cloud process to the client, go Gears!

Connectivity
Have to go to 14 platforms to reach the whole space
They believe the mobile browser will eventually be the platform,  but need a bridge

Android solves this problem

WebKit is the core
Browser can be used a building block for an app
Maps view
Unlock gestures
Browser
Webkit based
Uses a magnifier for zoom
3g capable
Shows packman
Demoing streetview
Compass mode tracks your orientation

Cloud

Appengine - this is making the cloud more accessible
Acknowledge Amazon for taking the leadership for starting this concept

Started 1 1/2 months ago launched

Update on how this is coming along
Kevin Gibbs - tech lead for this

Why does the cloud need to be more accessible
Complex Stack
PHP
Mysql
Apache
Linux

Where to run?
Financial challenge,

Maintain the site as it grows, and the stuff crashes, backups, administrative challenges for maintaining

1. Easy to create
2. Easy to scale
3. Free to get started

Develop locally
Deploy to Google

No extra work to make it scale to millions of users, if you use the apis correctly

Examples
TweetWheel
Laterloop - save webpages and loads later on mobile device

Google wrote an app for family to check on

App engine is the just the first step in making things more acessible

Next steps
Offline processing
Rich media support (large file ul, dl)
Add’l infrastructure services

Response to feedback
New apis for app engine
Memcache api  - can scale app much more quickly
Image maniulation - resize, crop, easily from within
Expected pricing is announced

Open now for anyone to signup

Gdata and AJAX APIs
Mark

Gdata
Read-write access to google services

AJAX Apis
Rest driven

Demos ease of adding content, and links from content body
Includes a media rss feed easily
Demoing through blogger
Styling controlled through CSS

Client Connectivity Cloud
Make development easier
GWT
Bruce Johnson

Write in Java, GWT cross compiles directly into optimized javascript for the front-end pieces
Easily debug source code, see the html from debugger

Shows
Diagramming tool Lombardy Blueprint

People building sophisticated apps on the platform
Google Health built on GWT

1.5 Release Candidate
Java 5 language support
Performance much, much better
Give a thank you out to open source community

Can product highly optimized JS
20% to 2x performance by recompile with version 1.5

High Visible GWT Projects
Google Health
NG Adwords

Opensocial
Enabling the Web to be more social
David Glazer, Engineering Director Google Contri.

Surf-report on social web - looks good!
what’s happening

Social - people care about people
Killer apps mostly help people connect with people

Identity: OpenID -
Authorization: OAuth - standard for open authentication, get at info from different places
App: Open Social - standard for building apps and share apps

What is open Social
A fimaily of APIs
A ref implementation
A community of developers building with it

New version of API, 0.8 just launched
Ref - Shindig Apache incubator project
Community to build it out - people are coming together to build it out.

Nat Brown - CTO iLike
Social Music discovery - built a social music community

Social networks were growing so they pushed out

Demos iLike widgets working (dedication example) working on the Hi5 site

Can syndicate to big social site, and to the whole rest of the web
Show fan wall, songs, onto the Ingrid Michaelson artist website from iLike

Realized they couldn’t 100 m users to their site, so they brought their tools to 100 m users where they are today.

275 M reached
20K developers

What’s next
Restful api
Templating language

Finally, Google Friend Connect bring friends to every website - copy and paste functionality

In summary, the web is our platform thank you!

Web Standards and Collaboration

May 9th, 2008

I recently wrote about web standards and how it facilitates collaboration within teams over at my R2i blog page. Attached to the post is the brown-bag presentation I gave a few weeks ago.

You can download the presentation on web standards here as well.  I plan to follow up on this topic in more depth in the coming weeks.

Optimize Wordpress to Score an A with YSlow

March 11th, 2008

I finally took the time to setup Wordpress for myself this week. After I completed the installation (wow, that was fast!), I had the idea to see if I could optimize the delivery of the content. Yahoo! has created a Firefox plugin, YSlow, which reports on several different aspects of a web site’s delivery and structure, and rates each category on an A to F scale.I thought it might be a fun exercise to try to optimize Apache based on the feedback that YSlow provides to see how high a score I could get for this blog. So far, I’m at 93 (an A).

YSlow score for this page

Here are the steps I took in my Apache configuration file.

  1. Enabled g-zip compression for text-html.
  2. Enabled Expires Headers for images in the /images folder.
  3. Turned off etags because I wasn’t using them.

Here are the configuration settings that I added to the .conf file:

<Location />
        # Insert filter
        SetOutputFilter DEFLATE
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        # MSIE masquerades as Netscape, but it is fine
        # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
        # the above regex won't work. You can use the following
        # workaround to get the desired effect:
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
        # Don't compress images
        SetEnvIfNoCase Request_URI \
        \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
</Location>

<location /blog/wp-content/themes/default/images/>
        ExpiresActive On
        ExpiresDefault "access plus 1 month"
        # Disable etags
        FileETag none
</location>

Let me know if you have any other ideas on improving your YSlow score. Next step: optimize a DotNetNuke site using YSlow.