Posts from May 2008

Zurich Open Source Jam 3

Friday, May 30, 2008

The evening of Thursday May 22nd saw a crowd of contributors to Open Source projects gather at our offices in Switzerland for the 3rd Google Zurich Open Source Jam. These events are a way to meet up with other local open source contributors and share some knowledge in a convivial setting. On the night 37 people attended, representing a wide range of Open Source projects.

Of course it's not just Free Beer, food, and conversation. Some of the attendees had volunteered to give lightning talks about projects they were involved in, and these proved to be a wonderfully eclectic mix of information.

Karel Kulhavy

Karel kicked off the talks with a presentation about Ronja, a system for providing point-to-point ethernet links using light. Instead of the perhaps more typical laser based system Ronja makes use of bright LEDs, cheap magnifying glasses, and associated electronics. Currently capable of achieving 10Mbps full-duplex over 1.4km, Ronja systems are widely deployed in Eastern Europe, and work continues on increasing the speed and the range. Ronja is completely open source - not only is the documentation on how to build a Ronja end-point freely available, all the tools used in designing and developing Ronja are Open Source, such as Qcad, Gschem, Autotrace, and Sodipodi.

Giacomo Catenazzi

The next session was by Giacomo on the topic of AutoKernConf. This seemed to be one part "Introduction to AutoKernConf" and one part "A call to arms for interested people to help contribute", which is exactly in the spirit of Open Source Jam. I hope he was able to drum up some interest.

Markus Gälli

Then on the podium Markus discussed the combination of Squeak, a graphical programming language that's great for teaching to kids, and Sun's Lively Kernel, a web based programming environment in Javascript. If I got the gist of it right this is all the fun of Squeak, without having to download and install anything other than a web browser.

Paul Johnson

The first round finished with Paul explaining the importance not only of writing tests for your code, but of being able to measure how much of your code those tests cover - not in terms of lines of code but also the full set of branches and paths that might be executed as your software runs. His slides on test coverage are available, and the Perl Devel::Cover module which he maintains is an excellent example of the principles he was espousing.

We took a break - running around taking pictures meant that I didn't get to speak to half the people I'd hoped to, but the snatches of conversation I overheard suggested that everyone was having a suitably technical time, with plenty of knowledge being shared.

Three more people had signed up to talk in the latter half of the evening.

Harry Fuecks

Harry encouraged everyone to consider the design principles behind MicroApps when they design their front-end/back-end infrastructure. Essentially, use HTTP as your RPC transport mechanism, REST as your architecture, and data representations such as YAML or JSON, rather than anything more heavyweight (or, worse still, inventing your own RPC mechanisms). And try and build self-contained functional units that can be reused wherever possible.

Matthias Stuermer

Matthias took the opportunity to plug the next OpenExpo event in Zurich, a multi-day conference and trade show for Free and Open Source software. He also made sure that everyone was aware of Hackontest, a 24 hour programming competition that will be taking place at OpenExpo (and that Google is sponsoring - see this blog post about Hackontest for more).

Philipp Wollschlegel

Finally, and winning the prize for "Most Unexpected Topic", Philipp gave an excellent impromptu explanation of why gliding (also known as soaring) was on topic for this audience. It turns out that there is a thriving community of Open Source gliding enthusiasts writing software like XCSoar, which turns a PocketPC + GPS in to a tactical glide computer, alerting the pilot to hazards such as power lines, and helping them determine whether it's going to a safe landing back at the airstrip or a somewhat bumpier arrival in a local field.

Oh, and that "wide range of Open Source projects" I mentioned at the start? They were: FreeBSD, Perl, Subversion, Ruby, NetBSD, net-dri, pkgsrc, cjabber, Gentoo, Squeak, Lively Kernel, links, OpenEmbedded, Scribus, Huemul, Debian, bsdproject search, Fink, Disconnected Sync., Ramaze, DocWiki, Eclipse, Yang, OpenSolaris, GNUStep, Croquet, (Open)Darwin, Openmoko, m0n0wall, Media Portal, and bcollect.

The Zurich Open Source Jams are semi-regular events. To stay informed about the details of the next one, or to catch up on discussions about previous ones, join the Open Source Jam Zurich Google Group.

Ed note: Post updated to correct a typo.

Podcast with the Pythonistas

Coding officially kicked off this week for all of our Google Summer of Code™ students, and in solidarity we're kicking off this season of the Summer of Code podcasts.

For Episode 16, we were joined by Titus Brown and James Tauber from the Python Software Foundation (PSF). Courtesy of these two veteran mentors, you'll learn about the history of the PSF in Summer of Code, tips on effective cat mentor & student herding, and the impact that Summer of Code and the Google Highly Open Participation Contest™ have had on the Python community.

Many thanks to James and Titus for joining us!

You can download the podcast in mp3 or ogg formats. Then again, why not subscribe to it?

