opensource.google.com

Menu

Heading to the 8th Jornadas de Software Libre?

Thursday, July 31, 2008

By Mario Bonilla, Site Reliability Engineering Team

The 8th edition of the "Jornadas Regionales de Software Libre", a.k.a. JRSL, will happen on this August 20, 21 and 22, in Buenos Aires, Argentina. The JRSL is a Free/Open Source conference that has been held alternately in Argentina and Uruguay since the year 2000, and both the quality of its agenda and the number of its participants define the JRSL as one of the most important events of the region. This year the conference is organized by CaFeLUG (the Capital Federal GNU/Linux User Group), usuaria (the Argentinian Association of Telecommunication and Computer Users) and the University of Belgrano, which is hosting the conference.

Google's Open Source Team will be sponsoring, and I will participate giving a talk about Google and Open Source. The event will also have other important guests, for a total of 80 speakers and 120 sessions.

The conference is conveniently scheduled after the end of the Debconf 8 , which will happen in Mar del Plata, Argentina, and is not too far from Buenos Aires. If you plan to go to the Debconf, or if you just happen to be around Buenos Aires between August 20 and August 22, just remember to register and participate in the JRSL too. I hope to see you there!






London Open Source Jam 9

Wednesday, July 30, 2008

Post by Neil Dunn, Software Engineering Team

For the past 2 years, every two or three months, at the Google London Engineering offices, on a Thursday, around 6:30pm, something happens.

That something is the London Open Source Jam!

OS Jam is a free for all, open to anyone, geek night where open source hackers get together to discuss a topic close to their hearts. Last week we hosted the 10th event. The topic was Performance and Scalability. The pizza was hot, the beer was cold and the 5 minute lightning talks came thick and fast.

Here's a summary of the talks:

  • David Beaumont - What's in an API? - David talked about Java's CharSequence and Appendable APIs and use cases that can kill application performance. His takeaway message - Sometimes the standard APIs just don't fit. It's ok to roll your own.
  • Tim Cox - Scalability in an ad serving system - Tim discussed the iterations his team went through when building a fault tolerant ad serving system. He concluded that sometimes scalability comes at the cost of precision.
  • Zoe Slattery - Profiling PHP and Java with open source tools - Zoe discussed the tools she used to compare a PHP and Java implementation of Apache Lucene: XDebug for PHP and Eclipse TPTP for Java.
  • Douglas Squirrel - 5 minutes of monitoring - The second in a fantastic series of mega lists. Everything Douglas' company monitors and why they do it.
  • Manik Surtani - Publishing internal benchmarks? - Manik discussed the performance benchmarking framework he has built for JBoss Cache and put a question to the audience: Would it be useful if he published the benchmark results?
  • John Ripley - Building software for small devices - John asks, can it be done on a small device? Decoding MP3s? Watching MPEG videos? Playing Doom? Will it blend? Yes it can. As long as you know the platform.
  • Ade Oshineye - Beyond REST - 3 million HTTP requests for 6 thousand photos? Ade weighed in on the issues of RESTful architectures and suggested a few alternatives such as XMPP, the hanging GET, the never ending resource and HTTP callbacks.
  • Simon Stewart - Perfomant Selenium tests - Don't write them! - Simon says you could you use Selenium RC or Selenium Grid, or maybe HTTP unit, or maybe you could write smaller, faster unit tests instead.
  • Jonathan Chetwyn - Visual metaphors for missing images and static vs. dynamic content - Jonathan brought some questions to the table from his work on openicon.org
  • Darren Hobbs - Caches! - Rip out all the caches and fix your architecture instead!

If you're near the London area and want to hear about future Open Source Jam Events, join our Google Group or monitor the feed on the OSJam page.

Rock on OS Jam!

Ed. Note: Updated post to correct spacing.

Summer of Coders at Google Pittsburgh

Tuesday, July 29, 2008



On Tuesday, July 15th, I had the opportunity to visit the Google Pittsburgh office. I had visited once before for a talk given one evening. I thought it was a great opportunity to meet other participants in Google Summer of Code™ along with Googlers that were into free/open source software.

The whole morning was quite informal, with two students and me (a former student and mentor this year) along with four Googlers for most of the day. It was great to hear how the two current students found their projects and to look around the Google offices and meet people working there.


Bina Patel, Jared Wenerd, Brady Hunsaker and me enjoying Google Pittsburgh

After chatting for what must have been over an hour about open source software, coding, programming languages, careers and the pros and cons of Nerf weaponry in the office we enjoyed lunch in the canteen where the conversations continued. The time seemed to fly by and before I knew it we were in the foyer having our photos taken before leaving. Our hosts gave us all Google Pittsburgh T-shirts, which is very nicely stylized.

It's all about the t-shirt.

Content Licenses Now Available for Your Open Source Project

Wednesday, July 23, 2008

Open source projects often consist of much more than just source code. Resources like documentation and artwork are a significant component of many projects, but sometimes licenses designed for source code are not very appropriate for sharing these resources. To that end we have now made it possible for projects hosted on code.google.com to choose a content license in addition to their source code license.


Content license choices include the Creative Commons Attribution license and the Creative Commons Attribution-Share Alike license. You can use this setting to indicate the terms under which your project's non-source code materials may be distributed. Just look for the "separate content license" checkbox and select box in the "Administer" tab of your project. The setting is also available when you're creating a project.


If you choose a content license for your project, we will display it along with your source code license on your project's home page. This will make it clear to everyone the terms by which they can share your project's content, including wiki pages.

Google XML Pages: A Functional Markup Generation Tool



Google XML Pages (GXP) is a templating system we use at Google. Its main focus is markup: we mostly use it for generating HTML and XHTML, but it can work with other flavors of XML, like Atom, KML, and RSS. It also has some support for a few non-markup languages (JavaScript, CSS and plain text), though mostly for embedding them within markup.

GXP's story begins in 2001, when I was working on an early version of Google AdWords. We had been having a lot of issues with the templating system that the AdWords Java frontend was using at the time, so I started looking around for alternatives. I made a list of some features I'd like from a Java compatible templating system, which looked something like this:
  • Compile time type checking and markup validation.

  • Convenient parameter passing/modularization. (our old templating system just used "includes")

  • Automatic escaping of untrusted content (to protect against Cross Site Scripting attacks).

  • A way to prevent "business logic" from ending up in our templates without being too oppressive.

  • Easy to use internationalization support.

  • A lightweight runtime, preferably not tightly coupled to the Servlet API. (so you can use it to generate email, not just web pages)

After investigating a number of templating systems, I couldn't find anything that met our criteria. I started playing around with ideas for what a templating system that met all of these criteria would look like, and I showed my eventual design to some other members of the team. They were enthusiastic about it, and our tech lead suggested that I go ahead and build it.

The original version of the compiler was written in Python and had a very tiny runtime system written in Java. We used this new language when we rewrote the AdWords system. Since then a number of other projects at Google have used GXP, including AdSense, Blogger, and Google Reader.

Over the next few years the language grew: the internationalization support was expanded, XHTML support was added (it originally only generated HTML), and the automatic escaping system was improved to significantly improve protection against XSS. About two years ago I began a complete rewrite of the compiler in Java. One of my hopes was that this would encourage users of GXP to become contributors to the compiler.

Several months into the rewrite, Harry Heymann joined in. Not only did Harry aid in getting the new compiler finished to the point where users of the old compiler could switch to the new one, but he also contributed extremely valuable new features like runtime compilation, instantiable templates, and support for generating non-HTML markup. Over the past several months Harry has also lead the effort to open source GXP.

GXP is now available to the Open Source community. It has been a useful tool for us, and we hope that others can find a use for it as well. Like virtually all software, it is still a work in progress, so we're also hoping others would like to help build on this work. In particular, the new compiler was designed to enable generation of code in languages other than Java. We've started writing a C++ code generator, but it is not yet complete. Working on this, or developing code generators for other languages (JavaScript?, Ruby?, INTERCAL?) could be particularly interesting. Take a look and let us know what you think!

Also, if you happen to be in Portland for the O'Reilly Open Source Convention, stop by for our presentation on Wednsday.
.