The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Simple library software?

Here's what I want to be able to do.

We've got a ton of books in the Fog Creek library, in no particular order, and it's gotten to the point where it's actually easier to order a new copy of a book from Amazon than to find a book we already have!

What I'm looking for is software that will let me scan in the barcodes on all these books, you know, the ISBN numbers, and then it will look them up online somewhere and download card catalog information and the Library of Congress number, and add this information to a database, and print out a little sticker on the spot with a card catalog number that I can put on the spine so that the books can be shelved like in a real library, and found again easily.

Does anyone know of something that can do this?
Joel Spolsky Send private email
Monday, August 21, 2006
Michael Scholz Send private email
Monday, August 21, 2006
I'm not sure if you have Apple hardware around, but you might want to check out Delicious library
Tony Arkles Send private email
Monday, August 21, 2006
The Macintosh application "Delicious Library" ( does most of this; it uses the camera built into most modern Macintosh systems for scanning, will automatically pull data off the Web (from Amazon, if I recall correctly) and build a database that can be exported to an Excel spreadsheet. I don't think it will print stickers, but it shouldn't be that hard to create a Word template to suck in certain Excel columns and create the stickers for printing.
William Woody Send private email
Monday, August 21, 2006
I don't know about Windows, but on the Mac there's Delicious Library. You just wave the barcode in front of the camera and it fetches automatically all infos from Amazon.
Riso Send private email
Monday, August 21, 2006

Another suggestion for Delicious Monster.
Mark Reeves Send private email
Monday, August 21, 2006
Hard to believe that in NYC it'd be that hard to hire an itinerant librarian (contractor) to do a monthly or bi-monthly on-site visit and take care of this.

Maybe that was the point of the L. Osterman blog reference?
S. Nationalie
Monday, August 21, 2006
no, the Osterman blog reference was to this post:
forum regulator
Monday, August 21, 2006
I just found this the other day, so I don't know if it will fit the bill, but it looks promising:

Robert Martin Send private email
Monday, August 21, 2006
Delicious monster, with one of their bluetooth barcode scanners (you can order it at the same time as the software, but not afterwards, though you can buy them yourself). I believe that my one was Flic. You can scan the barcodes away from the computer, then upload them in batch when you're not in range.

(Link to one on Expansys; I have no interest in expansys, so feel free to remove this URL if you want

If you've not got an Apple mac, buy one just to use this software. Really. It's that good.

PS I'm nothing to do with Delicious Monster, either. But I've catalogued my 400 DVDs and 600 books with it, and it's really quite good at what it does. The only problem is that sometime it doesn't find the book on Amazon, but that's pretty rare.
Alex Blewitt Send private email
Monday, August 21, 2006
You could use Alexandria or Tellico with a CueCat.
Brian Lalonde Send private email
Monday, August 21, 2006
It doesn't cover all your requirements, but check CollectorZ.

It runs on Windows or Mac.
Leonard Pacheco Send private email
Monday, August 21, 2006
Another piece of software for the Mac is BookPedia.  Terrific piece of cheap software.

I prefer their software to Delicious Monster personally, but give em both a whirl and see what you like.
Chris Morley
Monday, August 21, 2006
I use Readerware for this purpose:

Java-based, so it works on any platform with a JVM.  You can enter your books via ISBN or LCCN (and possibly other identifying numbers) and it'll look them up in online catalogs including the Library of Congress and  (You have control over which sources is uses, what order it checks them in, and whether it stops on the first hit or keeps going and amalgamates the information.  I don't think you can add your own sources.)

They claim to support various bar code readers:

I haven't tried this portion of the program.  I'd intended to use my CueCat with it, but it wasn't where I thought I'd put it; I ended up just entering the isbns by hand, which took longer, but was cheaper than buying a bar code reader just for scanning a personal library of no more than 500 or so books.
Phil! Gregory Send private email
Monday, August 21, 2006
Joel, doesn't your mailing label software already give you half of the functionality?  (Barcode reader + label printer)

The Library of Congress online catalog can be searched by ISBN:

For example, "Joel on Software" has Library of Congress call number:  QA76.76.D47 S693 2004
Monday, August 21, 2006
Delicious Library won't get LC data for you. It's Amazon only.

LibraryThing, however, gets MARC records (the gold standard of library data), Deweys, LC Classifications, and LC Subject Headings. If your books aren't in the LC--as with most paperbacks--it will make an excellent guess, based on the hardback or other "work." (This concept of "work" is unique to LibraryThing and only possible because of the connected nature of a joint library catalog.)

Best of all, when you get your books in LibraryThing you can access it from anywhere. There's even a mobile phone version. And, if you want, LibraryThing becomes a social network, connecting you with people who have the same books. 69,000 users have entered 4.9 million books, making LibraryThing one of the largest 40 "libraries" in the country.

Oh, and here's your author page on LibraryThing.
Check out the tag cloud. Wait, did I mention LibraryThing has tagging? DL and CollectorZ don't.
Tim Spalding Send private email
Monday, August 21, 2006
Tim Spalding Send private email
Monday, August 21, 2006
I dreamed up a system for this about 15 years ago but like most of my ideas I never followed up on it. Two things I've noticed in working in environments where an informal office library is present are that 1) even if you have an organizing system for filing books, most people will mis-file them anyway; and 2) even if you have a signout sheet for books in the library, many people won't use that either. In the system I dreamed up there was a bar-code reader installed by every office door, so when you took a book out of the library you would run it by the bar-code reader on your way in. That way, the system would know that the book was in your office, and anyone looking for it could just check the database to see where it was. As for filing books in their right place, the best approach is to designate one or two responsible people as the book filers and to establish a rule that NOBODY else is allowed to file books back on the shelves when they're done with them (all books to be filed should be put in a designated tray). Of course people will ignore that rule as well, thinking that it doesn't apply to them because they're smart and perfectly capable of putting a book where it belongs, but they will be wrong.

One other thought: if you're using a database, there's no need to give your books card-catalogue-type numbers unless some people want to browse the library by physically standing in front of it and looking at the titles (in which case you do want to keep related titles together). If accommodating browsers isn't important, you can just number the books consecutively. That helps set up a foolproof filing system, because everyone knows that book number 141 goes to the right of book number 140. It also helps people find books faster -- if you search the database for books on a particular topic, you just jot down the numbers of the books you want and it's a piece of cake to find them. I developed a system like this years ago for my paper files -- I didn't organize anything by topic, just by order in which I received things. Each folder was numbered consecutively, and its contents described in my database. When I wanted to find hard-copy articles I had on any particular topic, I searched the database by keyword to find out which folders had the info I was looking for. I never had to stop and think, "okay, under which topic should I file this?" It was beautiful.
Brad Hurley Send private email
Monday, August 21, 2006
This is a kinda hackish solution, but it has the advantage of being easily customizable. Throw an intern at it, and you may get some good results.

It's a project an acquaintance of mine put together when he had the same problem you have.
Jon Rosebaugh Send private email
Monday, August 21, 2006
Is this solved easier without computers?

Maybe a green dot on all marketing books (and in the marketing section).  A blue dot for programming books, etc.

Then just file them alphabetically and ask people to sign books out on a piece of paper.

The electronic stuff is neat, but does it help in any real way?

Bankstrong Send private email
Monday, August 21, 2006
Using a tethered barcode reader is cumbersome when you are trying to build an inventory. You might be interested in my Python driver for the Symbol CS1504 scanner, which has a built-in memory for severeal hundred scans.

You will still need a database to manage your library.
Fazal Majid Send private email
Monday, August 21, 2006
I'll second the suggestion for Readerware. I've been using it for years with a CueCat barcode reader and find it to be really excellent.
Nathan Stohlmann Send private email
Monday, August 21, 2006
I would sugguest the following if I were doing this:

1) Use to catalog your books, and have them listed on the web for employees to access.

2) Use the 'Export to CSV' (or Tab-delim) to export your listing to something your wordprocessor of choice can format onto labels. Using macros format the items to be printed. If you are fancy, you can probably import CSV into real label printers.