We're very excited to be bringing these podcasts to the community once again, and we hope that this podcast is a great start to a weekend of hacking for all of our students. We always love to hear your feedback, so let us know your thoughts. In particular, we'd like to know which projects you'd like to hear more about in future episodes.

May Girl Geek Coffee in Welly

Thursday, May 29, 2008

For our May Girl Geek Coffee event in Wellington, New Zealand, participants had to solve a series of geeky puzzles to uncover the meeting location and receive some awesome loot that arrived from Google's Open Source Team.

The location was hidden in an arbitrarily added e-mail header, which led to a Flickr page with a username and password hidden in the EXIF (meta data) of the photo jpeg. Once obtained, these credentials could be used to log into the Girl Geek Dinner website to retrieve the location of our caffeinated congregating, along with a pass phrase for getting swag.

Loot consisted of Google mini-notebooks in a variety of colours (the red ones went faster), and Google Open Source t-shirts. The consensus was that Google t-shirts are the best fitting women's t-shirts ever found in the technical community.

Approximately 30 people attended the event, most from the Girl Geek Coffee Hunt. Some gate-crashers from the workshops at Webstock also joined us. There was great beer, wine, coffee (of course) and conversation late into the night.

Topics of conversation were the upcoming Girl Geek Dinner in August, news media in New Zealand, tall poppy syndrome, short poppy syndrome, the launch of, Microformats, finding more of our kind by recruiting would-be geeks, and modern day geek self-identification using the gear on offer at ThinkGeek & threadless. We played with cameras and argued over Compact vs SLR. There was much swapping of Moo cards and in-depth discussion on the use and misuse of Flickr's APIs.

Girl, geeky and in or around Wellington? We would love to see you at our next Girl Geek affair. Keep your eye on our website so you know when you can next join in the fun.

Standing Against License Proliferation

Wednesday, May 28, 2008

The proliferation of Open Source licenses has been a known problem in the community for a few years. As the number of licenses grows, the possible combinations and interactions skyrocket. This makes it very difficult to mix code from multiple sources because the licenses may be incompatible or create burdensome notification or publishing requirements. Many people in the community have been talking about how to stem the tide of new Open Source licenses, and how to reduce the existing set, in order to simplify the legal framework surrounding the Open Source universe.

When we set out to create the project hosting service on Google Code, I turned to my colleague Chris DiBona and said, "Dude. I think we have an opportunity here. What do you think if we offer only a limited set of licenses?" He replied, "Hunh... Cool idea!" Fifteen minutes later, we had a list of six licenses: Apache License v2.0, (New) BSD, MIT, GPLv2, LGPL, and MPL 1.1. About four weeks before launch, Robert Spier pointed out our oversight in not remembering the Artistic/GPLv2 dual-license used by the Perl community. Whoops! We launched with those seven licenses (and added GPLv3 a year later). Further, we do not allow any dual-licensing (other than the Artistic/GPLv2 combination), nor the dreaded tri-license. I'm not going to get started on what I think about that.

Two years later, we are nearing 100,000 projects hosted on Google Code. The trend around licensing is obvious: GPLv2/GPLv3 represent 42.6% of the projects, and Apache is 25.8%. MIT, BSD, and LGPL are at about 8% each, Artistic at 3.5%, and MPL 1.1 at a mere 2.7%. This follows my own observation about how people license their projects. If they are advocates of Free Software, they will choose GPL; advocates of Open Source will choose Apache (a more modern and thorough permissive license, compared to BSD or MIT). And this is exactly what I recommend to people: choose GPLv3 or Apache v2 based on your personal philosophy.

People very rarely choose licenses like MPL, EPL, or CDDL unless they are part of those communities (Mozilla, Eclipse, and Sun, respectively). Unfortunately, licenses that are typically community-specific also tend to create islands of code. And while there is no good reason that I cannot lift code from an EPL'd Eclipse plugin and incorporate it into some Apache-licensed server application that I'm writing, that kind of blending just does not happen. Based on the low popularity, and in an attempt to limit this artificial segregation of code, we plan to remove the MPL from the set of licenses on our project hosting service (for new projects; existing projects will not have to relicense).

At Google, we believe that the software community would be much better served by a reduction in the number of licenses used by software projects. We hope to steer people in that direction with our license choices on Google Code. We also highly recommend choosing the Apache License or GPLv3 for your projects.

The Spirit of Summer in Haiku

Like Summer of Code,
The Haiku Code Drive is on.
Our meme keeps spreading.

We're always excited to hear about Google Summer of Code™-like programs that help bring new code and new developers into the community. The folks at the Haiku project, now participating in Summer of Code for their second year, have recently organized the Haiku Code Drive to introduce even more students to hacking on Haiku.

Jorge Mare
, Marketing Lead for Haiku, was kind enough to give us the inside scoop:

