Thursday, February 23, 2012

The new search in Google Earth 6.2

Lao-tzu once said, “The journey of a thousand miles begins with a single step.” In Google Earth, that single step is often searching for the name of the place you want to go. The search field is the gateway to all of the amazing places you might visit, and for the recent release of Google Earth 6.2, we worked hard to make it even more powerful and easy to use. As a result, searching for a location in Google Earth 6.2 is a bit different: we’ve streamlined the look and feel of the search interface, removing tabs and consolidating all the search fields together into one (just like Google Search). We’ve also added features that Google Earth previously didn’t have, like transit directions and search layers. And we’ve made sure that underneath these shiny new features, you still have access to the power and flexibility of KML. If you live in one of the many metropolitan areas supported by Google Transit, you’ve probably used the transit directions search on Google Maps to plan a trip. Now you can do the same thing in 3D with Google Earth. Select “Get Directions” and enter your endpoints, then choose the train icon at the top of the search results for public route instructions. You can also click on any of the transit stations or stops to fly there. Be sure to turn on 3D buildings - some train stations are really quite pretty! You’ll also notice icons for walking and biking directions, so if you’ve ever wanted to go on a virtual tour of your next cycling excursion, or find out just how steep that hill is before you commit to the journey, now you can.
Search layers were first introduced in Google Maps a few years ago, and at last, they’ve recently made their way to Google Earth. Search layers enable you to see all the results of your search on the map at once, not just the top ten, making it easy to find clusters of certain types of businesses like fast food restaurants or coffee shops. One of the more entertaining uses of search layers that I’ve found has to do with a road that will be familiar to anyone who’s visited California: El Camino Real. Stretching from Sonoma Valley to San Diego, El Camino is a great place to find shops and restaurants of all kinds - and lots of them! Here’s a search layer for all the pizza places in the San Francisco Bay area; can you spot El Camino?
Search in Google Earth is much more than a pretty face, though. Just beneath the surface lies the powerful KML language, which you can use to take full control of your searches. Right-click on any search listing to save it to My Places or copy it as KML text, or click one of the icons below the search results to save or copy everything all at once. Save your walking directions to My Places and start a tour of the route to get turn-by-turn directions from the comfort of your chair. You can also click on “History” below the search field to see all of your recent searches at once, and selectively hide and show results to get, say, a picture of the top ten hotels and crêpe restaurants in Paris, for optimal crêpe-eating efficiency.

Wednesday, February 22, 2012

The Extreme Makeover: Home Edition

  The popular TV show Extreme Makeover: Home Edition recently completed its nine-season run, and user sladys over at Google Earth Hacks has posted a file with the location of virtually every home in the series. It's neat to be able to quickly fly down and view each of these remarkable homes.   makeover.jpg  What I found remarkable was the consistent spread of homes across the United States. I don't know if the producers intentionally tried to reach every corner of the country, but that's certainly what happened.   us.jpg  To see it for yourself, you can download this KML file or view the details of it at Google Earth Hacks.

The Ad Exchange developers

The DoubleClick Ad Exchange launched five years ago (logging its first impression in June 2007), and it didn’t take long for the product to open up to developers. In 2008, we launched a real-time bidding (RTB) protocol, enabling sophisticated buyers to analyze and bid for impressions in real time. As the Ad Exchange and RTB grew, so did our pool of developers. Presently, close to 75 percent of all Ad Exchange spend comes via RTB. Some of our largest buyers are agency trading desks and demand-side platforms that were created around the RTB opportunity. Simply put, Ad Exchange thrives thanks to the work of our developer community.
Today, we officially welcome Ad Exchange developers to the Google Ads Developer Blog. We’ll be using the blog to update Ad Exchange developers on news, best practices, and beta features. We’ll also highlight upcoming events like webinars, Google+ Hangouts, and on-site Developer Day workshops. The Ad Exchange team is excited to engage more with our developer community. To subscribe to Ad Exchange news, click on our ad_exchange feed.

Sunday, February 19, 2012

The Chrome for Android

