In an ongoing series, the Internet Archive hosts renowned authors of the digital humanities and beyond for virtual book talks that are free and open to the public.
For nearly a decade, the Internet Archive has hosted events at its headquarters in San Francisco, occasionally welcoming forward-thinking authors of give presentations about their recent books in the digital humanities.
The COVID pandemic has been a catalyst for change, both in the types of challenges facing our communities and how we may address them. In 2020, many libraries were required to close their doors, leaving many authors without important venues for connecting with their audiences. Many patrons have increasingly turned to their screens for access to trusted voices from the safety and convenience of their homes. Organizations like ours have also adapted by running more digital events. For instance, did you know that since 2020, the Internet Archive has commissioned more than 200 artists to perform live Essential Music Concerts From Home? We invite you to browse their recorded performances.
Best of all, you can access the complete collection of book talks for free though the library at openlibrary.org/booktalks, or by clicking the “Book Talks” tab under the “Browse” drop-down menu on OpenLibrary.org.
Stay Up To Date
Want to learn about upcoming virtual book talks hosted by the Internet Archive?
To set a new reading goal, click the “Set reading goal” button (highlighted above) and enter the number of books that you’d like to read in the input, and press the “Submit” button.
Upon submission, the “Set 2023 reading goal” button is replaced with a progress bar.
Changing or Removing your Reading Goal
Want to change your reading goal? It’s okay to change your goal! Any time before December, you will be able to adjust your reading goal by clicking on the “Edit” link next to your yearly reading progress bar.
Want to change or unset your reading goal? If at any time before December you’d like to stop tracking your progress and remove your yearly reading goal, you can click the “Edit” link and update your reading target to the number 0. You can easily opt back in later, should you choose.
Tracking Your Reading Progress
Progress towards your reading goal is made by submitting a “check-in” with the date that you finished a book. Once you have marked a book as “Already Read”, you will be given the opportunity to also set a progress check-in with a completion date. The check-in prompt will appear below the reading log button:
There are three date options for progress check-in. First, clicking the year option will create a check-in which indicates that you have finished reading the book at some point during the year. Second, clicking “Today” will automatically set the read date to today’s current date. Finally, if you finished reading the book on another day, you can set custom date by clicking the “other” link.
The custom date form allows for both full and partial dates. For instance, if you forget exactly when you’ve finished a book but you have a rough idea, you may simply choose to set the year (or the year and the month). As long as a year is provided, the book will still be counted towards that year’s reading goals.
Viewing & Managing Your Check-ins
Once set, the last read date will be displayed beneath the Reading Log button. These dates can be edited or deleted by clicking the “Edit” link and will appear both on the Book Page as well as your Already Read shelf of your Reading Log.
If a book with a check-in is moved to the “Currently Reading” or “Want to Read” shelf, the check-in can still be seen and edited.
Careful! When a book is removed from your Reading Log, the books check-ins will be deleted! In these cases, you will be warned that the book’s check-ins will be deleted and prompted for confirmation:
As a small team, we’re doing the best we can to roll out value to our patrons, knowing well that the feature won’t work perfectly for everyone’s needs. As you set out to achieve your 2023 reading goals there are some important things one should note. These limitations noted, we hope you enjoy reaching your goals with Open Library!
Q: Can I delete a previous year’s reading goals?
A: There is not yet an interface for deleting previous year’s goals, however we’d like to make this possible. If and when we do add the ability to delete previous yearly reading goals, all of your reading check-ins will stick around — only the yearly goal number will be removed. For now, if you’d like to delete a previous year’s goals, please feel free to email us at firstname.lastname@example.org and we’ll do our best to help!
Q: Are my yearly reading goals public?
As of the initial release, only you will see your yearly reading goals but in the future it may be visible to your friends and followers according to your Reading Log Privacy settings.
Q: What if I read multiple editions of the same book? Can I add progress check-insfor each edition?
The short answer is not yet. We’ve build the Yearly Reading Goals feature to allow check-ins at the edition level but currently the “Already Read” shelf operates at the Work level and so it will take us some time to develop a UI that supports per-edition check-ins. This means currently there’s no UI for checking-in multiple different editions of the same book.
Thank you to Jim Champ, on the core engineering team of Open Library, for leading the development of this feature.
This year we’ve had the great fortune of collaborating with Samuel Grunebaum, 2022 Open Library Design & Engineering Fellow. Samuel is wonderfully positioned at the cross-section of software engineering, design, and education, making him capable of rapidly prototyping new designs, ensuring these designs are clear and instructional, and bringing these designs to life through engineering. It’s rare I find someone, like Sam, who can so easily and effectively switch contexts between design and engineering while also keeping bigger product pictures in mind. This set of skills has not only made Sam essential to early prototyping stages, we have also benefited greatly from Sam’s ability to uniquely recognize and raise challenges about component accessibility and mobile/desktop compatibility we likely would have otherwise missed. In addition to being a 2022 Open Library Fellow, Sam co-directs a software & design consultancy that is accepting new freelance projects, tutors college, high school, and intro-level computer science and is accepting new students, and is open to the right mission-aligned, full-time role.
Hello, I’m Samuel Grunebaum and I’ve been working with Open Library as a Design & Engineering Fellow, contributing designs and code to the My Books redesign process. I’m currently transitioning into a career in software design and front end engineering after working as a Computer Science educator at the Horace Mann School in The Bronx, New York and as a freelance designer, developer, and teacher in all things software.
Open Library patrons and stakeholders alike identified the My Books page as a major pain point in the site’s navigation and information hierarchy. At the beginning of the project the desktop interface loaded by clicking the ‘My Books’ button in the header looked like this:
Perhaps the most confusing issue with this flow, is that the ‘My Books’ button brought patrons to their account’s Loans page. Another problem that was continually observed with the existing design is the mobile navigation on this page:
The mobile design took the desktop sidebar menu and added it directly below the site header, creating three layers of navigation and a very confusing split in the My Books page interface.
The central problem of the existing design for My Books was that there was no true My Books page, but rather a My Books button driving to the Loans page. This meant that there was no single place for patrons to find their books, whether books they had on loan or books they had added to one of their reading logs.
The previous menu design also had the unfortunate side effect of burying the Reading Log options, as well as Reading Stats, Notes, Reviews, and Import/Export options deep below the fold in an already confusing mobile menu.
Digging deeper into this problem and hearing from Open Library stakeholders, patrons, librarians, and the community at large clarified the direction we would take: working towards a mobile-first consolidated My Books interface that gives patrons an understandable and discoverable way to access the books associated with their account, as well as the other account specific sections including Stats, Notes/Reviews, and Lists.
Before beginning the design process in earnest, we decided an interim fix would be helpful to mitigate the confusing nature of the mobile My Books navigation. The solution we decided on was an extremely quick fix, able to be implemented in just a few minutes.
The adjustments made used a darker color to differentiate the menu from the rest of the header and the page content, as well as making the menu section smaller with an adjustable height click-and-drag feature:
After meeting with members of the Open Library team to discuss the main issues, we agreed that the central areas to focus on were:
Creating an interface unique to My Books that would consolidate a patron’s loans and logs into one page accessed by the My Books button
Improving the usability of the My Books page on mobile by moving towards a responsive, mobile-first design for the My Books page and redesigning the menu on mobile
The next step was to iterate multiple potential interfaces for the new My Books page on both mobile and desktop. With the help of the Open Library team and other design fellows, we came up with the following options for mobile and desktop My Books interfaces:
In conjunction with Dana, another 2022 Design Fellow, we continued to iterate on the designs based on feedback received from Open Library stakeholders, librarians, and patrons.
We settled on the following approach for desktop, which includes new carousel sections for displaying books and creates space for a Reading Stats data visualization widget:
Alongside the new desktop design, the mobile-first redesign that we settled on makes use of the existing sidebar menu to guide the structure of the new mobile interface while making use of an information hierarchy already familiar to patrons.
This mobile design not only improves usability and accessibility to the key components of My Books, but also decreases engineering overhead by allowing for a responsive design using the original sidebar menu:
The first and most immediate step to improving the overall My Books experience was to create a distinct page on the site for an account’s books. The new My Books page now exists at /account/books for any patron of Open Library. The new page is almost a carbon copy of the original My Books page, but with its own content that is separate from the Loans page, which was originally what came up when clicking My Books in the header. Below is an image of the current desktop release of My Books:
After adding the new page at /account/books, I created a new file for the My Books content and added custom carousels to the page for displaying a patron’s loans and reading logs. Beyond improving the flow of clicking the My Books button, this initial redesign aims to increase user engagement with reading logs and will also populate the My Books page with images of book covers from a patron’s own selections, creating a more welcoming and dynamic account page driving from the My Books header button.
Another change in this release is the addition of Reading Stats and Import/Export Options buttons at the top of the page, as these are currently buried at the bottom of the My Books sidebar. In the next phase of the design, there will be a prominent link to Stats at the top of the My Books page with the addition of the data visualization widget.
The creation of this page not only provides an elegant interim solution to the issue of confusing My Books navigation by adding a novel page to the Open Library but also lays the groundwork for a more comprehensive redesign including mobile-first improvements, multiple new custom components, and more prominently featured a patron’s Reading Stats.
Next Steps: Mobile Release and Stats
The next steps of the My Books redesign process will begin with improving the mobile usability by overhauling the My Books interface. The engineering approach I will take is to hide the My Books index content on mobile, instead only displaying the sidebar menu as the whole My Books interface. The sidebar will be responsively designed to display custom carousels on mobile, as rendered in this interactive Figma prototype.
I am so excited to continue working on this redesign process, which has already been a wonderful introduction to the Open Library design system and code base. Moreover, I’m excited to contribute to what is hopefully a welcome improvement to the Open Library ecosystem, increasing both access and usability to some really wonderful account features. My hope is that patrons will be able to more easily save and read books on Open Library once they have one clearly defined place to look at all of their books, whether checked out or saved in reading logs, as well as their reading stats and account information.
Working on this project with the Open Library community has been an amazing experience in UX design, full stack web development, and community collaboration across state and national lines. I am grateful to be able to contribute to a project that is so meaningful to so many people through its unique ability to disseminate knowledge freely to anyone with Internet access. It was also a fun way to expand my web design and development experience.
I am immensely grateful to the Open Library community as a whole for being so welcoming to me when I joined a few months ago and for continuously supporting my design process through helpful critiques and design input, as well as the general kindness shown in the weekly community meetings. I am especially grateful to Mek, my counter-point on Open Library staff, who has taught me so much about the Internet Archive stack and the Open Library design language, and my main collaborator Dana, who has expertly taken the reins on the Desktop interface designs and navigation for the overall site. I also want to extend my thanks to Drini, Lisa, Jim, Abby, and Hayoon who have all had invaluable contributions to the My Books design and implementation process, as well as the ongoing development of a comprehensive Open Library design system. I’m so excited to continue working with this community and for the completion of the My Books redesign.
It seems like just the other day when the Open Library welcomed its 2 millionth registered patron in 2018. This year, we zoomed past 6M registered book lovers who collectively in 2022 have borrowed 4.3M books and counting, and who have added more than 4.7M books to their reading logs. Our book catalog expanded to nearly 38M editions and we cleaned up nearly 230k low quality records.
Together, our team released a flurry of features and improvements to the Open Library service including:
Imminently coming is a game changing smart edition-search upgrade, a Yearly Reading Goals feature, support for Web Books, a significantly more usable 1-stop “My Books” page, and design improvements to the Books Page.
In 2021 we did a comprehensive Year-End Review which we’re following this year 😊
Gratitude. Central to these achievements were my fellow staff on the Open Library’s engineering team: Drini Cami, Jim Champ, & Chris Clauss. Equally indispensable to this year’s achievements was Lisa Seaberg from Internet Archive’s Patron Services team. Lisa is both a voice and champion for our patrons as well as the Open Library’s Lead Community Librarian who helps facilitate our community of 500 librarian contributors and our Super Librarians (Daniel, Travis, Onno, et al) who work tirelessly together to keep our library catalog organized. Charles Horn from the openlibraries.online team has been instrumental in keeping MARC records flowing into the catalog and Cari Spivack on policy support. And this year 6 Open Library Fellows — Hayoon Choi, Sam Grunebaum, Dana Fein-Schaffer, Scott Barnes, Constantina Zouni, and Teo Cheng — who selflessly committed several months of their time to improve the Open Library platform for the world, alongside a team of more than 30 volunteer developers from around the globe. Thank you, of course, to Brewster Kahle and all of our patrons and generous donors for believing in us and keeping us funded for another year. And a special thank you to a sorely missed Aaron Swartz, without whom none of this would be possible.
Keep reading to learn tips and tricks on how to effectively search for books within your reading log.
A Forward by Mek
This year the Open Library has been exceedingly lucky to collaborate with Scott Barnes, a lawyer who has reinvented himself as a very capable software engineer. We had the pleasure of meeting Scott earlier this year while he was scouring the Open Library for old rock climbing guidebooks. Ever since joining one of our community calls, he’s been surmounting challenging technical hurdles as one of our most active 2022 Open Library Fellows. As law professor Lawrence Lessig famously penned in his 1999 book Code: “Code is law”. I guess that’s why we shouldn’t be too surprised how quickly Scott became familiar with the Open Library codebase, at the precision of his work and attention to detail, and his persistence in getting code just right without getting slowed down. We hope you’ll enjoy Scott’s contributions as much as we do and learn at least one new way of using the reading log search to improve your book finding experience.
A Forward by Drini I’m exceedingly pleased to introduce Scott Barnes to the Open Library Blog. I have had the honour of mentoring Scott throughout some of the projects on his fellowship, and have been floored by his love, passion, and skill in all things programming. Whether it’s working on user facing features (such as this one), improving code architecture, investigating performance issues, setting up infrastructure, or keeping up-to-date with new programming techniques by diving into a new programming book or topic, Scott is always excited to dive in, learn, and make an impact. And his code never fails to meet requirements while being well-architected and robust. I am so excited to see what he does next with his programming super powers! Because as far as I can tell, there’s no stopping him. Now without further ado, I’ll hand it off to Scott to talk about:
Reading Log Search
👋 Hi, my name is Scott Barnes. This year as a 2022 Open Library Fellow I collaborated with Drini Cami to develop reading log search. In this post, I’ll show different ways of effectively using the new reading log search feature, as well as technical insight into how it was engineered behind the scenes.
3 Ways of Searching your Reading Log using a Web Browser
Natural language search
The most common way to use search your reading log is by entering a natural, free-form search query, just like you might using your favorite search engine. From the Currently Reading, Want to Read, or Already Read page, you can search for your books on that reading log shelf by submitting text describing the book’s title, author name, ISBN, or publisher. An example could be “Lord of the Rings by J.R.R Tolkien”.
If you want greater control, you can also harness the power of Apache Solr, the underlying technology which powers the Open Library search engine.
Let’s say, for example, that you’d like to find books on your reading log by a specific author named “King” but using the Natural Language mode instead returns books with “King” in the title. Using keyword search, you could search for author: king to see only books by authors named “King” (while not seeing books with “King” in the title). On the other hand, if you only want to find titles matching “King” and not the author, you could instead search for the keyword title: king. Want to find your horror books? Try subject:Horror.
Reading log search, like the main Open Library search, supports boolean operators, specifically AND, OR, and NOT, along with wildcards such as * and ? to match multiple characters and a single character respectively. Therefore, to search for all books matching “climb”, “climber’s”, “climbs”, etc., that were published by Sierra Club Books that you want to read, you could visit Want to Read and search for title: climb* AND publisher: sierra club books.
NOTE: the boolean operators are CaSe sensitive, so AND will work as expected, but and will not. The actual search terms themselves are not CaSe sensitive, however, so “king” and “KiNg” will return the same results.
Now for the technical details! Reading log search was added in pull request #7052. In exploring how reading log search might be accomplished, two key things leapt to our attention:
Reading log records are stored in the database, and work and edition data (i.e. “books”) are stored in Solr; and
To work with the split data, we were probably doing more queries than we needed to, both in the back end itself, and within the templates that make up the pages.
The goal then was to add the ability to search the reading log, ideally while reducing the number of queries, or at least not increasing the number.
Changing the back end
Most of the heavy lifting was done in core/bookshelves.py. The challenge here was addressing the reading log records being in one database, and the edition data being in Solr.
The solution was to query the reading log database once, and then use those results to query Solr to get all the information we’d need for the rest of the process. Then we could simply pass the data around in a Python dataclasses, and then ultimately pass the results through to the templates to render for display in patrons’ browsers.
As mentioned, having the data in two places had led to some excess querying, which manifested itself in the templates where we re-queried Solr to get additional data to properly display books to patrons.
However, because we had gathered all of that information at the outset, we just had to change the templates to render the query results we passed to them, as they no longer had to perform any queries.