This would make your book list available online, everywhere, easy to search, and print out tags in whatever format on whatever print equipment you have handy.
FarMcKon Send private email
Monday, August 21, 2006
Here's the Larry Osterman suggestion:
Monday, August 21, 2006 will do this and also keep track of who is borrowing what. I like it a lot. you can also use it for videos and music, just like netflix with your friends, for free.
Monday, August 21, 2006
We use BookCat at home for our ~2500 books.  It works a dream and does what you need.  We do the scanning and auto-updating and it has features for loan and location if you want to be that obsessive about it (uh, we are... :)).
Jacob Proffitt Send private email
Monday, August 21, 2006
Joel written:

"... and print out a little sticker on the spot with a card catalog number that I can put on the spine so that the books..."

why not print the barcode on the sticker?

so you haven't to read the sticker, a barcode reader will do it for you while you walk along the shelves.
Alessandro Gentilini
Monday, August 21, 2006
Why not use RFID tags so you can locate and track any book in your office?
son of parnas
Monday, August 21, 2006
Give a good programmer a CueCat and you'll have the software you want in a few hours.  The real problem is getting people to actually scan the books when they take them out and return them.  They won't.
SomeBody Send private email
Monday, August 21, 2006
I see a few people already recommended Delicious Library, which I was going to suggest. If you have a Mac with a built-in iSight like the MacBook or MacBook Pro, it can scan directly from the iSight.
Mike Cohen Send private email
Monday, August 21, 2006 appears to be to Windows what Delicious Monster is to the Mac.

I haven't had a chance however to really give its features a once over to know if it meets Joel's requirements.
Austin Send private email
Monday, August 21, 2006
Alexandria Book Collection Manager is a free software clone of Mac's "Delicious".
Check it at
JPS Send private email
Monday, August 21, 2006
I have Delicious Library, and find it's a cute toy.  It's very pretty.

But, for your purposes:

- it only seems to know how to talk to Amazon
- it's buggy
- it assumes you are a single user, or that everyone can access it from one machine (no syncing, no sharing, no net based data access)
- it doesn't print out the stickers you want (although you might be able to use AppleScript to generate those)
- it doesn't really scale

The more data I put into it, the more I come to the conclusion that it's more of a demo than a product (albeit a demo of a product wigh great potential).  It seems especially suited to people who don't have enough items to actually need cataloguing and, as such, is most useful for tracking who borrowed what and when.
Faisal N. Jawdat Send private email
Monday, August 21, 2006
You don't need software. Just divide your bookshelfs into sections, based on topic, then sort the books alphabetically in those sections, by title or author.

If you sort them by catalog number and you have a shelf that's full end to end, think about what's gonna happen when you get another book that has a catalog number belonging in this shelf. You'll have to shift one book from each shelf to the next one.

And of course, real programmers don't need books. :)
Alek Send private email
Monday, August 21, 2006
I use BookCAT  and have found it to be an excellent, inexpensive cataloguing program.  It's been evolving over time to meet the expressed needs of its users, so it now will locate Dewey and LC numbers in addition to all the other stuff you might want to keep track of.  It has a powerful report generator--I haven't begun to exhaust those possibilities--and the ISBN downloader allows you to select any number of sources for books, including the Library of Congress and a bunch of European sites.  Because it's also a fully-functional library system, it lets you easily track borrowers, enter custom return dates, generate overdue reports, and set up a "hold" list for popular items.  You can generate barcode stickers for books, though I'm not sure about spine stickers, and it supports most popular scanners. 

One drawback from a librarian's perspective (which I am) is that it doesn't provide MARC records, so the formatting isn't the same as you would get at a public or university library.  If you are concerned about the prestige of your library, this could be an issue; however, the MARC standard means very little to a non-librarian, and if all you really want is functional software, it's really not that important.  The other thing BookCAT doesn't do (yet) is allow user access on other computers; the last upgrade includes the possibility to *view* the database from another computer, but I haven't tried it yet.  I've used it for four years now and I'm extremely satisfied with it.  In many ways it's superior to the very expensive full-on MARC-ready software I use at the school where I am librarian.
Melissa Proffitt Send private email
Monday, August 21, 2006
"Is this solved easier without computers?

Maybe a green dot on all marketing books (and in the marketing section).  A blue dot for programming books, etc.

Then just file them alphabetically and ask people to sign books out on a piece of paper."

I think the library here at Fog Creek is just about to reach the size where this doesn't scale, but this is actually a pretty elegant hack.  The only problem is there's only one index to the library: you have to know what section the book you're looking for is in, and then search for it there.

An online library would let me query it for, say, "Kernighan", and see all the Kernighan books, even if he had written a book that is not on programming.  Also, if I can't remember in which section "The Design of Everyday Things" is found, I have to search every book manually if  I do not have a decent catalog.

The dots would make reshelving easy, though, and quickly locating the JavaScript book I need would be much easier if I know that there is a section devoted to JavaScript.
Jacob Send private email
Monday, August 21, 2006
This Dr. Dobb's article talks about this very same thing:
Matthew Chestnut Send private email
Monday, August 21, 2006
I've used Alexandria successfully in combination with a I.R.I.S. Pen scanner.
Kevin Schultz Send private email
Monday, August 21, 2006
One more suggestion - prune!

I know when I moved our small office a few years ago, we threw out a couple dozen boxes of out-of-date books, software, and magazines.

Libraries do this (quietly) all the time.  Tech books get out of date even faster than regular books.  Summon the courage and throw all the cruft out.  It'll be that much easier to manage.
Will Send private email
Monday, August 21, 2006 for software USB scanner $119
Brian Chirgwin
Monday, August 21, 2006
There's a bunch of open source library management software products listed on sourceforge...I haven't eval'ed any of them, so I can't make a recommendation.
Paul May Send private email
Monday, August 21, 2006
Could people please stop recommending Delicious or not using a computer? Don't people get it?

The primary goal obviously is the simplest matter of getting them into a data store to be able to look up whether the book is "here somewhere" and to use text search to discover books (e.g. what C# books do we have?), and you will need also to know how many copies there are which will involve numbering and labeling them since the ISBN does not tell one copy from another.

Tracking and signing in and out are secondary considerations at best. At our office they can't even keep track of 5 projectors no matter how much software they throw at it. Systems for signing items in and out are only effective under certain circumstances.
Monday, August 21, 2006
Joel, you can find software of different degrees of complexity to perform those tasks you talk about. But there is no software that can really take care of all the aspects of the process of storing/ identifying / classifying documents, so that you can not only organize them but easily access them when you are looking for a specific author, subject, etc. Unfortunately, for you to be able to do that you will need more than one software, and usually at least *some* "human" supervision. No "robot" can complete all tasks so the results are truly reliable. I have worked as Documentalist/Cybrarian for 12 years, not the conventional type of information sciences' worker (not just a "typical" librarian) and no matter how good softwares claim to be, you always end up needing at least 2 softwares to do the job you talk about, and then again, some human supervision to check if the robot is classifying or "tagging" documents as it should and/or introduce modifications, explanation, hierarchies, etc. in your "virtual"/ real library.
You can always contact me if you want to talk of this any further.

Elena Campiotti Send private email
Monday, August 21, 2006
"needing at least 2 softwares to do the job you talk about"

I look forward then to reading what Joel has to say about this. It seems an obvious niche to me -- to combine the bar code reader and ISBN lookup and meta data with the simple labeling, cataloging, and text search features for the office.
Monday, August 21, 2006
Could it be that this is his summer intern project? ;) nahh...
Monday, August 21, 2006
Booxter ( does what you want.  It's a Mac program.  Connects to Amazon, Library of Congress, etc.

You can scan barcodes with an iSight, or a USB barcode reader (like a CueCat), or a Bluetooth scanner, etc.

It gets the LC Call number from the Library of Congress, so you can print those out onto stickers if you have the right paper for your printer.

DL is a toy, it will run like molasses with any kind of decent sized library.
Tom Send private email
Monday, August 21, 2006
A couple of folks suggested LibraryThing. From the web site, it looks like they aren't really set up for commericial organizations yet. In addition, I find their privacy policy a little scary:


LibraryThing allows "private" libraries—libraries that others can't see. We promise to try hard to maintain this privacy. As a beta application and a wiggly one, we cannot give an absolute 100% guarantee of privacy. After all, even Amazon had a day when all their "anonymous" reviewers were exposed. (Many turned out to be the authors themselves, of course.) Amazon has dozens of highly-paid database specialists; LibraryThing does not. If the public disclosure of your library would really damage you, by all means don't post it online.


IANAL, but this is a privacy policy that appears to guarantee nothing about keeping my data private. A "wiggly" application? Ech.
Sam Greenfield Send private email
Monday, August 21, 2006
I'm another one suggesting looking into DL.  I disagree with those who suggest it's not for serious collections.  I have just shy of 2000 books in it (I'll be over 2K when I import my most recent purchases) and several hundred DVDs.  All done with an iSight camera mounted on my laptop.

In fact, after a recent move, I used DL and 'bucket sorting' (near-literally, using 26 boxes as my buckets, swapping to empty boxes as boxes like 'M' and 'S' filled up) on the last name to organize my books, so it's reasonably easy to (1) find if I have a book (look it up in DL), and (2) reasonably easy to find the book (it's in the 'S' bucket of author last names).

You can do more, of course.  DL has reasonable export functionality iirc, and I imported an early version of my books library into LibraryThing ( ).  The import wasn't perfect, but it went okay.  (Some duplicates, some things missed...)  It's also a little harder to come up with 'deltas' to upload to LT.

The tricky part is getting that data extracted in the little sticker-form you want.  That might be a place for a little custom script to pull info from DL's library.

--  Morgan Schweers
Morgan Schweers
Monday, August 21, 2006
"and print out a little sticker on the spot with a card catalog number that I can put on the spine so that the books can be shelved like in a real library, and found again easily."

As somebody else recommended, I would skip this part if for no other reason than space constraints (though I don't know from your requirements if you have any of these).  For example, you might find that in the LOC system, the gigantic VI manual goes right next to the tiny VI pocket reference.  This means each shelf must allocate the space needed for the largest book, despite the fact that all the other books might be tiny.

Also, if you use a formal system, you end up back-fitting new additions into existing shelves, which creates a human factors problem when somebody is faced with the task of re-arranging a shelf (or shelves) of books that have reached their capacity.  They might just mis-file the book in a more convenient location.

Anyway, I would suggest just numbering the books linearly.  Take your CueCat scanner, grab the ISBN, then apply a large number sticker to the spine of the book.

After scanning you can import descriptive data from online databases.  Assuming you've just scanned the ISBNs into Notepad, you'll know that line 1 is book 1.
Jason Send private email
Monday, August 21, 2006
Readerware and a scanner is the way to go.

Even better, if you buy your books from Amazon, it will go online and download you purchases and update the books for you.

A scanner deals with the books you already have. I would personally buy a good scanner if you have a lot to do.

Once done, its quite easy producing a report that you can upload onto a website.

If you need to track loans, it has that ability too.

No affiliation, just a satisfied user
Monday, August 21, 2006
LibraryThing is honest about security. Amazon and AOL are honest too--they offer no guarantees and accept no responsibility if they, for example, post your search history--but they and other software vendors put their honesty in a long legal document WITH THE REALLY CRITICAL PARTS IN ALL CAPS SO YOU DON'T READ IT. Few users choose a private library anyway. Notably LibraryThing doesn't require an email--just a password and a username.
Tim Spalding Send private email
Monday, August 21, 2006
Not the answer to the question but here is something that I have used to reduce the size of growth of my library:  O'Reilly's Safari Books Online,  I can tell you that I love it.  And yes Joel, they do have corporate subscriptions.  They haven't replaced my dead tree book collection since not all books are on it (for example Joel's book isn't there) but there are plenty to make it worth while.  Plus if I come across a book that I feel is a "keeper" and will be valuable in the long run (e.g. "The Pragmmatic Programmer") I'll go ahead and buy a hard copy.  That has kept mu library down in size along with finally realizing that I would never need to brush up on my Turbo Pascal and no matter what OS/2 programming was not making a comeback.
Bill Rushmore Send private email
Monday, August 21, 2006
I "second" Bill Rushmore's comment on O'Reilly's Safari Online Books.  Ever since my company got a corporate subscription, I have not purchased any tech books.  Instead, I have read/skimmed 20 books online.
Chris Sun
Monday, August 21, 2006
All of the hardware barcode scanners seem to cost $100-$200, unless you do the CueCat hack.

For $40, you get Delicious library and use it to scan in alll your books. Then, if DL isn't all that for cataloguing purposes, you can export the database to whatever other program you want.
Meghraj Reddy
Monday, August 21, 2006
I know you've had more than a dozen replies suggesting delicious library, but it really is worth the cost of the hardware...
Ross Send private email
Monday, August 21, 2006
son of parnas mentioned RFID. Here a company that does RFID for big libraries:
Alan Green Send private email
Monday, August 21, 2006
A lot have people have chimed in that Delicious Library is a great app--and it is--but I'd definitely email the folks at Delicious Monster and ask about this, either as a hack or as a feature for DL 2.0.
Robert D. Send private email
Monday, August 21, 2006
Sounds like a gig for Aardvark'd II
David Good Send private email
Monday, August 21, 2006
As others have pointed out, the software is not the real issue. As you said, you have trouble finding books.

So the one part of the solution is bringing your books into a database using whatever tools you prefer.

The more important part is to label your books with ascending numbers. The actual reason (that nobody previously mentioned) is that this is the simplest way to bring in NEW books to the library. The numbers are affectively telling you when you bought the book. Most libraries I visited no longer sort books by category. They use a numbering index that is "YYSNNNNN" meaning YY year S Size NNNNN number. So you simply have to make sure to always have enough shelf space. The "Size" category allows for sorting books of extreme size to another shelf thus having a more harmonized appeareance.

Still the biggest issue is bringing books back into the library. Mispositioning a book sometimes means it is lost. That's why in large libraries only librarians are allowed to put book taken out of the shelf back into it - users are to put books on trays next to the shelves.
Tilman Haerdle Send private email
Monday, August 21, 2006
I can't say that I've read all the posts above (isn't it unfair if you come late to a discussion and are expected to read all the posts that have come before - all that referencing and all?) but it seems to me I would be tempted to ignore the details of the original request involving anything referring to a bar code scanner or computer or a jungle.  Just take a day off, get some nice white labels, and using magic markers number all of your books sequentially starting with 0.  Or hire a woman with nice hand-writing to do this for you.
Chris Tantillo Send private email
Monday, August 21, 2006
It may be that you just need someone to come in once a month or so and organize your stuff for you. Heck, I'm a Library Science grad student at Pratt Institute; I'll do it for you. Shoot me an email and we can talk about it.
Robert D. Send private email
Monday, August 21, 2006
The answer must surely lie in RFID. Consider that all of the software solutions proposed above are glorified librarian systems which will only tell you if a book is on the shelf - and even then that presumes that other users are diligent about checking out books which they remove from the library. Also, it still leaves the problem of actually locating the book, which depends crucially on people putting them back in exactly the right place.

If you give each book an RFID, look at the scenarios :-

- A promximity sensor notes when the book is removed from the shelf. This allows people to browse the libary, lift a book and not have to clear it with the computer system first.

- Whenever a user wishes to fetch a particular book from the library, the (still to be determined) computer system will be able to confirm that the book is on the shelf. Furthermore, the user could initiate a command to "prime" a handheld scanner with the ID of the desired book and then pick the device up to simply wave it at the shelves until it trills (or squawks, or warbles, etc.) when the book is found. This means that users don't have to worry about putting books back in the correct place and can just chuck them in any old gap on the shelf.
Paul Sharples Send private email
Monday, August 21, 2006
rfid? I know of one company that is developing a product to help solicitors (UK) keep track of documents using this technology. Might be overkill for such a small library, but maybe worth a look.
Ewan McNab Send private email
Monday, August 21, 2006
Ooops. Paul beat me to it...
Ewan McNab Send private email
Monday, August 21, 2006
Sounds like you might want to submit something to

Jordan Send private email
Monday, August 21, 2006
i'll pay fifteen dollars for it!
leon bambrick Send private email
Monday, August 21, 2006
You might want to check out Koha

This is a complete, scaleable open-source library system targeted at puiblic and academic libraries, and it requires a fairly high level of work to set up.

Commercial systems, like thos from Inmagic run from expensive to very expensive..
Cary Gordon Send private email
Monday, August 21, 2006
I use ReaderWare and a CueCat (last time I checked they had a supply of those that they'll ship along with the ReaderWare CD for a little extra).  The main thing to bear in mind is that some ISBNs are not tracked in online databases and there are occasional cases of multiple works sharing the same ISBN, so you have to scan the books in, track them down, and then go back and re-verify your library to make sure the scan was accurate.  (Doing so on the fly would take too long; you can scan books much faster than you can look up the ISBN data on the Web.)  It's the sort of thing a couple of interns could make short work of (one taking books down and scanning them, one doing verifying and reshelving as the results come out).
Max Kaehn Send private email
Monday, August 21, 2006
What about dividing the collection based on the ISBN?  Figure out a formula, like dividing the collection up by the first two digits (or the last two digits).  Sample the ISBNs, determine the correct spacing of keys, pick which keys go into which shelves, and label the shelves.  These are your sort buckets.

Do an in-place sort by clearing enough space in each "bucket" to work.  For each book, before re-shelving, scan the barcode, or enter the ISBN.  (It's not that much faster to scan, really, because ISBNs don't always map to your book if you're using the free online databases.) 

Repeat until all the books are sorted.

Later, stock your database with information from amazon or,  using a screen scraper.  (Or, just list them all in with obscenely high prices, which is what I did for a while.)

The main downer to sorting by ISBN is that the browseability of the collection goes out the window.  (I ended up re-sorting by topic and size of the book.  Like a bookstore does.  It's virtually necessary to establish your own taxonomy, because personal collections get deep into single subjects, while general taxonomies tend to sacrifice detail for breadth.)

I did this for around 300 books one day, and it was okay.  I could see it scaling to around 2,000 books, but falling apart after that.
John Kawakami Send private email
Monday, August 21, 2006
I realize with a big hammer that everything looks like a nail, but wouldn't some simple organization and one afternoon of painful sorting solve this problem without software/hardware?

Break up the books into some logical groupings, marked by a label maker, and then alphabetize them on the shelves.  Or not, if you don't have enough.

If you need to go *look up* the location of the book and then find it, that won't be any faster than walking to the shelves and saying "DNS Server... D... D shelf... hrmmm.. here we go!"
Monday, August 21, 2006
In summary, no existing product matches this simple requirement. Particularly the "print the label while I stand there" requirement, which is both the hardest and most important.

Sounds like a product opportunity for Brother, the OfficeLibrarian  or somesuch.

Sturdy plastic handheld scanner. You turn it on, it finds your office WiFi network. You scan a book. It sends the data to a brother Web server, which sends back information for printing the label. (For the premium model, the label is embedded with a unique  RFID chip.)

When you want to access your book db, you log on to the brother Web site. Enter an access number printed prominently on the handheld scanner. You have access to your bookdb, exportable to CSV, Excel, etc., accessible via SOAP, XMLRPC for custom Web apps. Or use the brother-provided simple list, search, delete functionality.

(You can merge the dbs of multiple hand scanners if you have them.)

The hand scanner has large CHECK OUT and RETURN BOOK buttons if you want to keep track of items being in or out of the lib. (Premium RFID version comes with a proximity detector for this).

This would be a useful product for virtually any shared physical media library, actually.
a Hack
Monday, August 21, 2006
Joel, I know there is not a single software that can meet all your requirements.

We have this Web/Desktop library software - Creatisoft Online Library. It catalogs both phisical books and ebooks. The online feature is a big plus for a company-wide library. I know it can't meet all your requirements, but you might be interested after you check it out:
Anthony Send private email
Monday, August 21, 2006
For the barcode reader I would get a cat barcode reader.  It literally looks like a cat, and can be easily sodered to work without the program for 5 bucks.  As for the data base I am cheap, I create my own in mySql and add the info there.  Check with amazon to fill in missing pieces.
Coldguy Send private email
Monday, August 21, 2006
Recommended reading:

Andrew Plotkin's "The Book-Scanning Project"
Monday, August 21, 2006
You could use MediaMan ( and a CueCat to import all your books. I added ~250-300 in a couple hours from all over the house this way.

Then export the file as csv and import into LibraryThing, and/or export to Excel and use to print labels.

Another user suggested SourceForge for a couple apps. There's a web-based CueCat scan - - which looks like you could scan to obtain the ISBNs.
Tony A Send private email
Monday, August 21, 2006
"Secrets from Library School"

ok, the first thing we learned in cataloguing class was that everyone organizes information / stuff in different ways.  everyone.  different.  the best classification system is the one that works for the intended purpose.

in this case, it sounds like you're looking for 2 elements: 

1. ordering / co-location
2. find-ability

to my mind, the instant library code spine label sounds like a nice intricate hack, but it's unnecessary.  yes, it's fabu to know if book A is in the collection down the hall, but heck, it's down the hall.  the LC classification is designed for massive academic collections, and unless you're intending to share your catalogue with the rest of us, it's not really worth the effort. 

okay.  here's the beef. 

my recommendation is to sort the collection into categories (languages, applications, system administration, etc.) and then develop your own classification system.  (yes, your library can have it's own !)  each topic gets a colour, with all books tagged with same colour getting co-located in consecutive number order.  within each topic, set up a schedule, pre-assigning a number range.  i.e. books on pascal are green 000-100, books on C++ are green 100-199, books on Java are green 200-299, etc.  if this sort of reminds you of the dewey decimal system, well ...

if you end up with more than 10 ranges in a colour, go to 4 digits.  with the number of books you already have, you can determine how wide to make these ranges.  you are guaranteed to underestimate, but if you've allowed enough padding, by the time it becomes a problem, you'll be able to afford a professional librarian. 

find-ability is dicier.  a basic excel spreadsheet / access database with author / title / year matched with the shelving colour-# combo should suffice.  if you want to retrieve the info from amazon with the barcode scanning trick, great, but it'd almost be faster to have a pen-size text-scanner to read in those elements while you have the book in hand.  once you have the colour-# combo, you can go to the right spot in the library.   

however, what happens if the book is not on the shelf or in the wrong place ?  the rfid suggestions are nice, but again, likely overkill for your needs.  my solution for my small library has been to go lo-tech and use shelf cards that get filled out and put into the gap where the book was taken.  this ensures that if the book is available in-house, you can figure out who's office to dig thru to get it. 

for stuff in the wrong place, you need to do some ongoing maintenance.  get someone detail-oriented to regularly underake what's called a 'shelf read', that is, going along a shelf making sure that each book is in the right place according to the ordering scheme.  if a book is out of place, it will stand out clearly.  if someone has had the nerve to take a book out without filling out a shelf card, a quick check in your impromptu catalogue for the colour-# combo will tell you which book is missing.  whether you threaten the culprit with a month of shelf-reading duties is up to you ;) 

so, credits to the previous posters whose ideas i've incorporated into this procedure (yes, i did read *all* of them before posting).  keep in mind that my suggestions fit with my understanding of your needs and also what helps me find stuff as a user - ymmv.  however, i would definitely be interested in what final solution you end up choosing to implement.
senatorhung Send private email
Monday, August 21, 2006
Book Collector

Very nice and useable. You can also order the optional barcode reader.
Mike Wolfe Send private email
Monday, August 21, 2006
Jeff Duntemann ( or ) recommends Readerware, and has a review or two on his blog, most recently at

Jeff's blog is well worth a regular visit, and his experiences with book cataloguing seem on par with what you're asking for here, Joel.
Eric TF Bat Send private email
Monday, August 21, 2006
I don't know about this but it does remind me of an idea I had this morning... I was trying to decide whether to take one of my programming reference books to work or not (not because I could just see me leaving at work and needing it at home!) and I thought wouldn't it be nice to not have to.

Now I am a fan of paper books not software books, but I thought wouldn't it be nice if by purchasing a book you got a license to view it online somewhere too.

So that wherever you happen to be you could refer to that technical book of yours... Now that would be nice.
Alex James Send private email
Monday, August 21, 2006
I am quite off topic, but i just realized what human computation means. It's easier to ask a natural language question on a blog and then wait for an answer than actually reformulate this question on google.
this reminds me of the recent talks on this topic :

Monday, August 21, 2006
I am using Readerware

They sent me a Cue Cat barcode scanner for free with the software.  We have most of our household library in it at this point.  It tries to find Dewey Decimal and Library of Congress info - it's more successful on the newer books, I've had to find various ways to find it on the older books.

Here's a listing of suggestions of various ways to find the info when it doesn't come up with the ISBN

I don't know if it can print out little stickers, though.  I've been writing my own.  But then I don't have hardware that could print out little stickers.
Laura Gallagher Send private email
Monday, August 21, 2006
Another one for Delicious Monster.

If you don't have a Mac, buy one.
Ben Atkin
Monday, August 21, 2006
Hi Joel,

I am the developer behind , a web based application designed to help it’s members keep track of their books.  It originally came about because myself and a friend had a similar problem that you are facing and wanted online access to our inventory so we could stop buying books that we already owned.

With you can add your books then assign them properties, such as location, category, description, notes and if the book is loan able etc. 

Locations and categories are both user definable and hierarchical, so for example if you wanted you could have a location as Office->Bookcase 1->Shelf 2.  The need for the little sticker is almost eliminated at this point as the location and book title are a quick way to find it, and if you don’t remember what it looks like then you can click on the Amazon details link to see a picture (or even add your own photos of the book if you wish). doesn’t currently directly support barcode readers but if you setup windows accessibility you can have the barcode reader send the ISBN as a keyboard input and most readers can append a CR on the end which on the Add Book page initiates the ISBN lookup.  You don’t need any special scanner to do this, I have a old £5 from eBay barcode reader that works with this method.

You can also add friends to your account so that they can view what books you have and to help you swap your books with them.

So for example when you have catalogued your books your developers can open their own account and can be assigned as friends to your library account, they can then (if they wish) enter their own personal books to their accounts.  When your developers wish to find a book they go to the members home page, enter the title, author or ISBN into one of the quick search boxes and the results returned will be from their account, any friends they have setup (in this case your company library) and possible from Amazon as well (the quick search is configurable as to what data sets are returned).

There is a facility on to have loans between members if you wish to manage the borrowing of books, however in your situation this may be too much of an over head for your team as a few people have already pointed out.  I personally use this feature to track books I take to work (I have a home account and a work account)

Naturally lookups to and are facilitated to help find the book if you don’t own it or wish to find more information about the book.  However at this point in time no MARC lookup is available, it is however on the long list of things to add.

One feature you might like which I am adding at present is extending the RSS feeds that are available.  One of the new feeds will be a book mark feed, whereby each member can have their bookmark list available as a RSS feed, this can then be consumed on their blogs etc, so letting the blog readers know what books the author is currently reading.  I’m sure many of us would be interested to see what books you are currently reading :-). is intended to help people like ourselves, I am always looking to improve and being a developer I love coding so if anybody has a feature request they think would help members then I will be more than happy to look into implementing it and adding it to the long list of things I already have planned.

Please feel free to try out and drop me a line if you have any questions or comments – all feedback is greatly appreciated.
Stephen Harrison Send private email
Monday, August 21, 2006

Thokbook looks like it might do some of that stuff.
Marcus Wynwood Send private email
Monday, August 21, 2006

Or maybe mCatalog would be better...
Marcus Wynwood Send private email
Monday, August 21, 2006
What Joel needs is this:

1. The software will get the description of the book and store it in a databse. It will also issue a unique ID for each book.
2. This ID can be entered into a small gadget that will be physically attached to each book.
3. When joel searches the book name, the software through an attached peripheral "searches" for the book using the ID.
4. The gadget attached to the book beeps! Joel goes and picks it up.


This way, he only needs to ensure that the books are on a shelf. Saves the trouble of having to file them correctly.
Monday, August 21, 2006
Why don't you hire a librarian?

Seriously, someone who is reasonably techo, who has a "process orientation", and is good at details. 

You keep saying your people are the true assets in your company, not the technology, so why all the emphasis solely on a technological solution? Technology + wetware wins each time.
Nick Murray Send private email
Monday, August 21, 2006
I agree with 2 things that people have said:

For software, I'd also recommend Readerware ( ). Reasonable price, works well, and can fetch book information from a whole bunch of online sites.  Also real good support, direct from the author.  Extensions are available for music & video collections, too.

But if your problem is finding books that you know are in the library (or are on someones desk), this is more a procedural issue than anything else. 

You need to make a couple procedures so easy that everyone will do them each time. 
 - a procedure to check out a book to use at your desk.
 - a procedure to return a book, and put it back onto the right shelf.  Programmers are notoriously lazy about such things; they tend to rationalize that they'll only use the book for an afternoon or two, and that isn't worth the effort of checking it out. 

You can get various electronic systems, but for a small library with just a few users, I'd suggest starting with a simple manual system.

1. Divide the Library into sections (using any logical grouping you want) and number or label the shelves prominentantly.

2. Paste a card pocket into the back cover of each book.

3. Prepare a card for each book, with the book title & author, and a BIG indication of which shelf it goes on.  You might even color code the cards.

4. Rather than have people sign-out on the cards (like libraries used to), just put a shelf near the door with mail-sorting type boxes, labeled for each library user.

5. Then the procedure for check-out is: take the card out of the pocket in the book, and put it in your own box.
The procedure for check-in is: look thru your box to find the card for this book, put the card back in the book, and put the book on whatever shelf is indicated by the card.

This is simple enough that even programmers can do it easily. (Might even work for managers, too.)

The procedure to find out who has a book that isn't on the shelf is not much harder; you just have to look thru peoples boxes until you find the card in somebody's box, then go get the book from them.  With only a few users, that'll work.
Tim Bonham Send private email
Tuesday, August 22, 2006
on a slight tangent.. there is this

its more of a complete communal library system where you have check-ins and out and stuff.

we use it at the office.
interested parties can enter what collections that have..
and then you can request to borrow otehr poeples items for periods of time..

it works quite well.. and has lookups from imdb, cddb, amazon etc..
David Pyke Send private email
Tuesday, August 22, 2006
You could always put the books in order once and for all.  Then once in order, hey, they might be easier to find.
Tuesday, August 22, 2006
Christopher Milton Send private email
Tuesday, August 22, 2006
I see a lot of cataloging suggestions that require classification of the subject. But this is really difficult with software books. I mean: take a book on SOA. Is this XML? Web Services? Java? Software architecture? Business?

Joel's requirements don't include categorization, just findability. My take: just assign the books an index number in the order you scan 'em, sort them by index number and do the rest like keywords and such in software.

Have a look at Delicious Library. Talk to its developers about getting LC info and exporting to XML. I'm sure they'll love the idea.
Arthur van der Harg Send private email
Tuesday, August 22, 2006
I ended up using code for cleaning up the ISBN data and writing my own python script to retrive the information from the Amazon (as he uses HTML scraping, yuk). The script I wrote makes simple REST call's to Amazon web services ( and stores them in CVS format.
I guess rest of the things like printing a card lable, etc can be easily scripted.

I evaluated couple of existing opensource library cataloging system  and they were an overkill for me. Maybe you can try them out. But anyways to fill the DB you will need to do what I ended up doing :)
bhatti Send private email
Tuesday, August 22, 2006
There's a windows clone of Delicious Library that does everything you want:
Bruno Figueiredo Send private email
Tuesday, August 22, 2006
... Or you could give up on the library idea entirely.

Stop having people check things in and out of a library and give each staffer $1,000 a year to buy whatever books he or she needs.  Make it a defined benefit.

The staffer then _OWNS_ the books.

If you do this, the books that stay on the shelves will be the good ones, the ones the staffers use every day.  Invariably, the newbies will pick up, ask to borrow, and purchase for themselves the new ones.

Eliminating the signal-to-noise ratio of the bad books makes this system worth the investment.

Just my $0.02 ...
Matthew Heusser Send private email
Tuesday, August 22, 2006
The best way to find such a special software, is to look what others did in the same situation. I know big state libraries, sometimes have, their own software to handle large amount of books. Those libraries may be willing to sell their software.

Thank you for sharing this story with me !
Maria making pictures Send private email
Tuesday, August 22, 2006
Joel, I think you should go for one of the CueCat-based solutions. For reasons of irony alone.

(For people who don't get what I mean see
Daniel S
Tuesday, August 22, 2006
Check out AVCataloger ( as it allows you to catalog Books, Videos, Music, AND even your software (registration numbers, computers that have a particular software app installed, etc).
Neal Culiner Send private email
Tuesday, August 22, 2006
My favourite freeware library tool for Mac OS X is simply called Books. It's very easy to use and supports plugins that export to J2ML and to HTML. Well worth a look, in my opinion:

It doesn't have barcode-scanning support, but if you enter the ISBN number manually then it can retrieve data for a wide range of sources, including Amazon, the Library of Congress, and a long list of national libraries in countries around the world.

And it's open source. We use it at work to manage our department library of (mostly programming) books and it works well for our needs.
Michael Louka Send private email
Tuesday, August 22, 2006
I use reader which has the ability to connect to the library of congress + a number of other locations.

Windows and Mac version. There is a demo version limits number of books you can enter.

It has a server option for storing data so all computers could check the catalog.

Works with many different pen and hand scanners.

The interface could be better. I have it on my list to write my own, but it is low on the list right now.
Brian Chirgwin
Tuesday, August 22, 2006
For the record,
I downloaded both BookPedia and Delicious Monster and neither worked well at all.  DM kept telling me it couldn't find the book.  Sometimes, it would show me what it "might" be, but then when I agreed that was the correct book, it still refused to get the information from Amazon (even though it looked like it already had most of it).  And adding a book manually was a big pain in the patootie.

I couldn't get BookPedia's iSight scanning to register any of the ISBN UPCs.  Period.

So, I gave up.  Thanks anyway, folks.

Peter Risser Send private email
Tuesday, August 22, 2006

Keep in mind that any program that pulls data from Amazon might be in violation of Amazon's web services terms of service. Amazon does not let you use their information just like that - the most you can do is only cache it for a certain amount of time. They still own the data.
Yakov Shafranovich Send private email
Tuesday, August 22, 2006
Hire an autistic that has amazing memory. He could learn the placement of every book. And if you hire the right one he could tell you page numbers for certain topics.
Joseph J Mele Send private email
Tuesday, August 22, 2006

Have you thought about an Open source software?

Koha is released under the GNU General Public License.It's actually an Integrated Library System (ILS) but maybe you can customise it.
Inma, the librarian Send private email
Tuesday, August 22, 2006
Can you use one of the recommended applications to scan the books in, download the Library of Congress information, and then run and automator type script to export the information and print the label?

Joshua Foster Send private email
Tuesday, August 22, 2006
Just as curious side note: Delicious Monster is a small software company that has no office - they literally work in a coffeehouse in Seattle.  Semi-legendary around here because all of us cubicle jockeys are envious.
John Methot Send private email
Tuesday, August 22, 2006
I've used this software

Tuesday, August 22, 2006
I've used eLibPro

It's free :)

It doesn't print labels, but it does keep the data in a fairly straightforward MS-Access database against which you can (and I have) write reports.

I haven't used this software in a few years but it seems to still be around.

Dewey Sasser Send private email
Tuesday, August 22, 2006
I am totally against sorting alphabetically.  Sorting sequentially by simple numbers, starting with 0 rather than 1 to be geeky, is a much better idea IF THE READER OF THE BOOK IS PUTTING THE BOOK BACK (perhaps a robot is doing this, which would change things, um, ever so slightly.  This is because programmers are more number-oriented than letter-oriented (in general, of course).  With alphabetization, even though save on the expense of labeling your items, you a) first have to locate a title with your eyes b) figure out what the first letter is, c) find that section d) go read the second letter e) go find the subsection which will INVOLVE HAVING TO PARSE LOTS OF TITLES which aren't printed on the books in any standard way.

I vote that any suggestion for sorting alphabetically be removed immediately from this discussion thread!  Numbers are easiser to read.
Chris Tantillo Send private email
Tuesday, August 22, 2006

This company makes all kinds of software to go along with their scanner.  CLaims to do LoC lookups, print tags, exports to HTML, and has a cool handheld scanner.
Bazily Bezereko Send private email
Tuesday, August 22, 2006
I know you probably aren't interested in full-blown library software, but this one does everything in your requirements, including printing labels (PC Platform).

  Concourse and EZCat to fetch Library of Congress records.  I just set one up in a small library nearby.
Tuesday, August 22, 2006
There seems to be a lot of library software available, many of which will connect to the Library of Congress and print labels.
Greg Bray Send private email
Tuesday, August 22, 2006
Readerware is what I have at home.  They do apackage with ascanner fro, IIRC, $98.

Works very well
Graham Send private email
Tuesday, August 22, 2006
"Book Collector" at is available for both Windows and Mac. I am a satisfied user of the Windows program, although I only use a small portion of its functionality.
Barbara Bennett Send private email
Tuesday, August 22, 2006
Joel -

You've stumbled into an interesting paradox.

Library folks have been filing/organizing stuff for I'd assume something like 5,000+ years.  (Clearly the folks who put up the pyramids had some means of documenting/organizing their plans).

But physical things (with the minor exception of multiple copies of the same book) can only be in a single place at any given time.

Computer folks SHOULD be massively interested in the basic underlying principles that catalog librarians work with ("Gee... I've got a thingamee here... how's it LIKE the stuff already in my collection?") vs how computer types "file"... give it a name unique within this directory structure & forget about the fact you probably already have multiple copies scattered around in different directories & with different names.

As far as I've been able to find (& I've been poking at this for 10+ years), there is minimal to no cross-fertilization between librarians & computer folks.

I use Delicious Library & like it.  The inadequacies you point out SHOULD be on the list for future enhancements.

I'm tickled that you admit you've gotten to the point where it's simply easier to buy another copy than find what you already have... hmmmmm... sounds like the software reuse Gordian knot.
David Eddy Send private email
Tuesday, August 22, 2006
funnily enough, one of today's postings on slaw:
discusses a new york times editorial
about how the new york public library is moving from its own homegrown system to LC. 

you've cited the advantage of LC as being able to co-locate books with a similar focus.  the posters who have recommended just using sequential numbers and throwing them on the shelves have missed the magical serendipitous effect of opening a book, not finding what you want in it, and then noticing its neighbour that actually does cover what you need. 

however, for your situation, i still think that it's overkill to go to LC.  you can still get the advantages of co-location without the hassle of getting LC and the spine labels (i have to do this manually - go to shelf, look where book should go, go to classification binder to get exact number, type number in to word template, print off label on standard book label, paste onto book).  i could download a MARC record from another library, but then it might not fit properly within my particular collection.  even within my own library (which uses the KF modified system discussed in the slaw article), i've had to gerry-rig my own section for stuff about nunavut since no other library will have as much on the topic as i do.

my earlier suggestion of colour-coding topic areas and setting up your own mini-classification system should be enough to meet your requirements for the forseeable future.  a colour-# system will just be easier for newbies to catch onto and will be easier to maintain than LC.   

i 2d the poster who commented that this type of blog-audience expertise does indeed seem to trump a google search. 

also, regarding the idea of a disconnect between librarians / classification specialists and computers, i must say that this divide is being lessened by an influx of librarians who recognize the benefits of computer technology to enhancing the usability of their collections.  however, this is not a new thing as electronic library catalogues and online databases, were already prevalent by the mid-1980's.   

sadly, it is the computer science side (and to be frank, society in general) that seems to not recognize the value that librarians and library science can bring to the table.  the bunned-hair shushing librarian has pretty much gone the way of the dodo, but as rodney dangerfield would say, we still get no respect, no matter how many blogs we maintain or wireless networks we install.
senatorhung Send private email
Tuesday, August 22, 2006
I use Readerware ( with a CueCat (about $9 off of eBay) for everything but the labels. Instead of labels, I put my books in 66 qt storage boxes that I number and record in the Readerware database. The scanning and cataloging goes very fast using the CueCat. I can do about 100 books in about 5 minutes.
Perry S.
Tuesday, August 22, 2006
I'd propose a simple solution using not Delicious Library) tagging which requires users to browse books via a web interface and leaves the physical placement of the books up to the readers.

Create a top-level tag: FogCreekBooks. All books in your library will have this tag.

Create a set of tags for each shelving unit: Unit1, Unit2, Unit3 etc. All books will have one of these tags.

Create a tag for each horizontal shelf: BottomShelf, MiddleShelf, TopShelf etc. (Assumes multiple shelving units have aligned shelves) All books wil have one of these tags.

Create a tag for the topics this book falls into: C, Java etc. A book in the collection. A book may have several of these tags.

You can go to the Amazon page for the book when it is acquired. Add the URL to FogCreek with the following tags:

<FogCreekBooks, Unit1, TopShelf, Java, C>

This way you can pivot the book collection around any of the criteria. You can search by title if you know the name of the book, and then look for the book in Unit1 on the TopShelf.

Assuming you have only applied the topic tags to book URL's, you can view the colection according to topic and check the location of any similar books.

This system can scale to multiple copies of the same book, if you add multiple UnitX and Shelf tags per book URL.

This system can only succeed if you put books back on its original unit/shelf or update the unit & shelf tags if you move the book.
Jeremy de Souza Send private email
Tuesday, August 22, 2006
A quick search turned up They support LoC matching (with an add on utility), bar code scanning, label printing, etc.
Eric Miller Send private email
Tuesday, August 22, 2006
Ouh it's not that simple. You must check your books first. If you got ton of books, and if it's easier to buy one from amazon rather that finding it on a shelf then you must have some books twice...
Second point: on a computing point of view, books are really quickly unuseful (too old) so check your lib and when you see something like "Microsoft Visual Studio 2003" you could think about selling this book or throwing it.
Third point you must know what you got in this library by themes. For example you got some books on Linux, Lisp, DotNet etc...Pick them up so that they will be in the same shelf.
Finally after that you got a clean library with fresh books (ie > 2003, but some are unperissable like SICP for example) by themes.
And now only you could think about a soft to help you. Koha seems to be a good free-thing to set up a catalog so that you could bring a bright search interface.
I dont think that finding books by ISBN thx to the bar code is a good thing...

Finally all that is a work...Say librarist...but the one who know computing rather than good so that he could tidy up and cleaning your lib without throwing the-computing-book-without-you-cant-live...
That's work...The last time I've done such a thing (tidying + cleaning + computing etc...) a lib it takes me 5 months and when it's done you MUST have someone to follow that carefully...
So it's not only about finding the good and simple software...
Guillaume R. Send private email
Wednesday, August 23, 2006
Oh I forgot, here is an example of what you could achieve with Koha:
If you really want to read barcode and find book thanks to that :
Let's look at
Guillaume R. Send private email
Wednesday, August 23, 2006
MediaMan (, mentioned before, also has a Library of Congress Import Wizard.
Bjorn Verryt Send private email
Wednesday, August 23, 2006
Another vote for BookCAT here,  I also use their CATraxx, they are all great!!
Craig Chambers
Wednesday, August 23, 2006
You might want to look at how you local k1-6 school library does this.

It's my guess that any sort of effective management of your collection is probably more expensive than just buying new copies as needed.

So what if you end up with a copy of 'Code complete' or 'On Lisp' in every office, as long as your staff are productive. Books are cheap.
Stephen De Gabrielle Send private email
Wednesday, August 23, 2006
I'm surprised no one has mentioned ResourceMate.
It is a commercial library product. Maybe no one mentioned it because it is $195? It should do everything you need and more.
Two of the numerous features:
 # Import full cataloguing data from the free Library of Congress web incredible time-saver! (More info)
 # Prints cards and labels for those libraries with card catalogues. Or print just spine labels only. (Supported cards and labels)
Michael Sprague Send private email
Wednesday, August 23, 2006
++ Book Collector at

Their printed output can be customized via XSLT templates. It supports Library of Congress lookups, and works both with it's own supported scanner (offered by and any other keyboard-wedge type scanner.

(You can also customize the View via XSLT.)

Wednesday, August 23, 2006
Since the Mac software doesn't work, let me add my voice to the ones suggesting CollectorZ. I was going to before, but I saw a couple of people suggesting that before.

But, here's my vote. I haven't used the Book Collector, but I have been using the Movie Collector for some time, and I'm very satisfied with it.

It comes with an extensive list of Internet sites to get information from, they are responsive to people asking for new sites, and you can pretty much customize the output anyway you want, besides the many templates that come with it. And it accepts bar code readers.

Besides that, it can control loans, number of copies, physical state and various other useful information.
Daniel Sobral Send private email
Wednesday, August 23, 2006
Interesting how some added check-in/check-out to the requirements. Spolsky didn't ask for that. Spolsky is just trying to keep duplicate books from being purchased. If a book is in the system but not on the shelf, a borrower could always use the office mail reflector to ask: "[FOGCREEK] Who has Mythical Man Month?"

There were comments about finding books on the shelf, with one suggestion that the books be tagged with serial numbers and that the tag be used to file the book. I liked that idea, but if you tag by ISBN you can file by ascending ISBN. If you tag by Dewey decimal number you can file by that, and that is what the system was designed for. Of course all Joel's books will have the same first 6 digits of Dewey number.
Mike Enright Send private email
Wednesday, August 23, 2006
We were discussing the simple library software thing on Crazy on Tap.  See the first topic.
Bot Berlin Send private email
Wednesday, August 23, 2006
Henry Stunt Send private email
Thursday, August 24, 2006
The problem as stated is related to another problem, well-solved by supply chain management.  It's called a stockroom cycle count, and what you describe as a need is what a cycle count does (only your count is likely one of each rather than n-number of items in a bin).

Supply chain departments solve this by using barcode scanning handhelds with industrial-strength label printers.  The database lookup goes to an EAM product like Maximo or Datastream or even SAP.

You can buy an Intermec or Symbol device with a thermal printer attached.  I'm not certain you can do a label right from there.  What you'd end up needing is a laptop with wireless connectivity, a wedge scanner, and a cheap Smart Label Printer.  It would probably take one of your hotshot developers about a day to code the basic workflow, maybe two more days to polish it off.

Your workflow would be:
  1) hit the book;
  2) hit the location (you DID plan on barcoding the shelves and their locations, right?)
  3) lookup the book (and verify results, optionally save to your database)
  4) print the spine label and attach

You can probably just take a roll of preprinted barcode labels and stick them onto your shelves, then scan and edit the location as you go.

When you go to re-org the books:
    1) hit the book;
    2) hit the location
    3) save record

I know you asked for library software, but you don't really own a library.  I'm sure it's an impressive book collection but it doesn't number into the tens of thousands.

Christopher Send private email
Thursday, August 24, 2006
One possible solution I hesitate to recommend in Endnote (  it's mainly meant for writing technical documents requiring referencing.  It can access the Library of Congress, you can customize output which you can use to create labels (I did this a lot for my research a few years back) and at one time I did use it to create labels for book spines.  It also can reference PDF and online versions of documents and books.  Cross platform as well (although the mac version has been buggy and lagging behind).
Thomas Moore Send private email
Thursday, August 24, 2006
Seiko Instruments offers a whole bunch of smart label printer drivers for Mac OS X ( ).

Another software package you might want to check out is Media Collector (cf. )!
Kevin Goppel Send private email
Thursday, August 24, 2006
Let's me take a shot at it...

For computerized management, how about going to and use wishlist as your virtual bookshelf:

1. Create a dummy account and register all your books. For registration, use barcode and AWS. I assume simple cli-client would do.
2. Label your book by color and put that info in comment (you can code your client to assign that and print colored label).
3. You can of course use this wishlist for purchase management.

When you buy a book, just check this wishlist. It'll warn you if it's a duplicate. By using mobile phone, you can check it from anywhere. Interface like "B@rcode Review" might be cool.

And for physical book management,

- Label your book with color.
- Annouce that if bookshelf is kept (color-)sorted during a month, you'll get a extra bonus (not just $$$, but something nice).

By having a colored label, you can apply divide-and-conquer method to this book finding problem - even if there's 10 bookshelves, you just need to look into one if 10 colors are used. And as it's hard to get randomized, it's more rubust than strict ordering/categorizing method.

For check-in/out management, barcode is currently the most cost-effective way. However, that's overkill for this small-scale task (RFID would be a massacre :-). Just reward people for keeping it clean, and make the task easy by doing only color-based categorizing. People will help out if task is simple enough and expected reward is more welcoming than randomized bookshelf.
Taisuke Yamada
Thursday, August 24, 2006
I'll second, no, third, no ... add my voice for Readerware.

I like it -- an intuitive interface and it works well, even on obscure old paperbacks.  The company espouses a nice philosophy on their site.

I would say that the Java-based aspect of it makes it annoyingly slow, but who hasn't heard that rant before?  (It's almost unbearable on an iBook with a 700 MHz processor and 128 MB of RAM, but tolerable on a Dell 1.5 GHz/256 MB, running Win2K.)

Joel, if you want a CueCat for free, and Readerware is out of them, send me an email.  I have two.  I'll consider the gift of one of them (and the postage) a small donation in return for your fabulous writing.
Brendan Keefe Send private email
Thursday, August 24, 2006
I had a little email conversation on this topic with Mike Lee of Delicious Monster. Probably interesting for others too, so I asked and got his permission to add his replies to this discussion:

"Yeah we read his blog post on the recommendation of many a fan. He, like many people, have the wrong idea about the Library of Congress system. Unlike ISBNs, EANs, and ASINs, LCCNs are not universally unique. Different libraries have different numbers for the same item. Not only that, but the Congress in Library of Congress isn't meaningless. The numbering scheme may encompass all of knowledge, but it is extremely biased toward certain subjects at the expense of others. For example, military science is given much greater weight and classification than all of fiction, and fiction is organized by country rather than, say, genre. Still, some people want to use LCCN to organize their libraries, and we're working on some LCCN support, as well as Dewey Decimal, in Delicious Library 2."


"By all means [post this], but I should offer a clarification. I wrote a letter to Joel himself, and never being one to shoot my mouth off without checking my facts, I seem to have conflated the Library of Congress Classification with the Library of Congress Control Number. The LCCN may be universally unique. Truth be told I don't know that much about the LCCN because I've never actually seen one. Libraries don't use LCCNs to organize books; they use them to exchange information about books ( I understand it. Any MIS grads feel free to correct me.) When you're finding a book on a shelf, that's the Library of Congress Classification (Number? Code?). In other words, everywhere I wrote LCCN, I really meant LCC."