In 2008, we launched Google Chrome to help make the web better. We’re excited that millions of people around the world use Chrome as their primary browser and we want to keep improving that experience. Today, we're introducing Chrome for Android Beta, which brings many of the things you’ve come to love about Chrome to your Android 4.0 Ice Cream Sandwich phone or tablet. Like the desktop version, Chrome for Android Beta is focused on speed and simplicity, but it also features seamless sign-in and sync so you can take your personalized web browsing experience with you wherever you go, across devices. Speed With Chrome for Android, you can search, navigate and browse fast—Chrome fast. You can scroll through web pages as quickly as you can flick your finger. When searching, your top search results are loaded in the background as you type so pages appear instantly. And of course, both search and navigation can all be done quickly from the Chrome omnibox. Simplicity Chrome for Android is designed from the ground up for mobile devices. We reimagined tabs so they fit just as naturally on a small-screen phone as they do on a larger screen tablet. You can flip or swipe between an unlimited number of tabs using intuitive gestures, as if you’re holding a deck of cards in the palm of your hands, each one a new window to the web. One of the biggest pains of mobile browsing is selecting the correct link out of several on a small-screen device. Link Preview does away with hunting and pecking for links on a web page by automatically zooming in on links to make selecting the precise one easier. And as with Chrome on desktop, we built Chrome for Android with privacy in mind from the beginning, including incognito mode for private browsing and fine-grained privacy options (tap menu icon, ‘Settings,’ and then ‘Privacy’). Sign in You can now bring your personalized Chrome experience with you to your Android phone or tablet. If you sign in to Chrome on your Android device, you can:
  • View open tabs: Access the tabs you left open on your computer (also signed into Chrome)—picking up exactly where you left off.
  • Get smarter suggestions: If you visit a site often on your computer, you'll also get an autocomplete suggestion for it on your mobile device, so you can spend less time typing.
  • Sync bookmarks: Conveniently access your favorite sites no matter where you are or which device you’re using.
Chrome is now available in Beta from Android Market, in select countries and languages for phones and tablets with Android 4.0, Ice Cream Sandwich. We’re eager to hear your feedback. Finally, we look forward to working closely with the developer community to create a better web on a platform that defines mobile.

Saturday, February 18, 2012

The Google Earth seafloor

  To celebrate the three year anniversary of the release of the 3D Ocean in Google Earth, they've just released a major update to their bathymetry (underwater terrain) and it looks great! Similar to their recent update "Pretty Earth" update, this one does quite a lot to help clean up stray artifacts and images visible in the ocean. A great example of that is Guam, seen here alongside the Marianas Trench, the deepest trench in the world:   guam.jpg  Another noteworthy change is that "Atlantis" is now gone. A few years ago some people thought they had found the lost city of Atlantis, but it turned out to simply be sonar tracks from a ship. While that was a reasonable and accurate explanation, the sonar tracks were still pretty ugly on the surface of the ocean. They're now cleaned up as part of this update and the area looks as clear as it should:   atlantis.jpg  To see more of what's changed, Google has created this short video to give you a tour:     Combined with the new patchless imagery, the earth is suddenly looking remarkably better all the way around. For more, check out this entry in the Google Lat Long Blog.

France: Google Maps is Guilty of Being a Free Resource

  You got to love France.
A French commercial court has found Google guilty of abusing the dominant position of its Google Maps application and ordered it to pay a fine and damages to a French mapping company. In a ruling Tuesday, the Paris court upheld an unfair competition complaint lodged by Bottin Cartographes against Google France and its parent company Google Inc. for providing free web mapping services to some businesses. The court ordered Google to pay 500,000 euros ($660,000) in damages and interest to the plaintiff and a 15,000 euro fine.
Bottin Cartographes’ webpage is sparse on what actually they do that people want.  Rule number one of failing, sue the rich competitor when your own stuff  falls flat.  Clearly Europe has it’s eye on Google and I suspect we’ll see many more of these “judgements”.  And god forbid, don’t let Bottin find out about OpenStreetMap.  They dump just about anything on the market for free.
 

Friday, February 10, 2012

AdSense Management API and Chart Tools

  Welcome back to Chart Tools week here on the blog, where we're continuing our overview of generating charts for your AdSense reporting with Google Chart Tools. Today we’ll examine how to generate two other types of charts: a table chart and a geo chart.

Table chart

The third chart requested by our CEO is a table chart. The table chart will contain the number of ad requests, the number of matched ad requests, and the number of individual ad impressions broken down by ad client ID. Our request will have these parameters:
start date: 2011-01-01
end date: 2011-12-31
dimensions: AD_CLIENT_ID
metrics: AD_REQUESTS, MATCHED_AD_REQUESTS, INDIVIDUAL_AD_IMPRESSIONS
filters: (none)
And the result will be similar to:
result = {
  "kind": "adsense#report",
  "totalMatchedRows": "4",
  "headers": [ {...} ],
  "rows": [
    ["ca-afdo-pub-1234567890123456", "59", "55", "232"],
    ...
    ["partner-mb-pub-1234567890123456", "1", "0", "0"]
  ],
  "totals": ["", "278", "264", "825"],
  "averages": ["", "69", "66", "206"]
}
  As usual, let’s create a DataTable and a DataView to perform transformations on columns:
