Monthly Archives: May 2005

I’ve finally managed to rewrite quite a bit of the WAGger to run in Greasemonkey, a sort of crazy swiss-army knife for Firefox. My only experience with Greasemonkey up until now was modifying Peter Binkley’s Firefox extension to work with GM (which required… nothing on my part, really). My hesitation mainly revolved around my historical frustrations surrounding JavaScript and the amount of work I’d potentially have to put into something that works in a browser that nobody uses.

Now I’m pretty happy I invested some time.

First of all, I have the WAGger persistence that I really could never get from the PHP Localizer. Instead of requiring the user to know when to use the bookmarklet, WAG the Monkey knows when to wag for the user. Of course, this assumes it’s always on, which is less than ideal.

Another advantage is that it’s fast. Real fast. Like so much faster. Like really.

The best part is that I think I can use most of it for a better and faster bookmarklet style WAGger, as well.

Thank you, Greasemonkey, for making me get off my ass and learn JavaScript in ways that I should have a long time ago.

If you want to try it (for a Georgia Tech experience), install Greasemonkey, then this user script.

Now that I’ve overcome my fear of JavaScript, maybe I’ll take a look at Piggy Bank. RDF has always given me the willies…

Today, I attended GUGM 2005. GUGM stands for “GIL User’s Group Meeting”, and, unless you happen to be from the State of Georgia, you probably have no idea what that means. “GIL” stands for “GALILEO Interconnected Libraries” which is fancy name for the consortial deal the University System of Georgia has with Endeavor’s Voyager. All 34 USG schools use Voyager and we have a big, happy union catalog and universal borrowing and the whole works.

So once a year USG and Endeavor throw GUGM, which is a hodge-podge of Voyager semi-related sessions intermingled with Endeavor rah-rah propaganda.

I was in attendance because I was asked to do a presentation on WAG the Dog. I probably wouldn’t have gone otherwise. There were very few automation type sessions and learning about the problems with ILL and cataloging aren’t the best way I can spend my days.

Still, I actually had a pretty good time. I carpooled down (to Macon) with Crit Stuart and we had pretty good conversation – amazing since we left GT at 7:30AM. The keynote speaker was Kris Biesinger on GACollege411. This is a really pretty incredible service for high school students in Georgia to help track their path to college. Bravo! I certainly wish something like that had existed when I was in high school (and I wouldn’t have wasted a year and a half at UTC).

This is not the point of this posting, however.

The first session I attended (by process of elimination) was one of the aforementioned Endeavor rah-rahs given by Dave Richter, VP of Global Sales. It was a mostly dry overview of the “state of the company” and whatnot, but what stuck with me was an air of humility that permeated from his PowerPoint.

We have gained of reputation of being less responsive to our users.

We need to act more like partners with our customers.

We need to become technological innovators again.

Granted, this was coming from the VP of Global Sales, so if anyone should be able to cry crocodile tears it was he, but still, there was something to these admissions of culpitude that one rarely sees from a vendor, especially one associated with Reed-Elsevier.

He went to describe the dilemma of being a library vendor in that one may have to go the “novel” approach of working with another vendor to deliver a particular product. That this sort of “radical” thinking was what you sometimes “had” to do, but what to do if this particular deal would possibly favor a competitor’s product over another you or your parent company offers?

Here is where I had to interject. I tried to hold my tongue as long as I could and I kept telling myself, “Don’t sound confrontational… Don’t sound confrontational…”… but I think I sounded confrontational.

I said something along the lines of:

I understand that you have a business to run and you have to think of the bottom line across all your divisions… but ultimately that hurts us. We can’t expect any one vendor to supply all of our information needs, so therefore we need you to play nice with each other. Further, we need to be able to do anything we want with our data and the data we’re paying for. When we license Voyager from you, we don’t want proprietary features that make WebVoyage do things that we can’t do in any other way. We have ideas of what we can do with our database, and the limitations you set on what we’re able to do with it forces us into little silos of data. And that’s good for no one.

I went on to say some more about “speaking for the library developer community at large” (sorry library developer community at large) that we need vendors to relax a bit and open up their products more to us.

