WSOP in GNOME Journal

The August edition of the GNOME Journal has been released, complete with an article on WSOP. We’re heading towards the finish line for the project, with just over two weeks left.

While I’m here, I’d like to thank Antonio Ognio for coming up with hackergotchis for everyone on Planet WSOP. Thanks, Antonio!

Planet WSOP

We have a Planet for the WSOP students now — Planet WSOP.

Thrilled to see that two of our students, Maria Soler and Cecilia Gonzales, were reported on in El Pais, one of the biggest newspapers in Spain. Does anyone feel like coming up with an English translation of the article?

I spent the last week at OLS. My first time there, and a lot of fun talks and parties. Xen and virtualisation really seem to be coming of age; impressive talks on:

Greg Kroah-Hartman’s driver tutorial (photo) and keynote (slides) were excellent — three cheers for anyone who has the guts to stand up and say “Closed-source kernel drivers are illegal” in a room full of Linux vendors — and the systemtap talk and One Laptop Per Child BOF were other favourites of mine.

One of the WSOP students, Monia Ghobadi, also came to OLS to hack on her project (integrating GNU screen with gnome-terminal) with Behdad and I; was lovely to meet and work with her.

Summer Outreach Projects, pt. 2

We’ve just announced the accepted WSOP projects! They are:

Student Project
Cecilia Gonzalez Alvarez Evolution component optimisations
Clare So Editing MathML Expressions in GtkMathView
Fernanda Foertter gJournaler, a PDF library tool
Maria Soler Climent Decentralised synchronization of Tomboy notes
Monia Ghobadi Integrating GNU screen with gnome-terminal
Umran Kamar An Evince plugin for Mozilla

We were having a lot of fun until we got to the point where we had around 100 applications and had to pick six of them, and then it started being just hard. But we’re there now. My commiserations if you applied and weren’t accepted: we had far more than six outstanding applications.

We’re going to start up a gnome-love style mentoring program to try to encourage anyone interested to stick with us. Watch this space!

Summer Outreach Projects, pt.1

It’s WSOP day — we’ll be announcing the list of accepted projects in the next few hours. We’re thrilled that Google is donating funds to double the number of available projects from three to six, due to the project getting a huge response from interested women. Thanks, Google!

(Wah, I just got home after watching England go out of the World Cup. They played really well with ten men, though, go team.)

Women’s Summer Outreach Program

While reviewing GNOME’s Summer of Code applications I noticed that none of the 181 applications we’d received appeared to be from women. This upset me, and I teamed up with my ex-officemate Hanna Wallach to write a proposal to the GNOME Foundation’s board, suggesting that we use the money given to the foundation by Google (for taking part in SoC) to fund a few project slots specifically for women.

To our delighted surprise, the board said yes, and today GNOME’s launching the Women’s Summer Outreach Program, which will run from July 1st – September 1st and offer two-month long projects to three female students. For this to be a success, we need as much help from the community as we can get. Namely:

  • Spread the word! If you know any female students with programming experience, please consider sending them an e-mail with a link to the project. Even if they decide not to take part, they might at least be interested to see what we’re doing.

  • We’ve created a list of potential projects on the wiki, based on the MentoredProjects list started by murrayc, and it’d be a great help if any GNOME developers could consider adding something to the list. Please give the entries enough context to have them understandable by someone who isn’t necessarily experienced with the GNOME stack.

  • If you’re involved with a CS department we have a poster for your noticeboard. If your department has an e-mail list for student job opportunities that we could use, please let us know.

We have a tight timeframe to get started — 2.5 weeks until the submissions deadline — due to starting out late, but I’m confident we can make a real difference to the community with this project. If you’re interested in helping out, please stop by #wsop on

Update: The project’s been linked to from, along with Mairin Duffy’s awesome artwork.

Summer of Code

Google just told the applicants for this year’s Summer of Code whether they were accepted! I’ve put up GNOME’s list of accepted projects. Many congratulations to everyone we accepted as part of GNOME, and commiserations to students we had to turn down — we’d love to keep working with you outside of the formal SoC.

GNOME had 181 submissions in total, and it was a pleasure to read all of them. We got that down to a shortlist of 40, and then had to try to go from there to our accepted list of 20 via votes, meetings, and long e-mail threads.

Since the list’s going to be new to everyone outside SoC, I thought I’d enthuse about a couple of the projects that I’m going to be tracking excitedly over the summer. (With apologies if I end up misrepresenting anyone’s project!)

Generic user-to-user connection interface for collaborative applications using telepathy

Telepathy is a project working on a unified interface to different types of communication (IM, VoIP, etc), and this proposal from Mads Chr. Olesen aims to make direct connections with your Telepathy contacts possible over an IM layer. For example, if I want to work on a document with a friend using the collaborative editor Gobby, we need a server to host the session. What if we’re both behind different NAT networks, as most people are? Well, then, we can’t. Same for VNC. The proposal uses the Jabber stream extensions to tunnel application data, meaning that contacts can be treated as “first-class objects” for establishing connections.

