Showing posts with label IO2008. Show all posts
Showing posts with label IO2008. Show all posts

Friday, May 30, 2008

Google I/O: Flash on Android, and Wrap-Up


Running Flash on Android
At the Android Q&A, the developers said that the first release will have a webkit browser included but without the ability to have plugins installed. So there won't be Flash or Flash Lite on the Android platform to start. The follow-up release will be able to install plugins into the webkit browser, which will make Flash available assuming Adobe offer an open source version of the Flash plugin.

This should provide the iPhone with some competition. I haven't seen another phone-based web browser as good as the iPhone's yet, and Flash support will be one way to compete. Hopefully this will then lead to Flash on the iPhone.

Wrap-Up
It was interesting that the Android sessions always seemed to be the most packed. I think the Google Gears work had the next highest level of interest.

I found the Gears work the most likely to be used in projects where I work - eg. storing stock and mutual fund data in local databases to allow fast filtering of results.

It was a well put together conference from Google, giving you an introduction to the various areas of web development that they offer developer tools in, and showing how they can be used alone or together to create web applications.

Thursday, May 29, 2008

Introduction to Google's Ajax APIs

This session was also useful for seeing the workflow of how Google teams develop web applications and realizing that we're all pretty much doing the same thing.

Google Ajax developers use any editor to create their applications, the only important thing for Google client side teams is to have a good debugger around - i.e. Firebug. I (still, I know) use Visual Studio's debugger but when you inject script into the DOM it can't find the script to debug sometimes and I can see myself moving over to Firebug.

This Google team's development is done by first building the static HTML files, then by building in the script required, and then adding in the Google APIs. HTML returned by the Google APIs is then styled using CSS classes documented on code.google.com.

Creating an iGoogle widget out of an HTML app is straightforward, you create an XML description file with its height etc and copy it to a google server. iGoogle will render the widget inside an iframe to avoid the possibility of it modifying any other widgets in its script.

Client-Side Performance

Here's a screen shot of IBM Page Detailer, Steve Souders's preferred packet viewer to use. 80% of web response time is spent on the client, and it also shows where network object downloads get blocked by script execution.

Browsers block parallel downloading of script and CSS when a script is being run so be careful with online script placement as a web page will block downloads. Basically be aware that whenever script is reached it will block any further parallel downloading of network objects.

@import statements have the same effect on CSS as inline script with script tags, so use link tags instead.

Defer script that is not needed for the loading of a page with XHR injection. XHR is required as Firefox does not support the DEFER attribute. Use XHR to load the script and then place it in a created script element. This is the best way as it allows for parallel downloading and does not display the busy indicator in the browser which is distracting to a user.

Google I/O day two keynote

The keynote was given by Marissa Mayer, Google's VP of search products. A really interesting speech on the difficulties of search and how to fix some of the problems they ran into.
50% of the web is in English, 1% in Arabic. Google operates in 110 languages. Translation is done by international users not by machines, much more efficient that way. Mayer used the translation technology to do a Swedish Chef version of a Google page that still gets millions of hits.
Performance correlates with increased hits - a 30% increase in google maps page performance resulted in 30% more hits to the site due to speed and increased ease of learning through faster feedback.
A key point she made was that often an application's purpose is to grow underlying technology not the actual function of the site. The Taxi Finder application that showed GPS-tracked taxis in NYC was not about taxis as much as about learning how to track things via GPS and display them on the web.
Also she emphasized the importance of creativity and prototyping. She builds applications herself from time to time as it's essential to keep a sense of what can be developed. Prototypes are critical as a part of decision making. 50% of google apps started out as a project
in each developer's 20% of work time assigned to prototyping.
Her key points were:
Keep pages as simple as possible. Use split A/B testing to test ideas that come out of usability interviews as sometimes they will turn out to be misleading.
Know your metrics on how your application is operating and how people use it.
Don't let the urgent drown out the important.
Build prototypes, set aside time for prototyping and allow products to arise from developers' creativity.

First day at Google I/O

Keynote Speech
The keynote showed examples of how Google's technologies can enhance web site development. Google Gears extends the browser's capabilities for all web pages with features such as multi-file upload, a local database similar to HTML 5, file system access, and soon to include camera integration.

GWT allows Java to provide a more sane interface to DHTML development, with one Google client side veteran saying she would not be hand-coding again after using it for Google Health.

Android is an OS for mobiles like Windows Mobile that should appear on some new phones shortly. It offers a universal platform for developing Java applications for mobiles by abstracting out the hardware differences of each phone. Another way to develop for Android is to develop sites that will run on its WebKit browser, which will also then run on the iPhone's browse too. We were shown Pacman running on an Android phone as well as a version of Street View that auto rotates the street view as you move your phone around by taking advantage of the phone's built-in compass. This was very cool.

Some sample web page enhancement APIs were shown that run as Javascript pulled in via script tags from google. They allow easy blog integration onto other sites, and easy integration of youtube content. They join the existing APIs offered by Google to the client to jazz up web sites with little work.

Finally, Google is now also offering free application deployment space on its servers for web applications. It's free for the first 5 million page views per year.

Demonstrations
After the keynote, I went to the area where Google's APIs were being demonstrated. The data visualization API is separate from the charting API and can take data from XML or google spreesdsheets and render charts. One advantage of a DHTML based chart is that it'll run on the iPhone.

Google analytics can be used on Blogger. I'll try this out when I get back on this blog.

The evolution of new features on the web

Alex Russell, one of Dojo's developers, gave a really interesting speech on what the most hopeful ways for the web to evolve might be. He focused on the multiplier effects of an open development system - allowing new developers to learn the web quickly and making code sharing and maintenance easier. Google's Gears was an example of an app along these lines, whereas GWT, despite its great helpfulness to Java developers, removed too much of what is good about the web to be on this track.

Alex's talk was the reason you go to conferences. Often if you mention that there are cases where tables are better than CSS for layout, or how the web standards movement sometimes holds the web back, people look at you funny and say that you're against code standardization and progress and should be sent to the salt mines.

Emilio and Ashish

What is a sheet turndown service?