Archive for the ‘Uncategorized’ Category

Wednesday, March 13th, 2013

New “Check Library” button for LTFL libraries

We’ve just introduced an exciting new LibraryThing for Libraries product, called the “Check Library” button.

In brief, the “Check Library” button is a “bookmarklet” that libraries can give to their patrons. It allows patrons to check if your library has a book while on another website, like or anywhere.

We think it’s nifty and useful—a great way to boost circulation and patron happiness. We really want it out there, however, so every current LibraryThing for Libraries customer gets it for free!

60-Second Video

Here’s a 60-second video about it. It’s really all you need. The video is general, but we use the High Plains Library District’s button as an example.

Other examples:

Not Using LTFL?

The “Check Library” bookmarklet comes with LibraryThing for Libraries. If you don’t use LibraryThing for Libraries but want your own “Check Library” feature, email We’d love to give it to you, and won’t charge an arm and a leg.

Details for the Detail-Oriented

What is it? The button is a “bookmarklet,” a little button people can drag to their “bookmarks” bar.

Once you have it, you can use it anytime you’re on a page about books—Amazon, Barnes & Noble, IndieBound, and more. The bookmarklet pops up a little mini-window on the page. This tells you if your library has the book, and links directly to all the editions your library has.

Behind the scenes it’s finding the ISBNs on the page, checking them against LibraryThing’s huge editions database, checking those against your holdings, and returning a list of those holdings with links. Although geared to books, it will work with anything that has an ISBN. It works even if LibraryThing has never seen the ISBN, so long as there’s an exact match in your holdings.

How to Get It. Every LTFL library gets its own bookmarklet that’s set up just for it. To get your library’s, LTFL customers should log in and go to and click “Your bookmarklet page.” That will take you to the “get it” page for patrons.

Once you have your page, promote it to your patrons. For example, so far, Port Phillips has put it on their home page and Burdekin Library have it on their Facebook page.

Customize It. Like other enhancements, the bookmarklet is highly customizeable. Go to

Update Your Holdings. Because the bookmarklet, like most LTFL enhancements, works off your holdings, it’s imperative you keep your holdings up to date. (If it doesn’t find something it suggests the user perform a catalog search, but how many users will do that?) You can upload holdings and review your recent uploads here.

If You Don’t Want It. If you don’t want the bookmarklet, do nothing. The page you get it from has an unguessable URL. If you want to make sure it’s turned off, go to

Let Us Know. As a new feature, we’re eager to get your feedback. And if you post about it on Facebook, Twitter, or your blog, we’d love to know.

Labels: Uncategorized

Wednesday, April 11th, 2012

LTFL Library Tag Clouds

LibraryThing for Libraries has added a new feature to our Tag Browser, showing tag clouds for an entire library. Available in different “resolutions” (up to 1,000 tags), they give a nice overview of “what’s out there” in a library’s collection, and provide quick entry points to the lists for each tag.

Update: Here’s an example at the Spokane County Library System

LTFL libraries can turn the feature on and off in the Tag Configuration page. Libraries can jump right to the tag cloud with a link like:

<a href="#" onclick="LibraryThingConnector.widgets.tags.showTagCloud(); return false;">asd</a>

Labels: Uncategorized

Friday, September 9th, 2011

Sample LibraryThing data files

In addition to the 300-odd libraries using LibraryThing data through LibraryThing for Libraries, a number of major bookstores, publishers and other bookish sites use LibraryThing data, including Angus and Robertson (Australia), Whitcoulls (New Zealand), Abebooks, BookMooch and Random House. They use data including tags and reviews, and pull it from us in feed form, so they can serve it up faster than one-by-one API requests would be.

We’ve just posted the “small” versions of these files, so you can check them out. If you’re interested in using LibraryThing data—which is not expensive and can, in some circumstances, be traded for other interesting data—you will want to check these files out.

The files are here:

Here’s a description of the files, and how they work together. If you’re interested in playing with the full files, send us an email ( and we’ll get you access to them!

Frequency. We aim to refresh the files every two weeks, by the 1st and the 15th.

Small versions. Each feed a “_small” version. Open it in Firefox and you’ll see the structure clearly.

works_to_isbn_small.xml This is a catalog of our “work” ids, and of all the ISBNs that fall underneath them. The ISBNs are ordered by “count”–how many users have the ISBN.

Occasionally, an ISBN is marked as “uncertain”:

<isbn count="2" uncertain="true">0807282073</isbn>

This happen when an ISBN is “split” across two works. Often that’s because of user error. Most feed users should skip them entirely; they’re dubious and unlikely to matter. 

LT always gives ISBNs in their shortest form. That is, a 13-digit 978- ISBN will be expressed as a 10-digit. A 979 will be 13 digits, of course.

worktotags_small.xml This is a catalog of works and the tags applied to them. Take this example:

<work workcode="2">
<tag id="302312" count="14">college football</tag>
<tag id="931452" count="1">nebraska football</tag>
<tag id="1599" count="1">history</tag>
<tag id="624418" count="1">civil law</tag>
<tag id="3373" count="1">europe</tag>
<tag id="1042723" count="1" aliasedtoid="18587">Reader</tag

This means six tags have been applied to this work. One–college football–was used 14 times. The rest are all singletons. Each tag has an id. The id is unique, so Fiction, fiction, FICTION have separate tag ids.

Notice the last tag, “Reader.” This tag has the attribute aliasedtoid=”18587″. This means that although the user applied “Reader” the tag has been aliased to a more common tag, in this case id 18587,  which is, in fact, “reader” (lower case).

Tag aliasing on LibraryThing extends past case. Members “combine” tags, such that “wwii,” “world war 2,” “ww2″ and so forth are lumped together. In this file, all would be “aliasedto” one id.

I recomment that feed users show only the final, aliased form, but use both the final and intermediate forms in searching.

taginfo_small.xml This is a catalog of all tag ids. It lists each id, together with the id  and text of the tag to which it has been aliased, if any. It also lists the total count for that tag and whether or not the tag has been “approved” for LibraryThing’s library-data project.

For example:

<tag id="1">
<aliasedto id="5280">fantasy</aliasedto>

The tag has the id of 1. The text of the tag is “Fantasy.” The tag is aliased to id number 5280, which is “fantasy.” “fantasy” and all it’s aliases are used 567,707 times in LibraryThing. The tag is approved for use in libraries.

We recommend most feed users display only “approved” tags. Approval was designed for our LibraryThing for Libraries product, and indicates the tag is probably useful and safe for display. It can be useful to use non-approved tags for search–in case, for example you want to catch variants like “ww2″ and “world war two.”

reviews_small.xml This should be fairly straightforward. They represent all *approved* reviews that can be used outside of I don’t have a count, it should be around 300,000 now. We’re approving a backlog of reviews and should hit 300,000 in the next few weeks.

userid: The LibraryThing userid

restricted: There are two possible values—”libraries only” and “unrestricted.” They determine which reviews you can use.

stars: .5-5; some books don’t have stars. There are no zero-stars.

recommendations_small.xml This is a very straightforward work-to-recommended works format. 

worktoratings_small.xml This is a very straightforward work-to-rating stars format.

Labels: Uncategorized

Thursday, July 28th, 2011

The LibraryThing programming quiz!

Want to apply for one of the technical jobs at LibraryThing? Take the test below. If you can do it in under five minutes, let’s talk!

Background. I’ve been spending a lot of my time going through (read: “drowning in”) applications for our 2-3 open technical jobs. And I’ve been conducting a few interviews. The latter has demonstrated to me again the value of asking applicants to write code, especially simple code, during the interviews.

That interviews should involve simple code is now common wisdom in programming circles. The story is that a high percentage of programmers, even people with impressive resumes, “just can’t code.” Asked to do the simplest things—problems a good coders could solve as fast they could write—some spend ten or twenty minutes before they get an answer, or fail entirely. (See discussion by Jeff Attwood and Joel Spolsky.) I don’t go as far as others here. I think a lot of “slow coders” are probably excellent employees, making up for it in other areas. Some projects don’t need speed. Some people just need to spend more time programming; everyone was a slow programmer some time. But I know from experience that slow coders don’t work at LibraryThing. They don’t fit the LibraryThing development culture.

“Simple code” is critical. When I first started interviewing I’d ask people to solve hard problems. This didn’t work. As Spolsky’s famous “The Guerrilla Guide to Interviewing” argues, however, simple problems are just as good, or better. Simple problems test simple skills, and simple skills are the basis of complex ones. A programmer who struggles to loop through a bunch of words will be at sea performing far more complex tasks. If you can’t boil water your Toad in the Hole is likely to come out wrong.

Coding tests irritate a minority of people. One applicant said his resume should speak for itself. I have no time for that attitude—though I’m happy for the weeding help. Good programmers should welcome the opportunity to demonstrate they’re good at what they do. Heck, most programmers I know enjoy brain teasers anyway. They test themselves when no one’s looking.

The rules.

  • Time yourself.
  • Write this code in any language you want. Use your best language. If you can do many, PHP, Python and Javascript are preferred.
  • Write it out longhand or in a simple text editor.
  • I don’t care much about syntax. You can fix whether it’s isArray or is_Array later. If it has some obvious bug you’d fix in a second, fine.
  • This is not a trick question.
  • I’m not asking for some imaginary “best answer” that does everything in one line of self-writing code, or whatever.

The problem.

Input is a string—a paragraph of text. One of the paragraphs above would be fine.

Output is a report listing how many words there are with X letters, like:

10 words with 1 letter
20 words with 2 letters
7 words with 3 letters
15 words with 4 letters, etc.

How’d you do? Programmers employed by LibraryThing can do this in between 45 seconds and four minutes. We expect you to be in that range. If you’re applying for the sysadmin position you can be slower. (We think good sysadmins need to be able to program, but you don’t need to be a crackerjack programmer.)

If you’re in that ballpark in any language, go ahead and and apply!

UPDATE: We are NOT approving comments with the solution. We don’t want people to be exposed to it when they read this—it would defeat the purpose. We’ll approve them after the job is filled.

Labels: Uncategorized

Monday, August 16th, 2010

Publishers: Another way to upload your books

Since last week, participating in LibraryThing for Publishers has exploded, with 800% more titles and 21 new publishers.

To help more publishers join we’ve added a handy second format for publishers to upload their titles to LibraryThing for Publishers, which skips over the need to have an ISBN-based URL to every book. We used this format to upload from RAND Corporation and Mercer University Press, who would not otherwise have been able to participate.

The format is CSV (Comma-Separated Values) which can be exported by most programs including Excel and Google Docs, and conforms to spreadsheets produced by title-management applications. So long as every row contains both an ISBN—ISBN10 or ISBN13, with separators or not—and a URL, we’ll spot it and make the link. Other columns can be present or absent, as wanted.

The option is available in the “Upload Catalog Titles” section of each publisher or imprint.

Labels: LibraryThing for Publishers, Uncategorized

Friday, August 6th, 2010

People who read series, read series

From the recommendations for The Devil’s Right Hand by Lilith Saintcrow (Orbit Books).

Series readers read series, and LibraryThing picks up on this. (And notice the series are all by different authors.) I suppose this is common knowledge, but I’m surprised at how strong the effect is. LibraryThing already has recommendations on series page—for example, the series here, Dante Valentine, but maybe we need a series-to-series recommender.

Labels: Uncategorized

Tuesday, May 25th, 2010

Five models for libraries outside libraries

In light of a plan to create a “portable,” “branch-a-day library” in Portland, Maine–LibraryThing’s home–I’ve been thinking about the various possible sorts of “libraries outside of libraries.”

I am of two minds about such projects. I like to see interesting experiments, but dislike replacing valuable services. It doesn’t help that one of the two branches Portland is closing is in my neighborhood. As a branch, it wasn’t the best, but it would take quite a “portable library” to make up for it even so.

Nevertheless, I came up with a list of five types libraries outside of libraries (exluding what might be done with ebooks). Are there any I’m missing?

1. The Bookmobile.

2. The Short-Lived Library. Set up a branch library that lives for a defined period of time, like Boston’s Storefront Library. It’s like an “event store,” but a library. The Storefront Library was a big community success.

3. “Branch-for-a-day.” Find a bunch of spaces–empty storefronts, community center rooms or whatever–and roll full book carts into them on a schedule–Monday this neighborhood, Tuesday that neighborhood, etc. Has this ever been tried?

4. The Cafe Shelf. Set up mini-branches consisting of shelves–general or themed–in public commercial spaces, like coffee shops. The books would be owned but probably non-collection items. Care would be taken to tie all the books back to the main collection, with paper inserts or whatever.

5. The Vending-Machine Library. Like Conta Costa’s Library-a-Go-Go, a cross between Redbox and your library. It’s like a library, but with no pesky salaries and a terrible selection.


Labels: Uncategorized

Tuesday, June 9th, 2009

New developments on the FRBR front

The Functional Requirements for Bibliographic Records have changed direction.

Hat-tip: Karen Coyle.

Labels: Uncategorized

Tuesday, April 14th, 2009

Flash-mob cataloging in Chicago

Quick cross-post from the other LibraryThing blog:

There will be a flash-mob cataloging party in Chicago this Sunday, April 19th, at the the Puerto Rican Cultural Center. Read more here.

Puerto Rican Cultural Center Website

Labels: Uncategorized

Tuesday, January 6th, 2009

New Products…

1. The iPhone Wheel:

Apple Introduces Revolutionary New Laptop With No Keyboard
Of course, every LibraryThing employee is a Mac person…

2. The Pomegranate

Would like some garlic fingers? BTW: Can you guess what this is advertising?

3. Who can forget If Amazon sucked like our old OPAC?

4. Someone should do a joke pomegranate-like OPAC video. It would start out with standard features, then add Web 2.0 features, like tagging, then searching everything every printed, then searching all TV shows, including never-aired episodes, then searching all conversations in Starbucks, Panera Bread and Roy Rogers, then searching all thoughts that took place within a meter of an iPhone, etc.

Labels: Uncategorized