You are exploring: VU > Library > Blogs > Falvey Memorial Library Blog

Friday Film Review: Let Me In

by Raamaan McBride

Pardon the expression, but vampire movies suck. The genre has become so saturated with bad, cheesy films that it seems like every week another awful one is coming out in theaters. In recent times we’ve unfortunately had the Twilight series, 30 Days of Night and True Blood to sit through. Who knew that all this genre needed was a great story and the absence of shirtless teens endlessly staring at each other with angst?

Let Me In is a remake of a Swedish film which was based on the book, Let the Right One In. The movie follows 12-year old Owen who is the product of a broken family and who is being bullied in school, which leads to serious psychological issues. In comes Abby, a weird 12-year old who lives next door with her guardian. The two befriend each other with Abby helping Owen overcome his problems and Owen accepting Abby for being a vampire.

This may sound like a cute kid’s movie or something that won’t interest you, but I think this film will surprise you. The story is mature and tight, the acting is superb and the suspense is almost palpable with a Hitchcock-like style. What takes this film to another level is the directing and editing in the movie. The pace is amazing and the technical camera work is outstanding (specifically, a creative car scene I won’t ruin and that was shot in one take). This film is a “must watch;” it’s not quite in the realm of horror, but very suspenseful.

(DVDs are located on the first floor and circulate to Villanova faculty, staff, and students.)


New Book Catch Up

Happy summer everyone!  If you find yourself with some extra free time, now’s your chance to catch up on all the great new materials received in the library this year.

There were also a couple of posts to specifically highlight new DVDs of interest to the Communication Department:



Send Us Your Reading Bucket List!

Do you have a “bucket list” for reading?

Bucket lists became popular after the major motion picture, “The Bucket List,” was released in 2007. They’re usually thought of as lists of encounters, trips, or crazy stunts that a person wants to do before the end of her life.  According to squidoo.com, “the majority of them are general in nature, a catch-all for whatever takes your fancy.” In this case, the library would like to put together a display that represents your “bucket list” of reading.

We’d love to have your lists by June 16 so we can build the display. Send your bucket list to socialmedia@villanova.edu or post it here in the Comments!


Friday Film Review: The Garden

by Raamaan McBride

The Garden is a documentary that follows a poor Hispanic community in South Central Los Angeles. After the 1992 race riots, the city wanted to mend its relationship with its citizens, so it took over a 14 acre blighted property using eminent domain and donated it to said community. That land’s transformation in the decade that followed could only be described as miraculous. This community not only managed to grow amazing fruits and vegetables in this dilapidated space (making it the biggest urban garden in the country), but in the process the garden uplifted the community.

Fast forward to 2003 in which the original owner of the property sues the city, stating that he is the rightful owner of the land. One year later the city sells the garden back to the owner in one of the shadiest backdoor deals ever, and it’s at this point that the film really takes off. A vicious legal battle ensues over who owns this land, with lots of political posturing along the way.

It gets to the point where celebrities, such as Danny Glover and Daryl Hannah, join the fight to save the garden. While I won’t ruin the ending, I can say that it will make you emotional. The film left me with a sense of public duty to take action, to help to improve the situation, which I think is a sign of a good documentary.

It’s unfortunate and ironic that the one thing this garden was supposed to avoid—race riots—is the thing it ultimately caused.

The Garden is unequivocally one of the best documentaries I’ve ever seen (Waiting for Superman is slightly better). You can have your opinion on the ending, specifically the morality/legality of the situation, but what you can’t argue with is the people in this film. This is a must watch for everyone.



Also contributing: Gerald Dierkes


Happy Retirement to Jackie Mirabile

by Barbara Quintiliano

Over the years, Jackie Mirabile has won the respect and affection of her colleagues for her expertise, conscientiousness and affability. Falvey Memorial Library’s team leader for information and research assistance, Jackie retired at the end of May after almost 30 years of exemplary service.

Born and raised in Vermont, Jackie majored in history with a minor in mathematics at Trinity College, Burlington. After earning her master’s in library science from Simmons College, she was offered positions both in Detroit and Philadelphia. Fortunately for us, Jackie decided to come to Philly where she worked a total of nine years at the Free Library of Philadelphia and then several more years at a regional patent company. In 1982 Jackie was hired as Falvey’s second full-time reference librarian by then head of reference Louise Green, who became her close colleague and who recently retired in 2009.

During an era of sweeping changes in academic libraries, Jackie is unsurpassed in the art of information retrieval whether using no-baud print, 500-baud Telex, or broadband Internet. Uncle Sam owes her a debt of gratitude as well for her competent management and thorough knowledge of U.S. government documents. According to Jackie, “the real effort to provide service” is the one thing that has remained constant throughout the evolution of her profession, and her favorite aspect of the job is still “finding what the patron wants” — something all librarians know well as the love of the hunt.

She served as the librarian liaison to the psychology and education and human resource departments and taught research strategy sessions in a variety of disciplines.

Jackie has also served on Falvey’s Management Policy Group (MPG) and Communication team, and in previous years on the University-wide Villanova Quality Improvement (VQI). Colleague and information specialist Donna Chadderton is grateful to Jackie for patiently teaching her “how to do better reference work” and will miss “her friendly, ever-present smile, her commitment to her work and the knowledge that I could count on her for help.” Fellow Scrabble player Luisa Cywinski bows in homage to Jackie as the undefeated “Queen of Scrabble.”

Jackie’s retirement plans include volunteering in public library literacy programs and–best of all—spending time with her new grandson, Anthony James.


Expanded ILS Functionality in VuFind

VuFind uses simple PHP classes called ILS drivers to communicate with external integrated library systems in order to obtain information and perform actions that are outside the scope of its own index and database. This includes things like listing a patron’s checked out items or determining whether books are currently on the shelf. In the past, VuFind’s drivers have been fairly week with regard to important patron activities like placing holds and renewing books. Several libraries have implemented local customizations to support these features, but the native support involved, at best, linking off to a page in a third-party OPAC.

With the forthcoming VuFind 1.2 release (date not yet determined, but probably late summer or early fall), all that will change. The VuFind driver model has been updated with robust support for expanded patron functionality (thanks largely to the tireless efforts of Luke O’Sullivan, who has been collaborating with me for months on this problem). The ILS Driver Specification has already been updated to reflect the new features, but since this is somewhat complicated, I thought a more narrative explanation of how the new features work might be beneficial.

This article is designed to explain exactly what you need to do to add hold, recall and renewal functionality to your ILS driver. It will also touch on some of the infrastructure changes in VuFind needed to support these new features, and some general best practices for extending drivers. As always, if you want more detail on anything, you are free to contact me through comments on the blog or the VuFind mailing lists.

Basic Principles

One of the complicated things about implementing a generic system for dealing with things like holds and renewals is that different systems have different capabilities and rely on different data in order to achieve these actions. Our design tries to keep as much logic inside the ILS driver as possible. VuFind interacts with the driver in two key ways:

• It queries the driver (by checking for the existence of certain methods and/or using the getConfig method) to determine which features are available. Unsupported capabilities will simply be hidden from the end user.
• It tries to feed the driver with its own data as much as possible. In many cases, the inputs to some methods are outputs from other methods. VuFind makes no assumptions about the contents of the data — it just pushes it to the appropriate places. Associative arrays and delimited strings are the driver author’s friends — these can be used to encapsulate whatever data the driver needs, and VuFind will make sure they end up in the right places. This should all become more clear when you see some examples below!

The Least Common Denominator

As mentioned earlier, the simplest way to support advanced ILS features is to simply link to the ILS’ native OPAC. This does not generally provide a good user experience, but sometimes it is the only option. There are several methods you can implement if you want (or need) to settle for this minimal level of functionality:


While getHoldLink has been around for a long time, the other two methods are new… and both of them demonstrate the “driver using its own data” principle discussed above. getCancelHoldLink is fed with an entry from the array returned by getMyHolds, while getRenewLink is similarly fed from getMyTransactions. This is very convenient: when you’re retrieving information from the ILS about current holds or checkouts, it’s easy enough to pull whatever details are needed to link to the system’s OPAC… then you simply assemble it into a URL in the getLink method and you’re done!

Placing Holds Inside VuFind

Obviously, the ideal solution is not linking to a legacy system; it’s filling out a form within VuFind itself. Fortunately, this is now achievable. It requires a few methods to be implemented:

getConfig – Before offering holds functionality, VuFind will call the getConfig method with a parameter of “Holds”. As the driver spec describes in more detail, the method needs to return an associative array containing entries VuFind uses to render the hold form correctly. It is up to you whether to hard-code these values in your ILS driver or pass them along from the driver’s .ini file. The most critical key is the “HMACKeys” value, which tells VuFind which form fields to use in generating an HMAC message authentication code that helps prevent users from placing holds on items that they are not supposed to. If you omit HMACKeys, VuFind will assume that native holds are disabled and will fail over to the getHoldLink approach.
getHolding – Chances are you already have a getHolding method in your driver, but you may need to augment it with some extra fields in the return array if you need extra data to place holds (for example, a “hold” vs. “recall” status, or an item ID in place of a bib ID). Fortunately, you can include any field of the getHolding return array as part of getConfig’s HMACKeys list in order to ensure that it is passed along to the placeHold method below. This allows you to pass any or all necessary data without VuFind having to know exactly what is needed! If possible, you should also make sure that your getHolding array includes the “addlink” key indicating whether or not the current user is allowed to place a hold on the current item — this key makes it possible to use the “driver” option in config.ini’s Catalog:holds_mode setting, which is usually the smartest way for VuFind to present links.
placeHold – This method receives an associative array containing patron information from patronLogin along with whatever hold form fields were activated through the settings returned by getConfig. It is responsible for actually placing the hold and then returning a success or failure status.

There are quite a few small details to line up here, but the important thing is that the driver specifies what data is needed, provides all of that data, and then uses it to place the hold. All VuFind does is pass the messages from one place to another!

…and the rest

If you understand how holds work, the other new features are very similar, only slightly less complicated. A quick summary:

• To cancel holds, implement getCancelHoldDetails (which generates an identifier string using data passed to it from getMyHolds) and cancelHolds (which actually cancels holds based on patron data and an array of strings generated by getCancelHoldDetails).
• To renew items, implement getRenewDetails (which generates an identifier string using data passed to it from getMyTransactions) and renewMyItems (which actually renews items based on patron data and an array of strings generated by getRenewDetails). Also be sure that getMyTransactions includes an appropriate “renewable” key in its return array.

A Final Word on Object Orientation

That covers how to make holds work… but there’s one more detail that may affect driver authors. It is often the case that an ILS requires a version upgrade or a for-pay API plug-in to support these advanced features. In these situations, some users may want the full functionality, while others may require a more stripped-down version that only supports basic features. This is certainly the case for Voyager, where Voyager 6 users will have to settle for the old getHoldLink functionality while Voyager 7 users may have access to a RESTful API that allows every imaginable bell and whistle. Fortunately, PHP’s object-oriented model offers a simple solution: implement minimal functionality as a base class, then override and add methods in a child class to expand functionality.

The Voyager.php and VoyagerRestful.php drivers are an example of this technique in action. Similar work has been done for Horizon users with and without access to its XML API.

One useful design pattern you may notice if you look at the code for these existing drivers is that large chunks of key methods have been broken out into support methods: one that generates SQL in an abstracted associative array format and one that processes the database response. This makes it relatively easy for a child class to inject a couple of new fields into a query or process data slightly differently without having to copy and paste a large, complex method from the parent class. This design pattern is not only useful for implementing holds functionality; it’s also very handy for making minor local customizations to drivers.

1 People Like This Post

Barbara Haas is New Employee in Stacks Management

by Alice Bampton

Barbara Haas, originally from Larned, Kan., is the new Falvey stacks assistant.

A graduate of the University of Kansas, Lawrence, with a bachelor’s degree in education, Barbara began her library career in Wheaton, Ill., as an archives and special collections assistant in Wheaton College’s Buswell Memorial Library. Her duties included archival processing of faculty papers, maintaining collections from various university departments, locating materials for researchers and arranging displays of Special Collections materials while writing accompanying booklets for those displays.

The next stage of her career took Barbara to the University of Michigan, Ann Arbor. Her job in the Harlan Hatcher Graduate Library’s Preservation Office inspired her to pursue graduate courses in library science. Her graduate studies included an apprenticeship with James W. Craven, who managed the rare book bindery in Michigan’s Bentley Historical Library. After completing her apprenticeship, she secured a position in the Bentley Historical Library as a technical library assistant in charge of university publications.

More recently, Barbara has worked as a circulation assistant at the Easttown Library and Information Center in Berwyn, Pa.

Barbara’s hobbies are calligraphy and her spaniels, Ivan and Stella. “I’m just happy to be here,” she says, “glad to be in the University library [where] exciting things are going on.”

Domenick Liberato, Access Services stacks manager, said, “Barbara is a great asset to both the shelving operations in general and the Library as a whole… . I look forward to working with Barbara for many years to come.”

Also contributing: Gerald Dierkes; photography by Alice Bampton



« Previous Page


Last Modified: June 1, 2011