Posts from March 2008

One More Week to Apply to Google Summer of Code!

Monday, March 31, 2008

This year, we experimented with the Google Summer of Code&trade program timeline, providing one week for students to discuss project ideas with their mentors and then a single week to submit applications. The good news is that we've heard that overall application quality is much higher this year and that students have really benefited from the opportunity to have extra time to discuss their ideas with their potential mentors. However, we've still heard feedback from the community that it would be useful to provide more time for students to submit their applications, so we've done just that. The new deadline for student applications is Monday, April 7, 2008.

For those of you who are wondering if this message is an April Fool's Joke, we assure you that it's not. How could we compete with Google Gulp?

AxsJAX: My Web 2.0 Application Is Feeling Accessible

Friday, March 28, 2008

Last November, we announced the release of the AxsJAX framework as an Open Source project hosted on Google Code. The convenience afforded by having HTTP access to the GoogleCode repository has meant that this project has neverneeded to make downloadable releases — as we build new enhancements, users automatically experience the benefits of what we create.

The AxsJAX project depends on a number of cutting-edge technologies — including the emerging browser support for W3C ARIA. Charles and I took advantage of the presence of over 4,000 attendees at the CSUN 2008 conference last week to expose as many end-users and developers as possible to the benefits of Web 2.0 technologies. Until now, these technologies have been mostly viewed as an obstacle to users with special needs; I therefore found it refreshing to turn things around and demonstrate positive benefits that emerge when the underlying web platform is used to solve accessibility challenges.

Those of you who ran into me or Charles at the conference probably noticed our AxsJAX shirts — thanks again to Google's Open Source Team for helping us spread the source! The last few months have seen the AxsJAX framework evolve rapidly, and in that process, the library has acquired significant functionality that drastically reduces the amount of code it takes to AxsJAX content-rich web applications. We would like to take this opportunity to open up the AxsJAX Challenge — we invite web developers to innovate on our work as you AxsJAX your favorite web applications. Let us know about the great work you've done and we will recognize your work with a cool t-shirt that sports the Google logo in Braille on it.

Introducing libkml: a library for reading, writing, and manipulating KML

Thursday, March 27, 2008

By Michael Weiss-Malik, KML Product Manager

KML has seen tremendous uptake as a GIS data presentation language, in large part due to its simplicity. The ability to quickly and easily read or write small bits of KML by hand helps newcomers to rapidly experiment with the language and learn it. That said, the most interesting and sophisticated KML documents generally aren't created by hand... instead, authors tend to write computer programs to generate data-driven KML en masse. Programmers are often forced to roll custom KML-generating code for each such project. Likewise, mapping application developers have traditionally been tasked with writing one-off KML parsers if they want to read in and visualize KML data.

Both KML authors and consumers should therefore be pleased hear about today's version 0.1 "preview" release of libkml: Google's open-source reference library for reading, writing, and manipulating KML. Our hope is that libkml will reduce the need for everyone to re-invent the wheel with a custom parser or serializer, by providing a single re-usable library that implements KML's semantics. This first release is focused primarily on the low-level details of the KML DOM itself, but it's our intent to enhance the library in the future by implementing more sophisticated operations like style resolution and balloon text templating. If you don't know what these are, I encourage you to check out Google Code's KML documentation.

Our initial release covers parsing and serializing of all elements in KML 2.2, which is currently pending acceptance by the Open Geospatial Consortium as an OGC standard. It's a C++ library that compiles and runs on multiple platforms, so C++ is the most direct way to call into it. If C++ isn't your thing, the library's build system can also generate (through SWIG) wrappers/bindings for Java, PHP, Perl, Python, and Ruby. Since the whole thing is released under a BSD license, you have complete flexibility in how you use our code and/or integrate it into other projects. Do note that we're labeling this a "preview" release on purpose: you should expect changes.

I encourage you to download and play with the library -- it includes several example programs that are worth the price of admission in and of themselves. And keep an eye out in the coming months, because this first release is just the beginning!

Updates from the Free Software Foundation

Wednesday, March 26, 2008

Google's Open Source Team is a proud supporter of many Free and Open Source technical and advocacy organizations. From time to time, we ask that these colleagues give an update to the community about their latest and greatest achievements. Peter Brown, Executive Director of the Free Software Foundation, was kind enough to write in to us:

The Free Software Foundation (FSF) recently held its annual members meeting at MIT in Cambridge, Massachusetts, U.S.A. The meeting is a chance to reflect upon the achievements of the year past and plan for the year ahead. Google has supported our work in the past through our corporate patron program, and this year they have just confirmed that they are renewing their support once again. This seems like a good occasion then to brief Google followers on what work we have been doing and what you can expect from the FSF in the year ahead.

