Wednesday, February 1, 2012

Library Day in the Life - Round 8, Day 3

This post is part of Library Day in the Life project. See the Library Day in the Life wiki for info on the project. I also participated previous rounds. You can find all my posts for this project by searching my blog's librarydayinthelife tag. You can also follow my Twitter posts @slmcdanold with the hashtag #libday8.


Wednesday, February 1, 2012 

I get to my desk around 8:25am, login to the work network. This is followed by logging in to email, my work calendar, Voyager and Connexion, opening GTalk, opening a browser (Firefox at work, but Chrome at home), and logging in to various web programs (including Evernote), start TweetDeck.

Read email. Forward and respond to necessary messages. Catch up on news feeds, work email listservs, and library-related Twitter lists. Scan subjects and then delete mass numbers of listserv messages.

9:00am - Fill out survey from ALA on ALA Midwinter.

Pick up a piece of paper and find a sheet that looks suspiciously like a reimbursement form. Realize I forgot to turn in the paperwork and receipts to submit for reimbursement for ALA Midwinter. Sigh. ::headdesk:: Make the trek upstairs to turn things into the business office.

Check calendar to find out what's on today's schedule. The day is open. Whoa. What shall I do with myself today?

Morning: prepping and editing files of MARC records for bulk loads

Remember that weird character that showed up and caused records to error out when we tried to load them? I talked about it yesterday. It's not obvious when the character was introduced, so I'm going to review the files from each part of the process to find out when the random character string ({A0}) was inserted at the end of some of the subjects. This file goes through three scripts: the generic one to standardize things, a post generic script to map the subject codes to the LCSH equivalents, and finally a pre-load process to prep the records (adding data to generate holdings records upon loading, etc.). I have the individual output files for each step in that process to review and find when the character string showed up so we can troubleshoot.

I send off various requests for loading files of MARC records into the production instance of our catalog. Once I get the confirmation the records are loaded, I'll send out an announcement to all staff that title-level access is available. I also load smaller sets (less than 50 records) by hand into our system to speed things along.

10:10am - In order to help streamline the editing process for files of MARC records, I'm working with the systems colleague that normally runs the records through the scripts for me to get it set up so I can do it myself. This is very exciting. That means far fewer requests and less lag time for set editing. If I run new sets through the basic normalizing/standardizing script (FYI, it's in PERL, and all it does is standardize certain fields for local needs), then the only requests I need to make are for actual loads into our system! Exciting! Of course, this means installing software (ActivePerl community edition) on my desk and mapping me to various files, which takes a good 30 minutes. My colleague in systems is very patient with me, walking me through the steps (which I meticulously document in Notepad as we go through) and we have success! ::Kermit flail in celebration:: The process utilizes the DOS command window, and oh boy is my cmd vocabulary rusty. Yikes.


While we're chatting about running the MARC file editing scripts, I answer a few of her questions about load profiles and report frequency for a few ebook cataloging workflows we're tweaking. I discover in the course of the conversation that I was given SysAdmin access a few weeks ago but somehow I didn't get the message. SysAdmin installed and away we go! ::more Kermit flail:: Today is a good day!


Of course, the first attempt to do this on my own and I try to run the script on a file still in a .zip folder. Note to self: extract files first, THEN edit using Perl script. ::facepalm::


Noon - Try to figure out why we can't save edits to a bulk load profile when we change the order settings. I now have two chat windows open, one with my systems colleague and the other for a colleague that works in acquisitions to see if our inability to save a change to the orders piece of a bulk load profile is related to system permissions (I don't have permissions to edit in the acquisitions module).


12:40pm - LUNCH. Much needed. I think low blood sugar was starting to affect my brain (see attempt to edit file in .zip folder above).


While eating my soup, I respond to a message about putting together local specific training for MarcEdit and start to craft a possible outline, breaking things up into reasonable chunks from basic to really really complicated stuff. I don't know if I could do my job without MarcEdit anymore.


1:45pm - Next up is changing the way we process a specific MARC records subscription. I have to cancel one service, and set up a workflow for addressing changes by hand. This also means various requests to have records deleted from the catalog as well as a report of the deleted records so I can do the corresponding holdings maintenance. I put together the deletion request and report request and send it off to our systems department "ticket" system to add it to their queue. I also send off the message inquiring how to cancel the subscription to the MARC records files from OCLC WorldCat Collection Sets. 

I also get an email letting me know that the issue of multiple holdings records being created during the e-item creation process for reserves is much larger than just the handful I knew about yesterday. Our online resources should only have one holdings record with a "web" location and no other holdings locations or additional "web" holdings. Thus the creation of additional holdings records during the reserves e-item creation process is causing all sorts of display and processing issues. I request a report of all the bibliographic records affected so we can start cleaning up and start troubleshooting to find out what step in our procedure needs to be fixed to prevent the creation of multiple holdings records. Fortunately the report turns up less than 300, and it includes not just duplicate "web" holdings but also those where people are just using the wrong template to create "web" holdings. Completely manageable.



2:30pm - Help out our Hebraica cataloger with some serials questions and a cataloging module system question. The rest of my day is spent trying to track down errant issues, combing through backlogs in various places on our ground floor (aka the "basement") for materials in Hebrew, and trying to separate out titles that somehow got combined onto one record even though they are quite different. We gave up trying to figure out how and why it happened, and instead are just trying to fix it. Whew. I have stuff to talk to our serials acquisitions person about on Friday (he begged off talking about it tomorrow, so Friday it is).


4:15pm - Final email check. Clean out email listservs. Check Twitter and blog feeds. Schedule this post.


4:30pm - Shut things/programs down and log out from work network. Shut down (restart) computer. Drop of reimbursement form on my way out.

Tuesday, January 31, 2012

Library Day in the Life - Round 8, Day 2

This post is part of Library Day in the Life project. See the Library Day in the Life wiki for info on the project. I also participated previous rounds. You can find all my posts for this project by searching my blog's librarydayinthelife tag. You can also follow my Twitter posts @slmcdanold with the hashtag #libday8.


Tuesday, January 31, 2012


I get to my desk around 8:05am, login to the work network. This is followed by logging in to email, my work calendar, Voyager and Connexion, opening GTalk, opening a browser (Firefox at work, but Chrome at home), and logging in to various web programs (including Evernote), start TweetDeck.

While everything warms up, I compile the paperwork and receipts to submit for reimbursement for ALA Midwinter. Must remember to turn these in TODAY.

Read email. Forward and respond to necessary messages. Catch up on news feeds, work email listservs, and library-related Twitter lists. Scan subjects and then delete mass numbers of listserv messages.


Check calendar to find out what's on today's schedule.

Send out finalized version of one of the three sets of minutes I typed up on Sunday.

Send request to load update file for one of our ongoing ebook collections. We subscribe to regular updates of MARC record files for quite a few of our ebook collections. Mostly these are science publications, or conference proceedings type resources. Each time an updated file is posted, I send a message with instructions to our systems folks that there's a file ready for loading. They run it through a couple of scripts, both the generic one standardizing certain fields I described previously, followed by a script we wrote summarizing any additional edits for that collection specifically. These edits are typically things like additional title access points per request from our collection development librarians. Once the file is loaded, I'm emailed a report that all is complete and if there were any errored records or problems. All in all it's a fairly seamless workflow.

I also make sure I update the two spreadsheets where we track our bulk loads. One is the "master" that tracks all the collections and what the status is for loading MARC record sets. The other is just a summary count of the number of records loaded for each collection broken up by fiscal year for reporting purposes (statistics, y'all).


In cleaning up my inbox this morning, I realized I went right past an email sent out yesterday afternoon about access to Lynda.com. They have great technology training and I'm excited my library has purchased a site license! I did a bit of exploring, and discover they have a 4 hour session on programming fundamentals among many other interesting options. Professional development opportunity FTW! 

9:10am - Start work on troubleshooting an error file from a recent record load. 169 records loaded fine, but 16 of them errored out. I have to figure out why and then re-load them by hand. With any batch load, there's always the possibility of records that error out. The issues can be anything from record length (too long and the batch load process hangs and spits the record back), diacritics problems, MARC field validation issues, to complete mysteries. Sometimes the records load fine by hand even though they errored on the back-end batch load. For these 16 records it was three things: a random floating empty subfield b in the 300 field, an indicator error in a name entry, and a random character string ({A0}) inserted at the end of some of the subjects.


9:25am - Chat with my supervisor about a bizarre record display resulting from an e-item created for reserves module purposes. We don't create items for our online stuff, because there's nothing physical to track. For reserves, however, they create a "temp e-item" to put things in a professor's class list. Theoretically the item is removed later and all is well, but we've encountered a few irregularities in displays.


My morning so far can be summed up thusly: ebook record troubleshooting. Good times.


10:30-11am - Bi-weekly check-in meeting with 1 of my 4 staff. This is the other half of my staff meeting for this week. Next week I'll have my meeting with my remaining two staff.

More email and ebook troubleshooting.

11:30am - Meet with a colleague to discuss some issues that have arisen regarding e-items and the reserves module. This is the follow up from the earlier conversation with my supervisor. The reserve module and that workflow isn't part of technical services, but the access services department. So to fix the issues we're seeing of floating holdings records, e-items attached to incorrect holdings (and titles), etc., it requires a bit of inter-departmental cooperation and troubleshooting.

12:15pm - LUNCH. I need to eat a good lunch today before I donate blood so I don't pass out. I speak from personal experience that I need to do this when I donate...no donating before I've had at least 2 good meals that day.

12:35pm - Phone call from a colleague about getting together to write a charge for a subgroup for a committee I'm on. [Note: this is the same colleague that called me yesterday right before I had to leave to be somewhere. He swears he's actually trying to time his phone calls for the 10 minutes before I have to leave my desk. :cP] We have a group that's working on creating (from scratch) an digital repository (beyond our existing scholarly commons repository). We're starting from nothing, so the first step is figuring out what we need to actually store by putting together a census to interview our colleagues to find out what files they are hoarding and need preserved. Simultaneously, we're putting together a subgroup to investigate the various metadata schema available that can accommodate preservation, descriptive, structural, and administrative elements for a wide variety of types of materials that may be included in the repository.


1pm - My appointment to donate for the campus blood drive with the Red Cross. Luckily it's a beautiful day for a walk across campus to the donation site. They were a bit backed up so I had to wait a while for them to get to me. But the best thing? The after donation cookies were the mini-Keebler Fudge Stripes! NOM NOM NOM

2:20pm - After I'm done giving up a pint of my blood and am back at the library, I check email to discover that our system is kicking people out again this afternoon and had to be restarted. Sigh. I also find a request to schedule a meeting. I put together the meeting request and send it out via our networked calendar to various individuals. It's always fun to try to find an hour of time that 6 different people are available (/sarcasm).

3pm - My weekly meeting for the committee I'm on that's working on the user interface design of our new public catalog interface. We have a beta version live now (http://dla.library.upenn.edu/dla/franklin/) but are still fine tuning and working on getting some missing data (and indexes) into our display. In addition to the fine tuning, we're working on the next step of the implementation: the account services pieces (renew, view your checked out items, etc.). We're writing up the functional specs for various pieces including how to log in and log out of the account services, how to renew items, viewing and acting on your items already checked out, placing requests, etc. These functional specs will be used by a team of indexers and programmers to actually make the various pieces work. Writing a functional specs is an iterative process. We talk through the most straight forward process, step by step, identifying where the various pieces of data need to come from (what systems and indexes within each system, and on down the rabbit hole), how things need to be mapped (within the display and from one screen to the next), labels, and then we start introducing the exceptions, and then it blows up into a massive document with references, referrals, and more and suddenly what you thought would be simple and straight forward really is quite complicated. That complicated mess is then reviewed by systems folks (those indexers and programmers), and returned to us with questions, comments, and general feedback. We turn around and make more changes, and the review cycle starts over again. Eventually we get to a functional spec that can be used by the people to actually start the creation/programming process.


It's been an interesting (and positive) experience to be on a user interface team. I'm so used to looking at the data behind the scenes, all that underlying gibberish of MARC and codes and more (that frighteningly makes more sense and is easier to read to me than a cleaned up public display), and I've definitely had to stretch myself to look at things differently. I have to think about how the data is *used* and what is useful for the user needs (find - identify - select - obtain, hello FRBR our old friend). Our primary focus is on what displays and how the user interacts with the system. Aesthetics come in later (and are partially pre-determined). I've learned how to explain our data to non-data people, talking about what is there, what all the codes mean, data variations (both known and possible), how data could potentially be used, and explaining limitations. It's been a fascinating process and has really forced me to understand what I work with on a daily basis (data) in a completely new way and on a new level.

4:15pm - Back from meeting. Ended up spending part of the time chatting with colleague about related but not committee specific work going on. Good to get updates. And time for more email. Seven messages while I was gone for an hour. SEVEN. Yeesh.

Last major task for the day: more statistics, y'all (yes, it's the last day of the month why do you ask?). I copy the statistics for my unit from the website system reports interface. These are generic reports from the system to ensure an accurate count of items added (I have staff that barcode over 1,000 items each month, asking them to count that by hand would be just cruel), newly added records, etc. There's little (if any) context to these generic system reports, so I mesh these generic system reports with the specifics given to me by my staff each month, and then compile them all at the end of the fiscal year for use in a variety of reports on the Libraries, including sending reports to the Association for Research Libraries.




4:50pm - Manually sync local shared calendar system with my personal GoogleCalendar. Meeting Maker doesn't have a push function that plays nice, so I have to save events to an .ics file and then import them into Google. Why? Because I can't see my Meeting Maker calendar without either my desktop client or a web browser. Again, Meeting Maker just doesn't seem to play nice with things I need it to (including my Android cell phone). So I manually sync it whenever meetings are added/changed. Final email check. Clean out email listservs. Check Twitter and blog feeds. Schedule this post. 


5:15pm - Shut things/programs down and log out from work network. Shut down (restart) computer. Leave work.