Software Designers~The People Behind the Code~(英語)

#14Neil Patel, Canonical Ltd. Lead Developer, Ubuntu Netbook Edition

For years, open source advocates have pointed to Linux as a Windows client-based alternative for the desktop, even while Linux’s actual market share has remained stubbornly under three percent. Then came the netbook, a device with a smaller screen, limited memory, a heavy emphasis (as its name implies) on Web access, and a price between $300 and $500, or about 27,000 to 45,000 yen. If you were to write a recipe for a computer that gives Linux a foothold in a Windows-dominated world, the netbook would be it.

Canonical Ltd. has been at the center of this development universe. Launched by entrepreneur Mark Shuttleworth, Canonical and its Ubuntu distribution have done much to take the ⁠geek⁠⁠ out of running Linux. The company has simplified application installations and upgrades, freeing users from having to master a command line interface. Canonical has paid close attention to support. It hosts online forums and, for Ubuntu 10.04, is working on a long-needed user’s manual written for beginners. Canonical is engaged with Google on the forthcoming Chrome OS, and with Intel on MeeGo (formerly Moblin)―two other small footprint, open source, Linux-based operating systems targeting netbooks.

Canonical has also produced its own version of Ubuntu for netbooks: Ubuntu Netbook Edition (formally called Ubuntu Netbook Remix). Neil Patel, the technical lead on the project, grew up in the United Kingdom reading though code examples and tutorials for Amiga, Windows and MacOS. ⁠I was introduced to Linux by a friend in 1998, and immediately fell in love with the amount of control that the user had over the system,⁠⁠ Patel wrote for an entry on his blog. After studying pharmacology in college, he learned C, as well as the Glib, GObject, and Gtk libraries. He also created some Linux applications, including Avant Window Navigator navigation bar and the Affinity desktop search tool―both still active open source projects.

In April 2007, Patel joined OpenHand Software Ltd., whose software became a key component of Moblin, which was later acquired by Intel. He came to Canonical in February 2008. Even so, his career is only getting started: Patel is just 26. I spoke with him by phone from his home in Northwood, Middlesex, about 20 miles northwest of the City of London.

In writing this series, I’ve been struck by how many software developers started out studying something else. How did you make the transition from being a pharmacology student to working on operating systems?

I studied pharmacology because I always had a strong interest in science, whereas computing felt so much like a hobby that I didn’t look at it as something that needed to be taught. So in a way, I was quite lucky to have this career path. My advantage when I applied to OpenHand was that I was already familiar with the GTK+ graphical toolkit, which was quite new at the time. That fit in well with the company’s work on the Clutter toolkit. Up to that point, I had really never thought about programming as a profession, much less actually doing it. But OpenHand turned out to be a pivotal opportunity. They had many good engineers, and I got to work with people who had contributed to GLib/GTK. I learned from them things I couldn’t have learned just on my own.

When I joined Canonical, they asked me to use my knowledge of Clutter and GNOME to create a user interface for netbooks. The resulting collection of applications and tweaks would come to be known as Ubuntu Netbook Remix. We built it from the existing Ubuntu CD image, but also with some additional patches to make misbehaving applications work with smaller screens. I also worked on the Linux UI for Dell's first Ubuntu-based netbook, the Dell Mini 9. That interface was similar to Remix in that it had a Clutter-based home screen. Dell designed the launcher. I wrote it.

What are you working on now?

Primarily, I’m working with my team on version 10.04 of the Ubuntu Netbook Edition, which the latest speed improvements from Ubuntu for a quicker boot. We have integrated the latest work from the rest of the DX team with regards to the Messages, Me and Session panel indicators, giving you quick access to email, chat and social broadcasting messages. You can also easily set your system-wide presence, indicating for example that you’re available, away, or busy.

In addition to integrating the work happening in Ubuntu Desktop, we have been working with the Desktop team to rebase on the latest Clutter and have spent lots of time improving the stability of the launcher and supporting components. We’ve also worked improving touch support, allowing users of touch screens to more easily move around the launcher interface. Finally, the Desktop team have helped make the UNE interface much easier to install on existing Ubuntu desktop machines for testing. You just need to apt-get install Ubuntu-netbook and you'll have a new ⁠Ubuntu Netbook Edition⁠⁠ option at the login screen.

Tell me about your team.

We are a development team within Canonical’s desktop experience group. We are spread out across the globe, communicating principally through Internet Relay Chat. In a sense, I’m a remote developer as well. Even though I live just outside of London, it still takes me up to 90 minutes to get to the office, and I don’t go in every day. That’s normal for most Canonical development personnel and for Canonical in general. Our support teams are in Montreal, a big section of the OEM team is just outside of Boston, and administration, human resources, and most of the design team are in London. Every few months, our team does spend a week working together. But our main ⁠place⁠⁠ to work is Canonical’s Launchpad collaboration software, where we house all code.

