The best session I have ever heard at Internet Librarian. Ever. Pay attention to Ann Arbor District Library...it's even cooler than you think
This is absolutely the best session I went to the entire conference. Actually, the best session I have ever attended at I.L.
Not only is Ann Arbor doing really, really great things for their patrons, but John is doing really, really great things for libraries by completely setting the standard for how library Web sites should be designed and managed, advocating for open source and development sharing, and just being a totally cool, generous, and freakin' smart guy. Has anyone else noticed that English majors make the best library programmers?
I'm so disspointed that this session was buried in a weird tract in the last session of the last day, but I'll give my conference overview later. Right now, I just want to contnue glowing about John and his great ideas.
Where did they come from?
Like many library Web sites, the first version of their library's Web site was flat html files, created in dreamweaver, with animated gifs, and "functional enough to replace the card catalog." "Dreamweaver is a design tool, not a content management tool."
The next generation of their site used "Userland/Frontier" but that's a closed proprietary database-driven CMS. And that didn't allow them to do all the things they really wanted to do. It did give them the basic functionality of a CMS with a unified look. They had a number of problems with Frontier. They had a number of databases, but none of that was really accessible from within Frontier, and it was difficult to access their data once it was in Frontier.
So, they were ready to move to the next generation site, but, they needed to convince their administration it was important enough to go through such a large-scale change (time, money, etc...)
In the meantime, they had an interim period where they re-thought everything regarding their servers, network, and Web services. (love this...brains and energy, baby...)
What does re-thinking everything look like?
- Network topology redesign
- Server hardware updates
- Database consolidation (audit: what data is important and how are you going to access it?)
- Software upgrades: stay current on your own projects and stay ahead of/on the curve of upgrades to ensure you're taking advantage of the features available
- Migration to thin-client architecture
- Development of software libraries: As they started new development projects, they adopted the idea that all of their software would be written by using "libraries" that could be used repeatedly
- Adopt open standards
- Strategic planning sessions which were already
Next...needed to choose a new CMS.
His initial, informal wish-list for a new CMS:
- LAMP-based (Linux/Apache/MySQL/PHP)
- Well Supported
- Well Respected
- Extensive API
- Easily Themalbe
- Blog-based technology with RSS
- The Magic Spark: keep your eyes open for that
We should be moving away from proprietary systems. Also, open-source tools work the best, becuase they are complety tranparent.
- 100% modular
- Excellent API (API-centric project)
- Large user-base --not only are they large, but zealous about what they do. The Drupal site went down shorly after they went live, they had a quick collection, and raised tons of money to buy new servers and got everything up fast
- Very active project--continously launching new features that are well-documented
- Well-documented (www.drupal.org)
- Nice documentation site (www.drupaldocs.org/)
- High-quality programming
- Taxonomy-based organization (it's like tagging, but at the administrative level)
- Bloggable: comments, RSS, etc.
- It has the Magic Spark (it's really fun to use it)
July 4, 2005: AADL 3.0
Anyone who creates an account can post comments on their blogs. In the first six or seven hours they had over 200 users signed-up.
More cool things:
Ability to cross-post blog entries inside multiple taxonomies
Tie the blog entries to a bib record, so they will show up in the catalog as you browse them
Configurable inter-wiki links to catalog items, wikipedia etnries, whatever you want to bring in
RSS feeds for all blogs
The events engine: A centerpiece of their intermation-integration strategy (I wanted to jump up and down here...I so want a decent way to display, disseminate, search, and organize program information for patrons online)
Need good tools to bring together AV content from a program to end-users live and online.
RSS feeds of holds and checkouts. (Ahh...so cool! "A great example of modular programming.")
Does this new approparch work? Uh...yeah (duh)
Patrons, and particularly teens love, love, love this. They constantly post/comment. Voracious comments from their teen patrons.
A peek behind the curtain
They needed a way for Drupal to interact with III (their ILS)
They wanted at least the appearance of fluidity between Drupal and the catalog
They absolutely needed a seamless integration
What III provided:
Returns patron information
Tests a Pnum/Cardnum and Pin combination
Taking it all apart:
They had to make the III server into an application server (Wow!)
All non-essential html was stripped from the screen files
Unnecessary wwwoptions were disabled
Added custom tags to pinpoin vital data
**warning** geeking out ahead...
Consuming the CURL
CURL: Client URL, allows your software to communicate with many differnet types of servers using different protocols.
PHP has native libcurl support
Using CURL, we were able to consume web pages from the stripped-down III server
By parsing the ouput with their custom tags, they were able to reliabley return any data set they wanted
ok...it's safe again...
The result is a software library that allows them to fetch and update patron information, run catalog queries, etc...
Because its a PHP5 class, it's essentially stand-alone software
All catalog traffic down runs through Drupal
They should not have had to do what they did
We (all libraries) should have access to our automation systems
Vendors should provide APIs in the form of web services
XMLRPC at the very least
(Novel ideas, folks--call your ILS and database vendors. Now.)
Designing for the future: making data portable
Make OOP design a requirement: take the time to create a foundation before you create the product.
Don't program yourself into a corner
Practice scalable database design
Use open-source platforms
Always ask, "What else can I do with this data."
"Libraries should all be sharing software."
A case study in portable data: AADL-GT Gaming tools
This is a Drupal module, and they are looking at the idea of sharing this with other libraries to allow others to set up gaming tournaments. It is so, so cool. Check it out: http://www.aadl.org/taxonomy/term/39
What else are they looking into:
AJAX (asyncronous java script--this is what G-mail is written in)
SOAP services for patron access
I can't say enough about the work that Ann Arbor (and John) have done here. Giving their patrons fantastic tools, creating worlds in which librarians and communities can interact, creating spaces where culture and community, and just a lot of damn fun can bubble up, all the while sharing ideas, tools, and encouragement with other libraries. It's just incredible. This session completely wins my vote for best sesssion I have ever attended at Internet Librarian. Ever.
IL05 IL2005 Internet Librarian 2005