opensource.google.com

Menu

A Bridge to Open Source

Thursday, May 27, 2010

Next week, several members of the Open Source Programs office will be in Portland, OR for the second Open Source Bridge conference which takes place over four days, June 1-4.

Carol Smith will be giving a talk called Foundations, Non-profits, and Open Source. Carol explains, “Figuring out whether to become a non-profit or a foundation can be a confusing topic for open source projects, and I hope to illuminate it based on my experience sitting on the Board of Directors for the Metabrainz Foundation.” Carol’s talk is on Wednesday, June 2 at 4:45 PM.

We’ll also be having a Google Summer of Code™ BoF (”Birds of a Feather” session) on Thursday, June 3, from 7 - 8:30 PM. Last year’s BoF had a great turnout and we loved meeting students, mentors and admins from the area. If you are a current, former, or potential Google Summer of Code participant, we’d love to see you and talk about the program!

Open Source Bridge is a volunteer-run conference mostly organized by a cohort of the very active open source community in the general Portland area. This year’s conference has 5 tracks of sessions plus BoFs and a hacker lounge. You can check out the schedule for an overview of all the session topics or learn more about the conference.

expect(easier testing).andReturn(Android Mock)

Wednesday, May 26, 2010

The Android development tools provide developers with a host of tools for creating fun, useful and compelling Android applications. Included in this tool-set are various testing tools that make it easier to ensure the quality of the applications. One tool that has been missing, however, is a mocking framework.

Objects Mocking is a common technique in the tester’s skillset. Mocks are simulated objects which mimic and take the place of real objects by replaying pre-recorded behavior. They are used to quickly build more focused tests that reflect better the behavior of the tested objects. This is achieved by breaking long object construction chains, isolating interesting behavior to tighten a test’s focus. “Mocking” various services such as a network connection, a database or even a per-use credit card charging service (the kind you don’t want to stress-test with your personal credit card number!) makes it possible to test real external interactions without ever touching the real thing.

Here at Google, we use mocking frameworks a lot when writing Java tests (for the reasons above, and more) but unfortunately, the solutions available only provide limited mocking capabilities for Android testing.

That is, until now:

Android Mock has been written as an extension of EasyMock to allow for the mocking of Java Interfaces and Classes on Android’s Dalvik VM. Check out the resources for how to use it and how to write tests, then get mocking.

Google Summer of Code 2010: Coding Starts Today!

Monday, May 24, 2010



Starting today all our students will formally begin coding their projects for Google Summer of Code™. Our students’ projects this year range from compilers to mobile applications, from web crawlers to virtual clusters, from APIs to social networking improvements, and more. We're really excited about the ever increasing variety of cool projects happening this year.

Take a look at the timeline to find out more about what’s coming up for Google Summer of Code.

CloudCourse: An Enterprise Application in the Cloud

Wednesday, May 19, 2010

At Google we have experts on everything from Python to penguins. However, connecting our expert teachers to eager students around the globe can be a complicated business. To that end, we are excited to release our new internal learning platform, CloudCourse under an open source license. Built entirely on App Engine, CloudCourse allows anyone to create and track learning activities. CloudCourse also offers calendaring, waitlist management and approval features.

CloudCourse is fully integrated with Google Calendar and can be further customized for your organization with the following service provider interfaces (replaceable components):
  • Sync service - to sync CloudCourse data with your internal systems
  • Room info service - to schedule classes in your locations
  • User info service - to look up user profile (employee title, picture, etc)
CloudCourse has been developed in Python, using the Django web application framework and the Closure Javascript library. Deploying CloudCourse on App Engine is a breeze, and should take less than 5 minutes.

We developed CloudCourse to:

• provide a course scheduling system fully integrated with Google services
• demonstrate what it takes to built an application using App Engine

By releasing CloudCourse as open source we hope to help developers who want to port or build enterprise applications on App Engine. Digging into the source code, you will find many examples of how we addressed challenges like long running processes, locking, synchronizing with external systems, high performance transactional workflows, and more.
All the techniques that we used can easily be applied to other applications.

CloudCourse is available for download now. If you would like to discuss the project or if you have any questions, please join the CloudCourse mailing list. Happy hacking!

Manage cloud storage from the command line with GSUtil

GSUtil is a command-line tool that helps developers manage their cloud storage. The tool makes it very easy to explore various features of Google Storage for Developers - in just a few minutes, you can learn how to create a storage bucket, upload objects, and set access controls.

GSUtil is implemented in Python using the popular boto open-source library. We added a new provider-agnostic StorageUri class hierarchy to the library as well as other enhancements that we’ll be giving back to the community. The URI abstraction lets developers use the same commands to access different data sources - including Google Storage, other cloud storage providers, and the local disk.

As developers move to the cloud, there’s a growing concern about getting locked into particular cloud providers. Google Storage supports Data Liberation, so it’s simple to take your data wherever you want with a single GSUtil command:

gsutil cp gs://bucket/* destination

Please sign up for the Google Storage for Developers preview and give GSUtil a try. We’ll also be demoing GSUtil in the Developer Sandbox at the Google I/O conference in San Francisco. We’re looking forward to meeting those of you who are attending.

.