var data = new google.visualization.arrayToDataTable([['Ad client id',
    'AD_REQUESTS', 'MATCHED_AD_REQUESTS', 'INDIVIDUAL_AD_IMPRESSIONS']]
    .concat(resp.rows));
var view = new google.visualization.DataView(data);
view.setColumns([
  0,
  {calc:function(dataTable, rowNum) {return parseInt(dataTable.getValue(
      rowNum, 1))}, type:'number', label:'Ad requests'},
  {calc:function(dataTable, rowNum) {return parseInt(dataTable.getValue(
      rowNum, 2))}, type:'number', label:'Matched ad requests'},
  {calc:function(dataTable, rowNum) {return parseInt(dataTable.getValue(
      rowNum, 3))}, type:'number', label:'Individual ad impressions'}
]);
  Finally, let’s draw the table chart. Note that there is no title for a table chart: if you need one, you’ll have to add it in a different element.
var tableWrapper = new google.visualization.ChartWrapper({
  chartType: 'Table',
  dataTable: view,
  containerId: 'vis_div'
});
tableWrapper.draw();
  The table chart for our CEO is ready, and it can be sorted and paged. Check the live example and the source code for today!

Geo chart

Finally, the last chart requested from our CEO: a geo chart. The geo chart will show the number of page views for the year broken down by country name. Our request will have these parameters:
start date: 2011-01-01
end date: 2011-12-31
dimensions: COUNTRY_NAME
metrics: PAGE_VIEWS
filters: (none)
And the result will be similar to:
result = {
  "kind": "adsense#report",
  "totalMatchedRows": "9",
  "headers": [ {...} ],
  "rows": [
    ["Canada", "1"],
    ...
    ["United States", "52"]
  ],
  "totals": ["", "241"],
  "averages": ["", "26"],
}
  DataTable and DataView creation step:
var data = new google.visualization.arrayToDataTable(
          [['Country', 'Page Views']].concat(resp.rows));

var view = new google.visualization.DataView(data);
view.setColumns([
  0,
  {calc:function(dataTable, rowNum) {return parseInt(dataTable.getValue(
      rowNum, 1))}, type:'number', label:'Page views'}
]);
  Now we can draw the geo chart. For the geo chart there is no title:
var geoChartWrapper = new google.visualization.ChartWrapper({
  chartType: 'GeoChart',
  dataTable: view,
  containerId: 'vis_div'
});
geoChartWrapper.draw();
  Et voilà! We have a map of the world with colors and values assigned to specific countries representing the page views from the countries for the current year. Check the live example and the source code for today.

Time to play!

Eager to try to see what you can do combining these two powerful Google APIs? You can start immediately using our Google API Explorer and our Google Visualization PlayGround. You can use the Explorer to query our AdSense Management API, and then use the results inside the code on the Visualization PlayGround to generate a chart. In the next and final part of this series, we will see how to assemble multiple charts into dashboards and enrich them with interactive controls to manipulate the data they display.

Thursday, February 9, 2012

The strengths of autism shine in 3D

  About 8 years ago, the SketchUp team started receiving some pretty intriguing calls: parents of children on the autism spectrum were calling to let us know how SketchUp was changing their kids’ lives. People with autism tend to be unusually strong visual and spatial thinkers, and it became clear that SketchUp plays to those strengths. With that bit of information (and help from the Autism Society of Boulder County), we launched Project Spectrum with a single goal: connecting the autism community with SketchUp. For some children on the spectrum, especially those who are nonverbal, SketchUp serves as a way to communicate allowing them to share their thoughts through images. Other kids learn life skills that help them to achieve educational and career goals they might not have even aspired to before SketchUp. It seems SketchUp builds self-esteem since these children are able to model circles (and squares) around their neurotypical peers.
  Certified SketchUp instructor Steve Gross teaches two children how to use the SketchUp at an iSTAR camp.    It was these anecdotes that inspired Cheryl Wright, Associate Professor in Family & Consumer Studies, at the University of Utah, to study the SketchUp/autism connection in detail. Cheryl and her team have hosted several SketchUp camps, called project iSTAR, for dozens of children with autism. Cheryl’s team studied hundreds of hours of video of campers, and last month they published a paper in the Family & Consumer Sciences Research Journal outlining their findings. While the camp set out to develop a skill set that could lead to potential employment, Utah researchers found several added benefits, such as stronger interpersonal relationships and greater confidence due, in large part, to a focus on the kids’ talents instead of their disorder. Cheryl explains, “[The campers] talents are often invisible. In our program, we provided a platform for their talents to shine.” This, of course, is only a taste of the study’s findings, and we encourage you to read the team’s article to learn more. Lastly, we’d like to thank the University of Utah for helping us, and the world, understand how we can better prepare children on the autism spectrum for success. We look forward to continuing to forge new learnings that will enable us to touch more lives.