When Linux first arrived on netbooks, people complained that it wasn’t Microsoft Windows. It didn’t have quite the same look and feel. Not all the apps were familiar, and some familiar apps weren’t supported. Software upgrades required the command-line interface. What were you seeing on your end?

That’s all true, but it was a start. The first netbook was the Asus Eee PC. It had a custom program launcher and a few mainstream applications like Firefox and OpenOffice. Looking back, that approach of leveraging the best work of the open source community still seems the best way to go in making Linux a success on netbooks. There are two parts to this. Firstly, I think it was important to have popular applications like Firefox and OpenOffice available―applications that are also supported on Windows. Secondly, I believe that it wasn't in scope to try and re-implement all the basic applications for a netbook-sized UI. Patching or working with upstream developers of existing projects made a lot more sense, especially when thinking about maintenance and updates.

Another confusion for new desktop users has been the number of Linux distributions. It seems to me that Ubuntu’s broad acceptance has made things at least somewhat less confusing.

Having a large user base really helps. It also helps that we maintain four sets of software repositories, and that we’ve done a lot of work to ensure hardware and network compatibility. We don’t have to reinvent that with each new version. Also, the industry is seeing a general convergence of distributions for netbook-oriented operating systems, such as Intel and Nokia merging Moblin and Maemo as MeeGo.

Where did the idea of Ubuntu Netbook Edition come from?

The idea was in discussion before I joined the company, but the basic idea was to have an operating system with Ubuntu’s ideals and focus specially designed for netbooks. I was tasked with creating the first UNE user interface within the first few weeks of working at Canonical. It went through a few revisions before being debuted at Computex 2008 in Taipei.

The term “netbook” has gotten blurry. But looking back, what limitations were you trying to accommodate?

The big one was netbook screen dimensions, which is typically 1024 x 600. That’s unusual: the width is effectively widescreen, but the length is proportionally smaller than a conventional PC. That’s a potential problem in terms of screen allocation. The normal Ubuntu desktop has two panels, one on the top and one on the bottom. A maximized Firefox window adds a title bar. If you give 23 pixels to each of these, that’s a huge amount of space on a 600-pixel high screen. So we asked ourselves early on: how do we make best use of this limited vertical space?

We ended up writing the Window Picker Applet, which removes the bottom panel by moving the task management prompts to the top panel. Instead of displaying both the icon and the text, the applet displays open windows as icons, with the current window’s title shown on the right. By removing the bottom panel and title bar, we save 46 pixels. That might not seem like a lot, but when you look at Web pages designed for a full-size screen, that extra space matters.

Are you also factoring in netbook memory constraints―or does that still matter?

We think it still matters. We view netbooks as a generally constrained environment, and in Ubuntu Netbook Edition, everything is written in C, as opposed to a less compact, inefficient interpreted language like Python.

We had an even bigger hurdle in that our launcher was written with Clutter, which uses OpenGL for the rendering pipeline. For animations, we knew we wanted to move them to the GPU, rather than taxing the CPU. That’s not so much a problem now, but at the time, the Intel graphic chip drivers had some issues. You weren’t able to suspend and resume reliably, for example. I actually wound up spending more time dealing with those kinds of bugs than with the more obvious constraints.

Google has stressed fast boot-up speeds with Chrome OS―because they see netbooks being used for quick, one-time Web searches. Are you also focused on that?

There’s been a real push to get Ubuntu to the desktop, with the CPU idle, within 10 seconds. Anything that furthers that goal in the Desktop Edition gets put into Netbook Edition, as well. That said, I think it’s more important to have a fast suspend and resume than a fast bootup. The iPhone takes over a minute to boot up, but people don’t notice, because normally, they seldom actually do that. The same is true with netbooks: during normal use, suspend and resume is more common. We are working with hardware manufacturers to make sure that function is fully tested.

All that said, Windows is still the most common netbook OS. Who runs Ubuntu and why?

I do think we attract more adventurous people. We are somewhat less expensive―that’s an obvious attraction. But the most significant difference may be the user interface. By putting a lot of effort into creating a user interface for the netbook size screen, we are making a statement for what a true netbook operating system should look like. That, more than anything else, is a key difference with Windows on a netbook, and that’s true not just for Ubuntu Netbook Edition, but MeeGo and other OSs that are designed specifically for this kind of device. Windows 7 has added some really nice features, but it is still not completely adapted to netbooks.

And people’s perception of what they need in a portable computing device is changing. When I look around London, I see more netbooks all the time. If you are mostly doing email and moderate office tasks, do you really require a $1500 laptop with 17-inch screen a dual-processor CPU? My sense is that more people are realizing that a netbook may be all they need. Ubuntu fits in nicely with that minimalist sensibility.