The FSF launched the GNU GPLv3 on June 29, 2007. This was the culmination of an 18-month period to redraft the world's most popular free software license. I am pleased to report that not only have we published a license that protects free software from the latest attempts to make it proprietary, but we have also seen widespread adoption, including developer and corporate support. We have also updated and launched the GNU LGPLv3 and created a new license: the GNU Affero GPLv3. You may have also heard that the FSF, Wikimedia and Creative Commons are cooperating over the new GNU GFDL — the license currently used for all articles on Wikipedia. You can find out more about FSF copyleft licensing at the FSF Licensing and Compliance Lab.

With the release of the GNU AGPLv3, we have also started to make progress on how to tackle the issue of computer user freedom and web services. To that end, we recently hosted a summit, "Freedom for Web Services," as a launching point for a year-long community discussion on this topic. Reports from that summit will be published soon.

The Free Software Foundation sponsors the ongoing development of the GNU project — and many new GNU projects are added every year. GNU now stretches far beyond the core system components found in the typical GNU/Linux distribution. Apart from our own projects we also work to highlight those projects that have a strategic importance to free software. The FSF high priority projects list is currently under review following a recent rash of success, and we hope to relaunch in April with a new set of targets for software development.

In 2008, the FSF will be marking the 25th anniversary of the launch of the GNU project — the starting point for the free operating system GNU/Linux, and the free software movement. We are planning to mark the anniversary with a public awareness campaign. Expect to see lots of people talking about free software during the year ahead. In preparation for that campaign we have updated our website,, with a new friendly look as we welcome a new audience of users to free software.

Speaking of celebrations, Happy Document Freedom Day! Our campaign for Open Document has been underway since October 2005, and we are helping spread awareness of the need for our public institutions to hold records in formats that we can all utilize. You can join us in this process by sending an email or letter to your national or local government officials or government agencies and politicians. Getting your voice heard on this issue will go a long way in preparing the political ground for the acceptance of free and open formats. There are many other ways you can get involved beyond our Open Document efforts. Head over to our campaign center now or look through our volunteer section to find something that you can get active with.

Part of our public awareness campaign is a major free software event to be held in Massachusetts in the summer of 2009. We are working in collaboration with local educational institutions and other stakeholders to develop an event that will bring developers and users together in a fun and interesting way. We also aim to use the event to highlight the need to draw more young women into computer science. Google's own Leslie Hawthorn has generously joined our planning committee, and you will probably hear updates from her later this year.

Google's support is great to have, but we receive the bulk of our funding from individual contributors and much of the work is done by volunteers. You can join the Free Software Foundation as an Associate Member — it's a great way to get involved and stay connected with our work.

Many thanks to Peter for this report.

LugRadio Live Comes to the U.S.A.

Tuesday, March 25, 2008

When Jono Bacon told us he wanted to bring LugRadio Live from the United Kingdom to the United States, we were all for it. We'd heard great things from so many colleagues about how fun and community-oriented the show was, so we naturally asked, "How can we help?" When Jono let us know he needed a team on the ground to do the heavy lifting to make it happen, our masochism, er, love of Open Source firmly kicked in, and months of planning later LugRadio Live USA is on!

Join us on April 12 & 13, 2008 at the Metreon in San Francisco, California for two days of talks, exhibitions by local Open Source projects, live recording of the LugRadio Live podcast and, of course, free beer. Confirmed speakers include Miguel de Icaza, Matthew Garrett, Mike Linksvayer, Selena Deckelmann, Val Henson, our very own Dan Kegel and Robert Love, and many, many more.

Making LugRadio Live USA happen has been a joint labor of love, from the "Gents" tracking down speakers and exhibitors to Google's Open Source Team finding the space, rustling up bean bags, ordering power drops and making sure the chairs get there on time. Thanks especially to Cat Allman and Kynan Dent for everything they've done.

Take a moment now to register for the event. Folks who pre-register will also enjoy additional benefits at the show. Even better, if you cajole your friends to join you, you can win some fabulous prizes. We hope to see you there, and spread the word!

Students, Apply Now for Google Summer of Code 2008!

Monday, March 24, 2008

We are now accepting student applications for Google Summer of Code&trade 2008. Our flagship program to introduce university students to Open Source development is now in its fourth year, and we've welcomed 175 projects to act as mentors for student applicants. Check out the program Frequently Asked Questions and the extensive resources for learning more on the program wiki, then talk to your prospective mentors about your ideas. You can find contact information for each project on their Ideas lists, linked from the Summer of Code home page.

We'll be accepting student applications through March 31, 2008. Get your applications going!

Spreading the Summer Love

Thursday, March 20, 2008

Google Summer of Code™ is in full swing, and the outpouring of community support has been phenomenal. Less than two weeks after announcing the program for 2008, our program information flyer was translated into over 35 languages, from Croatian to Kinyarwanda. We've also heard from several students and mentors that they're working on spreading the summer love to their local communities. Here are a few highlights:

Numerous other students have written to let us know that they've blogged about the program, encouraged their friends to apply and given talks at their universities and local user groups.

Many thanks to all of you for your efforts to help us grow the Summer of Code community. If you're out and about evangelizing the program, we'd love to hear from you; post a comment and let us know what you've been doing.

Wellington Girl Geek Dinners

Wednesday, March 19, 2008

By Brenda Wallace, Catalyst IT and Geek Girl at Large

Wellington, New Zealand's first Girl Geek Dinner was held last week on the 12th of March 2008 and was a giant ball of fun and tech. Held at the Long Xiang restaurant on Dixon street, more than 50 Girl Geeks gathered to hear guest speaker "lightning talks" about a variety of geeky passions from customer usability and comic book design to Agile methodology and busting sales myths.

Originally started in London, these dinners are quickly becoming popular all over the world. Girl geek dinners are an opportunity for like-minded 'girls' to talk about technology over good food and to learn from some of their best fellow girl-geeks in Wellington. Attendees are usually geeks by profession such as software engineers, computer scientists, database experts, engineers and the like but anyone is welcome to attend as it's primary objective is socialise and network.

The organisers were surprised at the response the first dinner has received. All of the tickets were sold out in only 3 days, showing the demand in Wellington for such an event. Guys can also attend girl geek dinners provided they are invited by one of the women attending.

The lightning speakers were:
Sale Coe - Usability Believer
Sandy Mamoli - DBA and Project Manager.
Jo Hubris - Web-famous Wellingtonista blogger.
Sarah Lewis - Tech sales ninja.
Brenda Leeuwenberg - Digital Media-ite.
Amber Craig - Solutions Magician and Gaming Geek.
Heather Buchanan - Comic book geek, artist, and creator.

Much food and drink was consumed, new friends made and many hundreds of business cards changed hands. Everyone who attended last week's event left with swag bags containing a variety of goodies from tech companies and local businesses, including gifts from Google's Open Source Team, one of the sponsors of the dinners.

Girl Geek dinners are to be held quarterly in Wellington, with the next event to be held in August. Visit our website to learn more about attending or speaking at an upcoming dinner. becoming a sponsor or guest speaker for this event. You can also take a look at photos from the latest dinner.

Meet Your Mentors

Monday, March 17, 2008

We've just announced the list of accepted mentoring organizations for Google Summer of Code™ 2008, and you can check out more details for each of them on the program home page. After reviewing over 500 applications, we finally narrowed our selection to 175 Free and Open Source projects. Originally, we had planned to work with 150 projects this year, but due to the overwhelming quality of the applications we received we chose to take on an additional 25.

We had to make some very tough decisions this year, as we simply aren't able to accept every great project that applied. We want to thank everyone for their applications and would encourage those of you who were not accepted to apply for future instances of the program.

What Happens Now?

No doubt many would-be Summer of Code students are wondering what their next steps should be. We've changed the program timeline this year, leaving a week in between the announcement of accepted mentoring organizations and opening for student applications. Use this week to meet your potential mentors and discuss your project ideas with them, and keep on eye on the program mailing lists, as we'll post notes about additional resources for learning about our mentoring organizations.

Most organizations have provided individual points of contact for each project suggestion, and you can always propose ideas and look for guidance on project mailing lists or forums, as well as on IRC. You can also look for your potential mentors in the program IRC channel, #gsoc on Freenode.

Remember, some of our most successful student projects come from ideas suggested by the students themselves, so take advantage of this time to explore what areas of development most excite you. You can then find people to help you brainstorm about your initial thoughts and further refine them. We're hoping this additional time for up-front dialogue will help our student applicants craft the most well-informed and targeted program applications possible.

Congratulations to all of our future mentors! We look forward to working with all of you this year, and to working with many of you once again.

Thanks for the Jolt!

We'd like to thank the Google Guice developers and users who helped jolt the industry in 2007. Dr. Dobb's honored Guice with the 18th annual Jolt Award in the Libraries, Frameworks and Components category:

