Feed2JS Users?

2009 June 25
by Karen

I’m doing a presentation where I’m talking about Feed2JS and I don’t have any examples of libraries using it. I know you all are out there because Feed2JS gets mentioned lots and lots. Can a few of you post urls of library sites where you are using it and let me know what piece of the page is being generated via Feed2JS?

Thanks in advance.

m-Libraries Day 1

2009 June 24
by Karen

Lorcan Dempsey was the keynote speaker this morning. He talked about a whole host of things from why mobile technologies have such a high adoption rate to how users are changing their workflow. Probably the most thought provoking thing he said was that users now have the attitude of “you need to fit into my workflow. I won’t fit into yours.” This is something I’ve been trying to get across to my colleagues and superiors for quite a while as it relates to the library website. We spend an enormous amount of effort on the site when visiting the site isn’t part of students’ workflow. Lorcan touched more specifically on library websites later in the talk. My notes say “what’s in the website should be atomized & consumed by other people’s services”. I also was taken with his assertion that library websites hide people, are very anonmymous and whitewashed. This is certainly the case with UH’s site. I could never get much traction on the idea of having librarian photos on the site even though some subject liasions asked for it. The functionality exists but few liasions use it. Much of what Lorcan said wasn’t new to me, but seeing the talk reinforced a bunch of ideas and concepts I’ve been kicking around which was good.

Of the rest of the day’s sessions I have a few favorites. Ken Banks talk on his Frontline SMS software and how it is being used in developing countries was really interesting. Basically, the software faciliates communication both one and two way via cell phone in a text message like fashion. Using the software information can be both collected and distributed. I wonder about the potential applications of this types of software in libraries particularly to reach rural or under privileged population. Also Carie Page’s talk on “Reaching the Always On Generation Through Mobility” was really good. Hearing her talk about these users reinforced previous talks I’d heard on gen-Y but in a more specific mobile tech context.

Then evening conference dinner was very nice. I had the chance to sit with a pretty diverse group of people including a librarian from Shenadoah University, which is a small private college in the Shenandoah Valley. I was sort of surprised that a librarian from such a small college would find their way to m-Libraries. So I ask him both about his library and how it was that he chose to attend the conference. The conversation, in which he shared that his institution will be providing incoming freshmen with either an iPod Touch or iPhone, reminded me about the divide that exists between library haves and have nots. My colleague’s library has 5 librarians and almost no support from campus IT. So he and his fellow librarians there are facing the challenging of how to deploy services and content for iPod/iPhone with little expertise and resources. Yet, libraries exists which have already done some of this work. So why should his institution have to start from scratch. Too often we reinvent the wheel in libraries. We write code to do the same thing at many different institutions, we hack the same OPAC 35 different ways, we design our own individual mobile web presence. While we sometimes share our practices, we often don’t share our code, or work together to develop a single system rather than each maintaining our own. This is not only inefficient, it creates a divide between libraries that have the resources and willingness to innovate and create and those who don’t. I wish that there were some way to overcome this but that would take a degree of cooperation and centralization which libraries don’t seem capable of yet. It leaves me wondering what the future holds as we try to meet the challenges of rapid technology changes as individual institutions.

Discovering Mobile Websites and Apps at M-Libraries

2009 June 24
by Karen

On Monday I attended a preconference at m-Libraries which was supposed to be about designing e-learning content for mobile devices. Much of the workshop was focused on streamlining your content, which wasn’t of particular interest to me. I was lucky enough to be sitting a a table of web librarian folks though. So we customized the workshop more for ourselves and looked at and discussed different mobile sites and apps together.

It was really fun getting to see the apps and site which people knew of. Discussing their potential pros and cons. It was also nice that a couple of us had iPod Touch to play with to show off particular sites and apps. One of the most difficult thing about showing off iPhone apps and sites is figuring out how to show them to others (en mass). While you can grab screen captures from and iPod/iPhone, I don’t know of a good way to do do full motion screencapture of a iPod/iPhone. I really wish that there was so that I could embed a video of an iPhone demo in presentations. The same can be said for other cell phones. While there are emulators, they aren’t always great. So often we are left with passing around devices which isn’t the most effective. Still, it was really valuable for me to be able to sit with a group of colleagues, look at websites and apps and talk about what we thought worked and what didn’t.  We also spent time talking about what bits of content that we thought would be most appropriate to mobile devices.

Overall I think that it was a valueable experience for the folks sitting together and sharing our mobile plans and thoughts.

Widget Lessons

