Friday 28 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: underwater views, disappointing squid, space move

Author Photo
By Scott Knaster, Google Developers Blog Editor

If you’re making a map of the world, you have to pay attention to the large fraction of the planet that’s beneath the water. That’s why Google Maps now includes underwater panoramic images from around the oceans. Naturally, there are a lot of wonderful sights to see, including a sea turtle with a school of fish and an ancient boulder coral. And just for fun, you can watch an underwater hangout from the Great Barrier Reef, without traveling to Australia or getting wet.



We don’t know if Google Maps has yet captured an image of a vampire squid (Vampyroteuthis infernalis). But researchers have found that this creature, whose name means "vampire squid from hell", has been more than a little overhyped. The vampire squid doesn’t hunt victims for blood. Instead, it eats random detritus floating around in the ocean. Still: great name!

Finally, the people who operate the International Space Station have a lot to do, such as making sure it doesn’t plow into any space junk. With that excellent goal in mind, NASA was considering moving the ISS this week to avoid an old satellite and a piece of rocket in its path. How do you move the ISS? By firing the engines of a docked cargo ship, of course!


Fridaygram posts are mostly for fun, not necessarily for developer stuff like our posts the rest of the week. This week Google turned 14 years old, and like lots of others its age, Google is already learning how to drive.

How redBus uses BigQuery to master big data

Author Photo
By Pradeep Kumar, redBus

This guest post was written by Pradeep Kumar. Pradeep is a technical architect at redBus, an online travel agency in India that provides a unified online bus ticketing service. We recently published a business case study for redBus and wanted to dive into some more technical detail for the readers of the Google Developers Blog.


Our company has been providing Internet bus ticketing for India since 2006. There are more than 10,000 bus routes available for booking, and we have dozens of machines processing booking requests. Each step in the booking process produces a lot of data – on search terms, route availability, server health and more. We needed tools to to be able to process this data quickly and easily to determine whether decreases in customer bookings are the result of server problems or simply less demand.

While we typically use relational databases to store and analyze data, we knew we needed something more powerful if we wanted to analyze 500GB or more, so we started to look at open source frameworks like Hadoop and analysis platforms like Hive and Pig. We found that these frameworks require considerable in-house expertise and infrastructure investments and wouldn’t give us answers to our questions as fast as we wanted. We decided to try out Google BigQuery as a trusted tester, with hopes that it would give us the ability to perform quick iterative analysis without much up-front investment. Our initial tests went very well, so we started building our analysis tools on top of BigQuery.

BigQuery allows us to run SQL-like queries to understand the bus routes in highest demand and what types of searches users are performing. We’ve also used it to build internal dashboards that give us a snapshot of system health.


For more information on how we structured our immutable tables, pipelined our data into BigQuery for analysis using RabitMQ, and to see example SQL queries we’ve used, check out my article on developers.google.com.


Pradeep Kumar is a technical architect at redBus.

Posted by Scott Knaster, Editor

Thursday 27 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

AngelHack unites 100+ developers to hack on big data

Michael
Ryan

By Ryan Boyd and Michael Manoochehri, Cloud Developer Relations

Last weekend, we had the pleasure of joining 100+ developers at the AngelHack Big Data hackathon in San Francisco. The event, hosted at the HUB co-working space, was a fantastic gathering of people interested in hacking away on big data.


We had a great time talking with developers about Google BigQuery and the Google Cloud Platform, getting some new feature requests, and learning new things from the folks at Firebase, Couchbase, p(k) and more. We were happy to see a couple dozen developers having the chance to try out BigQuery over the weekend. We also did our first in-person demo of a query running a regular expression match across 13 billion rows (1TB) of data in just 23 seconds, which was very well received!

We went to the event bearing some App Engine schwag and a $250 gift certificate to the Google Play Store to be awarded to the best project that incorporated Google BigQuery or App Engine for crunching big data. We also had a number of datasets to share with the group ranging from stock data provided by NASDAQ Data-On-Demand (powered by Xignite) and US birth statistics data to Wikipedia revision histories + pageviews and n-grams from Google Books.

The prize for the best use of BigQuery or App Engine went to Deepti Yadlapalli and Sushma Yadlapalli. They created a mashup with the NASDAQ stock data, BigQuery and Prior Knowledge's Veritable API to look at correlation between the ask/bid spreads of various stock tickers. Congrats!

Thanks to all the fantastic developers who joined us for the hackathon, and also to the organizers of AngelHack for producing a great event.

Our team is traveling to London for Strata next week. We’re also going to be attending a number of other events, including the London GDG, Big Data London meetup, Big Data Analytics Sydney meetup, Sydney GDG and the Google for Entrepreneurs Day in Sydney. If you’re at any of those events, stop by and let us know what you’re doing with big data!


Ryan Boyd is a Developer Advocate, focused on big data. He's been at Google for 6 years and previously helped build out the Google Apps ISV ecosystem. He published his first book, "Getting Started with OAuth 2.0", with O'Reilly.

Michael Manoochehri is a Developer Programs Engineer working with Google's Cloud developer products. With many years of experience working for research and non-profit organizations, he's interested in making large scale data analysis more accessible and affordable.

Posted by Scott Knaster, Editor

Wednesday 26 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

DevFest season starts off with a bang

Author PictureBy Phoebe Peronto, Developer Marketing

This past weekend marked the beginning of the DevFest season with 10 local events reaching developers in 6 different countries. Local Google Developer Groups spearheaded these community-organized events, offering technical sessions, hackathons, and code labs across various Google product areas. There was too much excitement and feedback to fit into a post without making it enormous, so we’ve chosen some highlights from both organizers and participants.

DevFest Lille | Host: GDG Lille
“Merci à tous les organisateurs, c'était très intéressant :)” --Rémi Bruyère, DevFest Lille attendee

DevFest Jalandhar | Host: GDG Jalandhar City



DevFest London | Host: GDG London
With over 100 developers in attendance and 10 hackathon entries submitted, DevFest London was a success!  We had nine Googlers giving back-to-back developer talks for the day, on everything from Android to Chrome to Google+, with some Drive and Google TV for good measure. The biggest highlight was our mid-afternoon keynote from Michael Mahemoff with his ten moments that changed the web - from Netscape to Chrome and a special mention of Nyan Cat. -- Mark Lunney, GDG London Lead Organizer
“+Michael Mahemoff 's talk on top 10 moments that changed the web is awesome - it boosts morale for our commitment to HTML5 and JavaScript … The Nyan cat at the end rocks.” -- Shah Auckburaully, London DevFest attendee

DevFest NIT Trichy | Host: GDG NIT Trichy
We had an amazing DevFest here at NIT Trichy yesterday! I feel proud to say that DevFest Trichy was a success and the turnout was wonderful.  The talks by Shannon Behrens and Ido Green were really good and our developer community did find it informative. Abhishek Shrivastava's interactive session on developing hacks and apps using Google Chrome APIs was a hit especially the "How-to-develop-a-Chrome-app-in-30-secs!".  GDG NIT Trichy looks forward to more such events in future. :) -- Jeh Agarwal, GDG NIT Trichy DevFest lead organizer

DevFest Shanghai | Host: GDG Shanghai
With 350 developers in attendance and sessions covering everything from Android and Chrome development, to Golang and HTML5, DevFest Shanghai was a hit.  Check out photos from the event -- Sting Chen, GDG Shanghai organizer

DevFest Gandhinagar | Host: GDG Gandhinagar
The major part of the event was based on Android Game Development and Open Mobile Platform. Dart session by Shannon Behrens was a big hit with the participants. Relive the Devfest experience with GDG Gandhinagar’s event photos. -- Deep Moteria, GDG Gandhinagar organizer

DevFest BITS Pilani | Host: GDG BITS-Pilani
Attendees at DevFest BITS Pilani were excited to engage with Google’s technologies. The entire GDG BITS Pilani team would like to thank Google and GDG for making our DevFest possible. This was a novel event for our attendees and we look forward to the return of an even bigger and better DevFest in the future!  -- Akash Saxena, GDG BITS-Pilani DevFest lead organizer

DevFest Manipal | Host: GDG Manipal
Crazy Day One! Close to 350 people turned up for it. +Soham Mondal was the main Speaker. Day two had full day speaker sessions including one by Ido Green and final day saw hackathon attended by 80 developers. Overall a fun developer event. - Nikhil Gupta, GDG Manipal organizer

