Code4Lib is a unique library journal that has emphsized open access, open source, and innovative library computer programming since 2007. The article describes how library personnel can prepare for a book shift and then use the bookshift.py computer script to calculate on which shelf every book should end up. Having this information before a single book is moved gives the following great advantages to the library.
- It allows library personnel to know if they are shifting books as planned and if not, then they can make small adjustments to correct the issue. Without these regular “waypoints” someone may not know there is a problem until the end of the shift, when it is much more time consuming to correct.
- The method allows personnel to move the books in parallel. The output of bookshift.py provides enough information to enable twenty people to shift books in 20 different places simultaneously.
The shifting method works with varying shelf counts, varying shelf lengths, and the separation of different fill ratios for distinct parts of the collection. The most exact shift would assume all books are on the shelves, but that assumption is rarely true because books continue to circulate. Although there are caveats, that issue is rarely problematic with current average academic library checkout rates. One downside of the bookshift.py script is that it requires a Python execution environment and that may or may not be available to the people wanting to use it. If Joshua hears interest from the library community, he may plan to recreate the process using only a spreadsheet. There may also be a need for both length, which Predictable Book Shifting takes into account, and height, which it does not, considerations in future work.