opensource.google.com

Menu

Posts from June 2009

Australia Goes Open

Tuesday, June 30, 2009



Here in Google's shiny new Sydney office, we recently hosted the first hackfest for OpenAustralia.org. OpenAustralia takes the data from Australia's record of Federal Parliament speeches, the Australian Hansard, and makes it easy for people to follow topics they're interested in.

Back in 2004, Matthew Landauer and Katherine Szuminska found themselves at the launch of the UK site TheyWorkForYou.com, a website designed to allow the average person to quickly and easily search the United Kingdom's Hansard - the record of all happenings in Parliament. Their work blossomed and they were inspired to make a similar site happen in Australia, OpenAustralia.org.

Both websites give ordinary people, who often have no idea who their local representative is, let alone what their representative has been doing on their behalf, the ability to track topics they're interested in and find out exactly what their representatives are doing.

When Matthew emailed out asking for a location for a place to host a hackfest, we were very happy to lend a helping hand. The hackfest ran on Saturday the 13th of June at the newly opened Google offices in Sydney, Australia and was successful beyond anyone's expectations.

When originally announced, the event's original 25 attendee slots filled so fast that we ended up increasing the number to 50 (which also filled remarkably fast). More surprisingly, almost everyone turned up and we even had a number of attendees fly in from other Australian states. No one expected this level of enthusiasm from the community, and we were pleased to share in everyone's excitement.



Some cool outcomes include a tool for crowd sourcing transcription of the "register of member's interests", an API and datasource for mapping street addresses to representatives, a "FixMyStreet" iPhone App and numerous bugs on the site fixed. More information on these and the ongoing efforts of this community can be found on the Open Australia Development list.



Matthew was also gracious enough to give a tech talk for Googlers about some of the many challenges faced by creating such a site, e.g. dealing with Crown Copyright, problems with getting a clean source of data, and problems getting the data fixed when it's clearly in error. Enjoy!



Guten LinuxTag!

Wednesday, June 24, 2009

The Open Source Team's Cat Allman will be in Berlin, Germany this week to present at LinuxTag 2009. Cat's talk, Getting Started in Open Source: An Overview for Newbies, will take place on Friday, June 26th at 4 PM local time. This will be Cat's second time presenting at LinuxTag - in 2008 she gave a talk about Google Summer of Code™.

This year LinuxTag expects over 10,000 visitors from around the world- If you are there make sure to attend Cat's talk!

Chris DiBona and Leslie Hawthorn at FISL

Tuesday, June 23, 2009

If you are in South America this week and you have been wanting to find out more about Google's Open Source activities or the future of Open Source and its communities, Chris DiBona and Leslie Hawthorn from the Google Open Source Programs Office will be speaking at the tenth annual Fórum Internacional Software Livre (FISL) in Porto Alegre, Brazil.

Leslie will be presenting tomorrow, June 24th, 1 PM local time about Google Summer of Code™, and she'll be staying afterward to meetup with Google Summer of Code participants who are in the area. On June 26th at 2 PM, Leslie will be presenting "Community Management Basics" and how to make FLOSS projects and communities welcoming for new contributors.

Chris' first talk, "Open Source: Then, Now and Tomorrow" takes place on June 26th at 3 PM local time. In addition to the past, present, and future of FOSS, Chris will discuss how Google uses and releases Open Source software. In Chris's second talk, "An Introduction to Android" at 5 PM on the 26th, he will explain the ideas and structure behind the Open Source mobile operating system Android.

All four talks are great opportunities to learn more about Google and Open Source. Come ask questions and get to know members of the Open Source Team!

by Ellen Ko, Open Source Team

Sojourning at SouthEast LinuxFest

Tuesday, June 9, 2009



Fresh on the heels from speaking at Google Developer Day in Beijing and Tokyo, Chris DiBona will be heading to the SouthEast LinuxFest. This new conference promises to provide a welcoming environment for novice users of Open Source software, with a little something for everyone with talks on data warehousing, education and philanthropy. Should you find yourself in or around Clemson, South Carolina this Saturday, June 13th, please stop by to hear Chris discuss "Open Source: Then, Now and Tomorrow." As much as the Open Source Team enjoys connecting with Open Source developers and users worldwide, Chris is particularly looking forward attending this grassroots, community driven event and sharing his thoughts in this intimate setting.

We hope to see you there and, if you're attending, please do come by to say hello!

Introducing Android Scripting Environment

Monday, June 8, 2009

The Android Scripting Environment (ASE) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to:

  • Handle intents
  • Start activities
  • Make phone calls
  • Send text messages
  • Scan bar codes
  • Poll location and sensor data
  • Use text-to-speech (TTS)
  • And more

Scripts can be run interactively in a terminal, started as a long running service, or started via Locale. Python, Lua and BeanShell are currently supported, and we're planning to add Ruby and JavaScript support, as well.


Scripts can be edited directly on the phone.


The script manager displays available scripts.




Scripts can be launched interactively or as background services.



Interactive terminals can be started for interpreters that support it.



Scripts can use the Android UI to get user input.

You may ask, why write scripts instead of real Android applications? Admittedly, Android's development environment makes life pretty easy, but you're tied to a computer to do your work. ASE lets you develop on the device itself using high-level scripting languages to try out your idea now, in the situation where you need it, quickly. Have a look at the following example Lua script to see for yourself:

--Placing the phone face down will disable the ringer. Turning it face up again will enable
--the ringer.
require "android"
android.startSensing()
android.sleep(1) --Give the sensors a moment to come online.
silent = false
while true do
s = android.readSensors()
facedown = s.result and s.result.zforce and s.result.zforce > 9
if facedown and not silent then
android.vibrate() --A short vibration to indicate we're in silent mode.
android.setRingerSilent(true)
silent = true
elseif not facedown and silent then
android.setRingerSilent(false)
silent = false
end
android.sleep(1)
end

Here's another useful script, this time in Python.

"""Say chat messages aloud as they are received."""

import android, xmpp

_SERVER = 'talk.google.com', 5223

class SayChat(object):
def __init__(self):
self.droid = android.Android()
username = self.droid.getInput('Username')['result']
password = self.droid.getInput('Password')['result']
jid = xmpp.protocol.JID(username)
self.client = xmpp.Client(jid.getDomain(), debug=[])
self.client.connect(server=_SERVER)
self.client.RegisterHandler('message', self.message_cb)
if not self.client:
print 'Connection failed!'
return
auth = self.client.auth(jid.getNode(), password, 'botty')
if not auth:
print 'Authentication failed!'
return
self.client.sendInitPresence()

def message_cb(self, session, message):
jid = xmpp.protocol.JID(message.getFrom())
username = jid.getNode()
text = message.getBody()
self.droid.speak('%s says %s' % (username, text))

def run(self):
try:
while True:
self.client.Process(1)
except KeyboardInterrupt:
pass

saychat = SayChat()
saychat.run()


These scripts demonstrates several of the available APIs available for both Lua and Python. It is intended to be run as a service and silences the ringer when the phone is placed face down. For some scripting languages, like BeanShell, it's possible to access Android's Java API directly. To simplify things, ASE provides the AndroidFacade class. For other languages, like Python and Lua, the API is made available via JSON RPC calls to a proxy. Naturally this means that only the part of the API which has been wrapped by the AndroidFacade and AndroidProxy are available to cross-compiled interpreters like Python and Lua. Thankfully, both AndroidFacade and AndroidProxy are simple to extend.

If you'd like to give ASE a try, it's not yet published to the Market, but will be soon. You can download the latest APK from our project page. Some sample scripts and documentation are also included there to help you get started. We always love to hear what you think, so please send us feedback or ask your questions in the ASE discussion group.

Getting Started in Free and Open Source

Friday, June 5, 2009

The Open Source Programs Office's Cat Allman and Leslie Hawthorn will be presenting at a brand new conference, Open Source Bridge, in two weeks. Their talk, "Getting started in Free and Open Source" will be held on Wednesday, June 17 from 11:20am – 12:05 PM. Leslie and Cat will share their wisdom with Open Source newbies and those looking to attract or retain them. Their talk will cover the basics of:
  • Why you might want to get involved
  • What you can get out of participating
  • What you can contribute besides code
  • How to choose a project
  • How to get started
  • Etiquette of lists and other communication
  • Dos and don’ts of joining a community
The conference is held in Portland, Oregon and runs from June 17th to the 19th. It features over 80 talks in five tracks of Open Source topics and a 24-hour hacker lounge for code sprints. One of the most exciting aspects of Open Source Bridge is that it is entirely volunteer-run, and because this conference brings together developers from all different types of Open Source projects, the structure is designed to provide developers an opportunity to learn from people they might not connect with at other events.

We hope to see you there!

.