Category Archives: August 2006

Behind the Scenes: Davyd Madeley

Lucas Rocha continues his look at the people behind GNOME with Davyd Madeley, GNOME Applets maintainer and author of the popular ‘Sneak Peak’ articles. Davyd talks about how he got involved with GNOME, why it excites him and his opinions on the next big thing for GNOME.

Short Intro

  • Age: 21
  • Located in: Perth, Australia
  • Profession: Full-time Student studying Electronic Engineering and Computer Science at the University of Western Australia. Part-time Software engineer writing GTK+ applications for Fugro Seismic Imaging.
  • Nickname on IRC: davyd
  • Homepage and blog: http://www.davyd.id.au

Interview

In what ways do you contribute to GNOME?

I’ve been the maintainer of GNOME-Applets (those little thingies that you have running on your panel) since version 2.7 something. I also write articles for GNOME Journal, work on the release notes and write the popular “sneak peaks” into the next GNOME release. I have been known to randomly submit patches for small bits and pieces here and there throughout the GNOME project.

How and when did you get involved in GNOME?

I’d been a groupie since about 1.2, but never really contributed anything. I started dogfooding GNOME 2.0 betas from Redcarpet and started getting really excited thanks local hacker James Henstridge. My poor knowledge of C held me back, I don’t think I submitted my first patch until early 2004. I then worked on the blogging client Drivel for a while, and got a CVS account. The rest, as they say, is history.

What motivates/keeps you motivated to work on GNOME?

The people. I have made some really great friends in the GNOME community. I also enjoy the moment when a project really starts to come together. Finally, it’s nice to receive thanks from users for the work you do and to know that in some small way you are helping to make the world a better place.

How much time do you usually spend on GNOME?

A hard question, because I’m employed mainly to develop applications on top of the GNOME stack, so does that count? My contributions to core GNOME basically depend on how busy I am with the rest of my life. After school, work, eating, sleeping and my other commitments, that is the time I hack on GNOME. I guess it would average out to a couple of hours a day. Unfortunately for me, after a day of writing code, often when you get home you feel like doing anything except write more code.

What do you think is still badly missing in GNOME?

I guess it depends what you define as GNOME. You might say that the GNOME Desktop doesn’t have a music player or photo management application, but every single distribution is now shipping a choice for both of these. Thanks to Project Utopia, we’re living our future. Lots of hardware now plugs’n’plays and works correctly and NetworkManager is making the basics of networking just work.

One noticeable oversight in GNOME for me is the lack of integration of some of our “boo-ya” technology. Network availability could be integrated into a lot more applications (so many applications now seem to involve the network in some way). It would also be nice to see improved networking support for things like VPNs and Bluetooth. These types of things are important to the kind of people who will push to adopt GNOME outside of the school laboratory and corporate workstation environment.

In your opinion, what should be the next GNOME big steps?

Integration and collaboration. If I have a Bluetooth device, its useful functionality should be integrated with my GNOME applications. My Nokia 770 (or the one I wish I had) should be able to seamlessly integrate with my GNOME Desktop. Not just by syncing data with Evolution, but also at an application level integration. The Jokosher remote is an interesting example of this.

Collaboration is somewhere where we can really get ahead of the game. Collaborative Abiword, collaborative Inkscape, these applications are really pushing the limits with how people expect conventional applications to function. The way we work is undergoing a paradigm shift, in that we no longer all work together in the same office and sometimes, there is no office at all. The ability to collaborate in the same basic way but over a network is seriously a cool thing.

In times of GNOME 3.0 discussion, how do you see GNOME in the next 5 years? Where are we going?

I dislike talking about GNOME 3.0 and Topaz. Changes, as wide sweeping as have been discussed, happening all at once would cause significant user backlash (in my opinion). Instead, we should look at the ideas being developed by people in the community and take those ideas on board, as part of a process that is evolutionary, not revolutionary.

In 5 years time, I think we’ll see a lot of the ideas from Gimmie and Lowfat present in the desktop, combined with some really stunning eye-candy graphics. But at the same time, I don’t think we will have shaken too many of the “traditional” aspects of a desktop environment. Telepathy and Galago will provide the basis of integrated desktop presence, communication and collaboration framework.

You’ve been maintaining GNOME Applets for more than 2 years. What are your future plans for this module?

The best thing about GNOME-Applets is that you can give the individual applet authors their heads, so each of the applets mostly maintains itself, but I do have a couple of plans. I am still looking to cut the fat and the dead wood from the module. We’re getting closer to all of the really antique applet code being completely replaced (where a lot of code was simply ported from GNOME 1.4). Nowadays I am mostly happy with the state of the module and personally I think most things are functioning as expected, so we can start focusing on improving the overhead of the applets and fixing badly implemented code. As it stands, an applet has a lot of memory and CPU baggage for something that you want to be small and running all of the time.

The big thing that is on the way is the new applets API that Ryan Lortie is working on for the Google Summer of Code. It is my hope that this API will make it easier to develop applets (especially simple monitor applets like the weather applet or the battery status applet), as well as offering new ways for applets to work (you’ll no doubt read more on this in the future, once I’ve gotten my act together). At the moment there is no timeline for when this will be completed.

Which distribution do you use? Why?

Ubuntu. It was the natural progression from Debian, but I wish it could do a release without having at least one really crack change to GNOME. It’s worth mentioning that I use Fedora at work (v. 5) and it’s actually not that bad.

What is GNOME’s killer app? Why?

I once read that Xscreensaver was the killer app for the Linux desktop. Seeing the effect that the screensaver hacks have on first-year university students, I might just agree with them.

Who are your favorite GNOME hackers? Why?

I don’t like to play favorites, I respect and admire everyone who finds the time to contribute to GNOME. Here are some people who are really rocking my world at the moment: Brandon Hale, Matthew Garrett, James Henstridge, Christian Kellner, Ryan Lortie, Shaun McCance, Robert McQueen, John (J5) Palmieri, Danilo Segan (the prettiest hacker in the world) and Thomas Wood, but there are so many more. I also have unending respect for Dave Neary and Quim Gil, who are people without limits.

What does your desktop look like?

Murray Cumming once described it as being a “geek’s desktop”, but honestly I don’t think it’s that geeky. People often comment that I really am running a lot of applets, to which I remind them that I do need to know if they work or not. At the moment, my desktop also features a number of temporary files from the aftermath of GUADEC. While the contents will change, the presence of random collections of files on my desktop is fairly constant. Every now and again I will go through and sort them out and clean up the mess. Kind of like my actual desk, I suppose. Somewhere, there will be an Evolution window and a web browser, they’re both fixtures no matter what I’m doing.

Who or what in your life would you say influenced you most?

My father taught me to program when I was 6 and how to build 286s some time after that. I think it’s safe to say this pretty much shaped the direction of my life and my love of computing. In more recent history the biggest influences on my life have been Stephanie (my fianceé) and the University Computer Club (which really has produced some of the most talented hardware and software hackers in the world) at the University of Western Australia.

How would you describe yourself?

A little overweight (distressingly). Not as bitter as people might initially perceive. Relatively easy going. Blue eyed with long hair.

What do you get passionate about?

Music, saxophone, electronics, software, programming, penguins (I have quite a collection of plush penguins) and GNOME. I also get excited by Ikea and Crumpler. I do not get passionate about tax.

What sites do you visit daily?

Planet GNOME, Planet UCC, the blogs of any friends not already covered in the first two, and too many web comics to really be healthy.

Free Software or Open Source?

I like to use the term libre software. Otherwise I will use whatever is required to illustrate exactly what I’m talking about. Really we’re all singing the same tune.

What do you do in your free time?

Play music, drink way too much, poke at random bits of software and hardware.

Married, partner or up for adoption?

Engaged.

If you have a partner or children, how do they cope with a GNOME addict?

Stephanie has her own hobbies to keep herself busy. It’s often me who is the one crying out for attention.

If someone visits your country, which spot is a must-see?

I guess that depends on which coast you go to. Melbourne is a nice place to visit. In Perth, there are certainly touristy places, but as a resident, I’ve always found them a bit passé. Although allegedly King’s Park is the largest inner city park in the world.

Quickies

A phrase?

Hack the Gibson

A movie?

Hackers (see phrase)

A food?

Vegetables curry (with rice)

A place?

“CD/DVD Creator”

A text editor?

vim

A band?

Crowded House (although The Whitlams or Orbital would also be good
choices)

A song?

I Make Hamburgers (The Whitlams)

About the Authors

Lucas Rocha is a MsC candidate in Contemporary Communication and Culture at Federal University of Bahia who maintains Eye of GNOME (aka EOG) and Zenity. Also, he tries to help the brazilian l10n team by revising and commiting translations and is regular GNOME Journal writer. In his free time, he plays drums and percussion.

Discuss this story with other readers on the GNOME forums.

Tinymail: evolution and intelligent design

Many people today use mobile devices to stay connected. Dirk-Jan Binnema introduces Tinymail, a memory-efficient framework particularly useful to develop e-mail applications for mobile devices.

 

For several years now, Evolution has been the default e-mail program for the GNOME Desktop. It uses a flexible architecture and provides mature implementations of many e-mail protocols (POP3, IMAPv4, SMTP, and even Exchange, Groupwise, and Hula). Also, it has an advanced user interface (UI), which is getting even more friendly in the next release – as seen at GUADEC.

Great. However, all this requires quite a bit of memory. Tens of megabytes for moderate amounts of e-mail. Now, there’s a lot of memory in your desktop PC, but what about an ‘embedded’ device? For example, the Nokia 770 Internet Tablet. Or the One-Laptop-per-Child (OLPC) machine? In such devices, we need to be very careful with the memory usage. Also, they usually require user interfaces which are very different from the one Evolution offers – if only for the much smaller screen sizes. So, what if we took the mature, non-UI parts of Evolution, cut down on the memory usage, and made it possible to have customized user interfaces? Wouldn’t that be great for embedded devices, and even for low-end PCs?

That is exactly what Philip van Hoof did.

About Philip

Philip van Hoof (1981) is an energetic software developer from the village of Oud-Turnhout in Belgium. He has strong opinions about software, and no qualms about voicing those (which sometimes causes some friction…). Philip works as a (surprise) software developer. After work, he likes to do even more (Free) software development, and he worked on many projects inside and outside GNOME.

Recently, Philip has been looking into the area of e-mail libraries. He wanted to explore ways of using the e-mail protocol parts of Evolution in a more memory-efficient way. He named the resulting framework after his girlfriend, Tinne. Thus, Tinymail was born.

Tinymail

Tinymail (pronounced Tinniemail) is not an e-mail program, but with tinymail, you can make an e-mail program.

Tinymail is an abstraction layer on top of libcamel (the library on which Evolution is built). It adds some functionality for account management, as well as some widgets for viewing folders, headers and messages. All these things are tightly integrated, yet loosely coupled. That means that you can easily replace parts with your own, and the system will still work.

If you use the pre-fab building blocks that tinymail delivers, you can make a simple e-mail client in only some hundreds of lines of C code, and even less in Python (using the Python binding).

Memory

Tinymail offers very substantial memory savings, compared to Evolution – 80% or more, in some tests. It achieves this by being very aggressive with its memory management, and only keeping in memory what is really needed at that time. For example, Evolution keeps the header data for all mailfolders in memory. This is required to support virtual folders (saved searches that look like normal folders). As Tinymail does not support virtual folders, it only needs to keep the currently selected folder in memory. And that saves a lot of memory.

Of course, one should be careful to compare the memory use of a full application like Evolution with that of Tinymail. However, by comparing the memory usage for, say, 500, 1000, 2000 e-mail messages, you can still draw some conclusions.

But Tinymail goes one step further. If you are browsing through your mail headers, you don’t need to have all of them in memory. You only need the ones that you can currently see. Tinymail does some clever tricks with the way it lists messages (using the so-called Proxy design pattern), so that it only allocates memory for the ones that you can actually see. The memory needed for all the others is reduced to the very minimum. While this sounds a bit slower than keeping everything in memory, in practice it does not seem a problem. Even on devices like the Nokia 770, you can smoothly scroll through thousands of messages. A reason for this might be that the less memory use in itself gives performance benefits, due to better cache usage.

Interfaces

Tinymail uses concepts from interface-based programming to present the client programmer with a relatively clean way to program e-mail applications. In fact, evenlibcamel itself is abstracted away in these interfaces, and Tinymail could use an alternative library instead.

Tinymail makes heavy use of the object-orientation (OO) features of the GObject system. The APIs are just interfaces, with many possible implementations. Tinymail typically supplies one particular implementation, but you could simply plug in your own.

For example, Tinymail has an interface for displaying e-mails (TnyMsgIface). It also supplies different implementations for this interface – GtkTextView and Mozilla. You can have your e-mail program display messages in either of those, whatever is the best for the specific situation. But you might still want something else. For example, others have written a GtkHTML implementation. Tinymail does not even have to know it exists. It will use whatever the client programmer specifies, as long as it conforms to the TnyMsgIface interface.

As another example, Tinymail provides the TnyDeviceIface, which is in abstraction of the network connection of a system. If your e-mail program needs to get online, you can ‘ask’ through this interface. And it does not matter what the actual implementation looks like. Tinymail comes with a TnyDeviceIface for the NetworkManager in GNOME. Other people are working on implementations for other devices.

Such software Lego sounds like some long-foregone dream from the mid-nineties. But in Tinymail it actually works quite nicely. Of course, there are limits to the syntactic sugaring that the C programming language can do for you. As with all GObject-based code, there is a lot of explicit up-and-down-casting of pointers involved. And a lot of boilerplate code. Furthermore, writing software with a framework requires a bit more of the programmer than using a simple library. Instead of just calling a bunch of library functions, the software enters into some symbiotic relationship with Tinymail, which requires you to do things in a certain way.

Back to the Future

There has been a lot of interest in the Tinymail project already. For example from Nokia, who did some experimental work with Tinymail already.

Tinymail also runs smoothly on the Nokia 770, as shown in picture 2). And there are the OLPC team members, who are evaluating various solutions. They will probably be interested in the Tinymail Python bindings, which have recently become available.

So, if you are working on a new e-mail client (aren’t we all), you should take a look at Tinymail. It does take some time to get familiar with it, especially if you are not fluent with GObject. Also, Tinymail has not seen an official release yet, and API changes are to be expected. Still, the framework is well designed, fairly complete, and is released under the LGPL license. Furthermore, it comes with a lot of documentation and unit tests.

Even if you are not writing your own e-mail client, or are not a programmer at all, Tinymail can benefit you. The project has sparked a lot of new interest and improvements, which will benefit all Evolution users. Philip has made additional impressive memory reductions to Evolution (not depending on Tinymail), using mmap. At the same time, Ross Burton saved more megabytes by killing off unnecessary copies of libraries. This will all result in a meaner and leaner Evolution which translates to a much nicer experience for all users. It also shows how the work on GNOME for embedded devices ultimately benefits all GNOME users.

This article only gave a short overview of Tinymail. If you want to find out more, you can visit the Tinymail website or join the mailing list. Tinymail is still under heavy development, so this is the time when you can make a change!

About the author

Dirk-Jan Binnema (djcb) has been a computer programmer and GNOME user since 1998 or so. Nowadays, this handsome Dutchman works for Nokia in lovely Helsinki – not programming so much anymore, but still working on all kinds of cool software for the Nokia 770.

Discuss this story with other readers on the GNOME forums.

The Women’s Summer Outreach Program

You have almost certainly heard of Google’s Summer of Code, but perhaps you haven’t heard of the Women’s Summer Outreach Program, which is also being run by the GNOME Foundation this summer. Davyd Madeley teams up with Hanna Wallach to find out more.

This year GNOME received 181 submissions for Google’s “Summer of Code” – not one was from a woman.

This imbalance is hardly surprising though. In 2002, it was reported that a staggeringly low 1.5% of libre software contributors were women, compared to roughly 28% in the proprietary software world. This disparity has numerous causes. For example, the 2006 FLOSSPOLS report found that the age at which men and women are able to start tinkering and installing free software on their own computer can differ significantly. Girls, on average, typically receive their first computer at age 19, as opposed to boys at age 15.

Working closely with the GNOME Foundation, developers Hanna Wallach and Chris Ball put together the Women’s Summer Outreach Program. The program aims to promote the participation of women in GNOME-related development. “It was clear to us that the GNOME community can’t be the inclusive group we want it to be without putting in some effort,” said Chris. Funded with money received by the Foundation for participating in the Summer of Code, the program originally offered the chance for three applicants to receive a stipend of US$3000 to work for two months on a mentored, GNOME-related project. The only requirements were that the applicant was a female student and wanted to work on a kick-arse development project.

A key issue at stake is male domination in the libre software movement, where GNOME is no exception. While six new female developers won’t make a staggering amount of difference to this problem, Chris and Hanna are hopeful that the program will still have a significant amount of impact. In the short term, GNOME will get six awesome women working on six exciting projects. Longer term, they hope that the program participants will continue to actively participate in the GNOME community, encouraging other women to get involved as well. One of the major things missing from free software right now are strong female role models. It would be fantastic if the WSOP changed this for GNOME.

“We’re not trying to artificially raise the percentage of female GNOME developers up to 50%;” Chris emphasizes, “we’re trying to start a bootstrapping process that gets some female developers involved with GNOME in a way that will create a positive feedback loop.”

An impressive 100 applications were received from femme devels spread across the globe in just under a fortnight. “We had far more applications with excellent technical merit than slots to fill; all of the applications on our shortlist were extremely high in quality,” Chris told GNOME Journal. In fact, the applications were of such high quality that Google stepped forward to provide the funds for three additional projects, bringing the program up to six participants.

Unfortunately, not everyone who applied for the WSOP could be chosen. “We’ve been thrilled to see that several of the applicants whom we weren’t able to accept have mentioned wanting to work on their proposal on their own,” said Chris. An unpaid mentoring scheme has been proposed as part of the successful GNOME Love project. This scheme, taking many attributes of the mentoring from Summer of Code and WSOP, would allow both men and women to undertake mentored work in the GNOME project.

The Foundation hopes that the WSOP will act as a pilot program for other organizations hoping to make more women feel welcome in their development communities. Perhaps the most important outcome is that this program be seen as a clear demonstration that things can be done to encourage women to participate in open source, even in what has traditionally been considered an exclusively male arena.

The Participants

Of the 100 applicants, six were chosen to participate in the WSOP, each based on the quality and utility of her application. The participants come from 5 different countries, and include both undergraduate and graduate students.

Fernanda Foertter was born in Brazil, but is now a citizen of the United States. With a physics major under her belt, she is now doing a doctorate in materials science at the University of Florida. Her project is gJournaler, an “iTunes-inspired” cataloging system for PDF journal articles. “Two years of grad school is frustrating,” Fernanda explains. “You have to read hundreds of papers and have no real good (open source) solution to catalog them.”

Ümran Kamar is an undergraduate computer engineer from the Izmir Institute of Technology in Turkey, now in her fourth year of study. She is working on an Evince plugin for Mozilla-based web browsers. Ümran hopes to be an ambassador for Turkish women in libre software.

“There are many women programmers interested in Linux in my country, but they lack the courage to join projects and lead the women’s community. I am expecting this project will be a landmark for the Turkish women’s community, helping them to be more confident in joining Linux-based projects,” she told GNOME Journal.

Cecilia González is at the Politechnical University of Catalonia (UPC) in Barcelona and is also in her fourth year of her computer engineering degree. Since she started using free software, she has wanted to contribute to the community. With an interest in performance, her project will be to work on optimizing the switching of components in the Evolution groupware suite.

“I find the GNOME community very human and always interested in our work; I feel happy to be working in a such project.” she says, “It will be great if I can participate actively in the community after the WSOP.”

From McMaster University in Ontario, Canada, Clare So is in the first year of her PhD in computer science. Her project is to define and implement formula editing functionality in the GtkMathView widget, used to display MathML in AbiWord and other applications. She is also interested in looking at research aspects of her project.

“It all started from my summer employment in 2002 at the Ontario Research Center for Computer Algebra,” she writes in her blog, “Since then, I have been interested in various topics in Mathematical Knowledge Management, which includes research in MathML-related technologies.”

 

 

Monia Ghobadi is an Iranian studying at the University of Victoria in Canada’s British Columbia. She has been working towards her masters in Computer Science since September last year. She got involved with the WSOP because of an interest in open source software development and because she wanted to learn about Linux programming. Being new to North America, she missed out on the Google Summer of Code, and GNOME’s WSOP gave her a second chance to be involved in such a great program.

Monia is working on integrating GNOME Terminal with GNU Screen, a console based “screen manager” that multiplexes multiple interactive shells onto a single terminal. “My mentors are incredible. The community is wonderful. I’d love to remain a part of GNOME,” she replied when asked how she found working with the rest of the GNOME community. “I’d like to thank GNOME and encourage all the students to participate in these programs,” she added.

Maria Soler is from Catalonia in Spain, but studying in Aarhus, Denmark. After doing three years of mathematics, she decided to study electronic engineering. Having completed her engineering degree, she will start a specialist course in industrial software this August. Her project, syncing Tomboy notes between computers, is a chance for her to make a useful contribution to the free software community while learning Mono and C#.

Maria had previous experience with the GNOME community through the GNOME Translation Project and the Catalan translation team.

Already, the program has been a huge success. All six participants say they are enjoying working with the GNOME community and that their mentors have been really positive and encouraging. They all hope to remain part of the GNOME community after the summer’s program is over.

“I want to thank GNOME and Google for giving women an opportunity to shine in the developer community,” wrote Fernanda, “I hope the open source community will begin to see the benefit of encouraging more women to participate.”

Would You Like To Know More?

You can find out more about the WSOP from the press release and project page on the GNOME.org website:

The FLOSSPOLS report and recommendations are available from:

If you want to follow the progress of the six participants, a WSOP planet has been set up:

About the Authors

Hanna Wallach is in the final year of her Ph.D. in the University of Cambridge’s Inference Group, working on Bayesian inference for machine learning problems. In her not-so-spare time, Hanna contributes to both GNOME and Debian, and is involved in several projects that encourage women to participate in free software development. Her favorite video game is Rez.

Davyd Madeley is an undergraduate computer scientist and electronic engineer at the University of Western Australia, who moonlights as the GNOME Applets maintainer and a writer for GNOME Journal. Among other things, he produces the popular GNOME “sneak peak” articles. He collects plush penguins and plays the tenor saxophone. He’s also the subject of another article in this issue of GNOME Journal.

Discuss this story with other readers on the GNOME forums.