2009 June 19
by Karen

So yesterday my staff were working on building Javascript widgets that allow piece of our website content to be inserted into other systems easily. Primarily we’ve been working on this for our staff listing which appears in both the public website and our intranet. The solution has been to build a web service to the data which is part of our public website and then build a javascript which can easily be inserted into a page, block, whatever in Drupal.

My developer hit one small snag working on this and that is how to properly insert the HTML where we wanted it. This is because we have to append the HTML we are creating to a tag that already exists. At first we thought “no problem” we’d just append it to div.content. The problem with this is that when you are looking at a single node with the javscript this works great. But if you flip to a view which shows multiple nodes with their body well then the script runs multiple times. This is because every Drupal node has a div.content.

So how do we deal with this? Well we create our own unique div that we have the Javascript insert the content into. It looks something like this

<div id=”staffTableGoesHere”>&nbsp;</div>
<script src=”http://devinfo.lib.uh.edu/api/api.js”></script> <script>$(document).ready(function() {callAPI(’displayAll’,'c.staff’,'dc.identifier=1′);});</script> <noscript><a href=”http://devinfo.lib.uh.edu/api/?format=HTML&component=c.staff&method=displayAll&query=dc.identifier=1″>View Basic Version</a></noscript>

I’ve always wondered why some widgets include a blank div and now I know why. For example, several of the WorldCat widgets do this. Without the div you can guarantee that the content you want to insert will get put in the right place.

Another solution is to put an id into the script tag and use that id to add the HTML after the script tag. That would look like this

<script src=”http://devinfo.lib.uh.edu/api/api.js”></script> <script>$(document).ready(function() {callAPI(’displayAll’,'c.staff’,'dc.identifier=1′);} id=”staffTableGoesHere”);</script> <noscript><a href=”http://devinfo.lib.uh.edu/api/?format=HTML&component=c.staff&method=displayAll&query=dc.identifier=1″>View Basic Version</a></noscript>

Two simple solution but the logic takes a bit to parse out.

Want to learn about mashups in libraries?

2009 June 15
by Karen

So last year I agreed to write a chapter for a book that Nicole Engard was editting. My chapter was about UH Libraries adventures in mashups using the WorldCat Search API, Google Books, Amazon, and LibraryThing. It seemed like a great opportunity and a nice way to expand on my presentation for last year’s Social Software Showcase. When I signed up a sort of got a sense of who some of the other authors were and what their topics were going to be, but when I got a chance to look a more complete table of contents my jaw literally dropped. Library Mashups: Exploring new ways to deliver library data is EXACTLY the kind of book I’d be interested in buying if I wanted to learn about mashups. Its got great contributors: Darlene Fitcher, Jason Clark, Ross Singer, John Blyberg, Tim Spaulding, and Bess Sadler and even better topics: mashups with Delicious, YouTube, Google Books, Blip.tv, Google Maps, an overview of Blacklight, info on LibraryThing for Libraries, discussion of SOPAC, and lots more. I’m waiting with baited breath for my complementary copy. For more information check out the book’s companion website which editor Nicole Engard is using to keep people up to date on book related news. You can pre-order a copy of the book via the Information Today website.

How to get your Web Service used

2009 June 14
by Karen

I’ve been doing a lot of work involving web services over the last year and one thing that I’ve been thinking about quite a bit is how organizations can get their web services used. Good documentation is an obvious must but there are other things as well.

First, RESTful web services are the most popular these days because they are the easiest to use. Ironically, most web services that say they are RESTful really aren’t. They are more XML-RPC REST hybrids.  True REST APIs use all the HTTP methods (GET, POST, PUT, DELETE) rather than just GET to get the job done. If you look at the Flickr “REST” API it always uses the GET method regardless of if you are reading or writing data, which to be truly RESTful it shouldn’t do. The adds should be done with POST, the edits with PUT, and the deletes with DELETE. Suffice to say if you want to know more you should read the  RESTful Web Services book by Leonard Richardson, Sam Ruby, and David Heinemeier Hansson.   In any case, even REST hybrids are easier than SOAP IMHO. Why? They are readable and as a result make sense to humans. For example, below is a WorldCat Search API OpenSearch query

http://www.worldcat.org/webservices/catalog/search/opensearch?q=harry%20potter&wskey=[your key]