Tuesday, February 7, 2012

Tips that are Good to Know

Does this person sound familiar? He can’t be bothered to type a password into his phone every time he wants to play a game of Angry Birds. When he does need a password, maybe for his email or bank website, he chooses one that’s easy to remember like his sister’s name—and he uses the same one for each website he visits. For him, cookies come from the bakery, IP addresses are the locations of Intellectual Property and a correct Google search result is basically magic. Most of us know someone like this. Technology can be confusing, and the industry often fails to explain clearly enough why digital literacy matters. So today in the U.S. we’re kicking off Good to Know, our biggest-ever consumer education campaign focused on making the web a safer, more comfortable place. Our ad campaign, which we introduced in the U.K. and Germany last fall, offers privacy and security tips: Use 2-step verification! Remember to lock your computer when you step away! Make sure your connection to a website is secure! It also explains some of the building blocks of the web like cookies and IP addresses. Keep an eye out for the ads in newspapers and magazines, online and in New York and Washington, D.C. subway stations. The campaign and Good to Know website build on our commitment to keeping people safe online. We’ve created resources like privacy videos, the Google Security Center, the Family Safety Center and Teach Parents Tech to help you develop strong privacy and security habits. We design for privacy, building tools like Google Dashboard, Me on the Web, the Ads Preferences Manager and Google+ Circles—with more on the way. We encourage you to take a few minutes to check out the Good to Know site, watch some of the videos, and be on the lookout for ads in your favorite newspaper or website.

Google Apps EMEA

Two months ago we announced that a few of us from the Google Apps Developer Relations team would be going around EMEA to meet with developers and talk about Google Apps technologies. We have met great developers from Germany, France, Russia, Czech Republic, Egypt, Switzerland, Israel, and Spain during Google Developer Days, hackathons, developer conferences and GTUG meetings. This year we are continuing the tour with a series of Google Apps Script hackathons taking place in Vienna, Milan, Madrid, Munich and Dublin over the next few months. These hackathons provide a fun and hands-on way to learn about Google Apps Script and a good opportunity to give us your feedback on this technology. For more information about the tour and to register for these events, please visit the Google Apps EMEA Developer Tour website. We plan to organize many other Google Apps events close to you in the near future. Look for updates on the Google Apps EMEA Developer Tour website or keep an eye out for further announcements on the Google Apps Developer Blog.   Cross-posted from the Google Apps Developer Blog

Monday, February 6, 2012

Google Code-in 2011-2012 Concludes

Over eight busy weeks, 545 high school (pre-university) students competed in the Google Code-in contest completing tasks for 18 open source projects. The Google Code-in contest is designed to introduce high school students to the world of open source software development by having them complete ‘bite sized’ tasks while gaining knowledge and earning prizes along the way. Stay tuned to this blog as we will be announcing the 10 grand prize winners on February 14. The grand prize winners will win a trip for themselves and a parent or legal guardian to Google’s Mountain View, California campus in June. Congratulations to all of the students who completed tasks during this year’s contest. We hope you all learned more about open source and will continue to work with the organizations you built relationships with during the contest and with other open source projects in the future. And a hearty thank you to all of the mentors and organization administrators who helped the students these past couple of months. We couldn’t do this contest without all of your incredible work! For more information on the Google Code-in contest check out our site. We will post more statistics from this year’s Google Code-in in the coming weeks, stay tuned.

Wednesday, February 1, 2012

Calendar API, 2-legged OAuth & Java

  2-Legged OAuth is a useful authorization mechanism for apps that need to manipulate calendars on behalf of users in an organization. Both developers building apps for the Google Apps Marketplace and domain administrators writing tools for their own domains can benefit. Let’s take a look at how to do this with the new Calendar API v3 and Java client library 1.6.0 beta. To get started as a domain administrator, you need to explicitly enable the new Google Calendar API scopes under Google Apps cPanel > Advanced tools > Manage your OAuth access > Manage third party OAuth Client access: The scope to include is:
    https://www.googleapis.com/auth/calendar
