Skip Navigation
Falvey Library
Advanced
You are exploring: Home > Blogs

Karla Irwin Selected Fall 2011 Digital Library Intern

Karla Irwin, currently enrolled in the Master of Science in Library and Information Science program at Drexel University, is the Digital Library intern for the fall semester. Karla has a bachelor’s degree in fashion design with a minor in theater from the University of Delaware. Her home town is Wilmington, Del.

Before enrolling at Drexel, Karla worked as a theater costumer for the Shakespeare Theatre Company in Washington, D.C. “It was an interesting line of work,” she says, “and I still like to make clothing in my free time… I know how to tailor a suit and make period corsets.” She also worked with the Drexel Historic Costume Collection before coming to Villanova University.

Karla’s change from being a theater costumer to studying library science blended a number of her interests, and she hopes at some point to combine her past career with her new one.

Her hobbies include reading, watching screwball comedies, hiking, camping, quilting and other crafts.

Read Karla’s blog on a lost piece of theater history.

Article and photograph by Alice Bampton

 


Like

UMass Amherst Ancient Job

UNIVERSITY OF MASSACHUSETTS AMHERST, Amherst, MA.

Rank: Assistant Professor. Starting date: September 1, 2012. AOS: Ancient Philosophy. AOC: Open. Undergraduate and graduate teaching, two courses per semester, with usual non-teaching duties. Salary commensurate with qualifications and experience.

Applicants should submit: a letter of application, a CV, at least three letters of reference, a writing sample, and evidence of teaching effectiveness. Ph.D. in Philosophy by August 31, 2012 preferred; ABD considered. Electronic applications preferred. Please send application materials to: search@philos.umass.edu Hard copy materials may be sent to: Search Committee, Department of Philosophy, 352 Bartlett Hall, University of Massachusetts, Amherst, MA 01003. To be considered for an interview at the Eastern APA meetings, applications must be received by November 15, 2011. Applications will be reviewed until position is filled. UMass/Amherst is a member of the Five College Consortium along with Amherst, Smith, Hampshire, and Mt. Holyoke Colleges, and is also a member of the Academic Career Network, a resource for dual career couples. The University of Massachusetts is an Affirmative Action/Equal Opportunity Employer. The department is committed to developing and sustaining a diverse faculty, student body, and curriculum. Women and members of minority groups are encouraged to apply.


Like

Email Subscription Button Added

For those who prefer email subscription to an RSS Feed, I created an email subscription link at the bottom of the page.  Scroll down and click!


Like

Job listings site

Another site where jobs are being posted: This one is run out of the UK and posts UK and North American jobs: http://philjobs.org/jobs.


Like

New Sage Journals – Psychology

Falvey Memorial Library recently subscribed to a large package of social science journals from Sage Journals Online.  These titles are now available in full text online through library resources.

The My Tools feature of Sage Journals Online allows users to establish email alerts, saved searches, marked citations, and favorite journals through personal accounts.  If you need assistance setting up a personal account or taking advantage of these tools, please contact Kristyna.

Here are some highlights from the newly acquired titles in the Psychology Collection.  Check out this blog for more highlights from other disciplines!

Journal of the American Psychoanalytic Association
Holdings: (online) 1999 – present
One of the world’s most respected publications in psychoanalysis, the Journal of the American Psychoanalytic Association (JAPA) offers insightful and broad-based original articles, ground-breaking research, thoughtful plenary addresses, in-depth panel reports, perceptive commentaries, plus much more. Included in each issue is the esteemed JAPA Review of Books, which provides comprehensive reviews and essays on recent notable literature.

Autism
Holdings: 1999 – present
Autism is a major, peer-reviewed, bi-monthly, international journal, providing research of direct and practical relevance to help improve the quality of life for individuals with autism or autism-related disorders. It is interdisciplinary in nature, focusing on evaluative research in all areas, including: intervention; diagnosis; training; case study analyses of therapy; education; neuroscience; psychological processes; evaluation of particular therapies; quality of life issues; family issues and family services; medical and genetic issues; epidemiological research.

Emotion Review
Holdings: 2009 – present
Emotion Review (EMR) is a peer reviewed, quarterly published journal in association with the International Society for Research on Emotion (ISRE). The aim of the journal is to publish theoretical, conceptual and review papers (often with commentaries) to enhance scientific understanding of emotion theory and research. It accepts papers from a wide disciplinary spectrum – wherever emotion research is active.

Group Processes & Intergroup Relations
Holdings: 1999 – present
Group Processes & Intergroup Relations (GPIR), peer-reviewed and published bi-monthly, is a scientific social psychology journal dedicated to research on social psychological processes within and between groups. It provides a forum for and is aimed at researchers and students in social psychology and related disciples.


Like

E-Books for Business

The prices of e-readers are falling, the range of e-readers and tablets on the market is expanding, the formats for reading digital books has stabilized around PDF and EPUB, while the cost of buying e-books remains in flux.

So where does this leave academic business library collections? Not on the sidelines, but in the thick of it! Read Linda Hauck’s Business Reference blog on e-books for the Villanova School of Business.

Also contributing: Gerald Dierkes


Like

Separating Local Code Customizations in PHP

Background

For the past few months, I have been working on a prototype of VuFind 2.0, a reimplementation of the software based on the Zend Framework. I’m very proud of the 1.x series of VuFind releases, and I think they stand pretty well on their own, but the software has been around long enough to begin outgrowing its initial architecture. This reimplementation is designed to clean up some long-standing messes and make the package even more developer-friendly.

One of the big issues for any open source project is figuring out how to deal with local code customizations. A major benefit of open source is that anyone can change it… but changes can come back to bite you when it comes time to upgrade. There are two main strategies that can help alleviate this problem: use a version control system (i.e. Subversion or Git) and try to isolate your changes to separate files rather than changing core files whenever possible. Isolating changes is useful since, even if an upgrade breaks something, it helps you remember exactly what you customized. Version control is of obvious value — if you do have to resort to changing core modules, it helps you keep track of what you did and merge it with future developments.

VuFind already has some powerful mechanisms for isolating local changes from the core — theme inheritance makes user interface customization cleaner, a wealth of configuration file options reduces the need to change core code in many cases, and plug-in mechanisms like record drivers and recommendation modules offer hooks for inserting locally-built code. However, if you need to change some aspect of a core library class, you may still need to resort to editing core code.

The Goal

I have seen packages where you can override classes by copying a core PHP module, pasting it into a different directory, and making your changes to the copy. By taking advantage of a PHP search path that checks the “local” area prior to the “core” area, the package will then load your copy of the file in preference to the core version, allowing you to override the class. While this solution is a step in the right direction as far as avoiding the need to edit core files, it has significant drawbacks — you have to copy an entire class in order to change any one element of it, and when upgrade time comes around, chances are that you’re still going to have to do a significant amount of work to reconcile your locally-copied files with the new core. In fact, I would argue that this solution is actually worse than simply editing the core, since it makes it harder to effectively use version control software to merge changes.

As I see it, a better solution would be to find a way to extend core classes without completely overriding them — i.e. to create a child class that adjusts only the method or methods you need to change, without replacing the entire class. This would encapsulate your local changes in the most concise form possible, and while you still might have to do some reconciliation at upgrade time, good use of object-oriented principles combined with a stable application design could keep problems to a manageable minimum.

The biggest challenge to implementing this is that you run into naming problems. For obvious reasons, PHP doesn’t let you have two classes with the same name. If your core code refers to a class called VF_Search_Object and you want to change the behavior of the getResults() method without editing any other code, how can you do that? Fortunately, there is a way — it’s just a bit tricky.

The Solution

The answer to this problem relies on two key characteristics of PHP: class autoloading and dynamic code generation. With autoloading, PHP has the ability to call a function whenever you attempt to instantiate a class which does not exist. With dynamic code generation, PHP can actually create classes on the fly based on the contents of variables. The trick is to build an autoloader that detects whether or not local customizations have been made and to dynamically generate a new class that derives from either the locally customized version or the original core version as needed.

Still sounds complicated? Fortunately, Zend Framework makes it easier with its powerful autoloader module. The Zend Autoloader gives you a great deal of control over how classes get autoloaded. It can be configured to look at different class name prefixes and load those classes from different directories… or even call different custom autoloader functions. To solve our problem, we need to set up three different class name prefixes:

Core – Any class that begins with “Core_” is core code. Users would never want to directly edit any of these files.

Local – Any class that begins with “Local_” is localized code. Normally these would only exist when a user wanted to customize some piece of functionality, and they would extend a Core_ class with the same name suffix (i.e. the “Local_Example” class would extend the “Core_Example” class).

Extensible – Whenever any code instantiates a class, it will use the “Extensible” prefix instead of “Core” or “Local” — this is how the magic happens, since there should be no classes in PHP files on disk whose name begins with “Extensible_” — instead, the classes will be created dynamically as needed.

Here’s the code that sets this all up using the Zend Autoloader:

$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Core_');
$autoloader->registerNamespace('Local_');
$autoloader->pushAutoloader('extensibleAutoloader', 'Extensible_');

Very simple — “Core_” and “Local_” are registered as standard namespaces within the autoloader, which means that they will be searched for on disk. “Extensible_” is registered as a special namespace that needs to trigger a custom autoloader called extensibleAutoloader. Here’s the code for that function:

/**
 * Autoloader that allows optional local classes to extend required core classes
 * seamlessly with the help of a particular namespace.
 *
 * @param string $class  Name of class to load
 * @param string $prefix Class namespace prefix
 *
 * @return void
 */
function extensibleAutoloader($class, $prefix = 'Extensible_')
{
    // Strip the class prefix off:
    $suffix = substr($class, strlen($prefix));

    // Check if a locally modified class exists; if that's not found, try to load
    // the core version.  If nothing is found, throw an exception.
    if (@class_exists('Local_' . $suffix)) {
        $base = 'Local_' . $suffix;
    } else if (@class_exists('Core_' . $suffix)) {
        $base = 'Core_' . $suffix;
    } else {
        throw new Exception('Cannot load class: ' . $class);
    }

    // Safety check -- make sure no crazy code has been injected; these have to be
    // simple class names:
    $base = preg_replace('/[^A-Za-z0-9_]/', '', $base);
    $class = preg_replace('/[^A-Za-z0-9_]/', '', $class);

    // Dynamically generate the requested class:
    eval("class $class extends $base { }");
}

As you can see, it’s actually pretty simple — extensibleAutoloader() takes advantage of the regular autoloader in combination with “class_exists” to check whether or not localized versions are available. This tells it which base class needs to be extended in order to generate the requested Extensible_ class… then it uses the eval() function to dynamically create the class.

So imagine you run this code:

$z = new Extensible_Sample();

If you haven’t created a Core_Sample or Local_Sample class, you’ll get an exception. But suppose you put this Core_Sample class into your library:

class Core_Sample
{
    public function __construct()
    {
        echo 'I am a rock.';
    }
}

Now instantiating the Extensible_Sample object will display “I am a rock.” on screen — the autoloader will find and load Core_Sample but name it Extensible_Sample.

Let’s take it a step further and create a Local_Sample that extends Core_Sample:

class Local_Sample extends Core_Sample
{
    public function __construct()
    {
        echo 'Some people may think that ';
        parent::__construct();
    }
}

Now the Extensible_Sample object will display “Some people may think that I am a rock.” Magic!

Conclusions

I’m very happy to see that it is actually possible to achieve this effect — it’s something that I’ve been thinking about for a long time, and I’m happy I was able to make it work. That being said, I’m not sure if it’s worth the effort. I see three major drawbacks:

– This is a powerful mechanism for extending code IF YOU UNDERSTAND IT. But it increases the learning curve for getting into the codebase, since at a glance it will be very confusing to see all these references to Extensible_* classes that don’t actually exist on disk.
– All of the autoloading involved in the solution adds some overhead to the code. I haven’t done testing to see how significant the overhead actually is… but without some kind of caching or PHP acceleration, I have a feeling it might turn out to be somewhat expensive.
– The eval() function is one of the most dangerous features in PHP, since it provides an opportunity for attackers to execute arbitrary code. I believe that the way I’m using it here is safe (especially with the extra regex cleanup I’ve added), but it nonetheless makes me a little nervous.

I would love to hear what other people think of this — is the solution technically sound? Is the benefit worth the cost? At this point, I’m not necessarily committed to implementing this as part of VuFind 2.0 (and obviously the namespaces won’t be “Core_”, “Local_” and “Extensible_” if I eventually do). It could be done, though, and I think it’s worth considering. All feedback is welcome!


Like

Renovation Review: The Big Picture

By Alice Bampton

Have you heard the mysterious noises emanating from the second floor? Are you wondering what the second floor will look like when the renovations are complete?

Joanne Quinn, design specialist, and Kristyna Carroll, research librarian, created and mounted a large double-sided display that can answer your questions about what is happening on the second floor.

The windows facing the first floor welcome Falvey’s new residents to the Learning Commons, which will include the Writing Center, Mathematics Learning Resource Center and Learning Support Services. There are panels with descriptions of the services offered by each area of the Learning Commons; these panels include QR codes. Use your smart phone to read the QR codes and to find out more about their services.

A floor plan shows how the second floor of Falvey Memorial Library will house the Learning Commons, presentation rooms, study areas, academic integration (librarian) offices and offices for the library director and his staff. Across the bottom of the window are photographs of the second floor under construction, linked by bright yellow caution tape.

Tentative plans for the second floor of Old Falvey include space for Library resource management, outreach and communication office space.

A cross-sectional drawing of the two buildings, Falvey Hall and Falvey Memorial Library, reveals how they could eventually be linked by an atrium. This phase of construction will be dependent on a capital campaign.

In the window facing Holy Grounds is a large Project Timeline that reflects which projects are finished, those in progress and the ones still to come. There is also a “Falvey has Big Planzz” sign and a free-standing cardboard easel showing two seated construction workers whose faces are cut out; they can be used for photo opportunities.

If you keep an eye on the timeline, it will keep you informed of the progress being made in this important renovation project. You can also get a project overview on our Renovation News webpage and by watching our news blog for updates.

Also contributing: Luisa Cywinski


Like

CfP: Philosophy and the Arts (due 1/13/12)

Still Life?

New York City, March 30-31, 2012

The Masters program in Philosophy and the Arts at Stony Brook University in Manhattan focuses on intersections of art and philosophy. In an effort to encourage dialogue across disciplines, we offer this conference and concurrent month-long exhibition in Chelsea as an interdisciplinary event and welcome participants working in a variety of fields and media to respond to this year’s topic: Still Life?

Dr. David Wood, Keynote Speaker
Professor of Philosophy, Vanderbilt University

Submissions are due by January 13, 2012 (instructions here)

The theme Still Life? might provoke an existential, ontological, and/or ethical questioning of life as we know it. Additional topics might include: questions about (universal) human rights; the distribution of protections and risks; personal freedom, agency, and choice; disability and dependency; aging, decay and entropy; becomings, stunted potential, stutters and stammers; material, cognitive, affective or spiritual motion/mobility; vitality, time and rhythm; practices of preservation, plasticization and documentation; distillation and/or dilution; memory, nostalgia and haunting; exchanges, transitions and continuities between life and death; conceptualizations of eternity; enduring, waiting and patience; the life of art objects; ephemera(l) tracings; questions of motion and stasis; the uncanny or animate-inanimate; the inorganic life of things; causa sui or nascent morphology; contemporary still life; the endurance of painting/the painted gesture; the ‘freezing’ of photography; the stillness or kinetic affect or quality of sculpture; performance and the moving image.


Like

CfP: Kent State Grad Conf March 10, 2012 (due 1/18/12)

Kent State Graduate Student Conference March 10, 2012

Papers on all Philosophical Topics Welcome
Submission Deadline January 18, 2012

Keynote: John D. Caputo “Two Types of Continental Philosophy of Religion”

Electronic submissions recommended; please submit at: philconf@kent.edu
For problems or questions, contact Faculty Advisor: Frank Ryan at fryan@kent.edu

Submit a 100 word abstract with paper.  Reading length of paper should not exceed fifteen minutes, though longer written versions are acceptable.  We use an open review format where the author’s name may appear on each page of the document.

Accepted papers will be published in our online journal: Proceedings of the Kent State University May 4th Philosophy Graduate Conference.

Local transportation and limited overnight accommodations with Kent State graduate students offered. Free buffet lunch and reception for all attendees.



Like

« Previous PageNext Page »

 


Last Modified: October 4, 2011

Ask Us: Live Chat
Back to Top