Looking at this you can see how easy it is to read. It is this readableness that makes this type of web service interaction easy to copy and mimic. It didn’t take me long to figure out the WorldCat Search API because its uses REST. (Whether or not it is truly REST or a hybrid is up for grabs in my mind.)  SOAP-based web services aren’t this easy. Instead of easily being able to see what is being sent to the server SOAP requires you to package up your request as XML. Needless to say, I personally find this much more difficult to write and debug. So if I were creating a web service (which we are at UH), I’d make sure it had a REST or REST hybrid interface.

Second, think very carefully about your data output format. Many people prefer to work with JSON. Often this is because they find it easier to use than XML. While this is a personal preference, it should be noted that most major web services provide a JSON response (and also typically XML as well). Personally, JSON isn’t my cup of tea. This is probably because I’ve had heaps of XML and am comfortable working with Xpath. So JSON doesn’t do anything for me. However, my developers LOVE it particularly when building AJAX apps and if JSON isn’t available with transform XML to JSON as a matter of course.

If you are going to output your data as XML, I have a few words of advice, which may seem slightly conflicting. Make sure you look at existing XML schemas and standards for the data you are outputting. If one that matches your needs exists, use it if possible. This will help with getting your API adopted. That being said. Complex XML is often not desirable. Partially because it requires more complex knowledge of XPath to be parsed but also because tools like Yahoo Pipes don’t understand complex XML. I learned this the hard way working with the MARCXML response from the WorldCat Search API. God, I wish there was a middle ground between the brutal complexity of MARCXML and the simple stupidity of Dublin Core. The lesson if you are building your own API? Make sure the XML structure is smart enough to represent the relevant data, but not so complex as to frustrate developers. If an existing schema is insanely complex and not well adopted (particularly beyond libraryland), don’t use it, create your own.

Third, some sort of web service builder helper tool is a good idea. The WorldCat Search API and the Flickr API both have this and I think it makes the developer’s life easier because they can easily build a url and test it. The REST Module for Drupal is supposed to do this but it is either broken or I don’t know how to properly use the testing tool due to, you guessed it, lack of good documentation. I wish an web service helper tool was something we’d built into our web service at UH from the start. It may be something we have to go back and add. Only time will tell.

Overall I think these little bits of advice can help libraries develop better web services which can be adopted and used well beyond libraryland.

Mobility, Ubquity and Changing the Way We Do Business

2009 June 5
by Karen

For most of last year the UH Libraries has been conducting a pilot project where librarian were given or could borrow an iPod Touch to use as part of their work. Several librarians participated in the project using the devices on campus, at conferences and a variety of other places. As part of the project the oversight group conduct a survey of both people who used the devices and those who didn’t. In addition, we also interviewed 15 librarians about the project. Watching the interviews has been a real eye opener for me, in terms of how people work, want to work, and the barriers that the library creates to people being effective at their jobs.

One of the things that surprised me the most was how many librarians wanted the ability (but the not the expectation) of keeping in touch while they were away at conference. In addition, the need for flexibility in mobile technologies was also an important theme. Some participants favored the portability of an iPod Touch while other would have preferred a large screen and keyboard.

It was also interesting to see how many of the subject liasions spend a significant portion of their time outside the library. While this is in line with the theme of “going where users are” which is part of Library 2.0, libraries often aren’t equiping their liasions with devices to function in this work scenario. Also, being effective in meetings by having access to the appropriate information and being able to easily capture information like meeting notes also came up. Interviewees also seem to indicate that they weren’t always sure when they were going to need access but they did know when they’d arrived at a scenario where they wanted access.

I wonder sometimes if libraries are paying enough attention to these issues when it comes to mobile technologies. Most of the mobile efforts that I’ve seen at libraries thus far have been focuses on making library content, services and resources available to users with mobile devices. There seems to be little investigation going on into how the way deploying mobile technologies to library staff impacts our ability to serve users. Certainly deployment of mobile tech changes the nature of the relationships between librarians and faculty. Also there were occasions when it seemed that mobile tech changed the way in which librarians were able to collaborate with one another. Our pilot seemed to indicate that there are significant advantages and benefits to providing library staff with mobile technologies. As a result, more mobile devices will be deployed here over the next year. I hope that the library continues to examine the ways in which this technology changes the work of librarians and library staff.

Making Entourage/Exchange and Google Calendar play nice on the iPod Touch

2009 May 28
by Karen

We’ve been experimenting with iPods Touch for librarians here at UH. At the same time we’re in the process of migrating staff to Exchange for email. For me this means Entourage on the Mac. The only problem is I also use Google Calendar to keep track of personal things going on in my life and stuff like my ALA schedule. I want access to both of these things offline since wi-fi isn’t always available. So how do I deal with this? Well, the easiest and most cost effective way is to sync Entourage to iCal, subscribe to the relevant Google calendar in iCal, and then sync these to the iPod.

Its far from perfect because things don’t stay up to date unless you are connecting back to the computer where your Entourage sits regularly. Syncing to Exchange directly works better if you want to keep the calendar stuff the most up to date. However, if you sync to Exchange you can’t have a local copy of Google Calendar. A part of me is interested in the sync functionality that Google makes available, but it seems to be Outlook only. There is also a mobile sync, but I’m terrified to try this out and overwrite my Exchange data on the server. I might test with a blank iPod in the future. Any other Mac iPod Touch/iPhone users out there have suggestions about this?

Making time for R&D

2009 May 11
by Karen

One of the things that I found interesting about the comments to my last post was the fact that people talked about the fact that their institutions didn’t have time to learn about the OCLC Grid Services or time to do Research and Development. It isn’t that this fact surprises me, but rather the fact that libraries haven’t figured about what to let go so that they CAN do R&D. While my unit at UH has responsibility for keeping the library website and other elements of virtual presence running, I also see R&D as a huge part of our job. This is because in order to better serve our users (whether internal or external) we always need to be looking at how to make improvements to existing systems. Case in point, we continue to work on an API for the library website which will allow us to distribute library website content to a wider audience. What do I mean by this? Well, this summer we are embarking on a partnership with a professor in the Computer Science department to build iPhone apps for the library. This wouldn’t be possible if we didn’t have programmatic access to the data in the website. We’ve also spent a great deal of time exploring Drupal and its ability to serve particular functions and take the place of proprietary purchased systems.

If you are thinking that we have tons of staff or are privileged, I’d like to dispel you of that notion. The department consists of myself, another librarian (Web Services Coordinator) and two developers. We do it is by settings priorities so that R&D gets its fair share of the time. This means that we don’t build pages for people, we give them the tools and training to build the pages themselves. Rachel, the Web Services Coordinator, is a huge part of our ability to do this. She spends significant portions of her time, teaching, training, and helping staff throughout the library to use the system we have. She also gathers feedback as part of this process and we use this to influence development decisions. Ultimately, we don’t build systems from scratch we adapt existing OSS or off the shelf software. The major exception to this is the CMS that drives the library website and is the glue that holds all the pieces together.

By running things this way, we make R&D a part of our daily work and priorities. This helps us build better tools for the librarians and staff and provide better experiences for our end users.

OCLC offerings

2009 May 7
by Karen

Since OCLC’s announcement last week I’ve been thinking a lot about the return on investment which libraries get out of their OCLC membership. Partially because I’ve been wondering why some libraries aren’t OCLC members but also because I keep learning about new services that we have access to and which other libraries don’t seem to be aware of or using. So what services am I talking about?

OCLC has been able to build all the these services in part due to the vast amounts of library data they have at their disposal. But also, because of the fact that they’ve been dealing with large datasets for quite a while they have a leg up in terms of experience with things of this scale (at least comparably to other vendors). Also, as I’ve said before OCLC ResearchWorks is a veritable fount of cool stuff.

So I’d like to ask those OCLC member libraries not taking advantage of all these tools, why the heck not? The tools are available to you at no additional cost. And though it seemed like OCLC might charge members additional $$ for some of these at first (xID Services for example), this no longer appears to be the case. Also for non-OCLC members, some of this stuff is free for  you tool. So what’s holding folks back? Why aren’t you using this stuff? Better yet, what other data would you like to see OCLC supply to its member libraries and maybe other non-profits (potentially at no additional cost)?

My personal wish list?

  1. Covers and reviews. We currently use Syndetics for covers and I’m sorry to say that the service is at times less than responsive. Talking to other folks using Syndetics we don’t seem to be the only ones who’ve noticed this problem.
  2. Another data store that would be cool is biographical data about people. Maybe something like the datastore Talis has created from Wikipedia but linked to name authorities and maybe other types of authorities. Biographical, encyclopedic content is a real sticking point when dealing with digital objects because you don’t want in depth information like this in the individual object records because it isn’t sustainable. However, you need a place to put this type of information where you can link to it.
  3. More information in the registry. Particularly subject liaison information and branch library locations. Also library Z39.50 servers, SRU services and OpenSearch definitions
  4. Serials holdings data, both electronic and print

Do folks have other wishes or thoughts? If so please comment.