Friday, September 21, 2007

Weekly Google Code Roundup: JavaScript and GData can now write home, Gadget Ads, presentations, and more.

| More

Google Code - Updates: Weekly Google Code Roundup: JavaScript and GData can now write home, Gadget Ads, presentations, and more.

We had a really fun week with launches and news across a myriad of products. From a technical perspective, it was really exciting to see the launch of a new GData JavaScript library that enables full CRUD access from the browser. No need for proxies. Jun Yang, engineer on the GData team, sat down to explain the API and how it works. People will remember when the mainstream thought it was impossible to do full read/write authenticated cross domain access in a secure way.

Jason Cooper, of the Google Mashup Editor team, took the new API that works with Google Calendar, and provided a mashup that is able to create new events in your calendar.

Speaking of JavaScript APIs, The Digg Oracle is a new Google Gears application that showcases the pattern of sucking down data, and allowing you to do local manipulations and data filtering in the client. It makes heavy use of the WorkerPool and the local database. See it in action.

The Google Maps API has also gotten some new features and news. First, a new IP based limit is coming soon, and new enhanced map tiles are available. You can also use custom map types via the Google Maps API Open Source Utility Library.

In the land of open source, Leslie showcased the summer of coders of 2007, and released a podcast on all things GCC. We also discussed our thoughts on the ISO decision on OOXML, and the Google Code for Educators program released a series of lectures on MapReduce.

The Google Gadget and AdSense universes combined for the introduction of Google Gadget Ads, which are customized "mini-sites" that run as ads on AdSense publisher websites. These ads are interactive, engaging, and will appeal to your users, simultaneously providing value to advertisers while getting visitors to stick around your site. The end result is that advertisers get more engaged users, users have a richer ad experience, and publishers opted in to image ads may see increased competition for their ad space.

When you check out your ads, you can watch what is going on via Google Analytics, and the team has created a series of videos to teach you about many advanced features.

These videos could have included a presentation, and now you can create presentations from within Google Docs itself. Now we the great collaboration experience that we have for docs and spreadsheets can be had for your presentations. Please use this power for good, and no slides with 20 bullet points!

To finish up, I can get quick access to results from two of my favourite sports. A quick cricket search gives me all of the Twenty20 scores, and iGoogle gives me the rugby world cup results.

All in all a great week! As always, check out the latest tech talks, subscribe to the Google Developer Podcast and visit the Google Code YouTube channel.


Thursday, September 20, 2007

[Gdev] The Digg Oracle

| More

Google Code - Featured Projects: The Digg Oracle

Digg Oracle Screenshot
Author: Brian Shaler
Google APIs used:
This project shows how you can download data, and run logic on the data locally using the database, and workerpool components via Gears.


New GData JavaScript library enables full read and write access for your mashups

| More

Google Code - Updates: New GData JavaScript library enables full read and write access for your mashups

I am really excited to see the release of the GData JavaScript Client Library for Calendar that allows you to do a lot more with Calendar GData mashups.

Developers have been able to work with our GData feeds from JavaScript for over a year, but only in a read-only capacity. There are plenty of mashups that can be done that way, but what if you want an application that ties into personal content? What if you would like to write an Ajax client that can create, update, or delete entries as well as read it?

Now you can. This release allows you full read-write access to Google Calendar from JavaScript. Instead of requiring server-side proxies to do this for you, AuthSub is fully supported from within the pure JavaScript client.

You can login by doing something similar to:
function logMeIn() {
scope = "";
var token = google.accounts.user.login(scope);

function setupMyService() {
var myService =
new google.gdata.calendar.CalendarService('exampleCo-exampleApp-1');
return myService;
I got to sit down with Jun Yang, who worked on this code, and got his take on the new library:

Armed with this new functionality, I can only imagine how the mashups will become richer. I can't wait to see them!


Wednesday, September 19, 2007

Updates from the Django Sprint

| More

Google Code - Updates: Updates from the Django Sprint

More than 200 people around the world devoted their time and brainpower to improving the Django Web framework this weekend, during a scheduled Django coding sprint. On Friday, September 14th, the first day of the sprint, some Django developers gathered at Google's offices in Chicago and Mountain View for the benefits of in-person communication, camaraderie and, yes, free food.

17 people showed up at Google Chicago, which was a sort of ground zero for the sprint, with the project's BDFLs Adrian Holovaty and Jacob Kaplan-Moss in attendance. Another 7 people participated from Google's Mountain View office, which was linked with Chicago via videoconference.

Python creator (and Google employee) Guido van Rossum even stopped by via videoconference to give a pep talk about Django version 1.0 and share some of his experience running a large open-source project.

The sprint was intensely productive, with more than 400 tickets closed in the Django issue-tracking system, 300 new patches/ticket attachments and more than 200 commits to the Django code base. All told, there were more than 2,440 changes, including wiki changes, ticket changes, patch uploads and code check-ins.

Overall, the consensus was: "We should do this more often!"

The Chicago sprinters, hard at work (photo by Jacob Kaplan-Moss)


Tuesday, September 18, 2007

[Gd] Coming Soon: IP-Based Geocode Limiting System

| More

Official Google Maps API Blog: Coming Soon: IP-Based Geocode Limiting System

In the coming week, the Maps API geocode limit will change from a key-based system to an IP-based system, with a new limit of 15,000 queries per day. If you're a developer with a website that's using client-side geocoding via the GClientGeocoder object, this change means that each of your website visitors will now be subject to their own 15K quota, which they'll find nearly impossible to expend. However, if you're a developer using the HTTP geocoder, this change means that all the geocodes from your script will be subject to the same 15K quota (your web server will send the same IP to us with each geocode).

We've made this change in our geocoder due to the number of developers who've had issues with the GClientGeocoder and going over quota in times of high mashup user volume. The new 15K quota per visitor should give you many more geocodes than the previous 50K quota per site.

If you are using HTTP geocoding and suspect that you may be currently issuing more than 15K queries per day, you will need to take action to make sure that you don't go over the new limit (which would result in queries returning a 620 status code instead of a successful geocode). Here are some proposed workarounds:

  • Switch over to using the GClientGeocoder. Check out an example from our documentation.
  • Supplement your geocoding with another geocoder service. Check out a list of geocoding resources from our forum.

If you determine that you need to issue more than 15K daily queries for a single IP, we are open to the possibility of raising your IP's quota. Please send us an email with a description of your use of the geocoder and links to the website implementing it. We will review your request and let you know if we'll be able to fulfill it.

We apologize for any inconvenience you may experience while transitioning to the new IP-based system. Please post any questions you have about the new system in the Maps API forum.


[Gdev] doTemplate

| More

Google Code - Featured Projects: doTemplate

Author: Thierry Ruiz
Google APIs used:
A HTML template building using GWT.


Monday, September 17, 2007

[Gd] Enhanced Map Tiles for 50+ Countries (Plus Google Spreadsheets Geocoding!)

| More

Official Google Maps API Blog: Enhanced Map Tiles for 50+ Countries (Plus Google Spreadsheets Geocoding!)

As announced on the Google LatLong Blog, Google Maps has added map tile coverage for 54 more countries in South America, Asia, and the Middle East. Those tile updates were also rolled out to the API at the same time, so you can begin your international mashing right away.

In the tradition of the Maps API blog, we're taking advantage of Google Spreadsheets to show off the tile updates. For reading the data from our spreadsheet, we not only use the usual GoogleLookup formula, but also the recently announced importXml formula. This formula specifies a URL and an XPath expression to evaluate on the output of the URL, so we can use it with our HTTP Geocoder output to do all of our geocoding queries within the spreadsheet. First, I specified the constants in cells at the bottom of the sheet:

   B58: ABQIAAAA-O3c-Om9OcvXMOJXreXHAxSsTL4WIgxhMZ0ZK_kHjwHeQuOD4xSbZqVZW2U_OWOxMp3YPfzZl2GavQ B59: B60: /kml/Response/Placemark[1]/Point/coordinates B61: /kml/Response/Status/code 

Then I created the formulas for extracting the status code and coordinates of the geocode, where A2 is the cell containing the country name:

 =importXML(B$59 & "&q;=" & A2 & "&key;=" & B$58, B$61) =importXML(B$59 & "&q;=" & A2 & "&key;=" & B$58, B$60) 

After pasting those formulas in each row and waiting a few seconds for the spreadsheet to perform the XML extraction, I had a column of coordinates for all of the countries. The end result is this spreadsheet, and the map shown below (based off the Spreadsheets->Map wizard output). Click on links in the sidebar to zoom in to a country, or just click a marker to see more information.

Link to Tile Updates Map