Haiku loves the Google Summer of Code for everything that it means. For a young project like Haiku, being accepted as a mentoring organization last year was like finally becoming a recognized member of the big open source family; we were totally thrilled. Of course, Summer of Code means much needed contributions to our code base, and we're excited to see the addition of 'young blood' to our pool of developers, nurturing our future generation of Haiku developers. Most of all, we love the basic idea behind the Summer of Code: introducing students to Open Source. In that very same spirit, this year we decided to launch our own similar program, which we've dubbed the Haiku Code Drive.

This is a community program whose goal is to sponsor students to work on Haiku-related projects. The twist is that the community funds the program and also gets to choose which projects are sponsored via a public poll. The project proposals for the Code Drive all come from projects proposals that were not funded through Summer of Code, and we are excited that our community is taking up the charge to fund these students' development. Check out these proposals to be ready for voting starting May 22nd:

We are currently accepting donations from the community until May 30th. The Haiku Code Drive 2008 poll will be held from May 22nd through the 29th, and the final decision of how many and which students will be sponsored is scheduled to be announced in the Haiku website on May 30th.

Are Summer of Code like programs happening in your community? We'd love to hear from you!

Heading to LinuxTag 2008?

Should you find yourself in or around Berlin, Germany this week, be sure to stop in at LinuxTag 2008; all the the talks are free, there's plenty of interesting content on offer and with ~9,000 attendees expected you're guaranteed to find plenty of like-minded folks for company. If you're a Summer of Coder, past or present, make sure to stop in and see our very own Cat Allman present on Google, Open Source and Google Summer of Code™. You're guaranteed a shout out from the podium, if not a few minutes to tell the audience about your successes in the program.

We hope to see you there!

Export a Git Project to Google Code

Tuesday, May 27, 2008

Git and Subversion can work together in many ways. Previously, we showed how Git users can work with a project primarily managed by Subversion. In this post, we describe one way to handle the converse: Google Code acts as a stable read-only Subversion mirror of a Git project. In this model, patches are first applied to the central Git repository and exported to Google Code later.

Instead of merely providing a link to your repository, why not widen your audience with just a handful of commands? Open up your Git-hosted project to all Subversion users, whose patches can be integrated via Git.

We presume some familiarity with Git, though blindly typing the commands below should produce acceptable results.

1. Create Subversion-aware Git clone

Naturally, your official source tree lives on some Git-capable server, which we denote by $GIT_REPO. After creating a new Google Code project, initialize an intermediary repository and fetch the Git tree:
$ git svn clone --username you
$ cd trunk
$ git fetch $GIT_REPO
The Subversion repository must be nonempty. A new Google Code project contains one revision by default, but if you reset it, you should also create a first revision.

Create a temporary branch for the fetched repository, and tag its head:
$ git branch tmp $(cut -b-40 .git/FETCH_HEAD)
$ git tag -a -m "Last fetch" last tmp

2. Apply initial commit

Unfortunately, Git treats the initial commit specially, and in particular, cannot rebase it. Work around this as follows:

$ INIT_COMMIT=$(git log tmp --pretty=format:%H | tail -1)
$ git checkout $INIT_COMMIT .
$ git commit -C $INIT_COMMIT

3. Rebase and submit

Apply all the other commits to the temporary branch, and make it the new master branch:
$ git rebase master tmp
$ git branch -M tmp master
Lastly, commit the changes to Google Code:
$ git svn dcommit
To more faithfully represent deleted subdirectories and copies of unmodified files, run dcommit with the options --rmdir and --find-copies-harder. Be aware the latter option can be expensive.

4. Update Google Code

Later, export Git repository updates to Google Code as follows:

$ git fetch $GIT_REPO
$ git branch tmp $(cut -b-40 .git/FETCH_HEAD)
$ git tag -a -m "Last fetch" newlast tmp
$ git rebase --onto master last tmp
$ git branch -M tmp master
$ git svn dcommit
$ mv .git/refs/tags/newlast .git/refs/tags/last
For simplicity, we've exported directly to Google Code. It may be faster to first export to a local Subversion repository, and then mirror it to Google Code via svnsync.

The Magic of Open Source at Google I/O

You've likely heard about Google I/O, our largest developer event ever, which kicks off tomorrow in San Francisco, California, USA. Attendees will be treated to more than 70 sessions on AJAX & JavaScript, APIs & Tools, Social Applications, Maps & Geo, and Mobile. You'll also get the chance to hear from our very own Chris DiBona on the history and use of Open Source in his talk Open Source is Magic, along with Ben Collins-Sussman and Brian "Fitz" Fitzpatrick on How Open Source Project Survive Poisonous People.

We hope to see you there! Stop by, introduce yourself and let us know what's on your mind, Open Source and I/O-wise.

Czeching It Out at LinuxExpo in Prague

Friday, May 23, 2008

I was recently invited to give a keynote at the LinuxExpo - the largest central European Linux and Open Source Software conference that was recently held in Prague (Czech Republic). The event was well received, and our very own Open Source Team also provided some gifts for the attendees.

