BookReader Work Sprint at NYPL Labs

We had a really fantastic code/work sprint for the BookReader organized by the most excellent NYPL Labs.  The sprint was designed to bring together organizations that have an interest in the BookReader as a way to foster the sharing of interest, code and expertise.

New York Public Library

We started by making a list of desired features and prioritizing them.  High on the list was to make the code more modular and easier to understand, reuse and extend.  We made great progress towards that goal by creating a new plugin architecture that allows new views of the book to be added cleanly to the existing code.  For example, it will be possible to create a book view that uses the <canvas> tag or other advanced web technologies and have it automatically included in the BookReader application simply by including that plugin’s JavaScript file.

Looking down into the stacks

Another highly desired feature is making it easier for people to use their own books with the BookReader application.  Doug Reside from NYPL Labs contributed a “book loader” (our new term for the piece of code that connects the BookReader to the underlying images and metadata for a book to display) that allows you to specify the images for a book directly inside an HTML file.  This new loader provides a simple way to use the BookReader for your own books.

The new code is currently on the codesprint branch of the BookReader github repository.  We plan to integrate the new plugin system once the code has been polished and tested. Updated documentation is also coming. You can subscribe to the bookreader-announce mailing list to be notified when the code is released. You can also find more information about developing and using the BookReader in our developer resources.

Mitch Brodsky with his BookReader customized for the NY Philharmonic

This works sprint hosted by NYPL Labs marks an exciting new milestone in the development of the BookReader. We’re setting the foundation for greater re-use and collaboration around the BookReader. Many thanks to Doug Reside, David Riordan and Ben Vershbow of NYPL Labs for organizing the sprint and the fantastic attendees who contributed ideas and code commits!

BookReader Sprinters

Our Search Engine Was Hurting

Sorry to say, but our search engine is all kinds of weird this morning (San Francisco time). Lots of the pages you see around the site, like a Work page or a Subject page, or indeed the Search Results page are driven largely by search.

So, while we’re working on fixing the problem, please excuse the various gaps you might encounter around the place as we resolve it.

Update, 12:50pm PST: We’ve tried running Lucene CheckIndex on the work search index, but it came back with “No problems were detected with this index.” Hmm. Next, we’ll try restoring from backup. Apologies again for the continued oddness around the site!

Update, 2:30pm PST, 7/13/11: OK. We’ve just removed the site alert that you might have noticed across the top of every page, because we think the search is back up online. It turned out that we had to rebuild the whole index from a 2-day-old backup, and then process the last 2 days of changes made on the site into the new index. Phew! If you continue seeing weirdness or results that look less correct than usual, please let us know.

Apologies again for the road bump – and a word of advice? Be sure to keep an eye on how and where your log files are being stored, and accumulated. Turns out it was a huge blob of log files is what ended up choking our search engine, stopping it from being able to be updated. We’ve since modified where we store logs, and how often they are cleaned out.