Google Developer Day 2007

The Main Stage

This thursday I went over to my second Tech Conference since moving to the San Francisco Bay area, the first being MacWorld back in January, this time, I went to the San Jose convention Center for the 2nd annual Google Developer Day. I must say I hope that Google’s CEO tells the Apple Board of Directors a thing or two about how to hold a Tech Conference.

Google Developer Day 2007 was fantastic fun, and Google made a lot of fantastic announcements just for developers, several of which I’m going to start implementing in my work at Justia.

I really didn’t know what to expect, nothing on the website had mentioned anything about a cost or anything, and while I was reasonably sure that the sessions were free and my registration was free, I thought for sure that food would cost money, and that there would be things to buy at the event (shirts and trinkets and such), but I was wrong. I didn’t spend a dime, the entire day. When I registered, they handed me an info pamphlet, a namebadge, and a coupon to walk over to the left and pick up a free Google Developer Day 2007 t-shirt.

Blogging Lounge

The event began with a keynote by Jeff Huber, VP of Engineering at Google. He announced several new features and tools for developers. He focused on 3 particular new announcements, Maplets, the Google Mashup Editor, and Google Gears. But throughout the rest of the day there would be announcements of several other new features for coders. Google has put up the keynote (and many other sessions up on YouTube. Click play below to watch the keynote.

The most difficult part of going to this event was deciding which of the many sessions to go to. There were between 5 and 6 different sessions to attend in each session timeslot and several times through the day I had a very difficult time choosing a session to attend.

In the 11 o’clock session I chose to attend the Special Session: Building AJAX applications with Google Gears session led by Andy Palay. This session focused on Google Gears, a new combination of API and browser extension by Google that allows developers to bring their AJAX applications offline. With the announcement of Google Gears, they proved the concept by adding this new API to Google Reader. Google Reader is a fantasic online RSS newsreader, but one of it’s drawbacks has always been that you had to be online to use it. Now when you are online, Google Reader will use the Gears API to sync a copy of the data on your local machine, so that when you get on your airplane, you can just simply point your web browser to the google.com/reader URL like normal, and still read your newsfeeds, even mark them as read, tag them, and star them like normal, next time you get online, your changes will sync with the server, saving all your changes. Several sessions throughout the day (starting with this one) focused on explaining how this API works and how it can be used to take any Ajax application offline bringing the advantages of web based applications off of the web and into environments that previously only desktop applications could enter. This is a fantastic new enhancement to the web, and I’m looking forward to implementing the Google Gears API in several projects I’m working on with Justia and personally. At the end of this session, they had us line up in the back to pick up, yet another free T-shirt, advertising Google Gears. Like the Keynote a video of this presentation is available on YouTube, click play below to see it.

Following this first session, it was time to break for lunch, and wow what a lunch. Exhibit Hall 1 was laid out in a massive grid of tables in the four google colors, 4 triangular shaped sections of tables, red, blue, yellow, and green. In the center of the hall was a circular arrangement of buffet tables. 16 different lunch lines to the various tables filled the room, and a variety of food choices were available, all for free. A couple tables were chinese containing Chinese Chicken Salad, beef skewers, and vegetable spring rolls. An itallian line included ravioli and something that looked like lasagna (I didn’t get close enough to this table to see what it featured), a Mexican line featured chicken fajitas and nachos, and a deli line contained various deli sandwiches. There were also various arrangements of cakes at each buffet table, tables of sodas, juices, coffee, tea and water, and large fridges of ice cream (Drumsticks and Nestle Crunch bars). I was shocked that such a fantastic buffet could be free.

Ok, back to the sessions, in the first session timeslot after Lunch I picked to go to the Google AJAX APIs session, and this is where I thought I made my mistake during the day, the session wasn’t bad over all, but it was the only session I went to during the day that didn’t announce anything new, and everything it did talk about, I had already worked with so I didn’t learn anything new during this session. The AJAX Search and AJAX Feed APIs are fantastic APIs put out by google that allow you to embed searches and RSS and atom feeds on web pages with very little programming. The Feed API is particularly impressive, as it is one of the only free ways I’ve seen to embed any RSS or AJAX feed in any web page without any server side component, the way they got around the cross site scripting locks on javascript is astounding. But as I said, I knew all of this way before Google Developer Day, and so this session was not particularly interesting to me.

I should have gone to the session “A Computing System for the World’s Information: A Look Behind the Scenes at Google” instead, which I heard was a fantastic session. Fortunately for me, like the rest of the sessions at GDD07, the video is up on YouTube.

The next session I went to was New Features in Maps API and a few of the new announcements in this session more then made up for the disappointment of the previous session. I have done a lot with the Google Maps API in the two years since it has been announced, and there is one thing in particular that I and many of the other people have worked with the Google Maps API have long wished would be added. When the new Driving Directions functions were described in the session, a few of us actually broke into applause. The new Driving Directions functions not only leverage the fantastic driving directions functions from Google Maps and allow us to put driving directions on our own websites, but they do it in such a way that allows us to style, change, manipulate, and work with those directions so that they can fit in with the style of a site. I’ve already thought of a way to use it on a few sites to apply a simple change to the last direction based on a few factors to make the directions even better. One of the things that has always been lacking on those driving directions is most of them don’t bother to tell you which side of the street the address you are looking for is. Well thanks to this API we can now make better directions by substituting the text of the last direction with text that is more specific, imagine changing the simple “End at 123 Tester’s Lane” to “123 Tester’s Lane is the 3rd building on the left, use the 2nd parking lot entrance you find, we are on the 3rd floor, room 208”, much better directions!

The other enhancement they announced was the Traffic overlays, introduced in google maps a few months ago, you can now add the traffic overlays into your google maps api on your own site if you wish. What will be cool is if they ever add in the ability to mesh that up with the previous api to provide alternate driving directions if someone is wanting directions right now and traffic is backed up on the route they want to take, but that will probably be a while, if ever. Watch the session, you will probably hear my audible cheers throughout the presentation.

Believe it or not, even after our big lunch earlier, 2 hours later I was a tiny bit hungry, fortunately for me, Google provided a 30 minute snack break at this time, featuring fruit trays, and big warm soft pretzels to snack on, after a pretzel and some fruit and a bottle of water I was ready for another session.

In the 3:30 to 4:30 hour session I decided to go to the Special Session: Making Maps Mashups Discoverable with Google Mapplets session. Google Mapplets is one of the 3 new products I mentioned they were focusing the developer day on, and it’s every bit as cool as Google Gears, in fact, it’s something I’m actually going to implement on an important project I’m working on. Google Mapplets are simply a combination of the Google Gadgets API (used to make elements for the iGoogle personalized home page), and the Google Maps API (that I just mentioned). Mapplets allow you to take your Maps API applications and convert them into a format that can be Added to maps.google.com. It’s a bit hard to describe (though if you watch either the keynote or this session you’ll understand soon enough) but it’s a way to do what they are calling a Mashup of Mashups. The example that they give is perhaps the best example I can come up with to explain how this works. Lets say you are looking for a place to live in Chicago. Let’s say for the sake of example that you also want a home that is close enough to the mass transit lines in Chicago that you can get around easily, and of course nobody wants to live in a place with a lot of crime. ChicagoCrime.org is a popular google maps api mashup that maps places where crime has been reported in Chicago. Meanwhile Google has a Real Estate Search mashup of their own to find places to live, and finally there is a simple mashup that maps the mass transit lines in Chicago. You could go to these 3 sites separately, look for a home on the Google Real Estate Search, then check on chicagocrime.org and on the mass transit map to see if the home you like is far enough away from crime, but close to mass transit, but this is complicated, and no one of those 3 sites allows you to see the data from the other two, each is special in it’s own way. Enter Google Mapplets. Google Mapplets lets you map the crime points from chicagocrime.org, the mass transit, and the real estate search results ALL on maps.google.com at the same time, and then for good measure (if you do drive), add in the GasBuddy.com gas price reports so you won’t have to live right next to the most expensive gas station in town. Really cool, and I’m already working on converting some of my Maps mashups to Mapplets so that they can be added to maps.google.com’s mapplet directory.

In the final session I had another difficult decision between 3 sessions I was interested in, one was KML Search and Developing Maps mashups using KML/GeoRSS, the second was Custom Search Engine – Google Search in Your Hands, and the other was Special Session: Building Better AJAX Applications: Nuts & Bolts…and Gears. I decided on the second of those sessions, and I’m glad I did. Several months ago I was working with Google Custom Search Engines to create very many different Search Engines for Justia and Justia Projects. The process was slow, first starting with the online wizard, and then creating XML files to do it better. The problem, and slow down was not in the creating the XML files, I was able to create the over 2000 XML files I needed to create efficiently enough, the problem was the only way to upload these XML files to google was through an HTTP Upload form. This means it had to be done one at a time. To make matters worse, every time you uploaded an XML file, the order of the CSEs on the manage CSE page changed (as it was in order of last update) and this made making sure I uploaded them all properly a bit complicated. In this session, Google announced a brand new enhancement to Google CSEs where you no longer have to create your different CSEs individually in a web based form and then upload XML files through HTTP upload, instead, now all you need is to put the URL of the xml file in the search form, and Google will do the rest. This means it’s now possible to create hundreds of thousands of different CSEs even faster, and what’s more we can now change the definition of the Custom Search Engines on the fly, creating new CSEs programmatically. This is such a fantastic new feature that I got up, walked to the microphone and thanked them for doing this, it makes my job working with the CSEs tons simpler, and gives me a higher level of control then I ever had before, it also allows a ton of different enhancements. In the file you can now add an <Include> tag to include another xml file, so it’s now possible to do things like create universally global blacklists or whitelists of websites and share them with other people. I’m sure such a service of a universal blacklist of spam sites will be available for people to include in their CSEs soon, I am even tempted to create this myself. Anyway, a great session, though I’m sure the other two were just as great. At the end of the session, they handed out yet another free t-shirt, this one with blanks to write on (a customizable t-shirt, to advertise the customizable search engine).

It’s hard to believe that after a day of great informative sessions, free food, and tons of new tools and apis for us to use to make our scripts even better then before, that Google wouldn’t be done giving to us, but Google doesn’t do things small. Following the sessions, Google provided free busses from the San Jose Convention Center to the Googleplex, and at the Googleplex they provided a free party for Google Developer Day attendees with free food, free drinks (even free beer and wine), free games to play, and even more free gifts to take home. I got a Google branded Rubik’s Cube, and four really cool cups with glow-sticks built into them, so that you crack the cup on the side of a table to break the glow-sticks and then the cup glows brightly for the rest of the night. The food was carnival style, there were hot dogs, hamburgers, corn dogs, kettle corn, churros, snow cones, cotton candy, funnel cakes, and more. Inside they had pool tables, a DJ, and a whole bunch of arcade games (PacMan anyone?).

I had a fantastic time networking with other developers and learning about these great new tools and apis from Google.

One interesting thing I thought I should point out, is that the other day when I was doing a google blogsearch to see if anyone new had said anything about Justia, I was somewhat surprised to notice that someone who had heard me stand up and thank the CSE team for the new enhancement had gone through the trouble of noting both my name and company from my name badge and mentioned me on their blog, so here’s a shoutout to James Briggs who mentioned my being at GDD07 before I even had the chance to write this blog post myself.