(If you’re using a different IM protocol and it also supports arbitrary streams, that’s fine too; the whole point of the project would be that application developers and users don’t need to know exactly how the data is getting tunnelled unless they care.)

The reason I like this proposal so much is that it reminds me of the way this interview with Nat talks about how good programmers add a dose of empathy to their code. Why should the user have to care how they connect with one of their contacts, or what NAT is, or what IP address each of them has? This is totally user-centric programming.

Improving Emblems in GNOME

This is a proposal by James Barrett. The title doesn’t tell the whole story — as well as emblems, think tags. Everywhere. James is going to integrate nautilus and leaftag, and gives some excellent use cases: using a “backup” tag to have those files/folders backed up automatically, viewing “virtual folders” of each tag in nautilus, being able to quickly bring up all your photos with a particular friend in after tagging them. Emblems are going to be the visual representation of a tag, and will be integrated with nautilus/the panel/the file chooser.

People are getting comfortable with the idea of tags from experiences with Flickr and YouTube, and I think a well-designed use of tags for their files as well is going to be a killer feature. This is exactly where we can innovate far past Windows and OS X, and I’m pleased to say I got the same feeling from many of the proposals.

Bluetooth Manager

Matthew Garrett works on the kernel, GTK2 apps and everything inbetween, and he’s going to spend the summer tidying up Bluetooth; making sure that you can pair with keyboards, headsets and phones inside GNOME and have things Just Work, and ideally by having HAL do the heavy lifting so that you don’t need root to do so. Our bluetooth tools are in need of an overhaul, and this is valuable work.

Improving nautilus login performance & ease of profiling

Phillip Ezolt is a published expert in profiling and optimisation, and wants to help us out both with profiling nautilus and providing hooks to aid profiling in the future. Phillip’s in grad school working on visualisation at the moment, and knowing how to usefully represent profile data graphically is a problem we’ve only recently started trying to solve. He’s interested in getting involved with Linux/GNOME in the long-term, and I’m looking forward to everything we have to teach and learn from him; it seems like hardcore profiling skills are something only a few of us have. I liked this proposal so much that I offered to mentor it.

Thanks to Google for their sponsorship and the insane amount of work it must take to coordinate all this, to Behdad and Vincent for heading up GNOME’s involvement, and welcome to all our new SoCers!


Following on from my last productivity post, here’s an area in which I’m not excited about the time-saving new features I’m using, but would love to be: gnome-terminal. I see that it just branched for 2.14, leaving us free to fantasize about new features for HEAD. Here’s my top three:

Local search through scrollback:

screen(1) lets you search through scrollback. I do so a lot. But I wish it was better:

  • There’s no incremental search, and matches aren’t highlighted as you type (as in an emacs search-forward or vim hlsearch), which means that you don’t know whether the next match is going to be on the line above or the page above until you hit return and look around to see where the cursor went.
  • The latency is on the wrong end; when working over ssh tunnels, or on a low-bandwidth connection, it’s painful to try and operate screen’s search, leaving me making typos and confused and accidentally falling out of copy mode and ending up at the tail of the terminal again. You’ve been there, you know what I’m talking about.
  • I don’t run the majority of my shells inside screen, and there’s no way to stick the contents of an terminal inside screen once you realise you need to search through it.

Personally, I think this is a pretty compelling argument for local, incremental search through scrollback. Anyone else?

Horizontally-stretchable views:

I work in terminals with a lot of text (e-mail) and a lot of program (make) output, and want to minimise paging up and down — if you do too, you probably try and resize your terminal such that it’s still around 80 cols, but is the height of most of your screen. That’s fine, but vertical screen space is expensive; you can only do that for a small number of terminals.

This got me thinking about extending the terminal horizontally, such that text scrolls off the right segment of a terminal and immediately onto the left segment, where each segment is 80×24 or whatever. For more details, see the feature request I filed in GNOME Bugzilla asking what the gnome-terminal maintainers think about this.

Display-independent terminals:

I don’t care about this feature as much, but it’s a logical step forward from the separation of model and view that the last feature requires. Your gnome-terminals could exist outside of the X server they were started from and be attached/detached from X servers at will, as you move around; this is already possible with some X applications. The use cases are keeping terminal state between work and home, or even more importantly for me: not having to worry about losing terminals when your X server restarts.

Does anyone think any of these have potential?

Also, hello to Planet GNOME! You might be interested in my previous posts on zsh/ssh/emacs
and Linux on the Treo 650. If anyone’s willing to come up with a Hackergotchi for me, there’s a photo here. Thanks!