Interviewee: Paul Cooper
In this interview we talk with Paul. In specific, we talk about:
- Getting started with the GNOME project
- Devices targeted by GNOME Mobile
- Differences between GNOME and GNOME Mobile
- Establishing a design approach for meeting the needs of users and devices
- The potential for virtualization on mobile devices
- The relationship between GNOME and providing kernel and hardware support
Sean Campbell: Paul, tell us a bit about your background, your relationship to GNOME, and how you got involved.
Paul Cooper: I’ve been working in GNOME and open source IT for a bit more than 10 years now.
I guess it started as a career when I was working as a systems and database administrator in the Mathematical Institute at Warwick University. We used Linux and open source quite heavily in our infrastructure. We also had a department head who liked to make promises but didn’t always like to assign budget to them. So, sometimes, we had to make things happen with little or no budget, which led us to use open source software quite heavily.
I found out about GNOME purely as an interested user; it looked like it would make my life using the computer more enjoyable and easier. When we rolled out a new lab right around the time that GNOME 1.0 was coming out, we decided to use GNOME.
Putting that lab together, creating user accounts, setting up a default look and feel in terms of how the panel and applets were loaded, and various other aspects of administration was my first real involvement with GNOME.
On the basis of that experience, I wrote the first system administrators’ guide to GNOME, which I hope is no longer in any Google cache, Wayback Machine, or the like. [laughs]
A lot of other, much smarter folks have rewritten all of that documentation, and obviously, the technology has changed completely since those days.
Beyond that, I wrote and edited little bits of documentation here and there, but I was really more of a hanger-on to the project at that point–someone who was there evangelizing and tracking. I was talking to people about it, helping in the local Linux user groups to submit bug reports, and that kind of stuff.
I was not heavily involved in the project until almost 10 years later, when a bunch of us here in the UK decided to put together a bid to host the annual GNOME conference, which is called GUADEC.
The conference travels much like the Olympics, and every year people bid to host it. It was probably about three years ago now that a bunch of us, primarily myself and a now-colleague called Thomas Word, decided to put together a bid to host that conference.
Thomas and I had met while doing various trade shows, where we put together a GNOME stand to help get feedback from people who were using it and to show new people about GNOME. Somehow, our bid to host GUADEC in the UK was successful, and we hosted GUADEC in Birmingham last year, 2007.
Those are my community involvements with GNOME. Quite separate from all of that, I started work at a company called OpenedHand. We help companies build amazing devices where they sell software primarily based on the GNOME Mobile project.
I helped with business development and just generally building the company, which has been acquired by Intel. Now, we’re working on the Moblin project which, again, is based on GNOME.
Scott Swigart: You alluded to the fact that GNOME is particularly well suited to mobile devices.
Paul: The GNOME Mobile project is really a subset of the GNOME Desktop technology, with the addition of some other pieces that are ideally suited to mobile devices.
When we talk about mobile, we’re not necessarily talking about mobile phone handsets, although it could well be used for that. We mean a much broader range of consumer electronics and embedded devices–really, anything that has a UI.
Scott: When people think of mobile devices, some people immediately think about netbooks, and some people think of handsets. From the perspective of GNOME Mobile, what falls under the umbrella of mobile?
Paul: Netbooks are at the large end of the spectrum, and the OLPC devices are also built on GNOME Mobile technology. Then you have things like the iRex eReaders and some of the Garmin GPS devices, which are also built on GNOME Mobile stuff and Linux.
Then there are so-called MID devices like the Nokia N810 and similar Atom-based devices.
Another thing we worked on was the Vernier LabQuest, which is an educational device for data capture and analysis. They have a catalogue of something like sixty or seventy different types of sensors for things like wind speed, temperature, weight, acidity, water flow, and others.
Then at the other end of size and power are mobile phone handsets, where OpenMoko, LiMO, Purple Labs, and Azingo are using subsets of the GNOME Mobile stack.
There’s really a very broad span of devices.
Scott: What are some of the fundamental differences between GNOME Mobile and the parent GNOME project?
Paul: We strip out a lot of the old deprecated stuff that still needs to hang around on the desktop for backward compatibility, and there are also mobile-specific components like matchbox, a window manager that’s highly tuned for mobile integrated devices. But the idea is that we use, and optimize, the mainline codebase as used in the Desktop, in the same way you have the same core Linux kernel from a phone up to a huge supercomputer.
Scott: How does the decision making process go around that? For example, one project might choose Empathy as their IM client, while another one will choose Pidgin. Someone also has to choose to make one particular change to the user interface over a different one.
Is there a distinct decision-making process for GNOME Mobile, or is it just all rolled up under GNOME’s broader decision-making process?
Paul: One of the differences between GNOME Mobile and the GNOME Desktop is that with GNOME Mobile, we’re really trying to build the foundational pieces that someone would use to create a specific device, rather than creating the entire interface and application space as well.
Whereas if you download all of the source for GNOME Desktop, and use something like Gentoo or Linux or Scratch and compile it all yourself and build it up, then you end up with a desktop that you would recognize with applications that you can use.
Within GNOME Mobile, we’re more about the foundational pieces that someone could use and custom tailor and build on top of to create a unique experience, so it’s really not the same type of end product as the desktop.
Sean: What are some of the more interesting observations or findings you’ve come across as you build for mobile devices?
Lots of companies have gone through various gyrations over the years, attempting to build functionality that would make a PC easier to use in a small form factor. Typically, they either try to up-level some platform that’s for a small device, or they down-level some functionality that is more common in a PC environment.
They go through various flashes of inspiration or pain, depending on how you want to look at it, and generally, they figure out that their approach doesn’t really work.
Since you’ve been involved in the project, what are the things that you’ve bumped into? What have been those flashes of pain or inspiration in trying to work with the mobile device, as opposed to a traditional PC?
Paul: One of the most important things I’ve learned is that the things that tend to be most successful don’t start with the technology–they start with what they’re trying to enable for the user. They have a user centered design approach and let the technology fit into that.
Scott: Considering somebody like Nokia, to some degree they take on the responsibility for figuring out what their end users want.
They own the experience, but they have the GNOME Mobile community-developed codebase as a foundation to build upon, so they’re not starting from scratch.
Do you think of GNOME Mobile as more about providing a good foundation for device manufacturers, rather than trying to be the complete end user experience?
Paul: Yes; our approach is very much to provide building blocks that they can mold to their device’s capabilities and what their users want to do with it.
Scott: That seems quite different from the approach being taken by GNOME for the full desktop, which tries to provide more of a complete experience that is fairly consistent from one distro to another.
Mobile GNOME might be so heavily customized that the user doesn’t even really realize that it’s GNOME underneath.
Paul: Absolutely. The basic reason for that difference is that all desktop or laptop machines are fundamentally the same, in terms of broad capabilities and how you interact with them.
There’s a keyboard, mouse, or trackpad, you have a screen at least 800×600 or bigger, and users have a certain expectation. The environment is very consistent, compared to mobile customer devices.
I’ve got a Sony Ericsson K850I with a quite small screen. I also have a Nokia N800 with a much bigger screen, but no keyboard or keypad of any kind. The phone doesn’t have a touchscreen, but the Nokia does. Some phones may have accelerometers, some may have GPS.
The usage models and how you interact with various devices is very different. It’s almost impossible to have a single interaction model or interface design.
Sean: Have you seen the recent news about VMware’s push to get into a virtualization stack for mobile devices? They made a big announcement the other day about working in that area to make it easier for users to switch among profiles and different OS architectures.
People have been talking about this type of advance for some time, but VMware seems fairly aggressive about it.
There may not be a direct impact on your efforts, but do you have any observations around virtualization on mobile devices, and what it might help you achieve in the future?
Paul: I saw the headlines, although I haven’t researched this story too far yet. Like everything in the mobile space, what we were doing with desktop machines five or 10 years ago is roughly where we are in terms of processor and storage capabilities in small devices today.
Virtualization is clearly a possibility on devices, and I am a bit curious to understand how exactly it will be beneficial–what the end user benefit of virtualization is.
Most of the benefit I’ve seen from virtualization has been on the server side. When I’ve seen it used on client machines, it was for IT professionals and developers to have multiple environments for development and testing–like running Windows and Linux on a Mac or multiple versions of a particular operating system to test with.
I’m not sure your average man in the street is even using virtualization on their desktop, so I really wonder why they would want to use it on their phone.
Sean: It seems that it’s predominantly targeted at the OEMs, but there are potential end user benefits, as well.
It will be interesting to see how it works in practice, but I’ve seen some discussion of being able to switch your user profiles between handsets from different manufacturers, regardless of what OS is running.
Because it’s abstracted, you could theoretically move your profile information from a Blackberry to a device running Windows Mobile or Symbian. It’s the same as when you hear people talking about compartmentalizing desktop apps into a VM, so migrating to another bare metal machine is simply moving the VM.
Scott: My impression is that a lot of input devices are handled deep down in the kernel, so that multi-touch functionality like the iPhone uses would require pretty deep changes to a system, beyond something like the GNOME shell.
Similarly, an OEM could design a stylus that might have a pen on one end and an eraser on the other end, and it would know how hard you’re pressing. I know at least on Windows that requires support really deep down.
Do you have sense of how to support those new human interface interactions if the GNOME project has to work with deeper things like the Linux kernel? How does that collaboration happen?
Paul: There would be some drivers that would need to be written in the kernel, but work would also be needed at the level of X. That would need involvement of the X.org project.
There’s already support for stuff like styluses and Wacom tablets in there, and we support those types of devices. Pressure sensitive input, having a pen and an eraser, and multiple pens that do different things are already supported, and there is development work going on within X to support multi pointer systems.
There is a conference called the Linux Plumbers Conference, which is one of the forums where this type of collaboration across the kernel, X, and the plumbing takes place. It’s not just for display devices, but also for sound, printing, and anything that cuts across these various areas.
Scott: So, the Linux Plumbers Conference is basically for these people at different layers of the stack who have to collaborate. It requires something deep down, but it needs to be surfaced in an architecturally sound way so that the things above it can really take full advantage of it. Is that where a lot of that work happens?
Paul: Yes. It also provides an easy way–even within companies that employ developers across those various projects–to get in touch and cross those boundaries.
Scott: Talk a little bit about the kinds of things that the hardware manufacturers contribute. I would guess that Nokia would have very specific things that they would be interested in to deliver the experience they want. Intel is obviously building chipsets and wants things to make use of the capabilities they put in the silicon.
Is a lot of what you see from the corporations that kind of deep hardware support?
Paul: It’s really a whole range of things. Most companies involved with GNOME Mobile provide some basic level of maintenance to the core components. Others push the capabilities and add features in areas that are particularly important to them.
In terms of hardware companies, it’s not something we may see in GNOME Mobile, but obviously they’ll be adding driver support in the kernel and X where it’s relevant to their hardware.
Other companies are involved that aren’t necessarily silicon providers. It can be the organizational structural support of building into their purchasing agreements, or putting pressure on their suppliers to provide open source drivers for their hardware.
Work in that area can be very useful. Although it’s almost tangential to GNOME in a sense, because we’re not at the level of hardware drivers, without them, we can’t run on a platform.
It also includes coming up with new software to add into the library. The GNOME Desktop and GNOME Mobile are not static projects–we have a six-month release cycle. We just released in October the first coordinated GNOME Mobile release that ties in with the standard six-month release cycle.
It was a base platform to get started, and now we’re considering new components to add to the platform. There’s a long list of incubator projects under consideration. Various companies involved in GNOME and GNOME Mobile have been working on parts of these libraries, developing them, using them, and adapting them for their devices.
Scott: We’ve asked a lot of stuff that’s interesting to us, but what do you feel is the more interesting stuff going on around GNOME Mobile right now?
Paul: We’re in an interesting period. A lot of what we’ve been doing recently is just getting our house in order, as it were, and tying the base platform into the standard release schedule. Now we can start to add to the platform and build out more capabilities.
It could be something like Clutter, which is a library for building interesting UI interfaces and user experiences based on OpenGL and GLES chipsets. Or it could be something like GuPNP for integrating uPNP services in devices.
Now, the pieces that we can make to build new devices become much more interesting.
Scott: Thanks, Paul. That looks like a pretty good place to wrap up.