DevFest Tijuana | Host: GDG Tijuana
Agradecemos a todos su participacion en el evento #SFD2012  + #DevFest   #GDG   #Tijuana  Fue todo un exito.

Want more details?  Visit the GDG event pages below to catch up on all things DevFest.
Shanghai
Lille
Manipal
Jalandhar
NIT Trichy
Gandhinagar
BITS Pilani
Tijuana
London
Sacramento

And, we’re just getting started.  See below for upcoming events.  
Bangalore
IIT Guwahati
Goa
Surabaya
Auckland
Colombo
Jakarta
Seattle
DC
Kyoto
Amman


DevFest season kicked off on September 21st and continues through November 11th.  Join your local developer community at an upcoming DevFest and discover the magic for yourself.  Visit devfest.info for more details and location updates.



Phoebe Peronto is an Associate Product Marketing Manager on the Developer Marketing team here at Google. She’s a foodie who has a penchant for traveling, politics, and running. Oh, and of course...Go Cal Bears!

Posted by Scott Knaster, Editor

Monday 24 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Google Code-in contest for high school students starts this November

By Stephanie Taylor, Open Source Programs

Cross-posted with the Google Open Source Blog


Today marks the launch of the third Google Code-in, an international contest introducing 13-17 year old pre-university students to the world of open source software development. The goal of the contest is to give students the opportunity to explore the many types of projects and tasks involved in open source software development. Globally, open source software development is becoming a major factor in all industries from governments, healthcare, and relief efforts to gaming and large tech companies.

When you hear the term “open source” do you ask yourself:

  • What exactly is open source?  
  • How can I get involved in open source software development if I’m just starting to learn how to code?
  • What types of work do open source projects do?  
  • I’d like to work on open source but I’m not really a coder, what else can I do?
  • I’ve never worked on a global project using IRC and chat groups: can someone help me?

If you’ve wondered about any of these questions and are a pre-university student (age 13-17) then you should join in on the fun with the Google Code-in contest starting November 26, 2012.

From late November to mid January, students will be able to work with 10 open source projects on a variety of tasks. These projects have all successfully served as mentoring organizations working with university students in our Google Summer of Code program.

The types of tasks students will be working on will fall into the following categories:

  1. Code: Tasks related to writing or refactoring code
  2. Documentation/Training: Tasks related to creating/editing documents and helping others learn more
  3. Outreach/research: Tasks related to community management, outreach/marketing, or studying problems and recommending solutions
  4. Quality Assurance: Tasks related to testing and ensuring code is of high quality
  5. User Interface: Tasks related to user experience research or user interface design and interaction

Over the last two years we have had 904 students compete in the contest from 65 countries. This past January we announced the 10 Grand Prize Winners for the 2011 Google Code-in. In June, we flew the winners and a parent/legal guardian to Google’s Mountain View, California headquarters for a 5 day/4 night trip complete with an awards ceremony, talks with Google engineers, Google campus tour, and a full day of fun in San Francisco.

Visit the Frequently Asked Questions page on the Google Code-in site for more details on how to sign up and participate. Please help us spread the word to your friends around the globe. If you are a teacher who would like to encourage your students to participate, please send an email to our team at ospoteam@gmail.com. We would be happy to answer any questions you may have.

Stay tuned to the contest site and subscribe to our mailing list for more updates on the contest. We will announce the 10 open source organizations that will be participating in the contest on November 12. The Google Code-in contest starts on November 26, 2012, and we look forward to welcoming hundreds of students from around the world into the open source family.


Written by Stephanie Taylor, Open Source Programs

Posted by Scott Knaster, Editor

Thursday 20 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Build apps for elections with the Google Civic Information API

Author Photo
By Chetan Sabnis, Google Politics & Elections Team

Cross-posted from the Google Politics & Elections Blog

Google’s mission is to organize the world’s information and make it universally accessible and useful. To make it easier for you to build apps with voting information on the web, we are releasing our new Google Civic Information API. The API enables you to look up comprehensive voting information for an individual U.S. address, including polling place, early vote sites, contests, and local election official contact information. By releasing this API, we hope to unleash the creativity of the Internet and help you build innovative products that push civic information to your communities in interesting ways.

As you know, this type of information can change frequently as we get closer to Election Day, and we will make every effort to ensure we're returning timely and accurate data. We have also included contact information for local election officials in the API so voters can find the most accurate information.

While this API only includes voting information for elections in the U.S., we plan to expand to other countries and include other types of civic information. Please join the Google Civic Information API Forum for updates on the data available and check out the Google Politics & Elections page to find more information about the work we are doing around the election and our international elections programs.


You can get started here through the Google APIs Explorer. The API is available now, but please note that full information isn't yet available for the November 6th General Election. We expect to be able to provide full live data around the middle of October, as it becomes available. For now, we recommend building your applications using the test data we provide. We'll be using the API to power our own election tools over the coming weeks, including an embeddable app anyone can use on their site, and we're looking forward to seeing the applications you come up with!

The Civic Information API replaces our previous Google Election Center API, which will be turned down after January 1, 2013.

For questions, comments, and to showcase your apps using the API, we encourage you to use the Google Civic Information API Forum.


Chetan Sabnis is a software engineer on the Google Politics & Elections team. In his spare time, Chetan enjoys solving logic puzzles and crosswords.

Posted by Scott Knaster, Editor

Wednesday 19 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Announcing Movi.Kanti.Revo, a new Chrome Experiment

Author PictureBy Pete LePage, Developer Advocate

Cross-posted with the Chromium Blog

Earlier this year at Google I/O, we gave developers a sneak peek at Movi.Kanti.Revo, a new sensory Chrome experiment crafted by Cirque du Soleil and developed by Subatomic Systems that brings the magic of Cirque du Soleil to the web through modern web technologies. The full experiment, which allows users to follow a mysterious character through a beautiful world of Cirque du Soleil performances, was launched today at the Big Tent event in New York City.



The experiment was created using just HTML5, and the environment is built entirely with markup and CSS. Like set pieces on stage, divs, images and other elements are positioned in a 3D space using CSS. To create movement, CSS animations and 3D transforms were applied making the elements appear closer and further away. Everything is positioned and scaled individually to create a highly realistic interactive environment. In addition, the experiment uses HTML5 <audio> to play music and sounds.

Movi.Kanti.Revo breaks with the tradition of keyboard or mouse navigation; instead users navigate through an interactive Cirque du Soleil world with their gestures. To accomplish this, the experiment asks users for permission to access their web cam using the new getUserMedia API. With this new API, the experiment renders the camera output to a small <video> element on the page. A facial detection JavaScript library then looks for movement and applies a CSS 3D transform to the elements on the page, making environment move with the user.


Because this experience was built using just markup, it works in the browser across all devices. The experiment takes advantage of the rich capabilities possible on mobile devices, like the accelerometer to navigate through the world.

To learn more about how this experiment was built, check out the new technical case study or join us for a special Google Developers Live Behind The Divs event on September 20th at 8:30am PDT /15:30 UTC where we’ll be talking to the engineers behind the project.

Head over to Movi.Kanti.Revo at www.movikantirevo.com to check things out, and be sure to open Chrome’s developer tools to see what’s going on behind the <div>s!


Pete LePage is a Developer Advocate on the Google Chrome team and works with developers to create great web applications for the Chrome Web Store. He recently helped launch the +Chrome Developers page on Google+.

Posted by Scott Knaster, Editor

Tuesday 18 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Get social, mobile, and 40+ new data points with the Google Analytics API

Nick
Pete
By Pete Frisella and Nick Mihailovski, Google Analytics API Team

Google Analytics Core Reporting APIs enable a powerful and flexible way to analyze, report on, and ultimately optimize such things as web and mobile experiences, conversions, and sales.

Today we’re adding over 40 new metrics and dimensions that can be queried through the Core Reporting API. This enables developers to create reports that are similar to what is available in the Google Analytics web interface for important areas such as social and mobile. See a full list of additions on the Core Reporting API changelog.


Here’s a rundown of what’s new and a few helpful questions the data can answer.

Social Data
Now you can get data for both on-site interactions with social buttons as well as off-site social data from social data hub partner networks.

Mobile Devices
For mobile visits to your site, get all the good stuff like like brand, model, and input type.

Geo
We added a new dimension to indicate the Designated Market Area (DMA) where traffic came from.

Page Path Rollups
Create your own drill down reports with these new dimensions that allow you to roll-up metrics to hierarchical levels of your property.

App & Exception Tracking
If you’re using the Google Analytics SDK for iOS/Android v2 beta, you can now retrieve App View and Exception metrics.

User Timings
New ways to report on all things related to user timing data.


Related Resources:


Pete Frisella is a Developer Advocate for Google Analytics. He likes to travel and hit the golf course when he can.

Nick Mihailovski is a Senior Developer Programs Engineer working on the Google Analytics API. In his spare time he likes to travel around the world.

Posted by Scott Knaster, Editor

Monday 17 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Adding OAuth 2.0 support for IMAP/SMTP and XMPP to enhance auth security

Author PhotoBy Ryan Troll, Application Security Team

Cross-posted with the Google Online Security Blog

Our users and developers take password security seriously and so do we. Passwords alone have weaknesses we all know about, so we’re working over the long term to support additional mechanisms to help protect user information. Over a year ago, we announced a recommendation that OAuth 2.0 become the standard authentication mechanism for our APIs so you can make the safest apps using Google platforms. You can use OAuth 2.0 to build clients and websites that securely access account data and work with our advanced security features, such as 2-step verification. But our commitment to OAuth 2.0 is not limited to web APIs. Today we’re going a step further by adding OAuth 2.0 support for IMAP/SMTP and XMPP. Developers using these protocols can now move to OAuth 2.0, and users will experience the benefits of more secure OAuth 2.0 clients.

When clients use OAuth 2.0, they never ask users for passwords. Users have tighter control over what data clients have access to, and clients never see a user's password, making it much harder for a password to be stolen. If a user has their laptop stolen, or has any reason to believe that a client has been compromised, they can revoke the client’s access without impacting anything else that has access to their data.

We are also announcing the deprecation of older authentication mechanisms. If you’re using these you should move to the new OAuth 2.0 APIs.
Our team has been working hard since we announced our support of OAuth in 2008 to make it easy for you to create applications that use more secure mechanisms than passwords to protect user information. Check out the Google Developers Blog for examples, including the OAuth 2.0 Playground and Service Accounts, or see Using OAuth 2.0 to Access Google APIs.


Ryan Troll has been with Google since 2010, and now works with the Application Security Team, focusing on OAuth and 2-Step Verification. When not at work, he spends time with his family, reads, and occasionally plays poker.

Posted by Scott Knaster, Editor

Saturday 15 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Retiring the Google Documents List API v3

Author PhotoBy Ali Afshar, Tech Lead, Google Drive Developer Relations

Cross-posted from the Google Apps Developer Blog

With the arrival of the new Google Drive API v2, we are deprecating the Google Documents List API v3. We are confident that the Google Drive API covers all the functionality of the Documents List API, in addition to adding many improvements, including Drive UI Integration, a finer grained security model, and a better client library experience.

What does this mean for your app?

The Documents List API v3 will remain in action for more than a year, as per our deprecation policy, so there’s no rush, but we encourage you to migrate your code to the new platform. Documentation is available with samples in multiple languages and a migration guide outlining some of the major transition points.

If you have any questions or issues, please ask them on StackOverflow.com, where our team is waiting to hear from you.


Ali Afshar is an eternal open source advocate. He contributes to a number of open source applications, and is the author of the PIDA Python IDE. Once an intensive care physician, he has a special interest in all aspects of technology for healthcare.

Posted by Scott Knaster, Editor

Friday 14 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: Course Builder, superhydrophobia, Easter Bacon

Author Photo
By Scott Knaster, Google Developers Blog Editor

This summer Google ran an online course called Power Searching with Google. The course was so popular that Peter Norvig and the Research at Google people who created it decided to generalize the course code and framework, and make it into Course Builder, an open source project that’s now available. The Research team points out that Course Builder is an experiment, and there’s a lot of work still to be done, but if you’re interested in this approach, you can join a bunch of schools that are considering using Course Builder.

Speaking of research, you might think that we have little new to learn about the very basic task of boiling water, but of course that’s not true. Researchers at several schools around the world recently collaborated to produce a way to boil water without producing bubbles.



This discovery has many potential practical applications. It could be used to prevent vapor buildup that can cause explosions, or could even lead to discoveries of ways to reduce surface drag or prevent frost from forming. But most important, it’s really, really cool.

Finally, here’s a fun new Easter egg (or is it a valuable new search tool?). In a Google search box, enter the name of your favorite actor, followed by Bacon number. (If you’re unfamiliar with the Bacon number phenomenon, you can find out more.) Maybe you’ll get some ideas about movies to see over the weekend!


Each week our Fridaygram presents cool things from Google and elsewhere that you might not have heard about. Some Fridaygram items aren't related to developer topics, but all of them are interesting to us nerds. For extra credit this week, you can check into the small set of people who have a defined ErdÅ‘s–Bacon number.

Thursday 13 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Python Client Library for Google APIs is out of Beta

Antonio
Joe

By Joe Gregorio and Antonio Fuentes, Google Developer Team

We have awesome news for Python developers. The Python Client Library for Google APIs is no longer in Beta! The Python Client Library has been augmented with many great features since its Beta launch. It now supports OAuth 2.0 service accounts, upload of media resources, batching of requests, asynchronous requests, resumable media upload, feed paging and many other features.

We encourage you to check out the new documentation for the client library, which not only has brand new content, but also has a slick new look and is now hosted on developers.google.com.

If you are building a Python application that uses Google APIs, we strongly recommend you use this client library. First, the library makes it simple to call any RESTful Google API and grab the data returned by the call. Also, the client library handles the OAuth 2.0 authentication protocol and all errors for you without the need to write any additional code.

Making a call to a RESTful API using the Google APIs Client Library for Python is simple. You start by constructing an http object to sign all requests with OAuth 2.0 credentials:

http = httplib2.Http()
http = credentials.authorize(http)


You then create a service object that knows how to talk to a Google API. In this example, we use the Google+ API:

service = build("plus", "v1", http=http)

You then access a collection of resources in the API by simply calling its name. The collection object that is returned has all the methods that a collection understands. Here we execute a GET request on the people collection passing the userID parameter:

person = service.people().get(userId='me').execute()
print "Your name is: %s" % person['displayName']


To get started, check out the documentation for the client library, which contains instructions for how to download and install it. As always, your feedback is welcome!


Joe Gregorio is a Software Engineer. In the past five years at Google he’s worked on APIs, Google App Engine, Google Wave, and now has come full circle and is back working on APIs.

Antonio Fuentes is a Product Manager focusing on developer-facing technologies. He has experience launching products in the cloud computing, infrastructure, and virtualization spaces.

Posted by Scott Knaster, Editor

Tuesday 11 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Six strategies for building a great Chrome extension

Author Photo
This guest post was written by , CTO of Ecquire

Even though the words "browser extension" connote a one-trick feature, today’s browser extensions allow developers to accomplish some pretty amazing things. Entire companies are being funded and sold as extensions and providing serious value to users.

Here’s how you can make your browser extension a formidable product.

1. Use Your Superpowers

Developing an extension gives you advantages you may not have been aware of. Think of your extension as an abnormally powerful front end. I'll name a few features we've especially enjoyed:
  • Let your users install very slickly directly from your home website to increase conversions.
  • List on the Chrome Web Store for tens of thousands of free impressions. (Tip: For maximum exposure and traffic, invest time in beautiful graphic assets.)
  • Use localStorage as a super-easy store. Unlike in regular web applications, localStorage for extensions remains untouched even if users clear their cookies. (For more structured, asynchronous, client-side storage of large amounts of objects, take a look at IndexedDB.)
  • Let Chrome sync your extension across devices, including data you store in chrome.storage.sync.
Extensions are your chance to hack with any site you've wanted to improve beyond the limits of their API. There are many more very powerful advantages browser extensions have - these are just the lesser known ones.

Check out examples and look at what other apps (even silly ones) have done. If you find yourself asking “how did they do that?”, check out the source code.

2. Know What's Going On Inside Your App

Because extensions are front ends on steroids, you have your pick of almost any web analytics software you choose. We recommend choosing an event-based, not a page view-based model because the definition of a page view is hard to interpret in most extensions. Instead, track specific interactions.

We chose Mixpanel, but there's an official Chrome tutorial on using Google Analytics in an extension. The principles of implementation are the same no matter what you choose.

Solid analytics help you answer questions about what's going on inside your app using hard data instead of intuition and opinions. It will also undoubtedly reveal a few unexpected surprises about user behavior.

3. Connect to Third-Party APIs

Good apps avoid reinventing the wheel, and great apps connect users to the services they already like using. Extensions can request permission to connect with any domain. Just because you're an extension doesn't mean you can't use OAuth to authorize those requests.

If your extension has a server backend, then fantastic, you have plenty of resources to help you. If you want to directly make requests from the user's computer, that is completely possible. The initial handshake and exchange of access token is done from a light server, but after that you can save the tokens locally. This allows your extension to run all of its interactions client-side if you'd like to keep things simple.

4. Make Money

Accepting credit cards and making financial transactions via an extension can be just as ironclad and secure as anywhere else. There's no shortage of billing management services that provide hosted payment pages and APIs.

Simply direct users to secure hosted payment pages to accept credit card information, letting the billing service deal with compliance. We use Recurly, which conveniently allows our users to use coupon codes, receive invoices by email, and manage their billing info directly, saving us even more development time and headache.

Hosted payment pages may be simple to implement, but they are pretty powerful (see also Chargify and CheddarGetter). They allow very specific management of your paying customers. Hosted payment pages can make your extension aware of the user's subscription status, to deactivate or activate as appropriate. Your customers’ payment statuses can be accessed with APIs behind the scenes throughout the lifetime of your extensions.

If you prefer a super-streamlined flow for your customers - one where they potentially do not need to enter their credit card information - using a hosted payment page from Paypal or the recently announced Google Wallet for digital goods are your best bets for maximum coverage and quickest checkout.

Using hosted payment systems affords maximum functionality with the least amount of coding and testing - or any server-side billing logic. Most importantly, you have peace of mind that your customer's financial information is secure and compliant. No compromises.

5. Use Frontend Frameworks

Anywhere there's JavaScript, you can use JQuery, BackboneJS and CoffeeScript: any JS library or plugin you love. This applies across the extension architecture, from injected UI in content scripts to any background code. The entire platform is web frontend - you can run anything you would use in a web application.

6. Test All the Freaking Time

Okay, I admit it's a more fun motto to say than to do, but if you're a TATFTer, I have good news for you. Adrian Unger provides a how-to on using Jasmine BDD in browser extensions even in the sub-cockles of your content scripts, even in the context of a live, logged-in webpage.

Peace of mind about your code is important, but it's even more crucial in extensions where you don't control the webpages you may be injecting into. You can use Jasmine to assert that the DOM of your target web sites hasn't changed too much and that your code is still valid out in the wild web.

In summary, just when you thought you knew everything you could do on the web, new doors open up. This is just a small taste of our lessons learned about what puts browser extensions in the league of extraordinary platforms. Like any new platform, I can’t even imagine the innovation that has yet to launch.


is the CTO of Ecquire, a maker of CRM workflow automation software. Capture contacts from anywhere and Ecquire puts it in the right account for you. Read Tal’s guides on Chrome development and startup experiences on the Ecquire blog.

Posted by Scott Knaster, Editor

Friday 7 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: more in maps, Voyager goes on, forecast humor

Author Photo
By Scott Knaster, Google Developers Blog Editor

While many of us have been on vacation recently, our maps team has been keeping the world informed with new features and data for travelers and locals. Just in the past couple of weeks, there’s a bunch of new stuff, including:

Auckland map
  • Voice-guided, turn-by-turn directions and live traffic info added for thousands of towns in India as part of Google Maps Navigation (Beta).
  • Biking directions in New Zealand. Plus, bicycle people can use Map Maker to add or edit bike lane and trail information.
  • New street view images for more than 150 university campuses, adding to more than 100 that were already available.
Maybe the Maps folks are taking holidays after all. It’s just that they’re mapping the places they visit.