To do the same for a Marketplace app, include the scope in your application's manifest. Calendar API v3 also needs an API access key that can be retrieved in the APIs Console. Once these requirements are taken care of, a new Calendar service object can be initialized:
  public Calendar buildService() {
    HttpTransport transport = AndroidHttp.newCompatibleTransport();
    JacksonFactory jsonFactory = new JacksonFactory();

    // The 2-LO authorization section
    OAuthHmacSigner signer = new OAuthHmacSigner();
    signer.clientSharedSecret = "";

    final OAuthParameters oauthParameters = new OAuthParameters();
    oauthParameters.version = "1";
    oauthParameters.consumerKey = "";
    oauthParameters.signer = signer;

    Calendar service = Calendar.builder(transport, jsonFactory)
      .setApplicationName("")
      .setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() {
        @Override
        public void initialize(JsonHttpRequest request) {
          CalendarRequest calendarRequest = (CalendarRequest) request;
          calendarRequest.setKey("");
        }
      }).setHttpRequestInitializer(oauthParameters).build();
    return service;
  }
Once the Calendar service object is properly initialized, it can be used to send authorized requests to the API. To access calendar data for a particular user, set the query parameter xoauth_requestor_id to a user’s email address:
  public void printEvents() {
    Calendar service = buildService();

    // Add the xoauth_requestor_id query parameter to let the API know
    // on behalf of which user the request is being made.
    ArrayMap customKeys = new ArrayMap();
    customKeys.add("xoauth_requestor_id", "");

    List listEventsOperation = service.events().list("primary");
    listEventsOperation.setUnknownKeys(customKeys);
    Events events = listEventsOperation.execute();

    for (Event event : events.getItems()) {
      System.out.println("Event: " + event.getSummary());
    }
  }
Additionally, if the same service will be used to send requests on behalf of the same user, the xoauth_requestor_id query parameter can be set in the initializer:
  // …
  Calendar service = Calendar.builder(transport, jsonFactory)
    .setApplicationName("")
    .setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() {
       @Override
       public void initialize(JsonHttpRequest request) {
         ArrayMap customKeys = new ArrayMap();
         customKeys.add("xoauth_requestor_id", "");
         calendarRequest.setKey("");
         calendarRequest.setUnknownKeys(customKeys);
       }
    }).setHttpRequestInitializer(oauthParameters).build();
  // ...
We hope you’ll try out 2-Legged OAuth and let us know what you think in the Google Calendar API forum.

Making your models more useful with SketchUp

Some architects begin new projects by creating a “bubble diagram” that turns the program — the list of space requirements for a building—into a set of shapes. Mostly, these diagrams are useful for figuring out adjacencies and loose spatial relationships. They’re really about translating information in spreadsheets into something that can begin to inform decisions about space, form, structure and all the other good stuff that makes buildings worth building. Over time, we’ve seen an awful lot of architects use SketchUp Pro as a tool for making more-accurate bubble diagrams. They create “rooms” whose areas match the ones in the program, group each one, and arrange them three-dimensionally. The results aren’t buildings, per se—I prefer to call them shoebox models. They can be very useful, but there’s a catch: once a room changes size, there’s a disconnect between the spreadsheet (which is what the client is asking for) and the nascent design. That’s where the SketchUp interoperability in Trelligence Affinity comes in. Affinity is Windows software made specifically for the architectural programming and schematic design phases. It includes neat tools for visualizing program information in different ways and using that information to guide your design. The new Affinity plug-in for SketchUp lets you easily connect your shoebox model to Affinity, creating a permanent connection between the model, the spreadsheet and all the underlying data about the building requirements. Forgot to include a conference room? Inadvertently doubled the size of the cafeteria? Affinity will let you know. The workflow is actually bi-directional; you can begin in either SketchUp or Affinity.
You can start with a programmatic massing model in SketchUp. I like to think of these as 'shoebox models'.
 
Scanning your model with the Affinity plugin assigns it useful metadata.
 
In Affinity, you can view the scanned SketchUp model in different ways.
 
The architectural program in Affinity can be linked to your SketchUp model.
  This video tells the story quite nicely: To download the plugin and get more information, check out the plugin page.

Share This: