Posts from February 2009

New Functionality for Moodle

Thursday, February 26, 2009

We're always excited to jump into the world of education and when it helps Open Source, we're all the happier. Moodlerooms, a partner of Moodle, the Open Source learning management system, recently approached to fund a project which would allow Moodle users to easily integrate Google Apps Education Edition, our communication and collaboration suite. Our Open Source Programs Office sponsored the work and the result is an Open Source single sign-on integration between Moodle and Google. The best part is the extensibility features allow any educational software vendor to take a similar approach to provide user directory synchronization, single sign-on, and user data integration. Check out the full story on the Google Enterprise Blog.

W3C Forms Working Group Convenes at the Googleplex

Wednesday, February 25, 2009

Post by T.V. Raman, Research Scientist

I have been a member of the W3C Forms Working Group since its inception in early 2000, and it gave me great pleasure to be able to host the group's recent three day face to face meeting on the Google campus February 9th - 11th. This Working Group develops an XML vocabulary that is used for creating forms-based Web interaction. During our meeting, the group spent its time finishing up the test suite for its current suite of specifications. A significant portion of the meeting was devoted to designing the necessary APIs for implementing the Forms technology within current-day browsers via pluggable JavaScript. Implementing the Forms technology in a cross-browser fashion using open JavaScript libraries holds the promise of delivering cross-browser, cross-platform Web interaction that is authored almost exclusively via declarative markup, which helps authors create Web interaction without having to program. In addition to myself , meeting participants included:

  • John Boyer, Senior Technical Staff Member at IBM and current chair of the W3C Forms Working Group
  • Erik Bruchez, developer of Orbeon Forms , an XForms-based open source forms solution
  • Leigh Klotz, software architect for Xerox Corporation
  • Ulrich Nicolas Lissé, XML Technologist and Standards Architect at DreamLab Technologies
  • Steven Pemberton, from CWI, an institute for research in mathematics and computer science
  • Nick Van den Bleeken, Research & Development Manager at Inventive Designers, a document and intelligent eForms automation solutions provider
  • Charlie Wiecha, Manager of Multichannel Web Interaction at the IBM T.J. Watson Research Center

A breakdown of the agenda is available.

Zurich Open Source Jam 6

Tuesday, February 24, 2009

We started the evening slowly, and by around 18:30 almost everyone had arrived to enjoy the food and beer. Thirty-three guests from all over Switzerland and surrounding countries were there, and we even had one visitor from Canada.

After everybody enjoyed the first round of food, Gürkan Sengün started with the first lightning talk about hugin, a software package used to create panorama photos. Hugin creates panorama photos by wrapping around other scripts, such as finding common points in two images and putting the images together. Gürkan did a live demo of the software by going through all the steps to create a panorama photo of the audience.

The next speaker, Lukas Renggli, gave us an introduction into seaside. Seaside is a web application framework designed to make web applications easy to write and maintain. Applications are written using the component design pattern and can again be composed to build larger applications. Should any problems arise, you have the possibility of live debugging and live fixing of the code without loosing state. As a demo, Lukas showed us a simple application which calculated the reciprocal of an integer, all of which you could change through interactive links.

The next round of talks was started by Michael Schwarz, who is working on leanXcam. leanXcam is a small Open Source camera running uClinux that not only takes photos but is also able to process them on the device. After a quick introduction Michael gave us a demo how the camera works.

The last talk was about JExample by Adrian Kuhn. JExample is an extension for JUnit, a testing framework for Java, and fully compatible with it. JExample provides unit test dependencies to make debugging unit tests easier, providing graphs where you can see which components failed without running the actual tests. Adrian illustrated this functionality by testing a defective stack implementation.

It was a really interesting evening and everyone attending enjoyed it immensely. Thanks to everyone and hopefully we'll see you soon again. To stay informed about future Open Source Jams in Zurich, please join the Open Source Jam Zurich Google Group.

OpenStreetMap's New API Database Server

Thursday, February 19, 2009

A few weeks ago Mano Marks, a Geo Developer Advocate here at Google, informed the Open Source Programs Office of OpenStreetMap's server upgrade fundraiser. Recognizing the good work that OpenStreetMap does by providing free geographic data of the world, we were happy to respond. We donated 5,000 GBP to the cause, and along with contributions from around the world, OpenStreetMap exceeded their goal in a single week! Congratulations to OpenStreetMap for building such an active and devoted community.

If you are interested in a collaborative project to create a free editable map of the world, we encourage you to check out their site and see what all the excitement is about.

Software Construction Toolkit Released

Friday, February 13, 2009

If you've ever worked on a cross-platform software project, you know how often changes made on one platform break the build on other platforms. If you're using native project files (Xcode on Mac, makefiles on Linux, etc.), every developer needs access to every platform just to add a single source file. You can use a single makefile shared between all the platforms, but writing a makefile which "Does The Right Thing" on each platform is tricky. On all platforms, you need simple ways to express dependencies, run unit tests, and rebuild individual project components. You need to be able to extend the build tool to cover the 5% of your project that doesn't fit the usual build patterns. Oh, and the tool should be documented, tested, and free of charge.

