By Jonathan Corbet
August 27, 2013
File management does not seem to be a one-size-fits-all proposition. Thus,
while general-purpose file managers exist, it often appears that much of
the development effort goes into domain-specific management tools. We
have a whole set of photo management applications, for example, and even more
music managers. When it comes to electronic books, though, there seems to
only be one viable project out there:
Calibre. LWN last
looked at Calibre almost exactly two years
ago. The recent
version 1.0
release provides an obvious opportunity to see what has been happening
with this fast-moving utility.
While installing the new version, your editor quickly learned that some
things have not changed. The download page still
recommends against using versions of the program packaged by distributors,
"as those are often buggy/outdated." Instead, one is supposed
to install the project's binary release, done by instructing a Python
interpreter, running as root, to fetch a program from a web site and
execute it, sight unseen. After all, what could possibly go wrong?
For those who might balk at handing the keys to their
systems to a remote site in that way, it is also possible to download a
simple tarball and run the program from there. Source is also available,
naturally, but the build process has a lot of dependencies and is not for
those in a hurry.
One unfortunate antifeature that has not changed is the program's habit of
phoning home on startup, providing the user's IP address, system type,
Calibre version, and an identifying UUID to a Calibre server. One assumes
that most distributors have disabled this reporting, but binaries retrieved
directly from the site still do it.
On the other hand, it's worth noting that Calibre is good about not
breaking things with its
(frequent) updates. Plugins installed years ago still work without
problems (or even rebuilding), for example, and your editor's book library
itself has never had trouble with Calibre updates. Calibre is developing
rapidly, but some care has clearly gone into avoiding pain for users
when they upgrade.
New in 1.0
In one sense, there is not a whole lot in the 1.0 release itself that calls
for the big version number bump. Evidently, it was simply time to declare
that Calibre had reached that milestone. That said, there are a couple of
new features in this release, the most visible of which is the grid view
for books in the library. This view, as one might expect, simply shows
book covers in a matrix arrangement; it joins the longstanding list view
and the relatively useless animated "cover browser" as the third way of
selecting a book from the library. The grid view is nice; it can be
thought of as analog to arranging one's books with the cover forward, while
the list view is like looking at the spines.
The 1.0 release also advertises a much faster database backend for managing
book information. With a library containing several dozen books, it is
hard to notice the difference; those with much larger libraries may have a
different experience. But large libraries present challenges of their own
in Calibre; the interface feels increasingly unwieldy as the number of
books grows. A set of bookshelves can be organized as the owner wishes; a
Calibre library is somewhat less flexible. There is, for example, no
mechanism for imposing any sort of hierarchy on books. Yes, this is the
21st century, and we all use tags for everything now, but, as Herbert Simon
pointed out years ago in The Sciences
of the Artificial, human
brains think in terms of hierarchies.
That said, one helpful feature that has been added (in the 0.9.28 release
in April 2013) is "virtual libraries," which are a sort of saved-search
mechanism. One can create a virtual library containing only books from a
specific author, say, or based on tags. Virtual libraries don't really
provide much that Calibre's search mechanism didn't already do, but they
make frequent searches easier and faster to get to.
Calibre has long been the definitive tool for the conversion of books
between formats. Over time it has been gaining features for the editing of
books as well. New in 1.0 is an editor allowing the modification of the
table of contents; it can perform simple tasks like adding an entry for an
interesting location, or it can be used to create a new table of contents
from the beginning. The automatic metadata downloading system can look
further afield for book covers, descriptions, and more. The embedding of
fonts within books is now fully supported. On the input side, it is now
possible to import books in the Microsoft Word (.docx) format; for output,
the PDF generation engine has been rewritten with, it is claimed, much
better results.
Beyond that, of course, the program continues to gain support for more
devices, more ebook formats, and more web sites as sources of content.
Calibre's ability to
download the contents of an online magazine issue and package them into a
book on a reader device remains one of its more useful feature; it makes
offline reading easy. In general, the addition of features continues at
such a pace that many of them are hidden at the outset and must be manually
added to a toolbar (by way of the "preferences" screen) to be accessible.
Suffice to say that Calibre developer
Kovid Goyal does not seem to agree with the minimalist line of thought —
with regard to features or configuration options — that seems to dominate
some other projects.
All those features and options are certainly welcome, but there is no doubt
that Calibre could benefit from some focused design and usability work.
The interface is cluttered and useful functionality can be hard to find.
Who can say, off the top of their head, why there are two search
bars on the main screen? (One of them is actually a place to enter a name
to attach to a "saved search"). Or consider a dialog like the one shown to
the right.
What line of reasoning would lead to the "cancel" button being placed right
in the middle of all the other options? In general, Calibre gives the
impression of being a large collection of (mostly useful) tools haphazardly
thrown into a big box.
Finally, one significant "new" feature (new since the last review, but it was
available in 0.9) is proper support for Android devices. Linux systems
still struggle to support the MTP protocol in any sort of general way, but
Calibre's internal MTP implementation seems to work just fine. Calibre
recognizes Android devices when they are plugged in, and can tell multiple
devices apart; it can be configured to manage or ignore each device
independently. There is a simple rule system that allows different types
of files to be directed to different locations on the device. It all works
quite well, though interoperability with the Android Kindle app is
minimal. The third-party
plugins that deal so nicely with books on an actual Kindle device are
unable to read Kindle books on an Android device.
DRM
In general, of course, DRM continues to be one of the biggest disincentives
for anybody considering the purchase of an electronic book. It should be
possible to buy a book and read it using the device — and the software — of
one's choice. One should not have to worry about things like having
one's books deleted as a consequence of crossing a national border.
Books should not be subject to lock-in to a particular device or the
continuing good will of a remote corporation. Someday, hopefully, the book
industry will free itself of DRM; until then, people who are unwilling to
break the DRM on books they buy will not be able to make full use of a
library manager like Calibre.
One should note, of course, that there are quite a few
publishers selling DRM-free electronic books now. Patronizing those
publishers seems like a good way to ensure that they continue to make
DRM-free books available. Calibre, of course, has long had a built-in "get
books" feature that can search for electronic books from a large number of
sellers.
In summary: Calibre remains the definitive tool for the management of
electronic books for Linux — or for any other operating system. The needed
functionality is there, and it continues to develop at a fast pace.
Indeed, the pace is
surprisingly fast given that the lead developer is responsible for the vast
majority of the work — nearly 75% of the commits in the Calibre git repository.
Perhaps, someday, somebody will set out to create something that is
prettier, perhaps based on Calibre's book management and format-conversion
engine. But, for now, Calibre seems to be the only show in town; happily,
it is a highly functional and useful tool.
(
Log in to post comments)