The event consisted of two conferences (LinuxExpo and Open Government) running in parallel and both were kicked off by presentations from Googlers. Attendees were treated to a choice of two concurrent panel discussions one on document exchange formats, the other on adoption of Open Source by users.

I had a full room - around 300 people - with typical Czech crowd of government representatives mixed in with our fellow geeks and Open Source enthusiasts. I gave my talk in Slovak and after my 45 minutes ended, one person in the audience was sleeping. I chalked it up to the lights in the room being off, but was delighted when a crowd of people followed me, excited about the talk I had given, hoping to get their questions answered. I later learned from Prague Googlers that it is very rare to get questions from the audience right after your presentation, and I was glad this cultural nuance meant I got to have such great one-on-one time with the folks who attended my session.

Petra Packs the House at LinuxExpo Prague
(photo credit: LinuxExpo Organizer Team)

Most of the questions were about programs for students, and the Czech tech-crowd was mostly excited to hear about Google Summer of Code™. Six days later I gave the very same talk in Bratislava, Slovakia to students of Computer Science at Slovak Technical University. This crowd was quite interested in various Wine projects that Google contributes to and their questions were generally more technical.

Many thanks to my fellow Googlers our Prague office for their hospitality and to everyone I spoke with for making me feel so welcome. Thanks for helping me spread the Open Source love.

London Open Source Jam 8

Last week Google's Open Source Team hosted the London Open Source Jam 8 (the 9th in the series - we started at zero, of course).

The London Open Source Jam - worth writing home about

This event was started as an experiment back in September 2006 by a bunch of volunteers in the (then fairly new) London Google engineering office to try to better connect with the local Open Source community. Since then we've been running them roughly every 2-3 months.

It's free and open for anyone to sign-up to on a first-come-first-served basis. It's on a weekday in the evening, so you don't need to take time off work or away from your weekend family/code-hacking time to attend. We'll even feed and beer you.

The evening is structured around a sequence of informal lightning talks (5 minutes maximum). Anyone can give a talk (though please at least pretend to be roughly on topic). Some people come prepared with slides and demos and stuff. Others make it up as they go. If you've got something you think will be of interest, it's a good place to talk about it.

You can expect the talks to be technical - it's a developer event, arranged by developers, for developers. If you want to work on some code, bring your laptop along. Read all about it on the OSJam page and check out photos from the most recent Jam.

The topic for OSJam 8 was developer productivity. A quick summary of the talks:

  • Steven Goodwin - Practical development tips. Principle of least surprise, write for maintainability, think about debugging, etc.

  • Nicolas Roard - Literate Programming (PDF). Introduction to the 80's paradigm and how it applies to modern day development.

  • Upayavira - A potential Open Source project to manage post-build incremental deployment tasks such cluster management, database upgrades, etc.

  • Alastair Maw - Building web-apps with Apache Wicket: how the API was designed for discoverability.

  • Tim Emiola - Typing. Not that kind of typing: actual keyboard typing skills. How being a faster typer can help your productivity.

  • Nigel Runnels-Moss - The paradox of productivity - an investigation into measurements and metrics for knowledge workers.

  • Douglas Squirrel - Spent 5 minutes listing and explaining every tool his development team uses to improve productivity.

  • Ade Oshineye - How a simple script and a culture of continuous feedback can help new team members get up to speed.

  • Ivan Moore - Build-o-matic. An Open Source distributed continuous integration server, with nice features like showing pictures of who checked in and binary searching to quickly determine which change broke a build.

  • James Broad - Using a great diff/merge tool that's available everywhere:
    vim -d.

  • John Adams - Synchronicity.

  • Neil Dunn - Domain specific languages for testing - is it worth building a framework? (no. well... maybe.)

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.

Nominate Your Favorite Open Source Project Today

Tuesday, May 20, 2008

We're glad to see that our friends over at SourceForge have announced that their Community Choice Awards are open for nominations this year. In the past, the awards have been open to all projects hosted at SourceForge, but this year they've opened up the nomination process to all Open Source projects, regardless of where on the web they call home.

We're pretty excited about this, so we're encouraging everyone to nominate their favorite Open Source project for the awards. Also, if you have an Open Source project and you'd like to encourage people to nominate you, there are various web badges that you can put on your site as well. The awards will be presented at OSCON 2008, so we hope to see you there!

Develop with Git on a Google Code Project

Do you often work offline? Wish you could make local commits that you can reorganize and upload later? Would you like to have your own copy of the entire history of the project which you can peruse at your leisure?

Do you want to serve code and its history to others? Have changes you want to share but it's too early for the public?

Working on several issues in parallel? Need to save some of those experimental changes after all? Need to create, merge, clone and otherwise manipulate branches cheaply and offline?