To meet those challenges, we've written a cross-platform Software Construction Toolkit, built on the Open Source SCons build tool. It's written in Python, and builds on Windows, Mac, and Linux.

In addition to contributing fixes and enhancements back to SCons itself, we've released full source and documentation for the toolkit.

We always look forward to your feedback, so check out the code or an example project and send us your comments in our discussion group.

Oxford Geeks Run the Gamut from Hardware Hacking to Navigating Social Media

Thursday, February 12, 2009

The most recent Oxford Geek Night had a record number of attendees — well over 150 — and filled the Jericho Tavern in Oxford to bursting point. Given they're a regular event and we've been holding them for two years now, it was really good to see them more popular than ever. In contrast to previous events, OGN10 hosted design and marketing keynotes, which meant we could cater to the more varied nature of the geek scene in Oxford. Elliot Jay Stocks, designer and writer for .net, launched into a history of type on the web, moving from the misleading nature of website tools listing every font on your local machine, through the sameyness of web-safe fonts, into replacement technologies such as sIFR and ultimately the future of embedded fonts in the browser and the @font-face CSS directive. Next, Sylwia Presley of 1000heads explained how an individual or organization could adapt to the existing ethics and mores of online social communities, specifically Twitter, and to what extent they could plough their own furrow while still being accepted by the community as a whole.

The two keynotes were supported by more technical microslot sessions. David Sheldon, fresh from investigations into scaling at online music distributors We7, explained the various problems inherent in multi-machine scaling, including such oddities as individual machines' garbage collection leading to a deadlock of the network, and the importance of adapting to your application's individual behaviour as Facebook have done. Drew Mclellan ran through RGBA colour support in modern browsers, using the experiences of the 24ways team last advent to show how new designs involving transparency can be made to degrade well for older browsers.

Tom Dyson demonstrated how the combination of live data from the National Grid might, via his home-made single-serving site, provide signals for hardware hackers to turn on household items like fridges whenever the UK power grid has spare capacity. We also had some great talks from Peet Morris and Tim Davies respectively, about the history of Microsoft culture circa Windows 3.0, and about the future of online culture for adolescents, how site design and application flow need to adapt to privacy and child-protection legislation and goals. Finally, Bruce Lawson spoke about BS 8878, the new British Standard for accessible websites. He explained how these non-binding standards dovetailed with UK accessibility law, and how they might be used internally to support good accessibility within top-down development management.

Our end-of-night book raffle was courtesy of Pearson Education, with a number of T-shirts thrown in by We7, and a couple of Sitepoint books donated by their author. As always we overran, and as always the Oxford geek community continued to chat, discuss, network and argue well into the night. Videos and slides from the evening will be up on the OGN site shortly. Thanks to Google's Open Source Team and our other sponsors, Oxford Geek Nights continue to be a free event, and the number of attendees at the first OGN of 2009 suggest that they'll also continue to be popular among the local geek crowd for some time to come.

Googlers and Py3K

Tuesday, February 10, 2009

December 3, 2008 was an historic day for the Python community: Python 3.0 was released. Under serious development since 2006, Python 3.0 (also playfully known as Python 3000 or Py3K as the year 3000 was the original target release date) represents a major step of the Python programming language. The development team set a goal to undo early mistakes from Python's 19 year history and to make features that have been added more pervasive. I think we managed to meet both goals beautifully.

And Google played a big part in making Python 3.0 happen. Since the company is such a huge user of Python, several developers of the language have gravitated toward the company and become Googlers. They spent their 20% time or actual company time over Python 3.0's development cycle working on the language in various capacities. Anthony Baxter pushed for and developed the Py3kWarning system used to help transition code from Python 2.6 to 3.0. Collin Winter helped finish the code transition toolchain by co-authoring with Guido van Rossum the 2to3 tool while also working on function annotations (PEP 3017), extending how exceptions work (PEPs 3109 , 3110 , and 3134), and class decorators (PEP 3129). Gregory Smith fixed various issues with an emphasis on 32-bit/64-bit compatibility. Jeffrey Yasskin helped organize the various types of numbers that Python supports (PEP 3141) as well as some optimizations. Jeremy Hylton merged urllib, urllib2, urlparse, and robotparser into the more coherent urllib package . Josiah Carlson greatly improved the asyncore and asynchat modules. Neal Norwitz managed to change range into what xrange is in Python 2.6 and handle the renaming of it. Talin wrote the proposals for the new string formatting mechanism and keyword-only arguments (PEPs 3101 and 3102 , respectively) along with some help with proposal for abstract base classes and writing the proposal for how to change metaclasses (PEP 3115). As for myself, I did various things including managing the reorganization of Python's standard library (PEP 3108). And of course Guido designed the language.