Speaking of traveling and mapping, no human-made object has traveled farther from Earth than Voyager 1. Now 35 years and two days into its journey, Voyager is nearing the edge of the solar system. We Fridaygrammed about that once before, and we told you that Voyager was leaving our system soon, but now it looks like Voyager is taking its sweet time in departing, and it might be two to three more years before it exits into interstellar space. We’ll keep on top of this story for you.

Voyager is going where no one has gone before, and the man who introduced us to that phrase received his own quiet tribute earlier this week from the U.S. National Hurricane Center. Nicely done, Forecaster Cangialosi. (And we’ve done our own tribute in today’s Google Doodle.)


Code: the final frontier. These are the posts of the Google Developers Blog. Our mission: to seek out Google developer news, except on Fridays, when random nerd fun takes over. Your mission: have a great weekend!

Winners of the Google I/O Develop for Good global hackathon

Author PhotoBy Anna de Paula Hanika, Google.org

Cross-posted with the Google.org Blog

This year during Google I/O more than 30,000 developers gathered at 350+ I/O Extended events in 172 countries around the world. While they came together to see the Nexus 7 unveiled and a death-defying Project Glass demo, we invited them to participate in the Develop for Good hackathon. Over the past couple of months we’ve been reviewing submissions and today are proud to share the winning team in each category.

Google Green - Help us all be a little bit greener!

A team from the GDG Karachi Extended event in Pakistan developed a concept for ‘Green It’ — a Google+ based app that would allow users to report local environmental concerns, gain validation of the issue via nearby smartphone users and aggregate reports in a public online interface. Users would be encouraged to participate through a rewards system.


screen shot

Google Ideas - Conflict reporting for blackout situations in repressive regimes

A team from the San Francisco Extended event developed a product concept for Silent Lens; an Android application which would allow citizens to safely send encrypted image-based messages over multi-modal ad-hoc mesh networks. The app would allow citizens to anonymously report issues or violence in repressive regimes when other phone or Internet connections may be temporarily limited, or intermittently severed.

Google Politics & Elections - Citizen Engagement for Politics & Elections

A team from the Lagos GDG I/O Extended event at the Co Creation Hub in Nigeria built a prototype for Assembly Bills — a web based platform that can help Nigerian citizens provide input on legislative bills and policy remotely, without having to fly across the country to the capital of Lagos to provide input in person, as is currently necessary. Keep an eye out for their new site!

Winning teams received tickets to attend I/O 2013, along with the honorary title of "Google Developer for Good, 2012". Congratulations to the winners, and a huge thanks to all participants for their hard work. We look forward to seeing the winning teams build out their ideas!



Anna de Paula Hanika is a Product Marketing Manager on the Google.org team, currently focused on Google's Green and Giving efforts, and all things related to using technology to make the world a better place.

Posted by Scott Knaster, Editor

Thursday 6 September 2012
Facebook StumbleUpon Twitter Google+ Pin It

GDG DevFest season: community-organized developer events

Author Photo
By Uttam Tripathi, Developer Relations Team

Just a couple of months ago developers from all over the world gathered for Google I/O, our annual developer conference in San Francisco. Now the community of Google Developer Groups (GDG) is taking the initiative to organize a series of GDG DevFest events worldwide.


DevFest logo

GDG DevFests are powered by a shared belief that when developers come together to exchange ideas, amazing things can happen. These community-run events offer technical sessions, hackathons, and code labs across different Google product areas. Each GDG DevFest is uniquely tailored to the needs of the developer community that hosts it.

This year’s global GDG DevFest season will see events from London to Shanghai, Bangalore to Buenos Aires, Auckland to Mountain View and beyond. Our inaugural GDG DevFest season kicks off September 21 and continues through November 11.


map of devfest locations

We would love to see more events across the world. These are community-organized events, so if you don’t see an event in your area and are interested in having one, check out the next steps here. Do visit devfest.info as more and more locations share their plans.

See you at your local GDG DevFest!


Uttam Tripathi is a Program Manger on the Developer Relations Team. Uttam is coordinating this year's GDG DevFest program worldwide and is in charge of developer outreach in India.

Posted by Scott Knaster, Editor