So maybe if someone can explain the Purpose and Use of LCCNs and LCCs we'll all be enlightened. And they may even be properly implemented in DL 2.0 :-)
Arthur van der Harg Send private email
Thursday, August 24, 2006
You may want to try STACKS, which allows you to connect to the Library of Congress or any other libraries.  Easy to use, and stable!
D. Bruce Moore Send private email
Thursday, August 24, 2006
I have a simular problem to Joel with my home library of books although I don't have the requirement to use the Library of Congress number nor to print labels.  But I do want to be able to use a barcode reader to input the majority of books with the exception of those that have no barcodes (all of my hardcover books from the Science Fiction Book Club that I was a member of a long, long time ago).  As a result I have taken a look at a number of the Windows programs suggested here including:

MediaMan:  Excellent import.  The only one of the programs that could successfully find the books that I purchased from Amazon in the last couple of years.  Export CSV, doesn't work!!  No longer works properly after installing Internet Explorer 7 RC 1 (lot's of script errors)!!

Readerware:  Slow and unsuccessfull ISBN import.  Nice tabular display.  Excellent export options.  Export CSV is so formatted that I can convert it into XML with an AWK script that is only 864 bytes long (with lot's of white space).

CollectorZ - Book Collector:  Slow and only partially successfull ISBN import.

eLibPro:  Unsuccessfull ISBN import.

So I don't know what Joel can use for a solution for his requirements neither do I know what I can use successfully.  For IMPORT of barcode ISBN to DATA only MediaMan was able to find all of the books in my Amazon purchases over the last two years and he did it fairly quickly too.  But how do I get this data accessable to my PocketPC and web page when the CSV output does not work?

Why isn't there any open source PHP / MySQL book library solution as there is for bug tracking like Mantis or BugZilla?

I am definately interested to see what Joel ends up using to achieve his goal of cataloging his library of books.
Robert H. Morrison Send private email
Friday, August 25, 2006
There's two problems here, not one.

The first is maintaining the catalog.  There are established solutions for it, so pick one.

The other is the startup process, i.e. tagging all of your collection.  This has established solutions in other spaces.

I'm really just astonished at the inflexibility of thinking on this.  All I see are single-source solutions, as if everyone has been brainwashed into believing that COTS is the answer.

Christopher Send private email
Friday, August 25, 2006
=> Christopher said <=

"The first is maintaining the catalog.  There are established solutions for it, so pick one."

"The other is the startup process, i.e. tagging all of your collection.  This has established solutions in other spaces."

How about providing some links to some of these "established solutions" for those poor uninformed individuals amoung us (such as myself) that don't know to which solutions you are referring to.
Robert H. Morrison Send private email
Friday, August 25, 2006
I read about half or maybe more of the above comments and they seem to fumble around the area of how to place the books back where they belong.  I was thinking that for my own use at home I sort my books by shelf, granted I don't really have that much.  I was thinking that this idea could be extended though into something that is a mix of organisation without being too much of a hassle for the reader that want to put a book back. 

What I was thinking is you would need to widen what is considered an acceptable place to put the book back in.  You don't really care that Java book #1 is before Java book #2, what you really care about is that the Java books are together. 

Create a beginning and end marker for each section you want to define.  This could be a shelf or an entire bookcase, depending upon the sections and how small they are.  When someone wants a Java book they go to the Java section then visually find the book they need.  Combine this with scanned data and they will know if they book they need is supposed to be in the library. 

If they can't find it someone has it.  You can either ask around, or develope a check-in, check-out system.

In any case this method would reduce the likelyhood that people would get lazy and not put a book back.  To simplify this more you could mix is some sort of alpha-numeric code or color code to assign to each section and label the books with the code.

Brooke Jackson Send private email
Friday, August 25, 2006
There were far too many posts to read them all, so forgive me if this post is a duplicate of someone else's.

Finding a technical solution for cataloging your library is only part of the solution - the least important part, actually.

If you have such a massive collection, you need to have a system of physical filing to make the books easily accessible.  And once you've created a workable physical filing system, the categorization becomes less important.

Yes, the computerized records do help if you don't know which books contain the content you're searching for; but if you already have a title or author, the computer is less beneficial than a well-designed and maintained filing system.
Jack Eisenberg Send private email
Monday, August 28, 2006
You can take the <a href="">Amazon Starter Kit</a> and elaborate it to fit your needs.
Yuval Ararat Send private email
Tuesday, August 29, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz