Development
An interview with Kovid Goyal of calibre
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:
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:
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:
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:
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:
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:
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.
Brief items
Quote of the week
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.
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.
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.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 :-)"
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.
Newsletters and articles
Development newsletters from the last week
- Caml Weekly News (August 23)
- LibreOffice Development Summary (August 23)
- PostgreSQL Weekly News (August 21)
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."
Page editor: Jonathan Corbet
Next page:
Announcements>>