You can do all this, and more, with Git, a version control system rapidly growing in popularity. You can readily find Git tutorials, but since I'm writing this post, I'll shamelessly plug my own guide to Git!

Although Google Code natively speaks Subversion, you can easily use Git during development. Searching for "git svn" suggests this practice is widespread, and we too encourage you to experiment with it.

We focus on importing a complete Git repository from a Google Code project organized in the recommended fashion. The git-svn manpage thoroughly describes how to handle other cases such as nonstandard layouts, importing only a few revisions, sharing exported repositories, and so on.

1. Import

First we perform the equivalent of a svn checkout. In an empty subdirectory, run:
$ git svn clone --username your-name -s
# older versions of git: replace "-s" with "-Ttrunk -bbranches -ttags"
Like a Subversion checkout, you now have a local copy of your project. Unlike a Subversion checkout, you also have a local copy of the entire history of the project. Try:
$ git log          # print summary of history
$ git diff HEAD^^ # diff against two revisions ago
$ gitk # graphical history browser
$ qgit # Qt-based history browser
These read from local disk, and work even when you're offline.

2. Develop

You now have a fully fledged version control system at your fingertips. You can checkpoint locally. You can create, merge, and destroy branches cheaply. You can checkout long-lost ancient code. You can stockpile and reorganize your commits.

Any Git tutorial teaches these abilities. We'll content ourselves with simple examples.

First, the basics. Edit code as usual, but if you add or remove files, type:
$ git add FILENAME...
$ git rm FILENAME...
There's no need to inform Subversion as git-svn will do so later. In fact, we only talk to Subversion via git-svn, and never run pure svn commands.

The only other git command you must know is:
$ git commit -a
which saves the current state of your project locally. You can see them with git log. Commit early and commit often!

Now for a couple of tricks. Let's say you've made several commits and suppose you want to undo the last one:
$ git reset --hard HEAD^
Or suppose you want to get a certain file from five commits ago:
$ git checkout HEAD~5 foo.c
We've barely scratched the surface. There are countless other features worth learning, particularly Git's extraordinary lightweight branches.

3. Update

Periodically, you should get online and fetch the latest changes from Google Code with:
$ git svn rebase   # think "svn update"

4. Export

Submit your commits to Google Code with:
$ git svn dcommit  # think "svn commit"
This converts each of your Git commits into Subversion commits and uploads them, provided your repository is up-to-date. To keep working, go back to step 2.

Stay Tuned!

We've seen it's easy to setup Git with a Google Code project. If distributed version control systems sound intimidating, the above is a great way to get your feet wet. You can always delete the directory and go back to Subversion.

But what if you keep your project in a Git repository, and you want to export it to Google Code? So you'd have a canonical read-only Subversion mirror of your project?

Exporting a Git project to Google Code requires only a handful of commands. We'll show you how in a future post.

Accelerate Your Maps with GeoWebCache

Monday, May 19, 2008

As far as web browsers are concerned, our maps don't change all that often, and rendering map images can be very time-consuming. Serving images, on the other hand, requires no computation and is trivial to implement. Google Maps is a good example of this, as all of the maps are pre-rendered and divided into smaller images (tiles). In 2006, a group of Open Source Geo developers met at the annual FOSS4G conference to figure out how to turn the Web Map Service (WMS) standard that all projects implemented in to a tile based service, hatching the WMS-C recommendation. OpenLayers had a quick client side implementation, and soon TileCache provided a Python implementation to cache any WMS Server. Many GeoServer users started using TileCache, but a pure Java solution was desired to ease deployment.

Enter Google's Summer of Code. Through OSGeo, Chris Whitney was mentored by GeoServer developers to build JTileCache, a standalone web application for caching WMS tiles that works in any Java servlet container. Not bad for one summer, right? After the project's completion it was picked up by OpenGeo, the geospatial division of The Open Planning Project, for integration with GeoServer. Arne Kepp took over as lead developer, evolving it to become GeoWebCache, using the same framework and libraries as GeoServer. This means installation with GeoServer is as easy as downloading (.zip) a plug-in and dropping it in. It is completely standards based, so the standalone download can be run in its own server against any compliant WMS.

GeoWebCache not only turns any dynamic mapping server in to a high performance cache for the WMS-C recommendation, but the tiles are also is instantly available for direct use in Google Maps, Virtual Earth and as Super-Overlays in Google Earth. Other features include pluggable caching backends, like JCS and a pure disk cache, and support for 'MetaTiling' for better labels across tiles.

With the 0.8 release (download) GeoWebCache is quickly approaching maturity, and already an outside contributor has contributed a patch - for Mobile Google Maps compatibility - a great sign for a young open source project. Google's Open Source Programs Office is also currently funding investigation to have GeoServer make placemarks and vector data available through Super Overlays, potentially with GeoWebCache integrated for accelerating the responses.

Best Practices: Archival Downloads

Wednesday, May 14, 2008

It's an Internet world now, we're all just living in it. The cumulation of many software projects used to be RTM: the point at which the team could "release to manufacturing", meaning that someone burned a CD and put it in a box with shrink-wrap. Today, much of the most exciting software is on-line only, and that trend is only going to continue. So, doing a good job with the on-line release of software is more important than ever.

In building Google Code's project hosting feature, we've occasionally needed to balance the needs of developers and the needs of end-users of the software being developed. We aim to make it as easy as possible for developers to participate in open source projects. But, we also keep in mind that developers develop software for users to use. Sometimes we've had to force developers to plan ahead a bit so that they do a better job for end-users. Specifically, when it comes to releasing open source software, we had a mini-bill-of-rights in mind for the benefit of end-users:

  • If you download something, you can unambiguously tell someone else exactly what version you downloaded. For example, when filing an issue about it.

  • If you downloaded a release, you can always download that exact same release again. For example, if you need to reinstall and you can't upgrade.

  • You can tell someone to download a certain version that you downloaded, and they will be able to do it, even later. For example, in written installation instructions.

  • You can refer to a release by URL in a build script or a web page client-side include, and the same version will still be at that URL later. For example, when offering a Java or Javascript library for other developers to reuse in their own applications, without forcing each of them to set up a new way to redistribute your library.

This all points to the need for archival downloads: downloads that, once released, stay released. We strongly discourage the projects that we host from deleting downloads, and the contents of a download cannot be swapped out for other contents. Instead, each download must have a unique name, usually including a release number. And, old versions can only be marked as "deprecated" to keep the list of current downloads clean and let end-users know that that download is no longer supported. We make exceptions for common errors, such as uploading the wrong file. When active open source projects release regularly, they naturally use up their download space quota, and we happily grant them larger quotas rather than ask them to delete any part of their project's history.

Summer of Coders at the Libre Graphics Meeting

Tuesday, May 13, 2008

Last weekend, the Libre Graphics Meeting (LGM) gathered developers, users and designers representing all of the major free graphics applications like Blender, the GIMP, Inkscape, Krita, Scribus and many more. The conference, now in its third year, was held at Wroclaw University of Technology in Poland, which you may remember as one of our top ten universities for Google Summer of Code™ 2008. Two former Summer of Code students, Michael Dominic Kostrzewa and Pawel Solyga, attended the meeting and were kind enough to send us their impressions of the conference.

Pawel, Co-Founder of the Natural User Interface Group and one of their mentors for Summer of Code this year, gave us some general background on the meeting:

The purpose of the LGM is to allow developers from diverse projects to collaborate, share ideas and code, co-operate on cross-application standards, and simply get to know one another. It is
also a great place to get feedback from live end users and artists, all of who are considered an integral part of the conference. We also had a chance to watch the pre-screening of the Peach open movie project's Big Buck Bunny on the local cinema big screen. As usual, LGM was free to attend, open to all and a useful three days for everyone involved.

Michael adds:

At LGM, key members of the community presented the current state of their projects and talked about future developments. Software packages ranging from font-design applications to digital publishing were demoed. The most interesting topics included vector-based sketching using tablets. Thanks to the latest code in the Inkscape project artists can create scalable, fully editable pen-alike renderings with same quality and feeling as traditional raster-based canvas. Another highlight was Krita - an application using advanced physical model to simulate the look & feeling of real-world brushes and paints.

The Libre Graphics Meeting 2008 was a nice, successful event. It was exciting to see designers and coders talking to each other, sharing visions & ideas.

Have you been working on a cool open graphics project or were you one of the attendees of LGM? As always, we'd love to hear your thoughts on the conference or the coolest new work you've produced using FOSS tools.

Open Source Googlers at Large

Monday, May 12, 2008

Cat Allman,

There is lots going on in May, starting this week with Connectathon in San Jose, California, USA from Thursday, May 8th through Thursday, May 15th. Samba guy Jeremy Allison will be taking part Monday - Thursday in this network proving ground which allows vendors to test their interoperability solutions, with special emphasis on NFS and Internet protocols.

On Wednesday, May 14th BSDCan, an annual gathering of 4.4BSD based operating systems developers, kicks off in Ottawa, Ontario, Canada with two days of tutorials, followed by 2 days of talks, including one by our own Leslie Hawthorn on Google Summer of Code
, currently under way for it's fourth year.

The Summer of Code goodness doesn't stop there: other past GSoCers also speaking include past mentors
Poul-Henning Kamp speaking on "Measured (almost) does Air Traffic Control", and Pawel Jakub Dawidek on the ZFS file system. Past student participant Constantine A. Murenin will be speaking on the past and present history of OpenBSD's hardware sensors framework, and Ivan Voras will be present on "finstall" - the new FreeBSD installer he's began working on as a Summer of Code project in 2007.

It shouldn't be too hard to find members of the Open Source Team if you're in San Jose or Ottawa over the next few days. Stop by, introduce yourself and let us know what's on your mind.

Ed. note: updated post with corrected typo.

Moments of Inspiration

Friday, May 9, 2008

Sometimes you have a good week, other times a great week. This week has definitely been one of the latter.

We spent Monday morning with some incredibly bright youngsters from the Watershed School in Colorado, all of whom had spent the past three days exploring the joys of the Maker Faire. Our conversation bounced from how the students use Google Apps for their school projects to extending this non-profit school's computer budget by using Open Source software. The best part of the day, though, had to have been the campus tour; as we showed off the Growing Connection Garden on our HQ's main campus, we were greeted with many stories of how these students had recently begun exploring issues around food production in their course "From Farm to Table"; needless to say, a lively discussion ensued over lunch about sustainable agriculture and alternative educational strategies.

Not long after returning to the usual swing of things Open Source, full of both organic produce and inspiration, Maital Ashkenazi, Google Summer of Code™ student in 2007 for the GenMAPP project, pinged. Maital, whom you may remember from her report on last year's Cytoscape Developer Retreat, let us know that the two plugins she produced for her project have been downloaded more than 800 times and will likely soon replace the current search functionality in Cytoscape. We were also proud to hear that an article on her work had recently been published in Oxford's Bioinformatics Journal. The best news of all, though, is that Maital has gone on to mentor for GenMAPP for this year's Summer of Code.

In other news from mentors, Colin Charles, former mentor and 2008 organization administrator for MySQL dropped a note to let us know that their Community Bonding period is moving along swimmingly. So well, in fact, that their students are already delivering weekly status reports. Colin mentioned that their student Filippo Bollini had crafted a particularly well written update; it's worth checking out for mentors wondering what sorts of information to collect from students or for students wondering what kind of details are most useful to their mentors.

Getting back to great news from the younger crowd, Wilco Jansen, one of Joomla!'s mentors and organization administrators for both Summer of Code and the Google Highly Open Participation Contest™ (GHOP), wrote in to share some great news about their Grand Prize Winner, Tomasz Dobrzyński. Two of Tomasz's recently written plugins for Joomla! are community favorites, and Tomasz should soon be back to developing 'full-time' as his school holidays approach. Our Polish speaking readers may be interested in reading more about Tomasz and his two fellow Polish GHOP Grand Prize Winners, Jaroslaw Tworek and Wojtek Szkutnik. (Alternatively, now may be a great time to phone or make some friends in Poland.)

With so many great things happening this week, we knew we wanted to share it with all of you. We hope you too find these notes inspirational, and that you're now fully primed to go scratch your own itch. If you have a story like these you'd like to share, we would love to hear from you.

Happy Hacking this weekend!

This Week's Top 10's: Universities for Google Summer of Code 2008

Thursday, May 8, 2008

Last Monday, we brought you news on the Top 10 countries from which we're welcoming this year's Google Summer of Code™ students. Many thanks to everyone from the community for their suggestions about which program statistics they'd like to see next. By popular demand, this week we're showcasing data about which schools our Summer of Coders are attending.

Many thanks to David Anderson, currently on his third internship with Google and organization administrator for the Subversion project, for his help in getting these statistics together. As always, we welcome your comments; let us know what information from Google Summer of Code you'd like to see featured.

One Love, Project, Cause

Wednesday, May 7, 2008

As you're reading this, pause for a moment and gaze briefly through the nearest window. It's a large, fast-paced world out there, and it can be easy to overlook the problems that don't affect us directly. It's also easy to forget how simple, rewarding, and fun it can be to find solutions and help others at the same time.

Along these lines, two student organizations at the University of Southern California (USC) have teamed up to sponsor a couple of "Code For a Cause" events aimed at encouraging students to build small, open source projects that benefit a group in need. Following up on last fall's event which focused on building innovative software for the disabled, USC's ACM chapter and a student group named "Free Culture USC" recently organized a second hackathon for building software for One Laptop per Child's XO-1 laptop.

For those unfamiliar with the project, the XO-1 is a low-cost portable computer that runs entirely on open source software. The platform is completely extendable and all units come standard with a Python runtime. OLPC's goal is to equip children around the world with these special laptops so they can better "explore, experiment, and express themselves." The student organizations at USC seized upon this objective and designed a week-long event where students worked together in teams to build a new, enriching open source project for the XO-1.

After officially kicking off the event April 12th, the organizers set up daily office hours, providing several XO-1 laptops that student teams could use to test their applications. The student leaders also invited several members of a local Python user group to give a crash course on the language and answer any coding questions for the team during the development period. One week later, 8 student teams (comprised of roughly 25 students altogether) presented their open-source projects, demonstrating everything from an educational game where users solve systems of equations using images of fruit instead of variables to a more sophisticated project where mind maps are brainstormed, built, shared, and solved by recreating the relationships between nodes.

