Friday, August 13, 2010
Anyone that’s following HTML5 knows how fast things are moving! To keep you informed with all of the amazing features landing in today’s browsers, we’ve added five new articles, a heap of new resources, and a much needed RSS feed for staying tuned in. We're also revealing a new component of the site, the HTML5 Studio. It’s a collection of standalone demos that highlight hot, new HTML5 features working together.
If you'd like to contribute code, guides, or samples, we’re working on a third-party contributors guide. Please stay tuned! In the meantime, you can get in touch with us on the bug tracker or via @ChromiumDev.
By Eric Bidelman, Google Chrome Developer Relations
- Late binding enabled for SSL sockets: High priority SSL requests are now always sent to the server first.
- Fixed focus problems with restoring from minimize (Issue 48917)
- Fixed Cannot add an address properly in the "AutoFill options" dialog box (Issue 50047)
- Several fixes and checks relating to syncing extensions (Issue 46516, Issue 49346, Issue 46516, Issue 49346, Issue 50567)
- Click-to-play is now behind the --enable-click-to-play command line switch.
- Fixed several issues with click-to-play (Issue 49686, Issue 49836)
- Various tweaks and fixes to the Wrench menu (Issue 49356, Issue 49996, Issue 49716, Issue 49448)
- Fix a bug with the Custom Homepages preference (Issue 49320)
- Fixed broken thumbnail images in new tab window (Issue 48066)
- Incognito downloads are not showing up in the incognito downloads page: Issue 51955
You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.
If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry
Thursday, August 12, 2010
First, we wanted to make the firehose experience available to those who didn’t have the required server resources to support that amount of traffic. So we built a “garden hose” that’s a random sampling of public Google Buzz posts with a query rate that’ll come under the free quota limit for Google App Engine. As such, many more developers will be able to easily get their hands dirty on this great source of real-time data.
Second, we’ve created an API to return the people associated with a particular activity query. That is, you can now search for people who have recently created a public post that includes an arbitrary string or related geo-location. For example, if you wanted to see the people associated with Red Sox near Fenway Park, you could use this URL for the JSON response.
Third, we now enable users to discover and explore content related to a particular post. With this new API, developers can now access and deliver Google search results related to the topic of that post. For example, given this post about Coworking Day, you could add ‘/@related’ to the end of the self link to get this JSON response of related links. Cool, huh?
As always, these features are documented in more detail on the Google Buzz API documentation site. Please swing by the the Developer Forum and let us know what you think!
By Eric Steinlauf, Google Buzz Team
Photo credit: Nandhp, used under the Creative Commons Attribution-Share Alike 3.0 Unported license.
[This post is by Dave Burke, who's an Engineering Manager 80% of the time. — Tim Bray]
Android Cloud to Device Messaging (C2DM) was launched recently as part of Android 2.2. C2DM enables third-party developers to push lightweight data messages to the phone. C2DM created a nice opportunity for us to pull together different Google developer tools to create a simple but useful application to enable users to push links and other information from their desktop / laptop to their phone. The result was Chrome to Phone - a 20-percent time project at Google.
Chrome to Phone comprises a Chrome Extension, an Android Application, and a Google AppEngine server. All of the code is open sourced and serves as a nice example of how to use C2DM.
The message flow in Chrome to Phone is fairly typical of a push service:
The Android Application registers with the C2DM service and gets a device registration ID for the user. It sends this registration ID along with the user's account name to the AppEngine server.
The AppEngine server authenticates the user account and stores the mapping from account name to device registration ID.
The Chrome Extension accesses the URL and page title for the current tab, and POSTs it to the AppEngine server.
The AppEngine server authenticates the user and looks up the corresponding device registration ID for the user account name. It then HTTP POSTs the URL and title to Google's C2DM servers, which subsequently route the message to the device, resulting in an Intent broadcast.
The Android application is woken by its Intent receiver. The Android application then routes the URL to the appropriate application via a new Intent (e.g. browser, dialer, or Google Maps).
An interesting design choice in this application was to send the payload (URL and title) as part of the push message. A hash of the URL is used as a
collapse_key to prevent multiple button presses resulting in duplicate intents. In principle the whole URL could have been used, but the hash is shorter and avoids unnecessarily exposing payload data. An alternative approach (and indeed the preferred one for larger payloads) is to use the push message service as a tickle to wake up the application, which would subsequently fetch the payload out-of-band, e.g. over HTTP.
The code for Chrome to Phone is online. Both the AppEngine and Android Application include a reusable package called com.google.android.c2dm that handles the lower-level C2DM interactions (e.g. configuration, task queues for resilience, etc).
Chrome to Phone is useful, but maybe it’s most interesting as an example of how to use Android C2DM.
Updates from the previous beta include:
- Updated UI
- Form Autofill
- Syncing of extensions and Autofill data
- Increased speed and stability
To switch to the Beta channel, you can download Google Chrome
- for Windows Systems
- for Mac OS X Systems
- or for Linux:
If you find issues, please let us know: http://code.google.com/p/chromium/issues/entry.
Wednesday, August 11, 2010
Google Apps Developer Blog: Going Deeper - More Integration Examples Available in our Developer DocsUsers love Single Sign-On, but we’ve found the depth and quality of a Marketplace app's integration with Google Apps is a key factor in both the user experience and vendor success in the Marketplace. Deep integration makes users happy, because it helps them avoid entering duplicate data and makes useful information accessible from their day-to-day communication and collaboration tools.
To help you discover ways to integrate your own applications with Google Apps, we added a new section to our developer docs showcasing examples from popular applications in the marketplace. Some examples, like BatchBook’s streamlined sign-up process for users, show simple ways applications can help users get started quicker.
Apps can help users be more productive by displaying information and allowing them to take action right within an e-mail message. Harvest, a time tracking application, allows users to complete their timesheets in gmail when they receive their weekly reminders.
You’ll also find examples for collaboration and document sharing, such as Manymoon’s seamless integration with Google Docs. This makes it easy for users to share information with teams or attach relevant docs to tasks.
You can read more about these and other integrations, or try out the apps yourself by going to the Google Apps Marketplace. Of course these are just a few of many ways to make apps easier for users, and we look forward to seeing even more creative ideas from developers.
Posted by Steven Bazyl, Google Apps Marketplace Team
P.S. If you want to learn about the APIs which enable these deep integrations, meet with fellow developers and ask questions of Googlers, come to our Google Apps and Apps Marketplace Hackathon at the Google Mountain View campus on August 24th!
Tuesday, August 10, 2010
Note: 1.8.3 is not being served, and the alias will redirect to 1.8.4.
We recently announced the Mapper API, a first step in a broader effort to provide full MapReduce capabilities on App Engine. While we still have some work ahead of us, there’s already a lot that can be done with today’s Mapper API. One area of particular interest is report generation.
Most applications create and maintain large numbers of detail records: entities in data models, transaction history or event logs. In order to glean useful information out of these vast data sets, your application has to iterate over your entities, summarize and breakdown the results. That’s where the Mapper API comes in.
The Mapper API uses the Task Queue to enable your application to rapidly iterate over its data sets, whether small or very, very large. The API takes care of the tedious bookkeeping involved in efficiently scheduling and keeping track of all those tasks. The Task Queue, in turn, automatically ‘pushes’ the work to your app.
Christopher O’Donnell (@markitecht), a technology product designer and developer from Cambridge, Massachusetts, was kind enough to share with us some of the motivations and implementation details behind his own project. In a new guest article, Modern Funnel Analytics Using Mapper, Christopher makes extensive use of the Mapper API to illustrate the process of generating rollup reports. With his approach, he's able to provide both summarized results and drill down capabilities.
If you like Christopher’s article, you should also checkout out the many other interesting articles on the Google App Engine home page. And, if you have an interesting App Engine article or story you'd like to share, let us know. We'd love to hear about it.
Posted by Fred Sauer, App Engine Team
Who: Software developers looking to learn about integrating with Google Apps. Whether you’re a customer integrating with your existing systems, a VAR/SI helping customers integrate or a SaaS software vendor looking to reach the 2 million businesses using Google Apps by selling your integrated app on the Google Apps Marketplace, this event is for you! Of course, if you’re a developer and have already integrated with Google Apps and are just looking to learn more about the latest APIs or meet the Google team and fellow developers, you’re welcome as well!
When: Tuesday, August 24th from 10AM to 5PM.
Where: Google Campus: 1600 Amphitheatre Pkwy, Mountain View, CA 94043. Room to be announced to confirmed attendees.
Sign up here!
If you’re primarily interested in Google Apps Script, we’re having a separate hackathon on September 23rd just for Apps Script. Please see this site for more information.