The hope of the development team has always been that version 3.0 of Python would not only help improve the language for ourselves, but for our users as well. While we continue to happily work on and support the 2.x series of Python (and plan to do so for several years), we all hope that the community is as happy with the outcome of Python 3.0 as the development team is and, over time, embrace it as we all have. And we thank Google for allowing us to work on our favorite language on the company's dime.

Members of the Py3K team pictured clockwise from the top left:
Guido van Rossum & Brett Cannon; Collin Winter, Neal Norwitz, Talin, Jeremy Hylton, Jeffrey Yasskin & Gregory Smith; Josiah Carlson; Anthony Baxter

Updates to Our Project Hosting Service

Wednesday, February 4, 2009

Users of Google Code Project Hosting rejoice! The Subversion component of this service has now been upgraded to version 1.5, so you'll likely find merging your branches much easier. For full details, check out Ben Collins-Sussman's write up on the Google Code Blog.

Googlers Out and About - FOSDEM and Beyond...

Tuesday, February 3, 2009

It's going to be chilly next week in Brussels but FOSDEM is always a place to explore hot topics in the FOSS world. Our Leslie Hawthorn will be finishing off the conference with the closing keynote on large scale community organizing. We will also be hosting the pre-conference beer reception on Friday, February 6th - hope to see you there!

If you are affiliated with the Applied Physics Lab at Johns Hopkins University in Baltimore, Maryland, USA, you will have a chance this week to hear Chris DiBona, the head of the Open Source Programs Office, present at InnovationΧΔ Lunchbox. The Office of Patent Counsel and Technology Transfer at JPL/JHU hosts informational lunchtime sessions to inform Laboratory inventors, project staff and other interested Laboratory professionals about issues relating to APL tech transfer, in this case, Open Source.

Later in February Leslie and I will be speaking together at SCALE 2009, the Southern California Linux Expo in Los Angeles, CA, Saturday February 21st on "Getting Started in Open Source". We will also be at the Women in Open Source Workshop the day before, and in the Google booth on the show floor, along with a bunch of our colleagues. The SCALE organizers always attract a lively crowd to a very affordable conference, plus you'll be able to learn about a variety of Google technologies at the booth.

Heading into March, Leslie and I will be heading to Chattanooga TN, USA to present at SICCSE (Special Interest Group in Computer Science Education) 2009, a venerable (40th anniversary!) ACM conference on teaching computer science. The conference committee has asked Google and others to share our thoughts on integrating FOSS methodologies into "traditional" CS curriculum. Leslie is on a panel on this topic on Wednesday March 4th, and I will be talking about Google Summer of Code on Friday March 6th.

From Chattanooga Leslie goes directly to our nation's capital, Washington DC, to speak at DrupalCon on Friday March 6th. The conference, "*the* event for Drupal developers", runs March 4th - 7th. The latest word is that it's sold out, so if you haven't registered yet, you'll need to check the website for news on ticket exchange and the waiting list.

Last but not least, Chris DiBona will be speaking at OSBC, Open Source Business Conference, coming to San Francisco, CA, March 24th and 25th.

Google Earth, Open Standards, and libkml

Monday, February 2, 2009

As you may have heard, a new version of Google Earth was released today. As has been the case with many Google Earth releases, this new version required expansions to KML, Google Earth's most important supported file format. After all, developers want access to all the interesting new features that have been added to Google Earth's UI.

Only one problem: Google no longer controls KML. We submitted it to the Open Geospatial Consortium (OGC) last year, where it is now maintained as an official OGC standard. The solution: extension namespaces!

You see, the OGC specification for KML includes explicit hooks for vendors to create their own extensions to the language, using XML namespaces and XSD. This allows the creation of new elements that extend or add to existing ones. For example, Google's extension namespace is now declared at the top of KML files that are emitted by the new Google Earth 5.0, with an XML namespace declaration:


This tells parsers of that file to expect elements from that namespace in the file, prefixed by gx: (to distinguish them from the standard KML elements). So for example, the new touring feature in Google Earth can be expressed in KML with a <gx:Tour> element, in any KML file that includes the xmlns declaration above. Standards-compliant applications that don't understand the new namespace will simply ignore the new elements.

This allows us to comply with the standard specification for KML, without unduly restricting us from innovating and experimenting. Other vendors are also placed on similar grounds with respect to KML extensions, enabling a marketplace of innovation surrounding a core standard language.

But wait, there's more!

As previously announced on this blog, Google released and maintains a reference implementation for KML reading/writing: libkml. So it brings me great pleasure to point out that on the same day that the Google Earth team releases support for new KML extensions, we're also releasing libkml v0.9, which fully supports all of the new extension elements as well. This new version of libkml can be used to read and/or write all of the new KML elements, including those used for time slider control, the new altitudeMode for ocean data, and of course, the largest new feature in KML... Touring, which enables controlled camera and object animation.

So by all means, check out the new Google Earth, and check out the new libkml. Developers interested in the fine details of the new extension elements are advised to check out our section on that topic in the KML reference.