Doodles for Google Apps

 

Since 1998, when the first doodle was released, they have been one of the most loved features of the Google home page. There have been doodles to celebrate all kinds of events, including national holidays, birthdays of artists and scientists, sports competitions, scientific discoveries and even video games! Also, doodles have evolved from simple static images to complex applications, such as the interactive electric guitar used to celebrate the birthday of Les Paul.

Want your company logo to change for selected events or holidays, just like doodles? The Admin Settings API allows domain administrators to write scripts to programmatically change the logo of their Google Apps domain, and Google App Engine offers the ability to configure regularly scheduled tasks, so that those scripts can run automatically every day.

With these two pieces combined, it is pretty easy to implement a complete solution to change the domain logo on a daily basis (assuming the graphic designers have prepared a doodle for each day), as in the following screenshot:

 

Let’s start with a Python App Engine script called doodleapps.py:

import gdata.apps.adminsettings.service
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from datetime import date

class DoodleHandler(webapp.RequestHandler):
  # list of available doodles
  DOODLES = {    
    '1-1': 'images/newyearsday.jpg',
    '2-14': 'images/valentinesday.jpg',
    '10-31': 'images/halloween.jpg',
    '12-25': 'images/christmas.jpg'
  }

  # returns the path to the doodle corresponding to the date
  # or None if no doodle is available
  def getHolidayDoodle(self, date):
    key = '%s-%s' % (date.month, date.day)
    if key not in self.DOODLES:
      return None

    return self.DOODLES[key]

  # handles HTTP requests by setting today’s doodle
  def get(self):
    doodle = self.getHolidayDoodle(date.today())
    self.response.out.write(doodle)

    if doodle:
      service = gdata.apps.adminsettings.service.AdminSettingsService()
      // replace domain, email and password with your credentials
      // or change the authorization mechanism to use OAuth
      service.domain = 'MYDOMAIN.COM'
      service.email = 'ADMIN@MYDOMAIN.COM'
      service.password = 'MYPASSWORD'
      service.source = 'DoodleApps'
      service.ProgrammaticLogin()

      # reads the doodle image and update the domain logo
      doodle_bytes = open(doodle, "rb").read()
      service.UpdateDomainLogo(doodle_bytes)

# webapp initialization
def main():
    application = webapp.WSGIApplication([('/', DoodleHandler)],
                                         debug=True)
    util.run_wsgi_app(application)

if __name__ == '__main__':
    main()

The script uses a set of predefined doodles which can be edited to match your list of images or replaced with more sophisticated logic, such as using the Google Calendar API to get the list of holidays in your country.

Every time the script is triggered by an incoming HTTP request, it will check whether a doodle for the date is available and, if there is one, update the domain logo using the Admin Settings API.

In order for this script to be deployed on App Engine, you need to to configure the application by defining a app.yaml file with the following content:

application: doodleapps
version: 1
runtime: python
api_version: 1

handlers:
- url: .*
  script: doodleapps.py

We want the script to run automatically every 24 hours, without the need for the administrator to send a request, so we also have to define another configuration file called cron.yaml:

cron:
- description: daily doodle update
  url: /
  schedule: every 24 hours

Once the application is deployed on App Engine, it will run the script on a daily basis and update the logo.

Google Earth on 48 screens

Back in 2009, Google developed the first Liquid Galaxy, an entirely new way to display Google Earth on eight screens – which creates an immersive experience of virtually flying around the globe. Since then, we’ve built dozens of Liquid Galaxies all over the world and open sourced the code so anyone can build their own.

Late last year, the Paris Center for Architecture and Urbanism: Le Pavillon de l’Arsenal, approached us asking if they could use Google Earth to power a new interactive display highlighting the Paris metropolitan area in 2020 with upcoming buildings in 3D. Naturally, we were excited about the project, especially when they shared that the display would be 40 square meters – posing a fun and unique challenge.

A year later, we are excited to share that the first 48 screen Liquid Galaxy is now on display in Paris. We believe this to be the largest screen showing Google Earth to date!

Photo: Vincent Fillon
What started as a 20% project to support the new Google Cultural Institute resulted in a stunning display of the Earth in almost 100M pixels – powered by 48 instances of Google Earth synchronized and operated through 4 multi-touch screens with pinch and zoom functionality. The view is even sharper due to a refresh of the entire Paris area with higher resolution imagery.

As a Parisian, it’s amazing to be able to see what the city will look like in the future. If you can’t make it to France in the near future, you can preview it at home by downloading this KML file and opening it in Google Earth.

The Canopy and Transport Hub: Patrick Berger and Jacques Anziutti architects
This project was a close collaboration between Google and Le Pavillon de l’Arsenal, as well as technology JCDecaux, End Point and design partners ultranoir.

Over the next few months we’ll be fully open sourcing this work on Liquid Galaxy, as well as the graphical interface. Keep an eye out on our source code page for updates.

Bringing the Dead Sea Scrolls

It’s taken 24 centuries, the work of archaeologists, scholars and historians, and the advent of the Internet to make the Dead Sea Scrolls accessible to anyone in the world. Today, as the new year approaches on the Hebrew calendar, we’re celebrating the launch of the Dead Sea Scrolls online; a project of The Israel Museum, Jerusalem powered by Google technology.

Written between the third and first centuries BCE, the Dead Sea Scrolls include the oldest known biblical manuscripts in existence. In 68 BCE, they were hidden in 11 caves in the Judean desert on the shores of the Dead Sea to protect them from the approaching Roman armies. They weren’t discovered again until 1947, when a Bedouin shepherd threw a rock in a cave and realized something was inside. Since 1965, the scrolls have been on exhibit at the Shrine of the Book at The Israel Museum, Jerusalem. Among other topics, the scrolls offer critical insights into life and religion in ancient Jerusalem, including the birth of Christianity.

Now, anyone around the world can view, read and interact with five digitized Dead Sea Scrolls. The high resolution photographs, taken by Ardon Bar-Hama, are up to 1,200 megapixels, almost 200 times more than the average consumer camera, so viewers can see even the most minute details in the parchment. For example, zoom in on the Temple Scroll to get a feel for the animal skin it’s written on—only one-tenth of a millimeter thick.

You can browse the Great Isaiah Scroll, the most well known scroll and the one that can be found in most home bibles, by chapter and verse. You can also click directly on the Hebrew text and get an English translation. While you’re there, leave a comment for others to see.

The scroll text is also discoverable via web search. If you search for phrases from the scrolls, a link to that text within the scroll viewers on the Dead Sea Scrolls collections site may surface in your search results. For example, search for [Dead Sea Scrolls “In the day of thy planting thou didst make it to grow”], and you may see a link to Chapter 17:Verse 11 within the Great Isaiah Scroll.

This partnership with The Israel Museum, Jerusalem is part of our larger effort to bring important cultural and historical collections online. We are thrilled to have been able to help this project through hosting on Google Storage and App Engine, helping design the web experience and making it searchable and accessible to the world. We’ve been involved in similar projects in the past, including the Google Art Project, Yad Vashem Holocaust photo collection