I was lucky enough to be a judge for the event, and I can't express how inspiring it was to see the teams' presentations. It's always great to see individuals come together, take on a challenge (most of the students hadn't experienced Python before the event) and not only build an awesome application but have a great time doing it. Events like this not only make for a great learning experience but also provide a sense of accomplishment and satisfaction since the end result will have a notable impact, whether it helps the blind to better interact with computers or children from around the world to learn basic algebra.

Judges and Participants from the OLPC Hackathon Celebrate Community Victory

Wellington Geeks Keep on Rocking

Monday, May 5, 2008

When Brenda Wallace asked if we could help sponsor Wellington's Girl Geek Dinner, we thought it sounded like a wonderful way to show the love to our Kiwi friends in Open Source. When Brian Logan, a fellow Wellington geek, took a look at Brenda's write up, he wondered if we could help out with Wellington's Gay Geek Dinner, and we thought, "why not?" A wonderful time was had by all at the inaugural outing, and Brian was kind enough to send us this report:

The first Gay Geek Dinner was held last recently, and I had an enjoyable time and got to meet new people. We ended up with eight people in the end, which worked well for chatting together.

We met up at Mighty Mighty, with it's great ambiance. Something I hadn't thought about was how strangers could meet each other in what eventually was a busy bar, but we managed. The Google t-shirts, discounts cards for Moo, and Armageddon swag were all well received.

Conversation was casual and varied, and touched on:

  • Twitter;

  • Mac technology, and the rumours that future mac OS's may be able to run Windows executables in a native Mac environment;

  • Mobile phone features, comparing Okta touches, and small phones in general;

  • NZ mobile data charges, and the advantages of working for a telco;

  • Photography;

  • Home electronics, especially Roombas;

  • Entertainment, including Freeview TV, Battlestar Galactica, and Doctor Who;

  • Gaming, including Rock Band and Xbox 360, and for a short while the PS3;

  • Having a non-geek partner, who doesn't understand the fascination with any of the above.

When time came for dinner, i.e. a few people asked when were we eating, we moved on to Southern Cross. Food geeks would love the way steaks are served, on a sizzling hot stone.

As we finished eating, the live music that started playing wasn't to our tastes so wandered back to Mighty Mighty for an after-dinner drink, losing three diners in the process. The evening finished with hot chocolate at Ernesto, being waved at by friendly cops stopped at a red light. All-in-all an enjoyable evening for the first Gay Geek Dinner, meeting people with similar interests.

Many thanks to Brian for sharing his experiences with us. We look forward to hearing more about future meetings.

Happy Hacking, Real-Time

Thursday, May 1, 2008

You might have read the recent Hackontest announcement on Slashdot. We've received a great response, and already 25 open source projects and 50 feature requests are registered.

Nevertheless, we'd like to present briefly the idea behind this new kind of Open Source competition sponsored by Google: starting from now, Open Source communities may register their project on the Hackontest platform. Then developers, as well as users of the software may file feature requests, like adding new functionality, all of which could be implemented during the Hackontest event. These features may be already planned within the roadmap for future releases or they may be completely new ideas for the project. In order to select the most wanted enhancements, features may be rated by registered visitors, or they can add comments to the proposals, e.g. for pointing out the feature is already completed within the development branch.

Subsequently, developers are sought who are willing to implement the features at the Hackontest event. Therefore it's very important that a project submission is not only done by an individual but that it's supported by the community at large. To get invited to the Hackontest event, the level of community support counts. The Hackontest jury will review the number of feature requests, their ranking level and of course the number of signed-up implementers in order to decide which projects and which developers are going to participate in the Hackontest competition.

The jury selects the teams on August 1st, 2008, giving time for everyone to plan vacation and book flights to Zurich, where the hacking goes uninterrupted September 24-25, 2008. However, the Hackontest platform will still be open during this time; new feature ideas as well as rankings and comments can still be submitted shortly before the event starts. The jury will decide which feature(s) the project teams have to implement, which is a great way to keep eager developers from being tempted to do some work beforehand.

Inside a famous etoy.TANK located at OpenExpo 2008 Zurich, the selected Hackontest teams will gather for a 24 hours coding marathon. Of course the teams will be served well with food and drinks and also have the possibility to relax and sleep inside the container - thus contrary to rumors there won't be any dead hackers inside a sarcophagus ;)

During the Hackontest event, visitors of OpenExpo receive the unique chance to see in real-time how open source software is developed and how enthusiastically developers collaborate with each other and their virtual communities. Best yet, it's not only the three participating hackers within the container who make the projects happen; through their internet connections each can draw on the development power of their entire community in order to win the cash prizes. In the end, the jury will evaluate the produced source code and grant awards to the winners. All the participating developers then have the chance to stay some more days in Zurich, relax and do some sightseeing in Switzerland if desired.

Check out the Hackontest site and register your Open Source project as would-be participant or to suggest enhancements to your favorite projects!