Posts from December 2008

A Toast from the Host

Friday, December 19, 2008

It's been an amazing year for Google Code's Open Source project hosting service. In 2008, our team improved the service by adding source code browsing, project feeds, project updates, a code review tool, content licenses, gadgets, better issue tracking, wiki enhancements, and increased storage quota. Check out our What's New page for further details.

Likewise, Google's own Open Source efforts expanded greatly in 2008 with new releases of everything from Chromium, V8, Android, Doctype, and Native Client, to GXP, Protocol Buffers, and tools for mocking and testing. Meanwhile, our existing Open Source efforts continue full steam on Google Web Toolkit, Gears, Guice, Ganeti, and many others. Google itself is now using Google Code to host over 200 open source projects, large and small. For the full list, just search for label:google.

However, the best part of 2008 came from you, the Open Source community. The number of active projects that we host more than doubled in 2008, everything from games to mobile to development tools. Overall participation on the site increased threefold. And our project hosting tools are now used by some of the projects that help drive the open web, such as JQuery and Firebug.

From everyone on the Open Source team, thank you for a great 2008. Keep it coming in 2009!

GeoWebCache 1.0 and Google Summer of Code

Wednesday, December 17, 2008

OpenGeo and the GeoWebCache team are pleased to announce the release of version 1.0 (download). GeoWebCache is a tile cache for web mapping servers designed to significantly improve the performance of your service and provide easy integration with software such as OpenLayers, Google Maps, Microsoft Virtual Earth and Google Earth. The response time for cached tiles is measured in milliseconds, making it possible to serve hundreds of simultaneous clients using modest hardware.

GeoWebCache has benefited greatly from contributions resulting from the Google Summer of Code™ program. In 2007, Chris Whitney developed jTileCache, the starting point from which GeoWebCache has gradually evolved. This year, Marius Suta, primarily focused on a REST API for configuration, spent the summer on GeoWebCache, and the resulting functionality is available in our 1.0 release. GeoWebCache also underwent improvements to cache KML with support from Google's Open Source Programs Office as part of a project to enable GeoServer to make placemarks and vector data available through Super Overlays. The new Google Earth functionality in GeoServer can be seen in version 1.7.1, which ships with an integrated GeoWebCache.

GeoWebCache will continue to evolve at a rapid pace with a continually growing open source community. Planned features include the ability to let users specify what WMS parameters can be varied by the clients, so that each layer can forward filters and support multiple sets of tiles. Also, steps are being taken to enable GeoWebCache to automatically expire tiles as the data changes on the backend or styles are modified. To facilitate these features, storage of tiles and meta information will be improved. A nice, AJAX based frontend for tasks such as configuration, seeding and testing the layers is also in the works.

New File Systems Added to MacFUSE

Tuesday, December 16, 2008

The MacFUSE State of the Union Talk video is now available. The source code for the new file systems discussed and demonstrated during the talk is also available. Please head over to the MacFUSE source repository for the following:
  • AncientFS - a file system that lets you mount ancient, and in some cases current-day Unix data containers as regular volumes on Mac OS X.

  • UnixFS - a general-purpose abstraction layer for implementing Unix-style file systems in user space.

  • ufs - a user-space implementation (read-only) of the UFS file system family.

  • sysvfs -a user-space implementation (read-only) of the System V file system family.

  • minixfs -a user-space implementation (read-only) of the Minix file system family.
Enjoy playing with the new file systems! We always love to hear your feedback, so please share your thoughts with us as comments on this post or in our MacFUSE Discussion Group.

C++ Mocking Made Easy

Thursday, December 11, 2008

Since we open-sourced the Google C++ Testing Framework in July 2008, many people have asked us when we will release a mocking framework to go with it. You asked, we listened; today we released the Google C++ Mocking Framework under the New BSD License. It is inspired by popular Java mocking frameworks like jMock and EasyMock, and works on Linux, Windows, and Mac OS X. More details are on the Google Testing Blog. As usual, we are eager to hear from you, so please share your thoughts with us on the Google Mock Discussion Group!

BSDers at the Googleplex

Wednesday, December 10, 2008

The meetBSD 2008 conference recently held at the Googleplex in Mountain View, California, USA brought together more than 150 users and developers of the various flavors of the BSD operating system. The conference featured some great speakers, including talks by Robert Watson, Philip Paeps, Kris Moore and many others. There was also a panel to discuss the Google Summer of Code™ program, hosted by Murray Stokely and Leslie Hawthorn of Google. They were joined on stage by former mentors and students from the FreeBSD and NetBSD projects to give an overview of the program, some of the amazing results, and some tips and stories about participating. Saturday's content wrapped up with impromptu breakout sessions to discuss PC-BSD, FreeBSD, security issues, and other topics.

After the first day of the conference, attendees were taken by bus to the Zen Buddha Lounge in Mountain View for a private party to celebrate the 15th Anniversary of the FreeBSD operating system. A great time was had by all and, like most birthday parties, this one included a cake! We went a step further though: our cake was shaped like the FreeBSD logo in 3D, complete with horns. Dr. Kirk McKusick had the honors of cutting the cake and handing out a few pieces.

Thanks to help from the Open Source Program Office at Google we were able to setup a new YouTube channel for technical BSD content, allowing us to upload high quality full hour-long videos of talks and tutorials from BSD Conferences. May of the talks from MeetBSD 2008 are already available, and videos from MeetBSD 2007 and NYCBSDCon 2008 have already been uploaded. You can view these videos at You may also want to check out photos from the conference and aforementioned birthday party.

The main conference was followed by an invitation-only FreeBSD Developer Summit which was a great success. We had over 30 attendees from the FreeBSD Developer Community as well as engineers from Yahoo, NetApp, Isilon, QLogic, Huawei, Google, Juniper, Cisco, Facebook, ISC, Metaweb, and other technology companies using or looking at using FreeBSD. There were formal presentations on the first day, followed by less structured hacking during the second day. The agenda of talks for the first day is available here.

Hard at work at the FreeBSD Developer Summit
(photo credit: Murray Stokely)

Finnish Summer Code 2008

Monday, December 8, 2008

Finnish Summer Code is a yearly project organized by FILOSI (the Finnish Linux and Open Source Initiative), which aims to support Finnish participation in significant Open Source projects and to strengthen the Open Source competencies which companies need. FILOSI, a joint project of institutes and companies involved in software development, operates as a part of COSS, the Finnish Centre for Open Source Solutions. The program recently concluded for 2008, and five students participated in the program this year. Juuso Alasuutari improved LASH Audio Session Handler, and Sakari Bergen's project was about improving Ardour. Niklas Laxström worked with MediaWiki translation support and Olli Savolainen's topic was the Moodle Quiz. You can read the final reports for each of our student's projects on the Finnish Summer Code site.

Also known as Wellark, Antti Kaijanmäki is a 21 year old student of digital and computer technology at Tampere University of Technology. He participated in the Finnish Summer Code project in 2008 and worked on improvements that make mobile networking in Linux easier. Specifically, he programmed a settings assistant for mobile networking devices for Linux, and it is now possible to set up mobile networking with a graphical clickthrough tool. The tool also contains settings for major operators throughout the world. Antti's work was been published first in Ubuntu 8.10 and the overall comfort and performance of Network Manager has been praised in different reviews and blogs. Given all the buzz over his work, we thought we'd sit down with Antti and ask him a bit more about his project.
Antti, what made you apply for the Finnish Summer Code?

I have had the idea of the project in my mind for few years. I don't remember where I heard about the Finnish Summer Code, but because I already had the idea I decided to send an application.

Does the concept of Finnish Summer Code excite students in general?

It's very exciting - you get to do what you want. The only thing that we laughed about was making our presentations, both in the applying stage and at the end. It requires quite a lot of work. For a normal summer job, you simply get the instructions and you do the work. The difference is rather clear.

What kind of advice would you give to a person considering applying for the Finnish Summer Code?

The motivation to do a Finnish Summer Code project goes hand in hand with being motivated to do general FOSS development. It is all about personal motivation. For me, it was very relevant that someone was interested in my work. Ubuntu activists Alexander Sack and Rubén Romero got excited about my project and gave me ideas and support. I also had friends who were interested in the project, which was also quite inspiring. When I'd completed my project, it felt good to see all the blog posts about how great it was - how my code just made things work.

What has this positive publicity felt like?

Of course it feels really good. One of the motivations to do FOSS work is helping others, and it feels great to achieve that goal. It feels good to solve a problem and, by doing so, help a lot of people. The mobile networking assistant is not yet perfect and it needs ongoing maintenance. The database that holds the settings of different operators is mostly taken from the already completed work by the GPRS Easy Connect project. Some changes have been done to update the database, and new changes are coming at a rate of approximately one per week.

There has been some uncertainty about who has done what. My part of the whole thing was the settings assistant – the guided clickthrough. The actual PPP connection stack was programmed by other contributors. As I had some extra time, I did the integration for the Network Manager applet, too. The Network Manager User/Interface is one of the challenges of future. We will also add new types of connection devices and types of networking.
Many congratulations to Antti, Juuson, Niklas, Olli and Sakari for their accomplishments! We would also like to thank Google for once again sponsoring the program. Next year’s Finnish Summer Code application period starts in January 2009. Keep an eye on the program website for more details.

