|
|
Subscribe / Log in / New account

Development

An interview with Kovid Goyal of calibre

August 24, 2011

This article was contributed by Bruce Byfield

Growing up, Kovid Goyal planned to be a physicist working on quantum computers. However, while studying at the California Institute of Technology (CalTech), he began developing calibre, an ebook manager for GNU/Linux, OS X, and Windows. The project quickly grew, developing its own ecosystem of sub-projects, extensive documentation, and self-funding. Today, calibre is a full-time vocation for Goyal, as well as a partial source of income for other project members.

Goyal recalled:

I've been programming since I was about seven years old, mostly for my own amusement. My first ever program was printing out multiplication tables, written in BASIC on a ZX spectrum+. This was by way of trying to convince my teachers that I really didn't need to memorize the multiplication tables. My teachers weren't convinced.

A GNU/Linux user from the age of fourteen, first on Red Hat and later on Gentoo, Goyal worked his way through grad school by administering the particle theory group's computers at CalTech. An avid reader, he was dismayed to learn that the SONY PRS-500, the first reader to use e-ink technology, did not support his operating system of choice. In response, he wrote the first version of calibre, which he originally named libprs500.

From this beginning, the project grew as Goyal discovered other missing tools for ebooks. The conversion features were added because Goyal wanted to convert ebooks for his reader. Similarly, management collection tools and a graphical interface were created as his ebook collection grew, and the news downloading tools when he could no longer get Newsweek delivered to his door. Other features were added by contributors such as John Schember who created the "Get Books" feature in calibre, which provides a comprehensive list of ebook publishers as well as a comparison shopper. Recently, Schember also became maintainer for Sigil, an ebook editor in early release.

In 2008, the project was renamed by Goyal's wife, Krittika Goyal. On the project's history page, Kovid Goyal explains that "the 'libre' in 'calibre' stands for freedom, indicating that calibre is a free and open source product, modifiable by all. Nonetheless, 'calibre' should be pronounced as 'cali-ber,' not 'ca-libre'." Krittika Goyal is also responsible for Open Books, a portal site for ebooks unencumbered by Digital Rights Management (DRM). Kovid Goyal commented:

Both she and I hate DRM and wanted to see the growth of non-DRMed publishing. Open Books is an ongoing attempt at helping that growth. It is a place where users can browse books published by publishing houses all over the world that are DRM-free. It is not intended to be a platform for self-publishing, but rather to publicize authors and publishers who publish without DRM.

Currently, the site lists several thousand titles by publishers ranging from small presses to Baen Books, a major science-fiction publisher.

Today, calibre has evolved into an active project, with new releases every Friday. Growth of the project remains steady, with many of the revisions consisting of drivers for readers, new magazine downloads, or interface refinements. However major new features are still being developed as well. Recently, for instance, calibre added a plug-in structure, whose success can be seen from the "Plugins" menu under "Preferences". There is even an unofficial plugin for removing DRM, although Goyal stressed that:

calibre itself will never come with the ability to remove DRM. There are laws against this. No matter how misguided I think those laws may be, I choose to respect them. The calibre plugin to remove DRM makes use of the generic plugin facilities offered by calibre, and is not officially supported or recommended by calibre.

Since calibre collects statistics based on unique IDs and IP addresses whenever an installation starts, Goyal can track current usage in some detail. He reports that calibre has about four million users who have used the application at least once, and is growing at a rate of three hundred thousand users every month. About eighty percent of users are on Windows, seventeen percent on OS X, and three percent on GNU/Linux. By any standard, calibre is a free software success story, an all-in-one application that is to ebooks what Amarok is to music players, or digiKam is to images.

Keys to success

The most obvious cause of calibre's success is its comprehensive feature set. However, another part of the project's success lies in two areas often neglected by other projects: documentation and fund-raising.

Help is available on the project site in forms ranging from an FAQ and an introductory video to step-by-step guides on conversion to and from various ebook formats and a complete user manual. This thoroughness "is a deliberate policy", according to Goyal:

I am fairly active in the calibre support forums. I answer about 10-20 user queries every single day. Early on, I realized that the person who would benefit the most from having documentation is me. It reduced the number of people that need to ask questions and allow me to answer many questions easily by linking to the docs.

Also, calibre is now so large (over 400K lines of code) that I cannot keep track of it all. I often find myself needing to read the docs to figure out how some obscure feature is supposed to work.

I have found that, because I place a premium on documentation personally, as time has passed, calibre's community, both users and developers, have contributed to that documentation.

Yet, as important as documentation is, probably the single most significant feature of the calibre project's culture is its active fund-raising. Unlike most free software applications, calibre includes a button for donations, as well as a discreet donation button on the project's home page. "Donations are essential to my being able to work full-time on calibre," Goyal said. "I am continually amazed by the generosity of all of calibre's donors, many of whom have continued to donate repeatedly over the years."

However, donations are not the only source of calibre's funding. Hosting is paid for from a single sidebar ad on calibre websites. Goyal and some of the other most active project members also do some calibre-related consulting. Although confidentiality prevents him from being specific about this work, he explained that, "In general, it involves consultation for companies that are trying to enter the ebook market. Some [of it] involves customizing calibre for a particular organization/use case."

Yet another source of income for all project members is the Get Books store browser and comparison shopper feature. Most of the links on Get Books are part of publishers' affiliate programs, and revenue from such programs are divided, with seventy percent going to the developer who maintains a particular link and thirty percent to Goyal. "The two most active developers (by commits) John Schember and Charles Haley, get most of the income from Get Books," Goyal said.

To some, this emphasis on funding might seem opportunistic, but Goyal remains unapologetic:

I think it is a pity that more open source projects do not solicit donations actively. Many open source projects provide a lot of value to their users. And there are many users out there who recognize that and realize that without their support, the software they rely on will die.

Moreover, it is hard to argue with success. If calibre remained entirely a volunteer project, then it would undoubtedly be less advanced than it is. Unsurprisingly, Goyal anticipates other possible income sources, such as personal calibre clouds, with hosted services "for those who would rather not deal with maintaining their own cloud."

Future possibilities

Currently at version 0.8.15, calibre is still very much a work in progress. Although calibre already far exceeds the features of any of the software shipped with ebook readers, tentative future plans include a number of major additions. They include improved conversion to PDF and MS Word formats, a reworked ebook viewer with the ability to read HTML 5, and support for annotations across multiple operating systems and readers. "But I must emphasize that things happen in calibre land very serendipitously", Goyal said. "People scratch their itches and calibre grows new capabilities. So please do not regard this as a list of promises." His overall goal is clear:

Longer term, my vision for calibre is that it continue to be the go-to solution for people to manage their longer form reading materials. It is particularly important to me that this space never become dominated by a product driven by short-term, profit-centered thinking. Books are simply too important, to me personally, and to humanity at large.

Meanwhile, the continued success of calibre seems assured. Not only is it a feature-rich application with no major rivals, but its funding efforts allow Goyal and other developers to concentrate on their work while keeping their autonomy.

Comments (7 posted)

Brief items

Quote of the week

Currently, the vast majority of the PySide core development is done by the OpenBossa INdT team in Brazil and funded by Nokia's MeeGo Computers team - the PySide project has internally been an enabler for the MeeGo 1.2 Harmattan Python project. Unfortunately, the Nokia N9 is the only MeeGo (Harmattan) phone to be published by Nokia, and Nokia's MeeGo team is being ramped down already in the near future. Because of this, the Nokia MeeGo funding for PySide is slated to end after this year, and I have also failed to find a new sponsor for the project within Nokia.

So, what are the implications? What I hope and believe will happen is that the project is already sufficiently healthy to stay alive and grow without Nokia acting as a midwife. This would imply the community to take a leading role in both the project guidance and actual development. This can of course happen in several ways. First, independent open-source developers may pitch in. Second, there are many companies using PySide by now. They might want to contribute to PySide due to their own interests. Third, there might be some companies providing support and services for PySide. (INdT?) Finally, their might be some company with sufficient interest to take the main responsibility for future development.

-- Matti Airas

Comments (none posted)

The Newtonator v0.5.0

The Newtonator is an LV2 synthesizer plugin with a graphical interface, three-note polyphony, and a "unique" synthesis algorithm. "The Newtonator specializes in making crazy, harsh sounds, so if you're looking for some sounds to produce the next Yanni album, keep looking." v0.5.0 is considered to be a beta release.

Full Story (comments: none)

Fun with PHP releases

The PHP team has rushed out the 5.3.8 release to fix a 5.3.7 bug that broke crypt() for a lot of users. But it turns out that there is another problem: the behavior of is_a() has changed, with the results that (1) the autoloader can be triggered, and (2) the return value can change. This change appears to have caused problems with PEAR, at least; users may want to be careful about upgrading to this release.

Comments (1 posted)

PyPy 1.6 released

The PyPy 1.6 release is out. Most of the improvements are performance-related, but there is also a "JitViewer" tool allowing developers to see which code has been successfully compiled to assembler, improvements in the extension module API, and the rough beginnings of NumPY support. "Unfortunately, this does not mean that you can expect to take an existing NumPy program and run it on PyPy, because the module is still unfinished and supports only some of the numpy API. However, barring some details, what works should be blazingly fast :-)"

Full Story (comments: none)

Mozilla launches WebAPI

The Mozilla project has announced the launch of the WebAPI project. "WebAPI is an effort by Mozilla to bridge together the gap, and have consistent APIs that will work in all web browsers, no matter the operating system. Specification drafts and implementation prototypes will be available, and it will be submitted to W3C for standardization." In particular, they want to create a standardized HTML5 API for tasks like accessing the dialer, the address book, the camera, etc.

Comments (9 posted)

Newsletters and articles

Development newsletters from the last week

Comments (none posted)

Coghlan: Of Python and Road Maps (or the lack thereof)

Python core developer Nick Coghlan has put together a summary of what is happening in Python development based on his recent PyCon AU talk. "Personally, I think the status quo in this space is in a pretty good place, with python-dev and CPython handling the evolution of the language specification itself, as well as providing an implementation that will work reasonably well on almost any platform with a C compiler (and preferably some level of POSIX compliance), while the PyPy crew focus on providing a fast, customisable implementation for the major platforms without getting distracted by arguments about possible new language features."

Comments (none posted)

Page editor: Jonathan Corbet
Next page: Announcements>>


Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds