Gran Canaria Desktop Summit 2009

Technical conferences are a great way for me to get myself thinking about technology in different ways. I spend my working days immersed in it, but primarily from the “inside”, thinking about what we’re doing in Ubuntu and what’s happening in free software today.

At conferences, on the other hand, I get the chance to think freely about what’s possible, and what might be coming. I find this very difficult to do at work, but a free software conference, with plenty of lively chats with colleagues and other participants, always seems to do the trick. I return home with a notebook full of ideas, including plenty of topics which aren’t directly relevant to the conference topics.

Here’s some of what I took home from GCDS 2009. The conference is still going on as I write this, but I’ve returned home after spending four days there.

The keynotes

r0ml is one of my favorite speakers. His sense of humor, timing, gesture, and general exuberance really bring his material to life. This particular talk got me thinking about free software communities in terms of Aristotelian epistemology. I think my relatively sparse classical education makes me a sucker for this kind of thing.

Walter Bender spoke about Sugar. Despite having had an XO laptop sitting on my desk for a period of months, this talk taught me most of what I know about the principles and possibilities of the Sugar platform. It really is pretty cool. My only worry is that it’s so ambitious, it might be eclipsed by less powerful, but more pragmatic systems before it reaches its potential.

Then, of course, there was Richard Stallman. This keynote was the least interesting of the talks I attended at GCDS, yet I feel compelled to write the most about it:

Much of the talk was devoted to his standard general-audience material, for example, explaining the four freedoms (to an audience of free software enthusiast developers)

He also took the time to explain the history of KDE and GNOME (to an audience of KDE and GNOME developers)

He then warned of the dangers of Mono, alienating the application developers in the crowd who happened to prefer it.

The talks

The summit was organized into two parts: a cross-desktop segment, and a GUADEC/aKademy segment. This gave GNOME and KDE developers the chance to attend some common talks, but also have talks separately. I’m not sure how well this worked out for everyone. Superficially, it seemed like we would have benefited from more cross-pollination (GNOME folks attending KDE-oriented talks and vice versa) in addition to the cross-desktop content (which seemed to focus on common code).

In a cross-desktop audio talk, Lennart Poettering gave an overview of the audio stack and some of the problems that each of its layers have. I felt like this overview was a useful starting point, but there wasn’t much opportunity to discuss solutions and how we could work together, so I’m not sure what everyone took away from it.

We could use GeoClue in the Ubuntu installer to more intelligently guess the user’s language, time zone and keyboard layout based on their location, or at least narrow the range of options a bit. Even country-level information would be accurate enough to be useful.

Because some devices have more accurate location data than others, it would be interesting to share this data between them. For example, your mobile phone could tell your laptop where it is.

With so much location sharing going on, I started to wonder about the apparent implicit assumption in many of these systems that the user and the device are in the same location. Programs like Google’s Latitude present this assumption very strongly, with a picture of the person placed on a map wherever their location-aware device is. This will start to get confusing as people accumulate more location-aware devices.

Telepathy apparently supports passing location data, which opens up all sorts of interesting possibilities. It should be possible to write very straightforward applications which do disproportionately cool things using this combination of technology.

It should be possible to automagically select a download mirror for Ubuntu installation media or packages using GeoClue, without writing a lot of code.

A talk on videoconferencing centered on Farsight 2, which seems to be coming along nicely. It provides, through the familiar and flexible GStreamer API, access to a host of audio and video conferencing systems. Take your VNC screen sharing session, connect it up to a GStreamer pipeline, and have it come out the other end as an MSN webcam stream with accompanying audio. NAT traversal and all the other gory details are taken care of for you. Very cool.

The GNOME Shell represents a small revolution in the design of the GNOME user interface. The talk demonstrated a number of its features and general princples. I found myself wanting to understand more about why those particular features and principles were chosen, but I guess that didn’t fit into the talk slot.

The Zeitgeist talk was inspirational. It gave me all sorts of ideas about how I would organize my system differently if I had more information about how I was using it. By collecting data on what the user is doing and when, Zeitgeist opens up the possibility of more adaptive user interface techniques, as well as simple and useful tools like a journal of activity.

Rob Bradford presented Mojito, a gateway for desktop applications to access web services data from social networking sites. It takes care of managing authentication tokens, and presenting the data from different services in similar and predictable ways. I’m definitely into the idea of socializing the desktop, though I’m not yet clear on where Mojito fits in relative to Gwibber, which provides a very functional API for several of the same web services.

Rick Spencer, my colleague and the leader of the Ubuntu desktop team, gave a talk about the different varieties of programming, focusing on the “opportunistic” type. In this state of mind, a programmer isn’t thinking systematically, or developing for long-term goals, but just experimenting with something new or trying to solve an immediate and short-term problem. They have very different needs and expectations than someone who is approaching programming more systematically. This nicely encapsulates the subtle difference in behavior and perspective between someone who is developing the system they’re using (e.g. GNOME or Ubuntu developers) and someone who is developing on that system. The latter type of developer doesn’t care how the system itself works, and just wants to solve their problem. I don’t think they are very well served by free software yet, but Rick has created a tool called Quickly which aims to help opportunistic programmers get what they need…quickly.

The people

I was able to match a number of new faces to names, and make some new connections as well. The conference format offered ample opportunities for this, which I appreciated. Even if someone lives in my home town, I think I’m more likely to run into them at a conference on another continent, because the global community is much more cohesive.

There was a lot of Twitter and identi.ca activity during the event, which helped me to make some new connections there, as well as to involve people who couldn’t attend the event.

It was great to be able to spend some time with colleagues from Canonical in small groups and under more relaxed circumstances. Too often, I only see them all at once, and when we all have too much to do. This alone would have made it worth going.