(Note: Site in in Finnish. If you would like to view the site in English, you can select this option from the page's top navigation menu.)

More Adventures from SciPy: Jenny Qing Qian

Friday, December 5, 2008

You may recall our recent post from Rachel McCreary detailing her experiences at the 7th Annual Python in Science Conference (a.k.a. SciPy 2008). Also joining Rachel at SciPy was Jenny Qing Qian, one of Rachel's fellow Google Summer of Code™ 2008 students and Pygr developer. Jenny created a Python Ensembl API for her Summer of Code project, and attending SciPy gave her the opportunity to showcase her work and learn more from her co-developers. She was kind enough to send us this report from the conference:

The introductory tutorials, held during the first two days of the conference, were fantastic. In the tutorial, I was given an excellent hands-on demo of the interactive Python shell – IPython – and other general Python tools and libraries for scientific computing, such as NumPy and SciPy. In addition, I was fascinated by the diversity of plotting tasks the Matplotlib package can perform, tasks which were traditionally carried out using Matlab.

During the conference, I really enjoyed the keynote speech from Alex Martelli, who currently works at Google. His talk addressed the fundamental yet often neglected problems of treating a numeric software package as a 'black box' in the course of scientific and engineering computing. Supported by many vivid real-world examples, he effectively conveyed the message that you must be crystal clear about what you're computing and understand what the 'black boxes' can do and can not do. Otherwise, results may well be far away from being accurate, which can lead to disastrous outcomes, especially in the field of engineering. This is likely due to the fact that the targeted 'black box' is in fact not well-conditioned for the specific tasks or the sets of input data. His talk provided useful input both to users of software packages, but also to their developers. It rightfully prompts the developers to carefully document the behaviors and functionality of their software packages, especially the conditions for using it. In turn, it might help prevent the software being used for other than its intended purposes.

In addition, it was also interesting to listen to talks from various developers about how to apply or further develop general Python or SciPy libraries to solve their domain-specific problems. One of such talks was Summarizing Complexity in High Dimensional Spaces. In this talk, Karl Young presented a very useful method that can provide diagnostic summary information for multi-dimensional and multi-spectral medical image data. This method is developed based on the powerful SciPy array computation capabilities. I have implemented methods in R to analyze high-dimensional biological image data sets like time series analysis of microarray data. In addition, I have also implemented algorithms in Matlab to analyze and classify data with a large number of features, such as documents. Inspired by the talk, I'd love to try to employ SciPy to develop analysis tools for large high-dimensional and multivariate data sets that characterize fundamental properties of dynamic and complex biological systems.

After the conference concluded, I stayed for the coding sprints. My Summer of Code project was about prototyping a database API using standard components of Pygr – a Python Graph Database Framework. The functionality of the API is to retrieve information from a central biological data warehouse, the core Ensembl database system. At the sprint session, I finally got to meet the main Pygr developers, Dr. Christoper Lee (the project's founder) and Dr. Titus Brown.

During the sprint session, both Rachel and I presented and demoed our summer projects to the whole group, and we got some great feedback on our progress to date.

After the presentation, Dr. Lee and I further discussed the potential of best re-using existing Pygr components to further simplify my API framework, so as to make it more maintainable and easier to extend. In addition, we debugged the problems I encountered while porting the Ensembl database schema to pygr.Data namespace. For this project, we had decided to model the complex Ensembl database schemas by employing the strong support from the pygr.Data module. More specifically, rather than implementing a complex database schema in a conventional ORM (Object Relational Mapping ) way, this module transforms a schema into a portable Python namespace. In doing so, we hope to provide API developers as well as end-users with a much cleaner and more intuitive interface to access and distribute the relations among Ensembl data objects. Through a joint effort, I finally managed to save and retrieve typical Ensembl database schemas into and from the pygr.Data namespace! Needless to say, these discussions and my entire SciPy experience left me feeling incredibly motivated to continue working on my project.

Many thanks to Jenny for sharing her thoughts with us and many congratulations to her and Rachel for their successes this summer!

Open Source Jams Head to Belo Horizonte

Wednesday, December 3, 2008

In mid-November, we held our first first Open Source Jam in Brazil. If you're not sure what the Open Source Jam is — well, it depends on who shows up! It's an open forum for Open Source fans, hackers, and just plain geeks to get together, have a beer, and hear what's going on with one another. If you're looking for people to try out your latest patches or to help you get a project off the ground, it's a great place to start a conversation. You can hang out with all of us at jams in London, Zurich and now Belo Horizonte.

We had more than 30 people at our first jam. Some of them gave lightning talks on various Open Source projects, including Haiku OS, PHPEclipse, the Linux Kernel, Curl FTPFS, Megalinux, Webkit and GTK+. The lightning talks were given in two sessions, and otherwise small groups were discussing ideas and projects. To make sure nobody was thirsty or hungry, we provided free beer and food. You may want to check out our photo album of the event.

Open Source Jams are semi-regular events. To stay informed about the next jam in Belo Horizonte, or to catch up on discussions about previous ones, join the Open Source Jam Brazil Google Group. We hope to see you at our next jam!

Summer of Coders at SciPy: Rachel McCreary

Tuesday, December 2, 2008

You never know where an experiment will lead you. When we launched the Google Highly Open Participation Contest™, we weren't sure how many pre-university students would be eager to participate in Open Source development. We weren't sure what kind of work would be most useful to the participating Open Source projects and most compelling to our student contestants. Of course, we were delighted when the first GHOP was a rousing success.

A few weeks later, Titus Brown, the Python Software Foundation's (PSF) GHOP administrator, wrote to let us know of another success story. He'd be mentoring Rachel McCreary for her Google Summer of Code ™ project to improve Pygr, a graph database interface written in Python. Rachel's inspiration to apply for Summer of Code? Her little sister had recently participated in GHOP, working with the PSF.

Rachel did quite well in her project. So well, in fact, that she was invited to attend 7th Annual Python in Science Conference (SciPy 2008), held from August 19 – 24 at Caltech in Pasadena, California, USA, to meet up with her fellow Pygr developers. Rachel was kind enough to send us this report:

The conference provided a great opportunity to learn about the various ways Python is used in scientific applications. As a newcomer to this field, I was overwhelmed by the diverse and incredibly active Open Source community. Several of the conference attendees had new and innovative ways to incorporate Python into their work, and I spent the majority of the breaks and lunches learning about the impressive accomplishments of my fellow conference attendees.

Even more exciting than the tutorials were the presentations held on the final two days of the conference. While all were interesting and informative, my personal favorite was the NetworkX presentation. NetworkX is tool that analyzes networks by manipulating basic graph and data structures, and performing numerous computations on the analyses. One of the applications of NetworkX is the prediction of disease outbreaks, and since I am a total epidemiology geek, I was fascinated.

Furthermore, several members of the Pygr project were on hand that week, which provided an ample opportunity for the project team to discuss the successes of my summer project, review code, and plan for the future. It was wonderful to finally put faces to names, and my Google Summer of Code project was presented to the group. As I am the least skilled member of the Pygr clan, I benefited tremendously from observing my fellow developers demonstrate and explain the most efficient ways to improve and utilize Pygr. I plan to continue working on Pygr despite the conclusion of my project, and the sprint helped me to find tasks to focus on in the future.

While SciPy has long been over, the conference had an unexpected impact on me. Once school started back up, as my research advisor assigned me a new bioinformatics computing project, which clearly needs some NumPy love. Luckily, I’ve had just the introduction I need to dive right in!

Many thanks to Rachel for the report. If you feel like sharing your own Summer of Code or Highly Open Participation Contest success stories, we would love to hear from you. Post a comment and share your joys.

Open Source Developers @ Google Speaker Series: Amit Singh

Monday, December 1, 2008

Amit Singh, Engineering Manager - Mac Development team, will once again be joining us for an update on all things MacFUSE. MacFUSE, an Open Source mechanism that allows you to extend Mac OS X's native file system capabilities, has come along way since its introduction at Macworld 2007. Amit will be sharing all that's new for developers and users in this MacFUSE State of the Union talk. Among other topics, Amit will cover:

  • How to leverage new features in MacFUSE to make your file system act more like a native Mac OS X file system

  • What the upcoming 64-bit support in MacFUSE means for your file systems

  • How to use the new file system templates in MacFUSE to quickly get started on a new file system

  • How to choose the best MacFUSE API for your specific needs

  • How to use the power of DTrace to debug and analyze your file systems

Amit will also address MacFUSE best practices and how these can help you write less code that does more, as well as some advanced little known tips and tricks for the system.

You'll also get to see some interesting and unusual file systems never before seen on Mac OS X.

If you are nearby Google's Mountain View, California, USA Headquarters on Monday, December 8th, please join us for Amit's MacFUSE State of the Union. Doors open at 4:30 PM and light refreshments will be served. All are welcome and encouraged to attend; guests should plan to sign in at Building 43 reception upon arrival. For those of you who cannot join us in person, the presentation will be taped and published along with all public Google Tech Talks. We hope to see you there!

For those of you who were unable to attend Amit's May 2007 presentation on MacFUSE, you might want to check out the video.