I talk a lot, I realize, but the crux of this is: We have to treat each other as “partners”. We (the libraries) are reliant on the ILS and database vendors to accomplish our tasks as libraries. Vendors are reliant on libraries to even have their freakin’ business. We both need to address the reliance we have on each other and actually work with each other as symbiotic entities.

Also, Memo to library vendors: Don’t worry so much about losing our business to a competitor. There is no reason to be overprotective. An ILS migration is probably the biggest nightmare that faces a library organization, so it would take an incredible act of negligence or bankruptcy to drive us away.

One last note. If you want to regain your place as a technological innovator, perhaps you should start fostering and endorsing a development community among your customer base. It could only serve to make your product and company stronger.

Last Thursday/Friday I decided to put my development time where my mouth is and actually try to fiddle around with A9’s Opensearch. Earlier in the week, I had told my boss that I wanted to do this and that I didn’t think it would take much time or energy.

Her reaction was:

  1. What is Opensearch?
  2. Ok, now that I know what Opensearch is, why on earth would anybody choose to search Georgia Tech’s catalog in their web search?

At the time, my argument centered around the fact that I was only using our catalog because it would be a fairly simple exercise to get working with Opensearch. If it seemed viable and simple to do, the real project would be to get our DSpace repository searchable this way. Since my proposal wasn’t really gaining much momentum with her, I tried to sweeten the pot by noting that our environment was set up exactly like the Library of Congress’s (SRW/U via Yazproxy to a Voyager database), and if they found it useful… well, wouldn’t it make Tech look good to have the LoC using something we developed?

Ok, I realize this definitely makes me seem like sort of Iago whispering weasely ideas into Othello’s head but there is some truth to it and if the end-product is a success (or even if the LoC is passingly interested in it), I think there’s some “good to be gotten”. Having an agenda isn’t necessarily wrong. Using other people’s desire to increase our profile in the community to further that agenda probably is, though. Oh well… enough of my cravenness.

So, in an effort to expand my horizons a bit and to try to make this a little more portable (you know, just in case the Library of Congress is interested…), I decided to try to develop this Opensearch to SRU thingy in python. Dan and Ed have been advocating python for a while now (as has my friend Tom… apparently python is heavily used in XBox hacks). The #code4lib sprint at ALA will probably be python-based, so I thought I better start getting familiar with the language a bit. I had dived into python a couple of months ago to try my hand at unalog development, but reality stepped in and dragged me back to PHP. I always do better if I have an actual objective, anyway.

By the time I left for a mini-vacation (ah, so therapeutic!) on Friday, I had a mostly working prototype (thanks to Dan for some python pointers). In fact, it was a completely working prototype except for the fact that it wasn’t encoding xml entities (so, keep it in lower ASCII, folks!), which is, of course, less than ideal. I should be able to fix that today.

Right now the query requires either “keyword anywhere” or minimal knowledge of CQL. The nice thing about CQL is that it actually makes quite a bit of sense.

  • author=Hemingway
  • subject=biology and title=”Introduction to biology”

This syntax either needs to be made apparent in the Opensearch column description (less than ideal) or it needs to be translated from however A9 would define this sort of thing.

On my train ride in this morning, I began to think about the conversation with my boss about this project again. Even if our potential user base is relatively small, isn’t this exactly the sort of thing we want them to be able to do? From a search engine or any search of any sort, wouldn’t we want to also be able to show relevant resources from our own collection? Yes, the user would need to add the column (strike one!) to their A9 search results (strike two! They’re at Google!), but if it’s easy enough to implement, why wouldn’t we offer this? A metasearch would certainly be more ideal to expose our collections, but I don’t have access to that right now and I haven’t figured out how A9 deals with access controlled content, anyway.

One of the goals of the redesigned OPAC project is to create human parseable, crawler-friendly urls so these avenues of discovery can be opened. There is no good technical reason that web opacs place the session information in the url (my guess it is for backwards compatibility with cookieless browsers).

Wouldn’t these urls make a lot more sense:

  •, David L./title/Introduction to biology
  • cell biology

urlencoded, of course.

Things like this seem so simple for providing a little better access to our collections from the outside world.

So as Art and I continue to try to export the data from our respective Voyager catalogs to create an alternative web opac, I have been trying to formulate what such a beast should look like. We have the opportunity to make the web interface look and behave in any way we want, so there are a lot of things to think about. The goal is to make the opac behave in the way non-information professionals would expect a searching interface to work, so we’re not just talking about a cosmetic makeover to the current design.

We just had a professional usability study done on our web site and services. The results were rather sobering. While not every aspect of our web presence is bad, a great deal of it is, and, worse, the bad parts are generally the most important. Making the situation even more complicated is the fact that a lot of these awkward interfaces are not under our control (the databases, ejournals and opac). Well, not currently under our control.

I’ll skip over the part about our website (we’re able to fix that pretty easily) and write about what they recommended for the catalog. The first screen they gave us was a redesigned search form. An interesting dialogue came out of that:

Usability Expert: Ok, so this is the search form…
Librarian(s): So… is this the simple search form or the advanced search?
Usability Expert: This is the search form.

And it really is as simple as that. It is a text input field that, by default, would do a keyword natural language query on the catalog, or you could add limits and filters (title, author, subject, etc.) or make a more sophisticated boolean search using the exact same form.

The other screen they showed was a full record page for a journal. It was extremely well laid out, but I noticed that it had a lot of visual clues in the page that item you were looking at was a journal. This is another incredibly simple feature. Different types of resources can have their own layout based on what is logical for that type of resource. Also, we could conceivably display electronic holdings from SFX in our opac interface, so the user doesn’t have to click on the SFX button (or generic 856 link) and open the SFX window to see if an issue is available electronically. We could also, at this point, give recommendations of other resources that might be valuable (such as A&I databases that this particular journal appears in).

The usability study was extremely useful for looking at the opac through non-library eyes, but with a view focused on making things more useful.

Last week I began trying to visualize how to lay out search results. The initial design, I think, will look something like:
Your search for “Ernest Hemingway” resulted in:
167 Total Items :: 102 Books :: 50 Videos :: 2 Journals :: 13 Audiobooks :: 1,072 Items from GIL Express

With each of those being tabs to view different types of resources (plus a link to our state union catalog at the end). The goal is to be somewhat A9-ish, but I can’t say I’m a huge fan of the column layout.

I am, however, a huge fan of the folksonomy. I definitely plan on implementing user-supplied subject headings. We want to implement a style social bookmarking/citation management system here anyway (probably using unalog), and it seems like this would fit in quite well with that. I wouldn’t actually expect users to just add “tags” to things without some sort of personal gain, so if it was incorporated into a “bookbag” system, it might actually get used. Although the idea of just leaving breadcrumbs around the opac (and databases) might be useful if they don’t want to clutter up their bookmark pages with a ton of items. This is something that we can play around with. Mark Leggott talks about adding folksonomic support in the University of Winnipeg’s alternative opac project, as well. Interestingly, I had no idea Mark was working on something like this (rob caSSon, at the University of Miami, Ohio, is also working on a similar project. Miami and Winnipeg are both III sites; perhaps they should get in touch with each other).

Over the weekend (yes, I get a touch obsessed about my job), I began thinking about the utility of displaying dust jackets in the opac. When I was designing a new books list application at Emory, it seemed “obvious” to include dust-jackets in the results. I mean, that’s what Amazon does and it’s user-friendly, right? Well, while I was thinking about it this weekend, I started wondering how useful this really was. What is the purpose of showing the dust jacket? It certainly won’t help the user much if they go into the stacks to find the book… we rebind everything in those boring red/green/gray/”khaki” bindings, with no indication of what the original dust jacket looked like. If anything, this seems like it might be more confusing to the user.

Something that seemed so “obviously necessary” in a modern opac 12 months ago now seems pretty frivolous and would just add unneeded clutter to what will probably already be a fairly cluttery interface.

I’m sure this design will continue evolving, but it’s got to start somewhere.

I am a total sucker for a well crafted pop song.

This might come as a bit of a surprise to anyone that is familiar with my standard listening fare, but this secret obsession is nothing new. Let me clarify: when I say “pop”, I am not talking about the bubblegum pablum and effluvium that the industry tries to pass as music, but genuinely original, thoughtful and well-created songcraft that appeals to me as both a musician and a human being.

Enter the Shins. There is arguably no other act right now that is producing such catchy and hook-laden music. It’s not all necessarily upbeat, but it’s all pop. It also has the unique attribute of being something that Selena and I both really like.

Selena bought us tickets to their show last night at the Variety Playhouse. The Variety is definitely one of the better venues in town and I had been looking forward to the show.

I need to go on a sidebar here before I continue: I am a misanthrope. In general, I abhor other people (at least in groups) and find myself dreading to go to events with large numbers of people because I feel those people cannot be trusted to behave. Since I realize I am in the minority here, I generally just opt to avoid situations where I’ll get agitated by the behavior of others. For example, Selena and I have never been to a movie together. We both have had enough aggravating experiences in movie theaters that we feel it’s just in our best interest to wait until the movie comes out on DVD.

This being said, I do like to go to shows. However, given my general musical tastes, majority of the shows I go to are populated by a fairly homogenous, docile, and, in many cases, stoned crowd. That’s my “base” and we’ll call “comfort zone”.

Poppier music pushes me out of that safety net into the more dirty masses and I tend to get a little tweaked and annoyed by the behaviors of those around me.

So, back to the story. The opening act was the Brunettes and we can just say that the less I have to deal with them the better. They are a New Zealand band that reminds me of the Partridge Family and for their last song (or one of their last songs… I lost track) they all donned “Olsen twins” masks and played their instruments. It was like musical Carrot Top and I was happy when their set ended.

The crowd consisted of a lot of frat boys and their girlfriends/wives. There were quite a few visors worn. I am not much of a fan of those who wear visors. At one point, I leaned over to Selena and explained that by playing the music we do, my band would never attract a crowd and, as a pleasant side-effect, would therefore certainly never attract this crowd. Selena wasn’t really buying it, though. She still just thinks my music sucks.

The Shins were quite good. They had a lot of energy, their songs were tight. My… complaint… if you can call it this… is that I felt like they acted like they were playing at a frat house (and it seemed obvious that they had experience doing so).

Maybe I should stop now… The Shins are a very good band and if you don’t get hung up on the crowd, you’ll probably enjoy them live.

In the last three weeks, I have seen Band of Horses (or, more commonly, just “Horses”) twice. They opened for Iron & Wine at the Variety a couple of weeks ago, and I caught them again last week at the EARL opening for the Mountain Goats. It’s not often that I am blown away by an opening act, but Horses was pretty amazing. There is a bias here, Ben Bridwell is the younger brother of Mike Bridwell, who is a close friend and, until last December, neighbor. I had seen and enjoyed Ben’s previous band, Carissa’s Wierd, but Horses is much better. Their sound definitely has some roots in Crazy Horse, but there’s a Pac-NW sound in there, too. There’s some old Modest Mouse and a lot of Black Heart Procession and it’s just good.

Iron & Wine, of course, is great as well. Again, there’s bias. I&W’s drummer, Jonathan Bradley, also happens to be the drummer in my band. If you are familiar with Iron & Wine, your reaction might be “drummer?!?”, but, indeed, Sam Beam tours with a full band. Jonathan also plays “shaker” and other various wussy percussion on the albums. Sam has begun to rearrange some of his older songs to take advantage of the extra instrumentation, but sometimes it goes a bit far. “Bird Eating Bread” sounded like a Jimmy Buffett song. I sort of hope this is just Sam getting used to all the toys at his disposal.

A quick note on the crowds of these two shows: Iron & Wine’s was ok, but there was a bit too many of the “indie-rocker idolaters” of the variety that haunt “Low” and “Pedro the Lion” shows and stand in reverence and yell, “We love you” to the band.

Maybe because the headliners were the Mountain Goats, and it’s hard to imagine anyone shouting “we love you” to John Darnielle, the crowd at the EARL was much better. Ah, sweet, sweet EARL…