The Jolt Awards recognize those products, books, and websites that have "jolted" the industry in the past year. Winners are selected by a panel of judges consisting of industry insiders, columnists, and technology leaders.

Past Jolt winners include Josh Bloch for his book Effective Java, Google Groups, and Java 2, to name a few.

Guice makes Java code easier to write, change, unit test and reuse. In a word: agile. Once you've tried Guice, you'll wonder how you lived without it. If you're interested in learning more, check out our introductory tech talk and the Guice home page.

Bob Lee Gets Jolted!

(Photo Credit: Bob Lee)

"Look! Actual Code!"

Saturday, March 15, 2008

In one Dilbert cartoon, Dogbert confronts a long-winded technology "guru" by showing him some actual code, which blows him away. It's funny because it's true: some long, abstract discussions can turn into short, concrete ones when you can point to code.

We recently launched a new source code browsing tool as part of Google Code's project hosting feature. This new tool makes it easy to navigate through a project's Subversion repository. Key features include: fast directory browsing tree, syntax highlighting, history of changes, and easy-to-read diffs. See it yourself under the "Source" tab of any project that we host. For example: Google Gears source code.

We hope you find that the details make this tool a joy to use. For example, it's easy to get straight to the source code of a file, yet still see some of its recent history right on the same page. And, you can flip through revisions of a file with just a click. Stay tuned as the tool matures and evolves into something even more exciting in the months ahead.

Special thanks go to Google intern Jenan Wise for his passion for great software and attention to detail on this tool.

Come See Us at PyCon

Thursday, March 13, 2008

PyCon 2008
has already kicked off in Chicago, Illinois, U.S.A, and we have two Googler Open Sourcerers giving keynote addresses at the conference: Guido van Rossum, the creator of Python, and the Open Source Team's very own Brian "Fitz" Fitzpatrick. You might also be interested in these other talks by our colleagues:

We'll also have several Googlers on hand in the Expo Hall to answer your questions, and you can spend some time hacking with a few of them during next week's Development Sprints.

We hope to see you there!

Dojo Storage

Wednesday, March 12, 2008

The Dojo project is a leading open source Ajax framework for developing advanced web applications in JavaScript. Dojo consists of many modules for powerful cross-browser development, such as modules for offline, modules for graphics, and more. One of these modules is known as Dojo Storage.

Dojo Storage makes it possible to store large amounts of data (hundreds or megabytes of K) on the client-side, way beyond the 4K limit of cookies. Developers are given a simple key/value storage abstraction, similar to a hash table. What makes Dojo Storage unique is that it automatically determines the best way to achieve this. If Google Gears, a small open-source plug-in that teaches current browsers new tricks, is present then this will be used for storage; if the browser supports HTML 5 DOM Storage, such as Firefox 2, then this is used; and finally, if none of the others are available, then a hidden Flash applet is used to store the data permanently. There are even Adobe AIR storage providers (thanks to SitePen and Adobe) if you are running in an AIR environment!

Dojo Storage has been around for a few years. However, when Dojo made the big move to the Dojo 1.0 architecture, the Flash and HTML 5 storage providers broke; plus, new versions of Flash and new browsers made the old design inefficient. I have seriously re-factored the Flash storage system to be much faster and simpler and fixed bugs in the HTML 5 and Gears storage systems. There is now a new storage.js profile build that you can grab and include in your page to easily use Dojo Storage with the three main browser storage providers: Gears, HTML 5, and Flash. The new Dojo Storage will come out as part of the Dojo 1.1 release coming soon.

I've created a screen cast demoing the different storage providers in action:


Expose Flash Gallery

Thursday, March 6, 2008

Joomla! is an award-winning Content Management System (CMS) that is used all over the world to power everything from simple, personal homepages to complex corporate web applications. I have been working with Joomla! for close to four years now. Along with many others from the Joomla! community, I have developed a number of add-ons - or extensions for those well-versed in Joomla! vocabulary - including:

For the last 6 months, Expose Flash Gallery has been known as the number one gallery add-on for Joomla!. We just passed the 300,000 download mark and still counting.

Expose started as a semi-open source project and my teammate, Bruno Marchant, and I got the original author's permission to further open the code. We were excited to bring this cool functionality to even more users. Due to the growth of the project, Bruno and I have also had to open a support forum for users to get assistance with the extension and to allow them to file bug reports.

One thing I've really enjoyed about working on Expose Flash Gallery has been the fact that Google has supported the development by allowing me to work on the project during my 20% time. It has also been wonderful to work with all the great folks in Joomla! community that have come together to donate funds to this project to help defray server hosting costs. Best of all, it gave me the chance to meet Bruno, and the chances of me meeting another developer from Belgium would have been very slim outside of the tightly knit community that Joomla! has. I'd also like to extend my thanks to my former project partner, Steinþór Kristinsson, who has moved on from the project to focus on family. Both Bruno and Steinþór have been very helpful and their dedication to helping this project, all in their free time, has been inspirational to me.

Overall open source is a lot of fun - you just need to find the project and developer team that fits your interests and personal style. I think that if everyone, and there is always something for anyone to do, pitched on a project or two in their free time we'd see projects like Joomla! improve beyond their limits. Thanks for listening and enjoy the free stuff!

Best Practices: Repository Resets

Wednesday, March 5, 2008

Over in the google-code-hosting discussion group, we see a lot of users asking us to 'reset' their Subversion repositories back to an empty revision 0, tossing away all data and history. Sometimes there are good reasons for doing this; however, much of the time we're getting these requests for the wrong reasons.

Users who are new to Subversion often get the idea that the global revision number has some sort of special meaning — that it somehow measures the "maturity" of the software. In fact, the revision number is just a dumb counter that measures moments in time; it actually has no special meaning. If you accidentally mess up a code import or don't like the way things are arranged then just rearrange things with 'svn mv' or delete everything with 'svn rm' and start over! There's no need for the repository's history to be "pure." The repository is simply tracking changes over time (even restarts and mistakes), not describing the evolution of flawless software.

There are typically only three legitimate reasons for resetting a repository:

  1. Something really sensitive, confidential, or illegal was accidentally committed, and now exists in the history forever.

  2. Some HUGE garbage file was accidentally committed, and now a ridiculous amount of disk quota is wasted.

  3. A project owner wants to replicate a prior repository into the repository, using the 'svnsync' tool (which requires an empty repository at revision 0).

If your request fits one of these categories, then please drop the Project Hosting team a note on the public googlegroup, or, if it's a sensitive matter, mail us privately. We'll ask you to remove everything in the repository, thus proving you're a legitimate project owner and not someone forging emails, and then we'll reset your repository.

Another tip: when a project is first created, it begins life at revision 1, with empty /trunk, /branches, and /tags directories. A project at revision 1 can be reset to revision 0 by project owners themselves; you'll see a bubble on the right side of the 'Source' tab advertising this fact. (This feature makes it easy for newly-created projects to prep the repository for receiving data from 'svnsync'.) Once a repository is changed and goes beyond revision 1, however, resetting a repository is no longer self-serve; you'll have to ask the administrative team for a reset.

One final tip: the wiki feature saves wiki pages into the /wiki directory of the Subversion repository. This means that if you make a wiki change while svnsync is populating your repository, you'll break the sync halfway through. You'll have to request a repository reset and start the sync all over. Be careful!

CSSJanus: Helping i18n and LTR to RTL

Tuesday, March 4, 2008

Have you ever been asked "but what about a Hebrew version?" Lindsey Simon has, so he decided to write a tool that would help with the task.

CSSJanus is CSS parser utility designed to aid the conversion of a website's layout from left-to-right (LTR) to right-to-left (RTL). The script was born out of a need to convert CSS for RTL languages when tables are not being used for layout (since tables will automatically reorder TD's in RTL). CSSJanus will change most of the obvious CSS property names and their values as well as some not-so-obvious ones (cursor, background-position %, etc...). The script is designed to offer flexibility to account for cases when you do not want to change certain rules which exist to account for bidirectional text display bugs, as well as situations where you may or may not want to flip annotations inside of the background url string. CSSJanus itself is not always enough to make a website that works in a LTR language context work in a RTL language all the way, but it is a start. We sat down with Lindsey to talk about the motivation of the tool, the challenges behind it, and a screencast showing it in action:

Check out a running Django-ified webapp version, and for the greatest detail of what gets flipped in CSS Janus, please have a look at the unit tests.

Google Summer of Code: Mentoring Organization Applications Are Open!

Monday, March 3, 2008

Ready to find the best and brightest students to contribute to your open source software project this summer? The Google Summer of Code™ 2008 program funds students worldwide, pairing them with mentors from the FLOSS community. We're now accepting applications from open source projects who wish to act as mentoring organizations, and the application deadline is Wednesday, March 12, 2008. We'll post a list of approved organizations on the Google Summer of Code page on Monday, March 17th. Students will have a week to discuss application ideas with their potential mentors before student applications open on Monday, March 24th

Check out our FAQs for a preview of the application. And remember, if you have any questions, you can always find us in the Google Summer of Code Discussion group or in #gsoc on Freenode. Best of luck to all of our applicants!