Press enter after choosing selection

The AADL Developer's Blog. Technical info about what new features we're working on, releasing, and playing with.

Graphic for events post

Blog Post

Events, Twitter and iCal

by eby

We recently redid the backend for out events here at AADL. While you probably haven't seen many changes on the public site, we now have the backbone that will allow us to create all kinds of cool things and improved events. Online registration, My Events, reminders. All kinds of things will be possible.

Twitter

To test out the new system we made a few quick applications to take advantage of it. The first is a Twitter feed at http://twitter.com/aadl which gives announcements of events 30 minutes before they begin, among other things. Within a couple days there was already over a dozen followers. The twitter feed utilizes a PHP5 class that can be found at http://groups.google.com/group/twitter-development-talk/files which was coupled with a few simple calls to our events API. With our class and the Twitter class it took very little time to get up an running. A cron takes care of the rest.

iCal

Another big feature is iCal feeds that can be subscribed to for out events. This is still under active development so you may experience some occasional issues. Feel free to comment if you have any suggestions or problems. Here are the URLs currently available. I'll update the list as I add them. Only the Exhibits feed shows exhibits until I can fix some of the all day events so they don't clutter up your calendar.

To get events for a specific keyword you can do the following (replace keyword with your word of choice)

http://api.aadl.org/ical/search/keyword

Again, send any comments, suggestions or problems. Once the iCal becomes more stable you should see easy links on out website.

Graphic for events post

Blog Post

Showcasing Video Content

by ejk

A number of our locations include large screens near the entrance which run a screensaver we have dubbed the Greetsaver. It displays information about the library, upcoming events, new and popular books and more. I am currently enhancing the Greetsaver we use for the purpose of a new launch in time for our new Traverwood Branch opening, but hopefully much sooner.

In the current version of the Greetsaver, the welcome screen has a static movie displayed along the bottom. It's nice to show video, but it's the same one every single day. As I was wondering about how to pick one video to use in each location, I thought of our new Video-on-Demand page, and if I could use it in the Screen Saver. Thanks to our video podcast functionality, I was able to do just that. Now we have dynamic, automatically updated video content on display at every location where we have a screen.

Here's the current process of how the content flows from the original events to the Greetsaver:

Image removed.

Record:
Our outstanding production team not only does a great job with audio and video setups for our events, they also record them. Hand-held cameras as well as fixed wall cameras are fed into a real time editing deck for multi shot coverage.

Edit:
After the recording is completed, the production team edits the video, makes any corrections necessary, adds graphics and produces multiple video formats for publication.

Publish:
Some edited videos are burned to DVD as well as transcoded into video formats for web distribution: flash video for in-browser viewing on the video page, as well as MP4 video which can be viewed with iTunes or iPods.

iTunes:
The real magic; iTunes runs on the Mac Minis we use to drive the Greetsaver screens. We point iTunes to our video podcast link, and it will automatically download new content for us to the mac mini whenever we publish it on our website.

Greetsaver:
The Greetsaver composition will scan the proper folder on the mac mini's hard drive for the videos when it starts up. It picks one randomly and inserts it into the welcome screen, where it can be viewed by all who visit the library. We also display a title advertising aadl.tv, our custom domain that redirects to our video collection.

Once the new Greetsaver is rolled out, we will have a new way to showcase the events happening at the library as well as our video collection. I can't wait to see it up on the big screens myself.

Graphic for events post

Blog Post

Ann Arbor Cooks: behind the project

by ejk

Now that the Ann Arbor Cooks project has been officially launched, I thought I would post a wrap up some of the cool pieces of the project.

As discussed before, I created a new custom node type to store the recipe data. This was an ideal solution because it allowed us to use drupal's existing security and content creation functionality. Plus, tags, categories, and comments are a snap!

On the recipes themselves, I needed a way to link to large versions of the original pages which had been scanned. I found a javascript library called lightbox which handled the task quite nicely with some animation. Luckily, a group of developers had written up a nice drupal module that allows you to easily add the lightbox functionality into your drupal website. I pulled publication data for the book from our database and included it in the image's caption when you viewed the popup.

Here's an example:

In order to create the Browse Recipe page, which is a clickable listing of the recipe categories, I downloaded and made some modifications to the taxonomy_list drupal module, adding a count of the terms in the taxonomy by using the drupal API function taxonomy_term_count_nodes(). I also added a bunch of CSS to change how the list was displayed.

Our books scans were originally huge TIFF files, so I used the handy program Image Magick (available for Windows, OSX, and Unix/Linux) to do some batch conversions to JPEG thumbnails and the large images. I was able to throw those into a new directory under the standard drupal files directory and link to them from each individual recipe node.

The majority of the time I spent on this project (coding PHP and CSS) I used Komodo Edit and the Firebug extension for Firefox, running on Ubuntu Linux.

Graphic for events post

Blog Post

Implementing Drupal Presentation at Google

by eby

A presentation that might interest those who are looking at Drupal. As many probably know, Drupal is what powers the AADL site.

Geoff Butterfield, Senior Technical Producer at The George Lucas Educational Foundation, and Angie Byron of Lullabot will talk aboout Drupal development and implementation.

Graphic for events post

Blog Post

Creating custom content types in Drupal

by ejk

While working on an upcoming feature on the site, I faced an initial dilemma: How do I want to store the custom content? I'm creating a system that will manage multiple records of content which contain more information than a standard drupal page or story node would provide. But I'd love to be able to use the established drupal functionality for creating, editing, tagging and protecting content.

The solution? Create my own custom node type. I found this article on drupal.org very helpful. (Note: this is written for drupal 4.7, which is a generation behind the latest release. So check out this article if you're using drupal 5.)

The best part is that I can add a new "free tagging" vocabulary that applies only to this new custom content type, and it uses drupal's built in AJAX suggesting auto complete on the tags already applied in that vocabulary.

Graphic for events post

Blog Post

Gaming in Libraries? Definitely.

by eby

Eli talking trash

While AADL has had gaming for some time it still remains just a possibility for most libraries. However, interest is growing and this year even ALA put on a Gaming, Libraries and Learning Symposium featuring non-other then our own Eli. You can listen to his talk about choosing games for your library here.

Graphic for events post

Blog Post

The Creative Library Lab

by eby

There's nice article over at Information Wants to Be Free about podcasting in libraries and how it can serve to be a creative lab. She links to a post over at Library Marketing on creative labs and mentions our own Eli and gaming program.

In the process, gaming patrons actually construct a series of unique experiences, thereby turning the library into a laboratory of sorts. This "community creativity lab" is where where I see libraries' future and competitive advantage.

Graphic for events post

Blog Post

Lego Mindstorms

by eby

If your looking for something for your library that might interest older kids and young adults you might look at Lego Mindstorms. It might be hard not to play with them constantly yourself. With the ability to program the robotics there's quite a few things you can do with them including tournaments or challenges. It's a good idea to do dry runs with staff to make sure the project is actually achievable in the time you lay out. Here's some pics from our dry run and the events quickly filled up with teams. You can also check out the AADL Library Lego League page for more information.

Image removed.

Graphic for events post

Blog Post

Open Source in Libraries

by eby

Open-souce software is a big thing at AADL and it is becoming a hot item in libraries in general, especially as more and more want control over their future. I had the pleasure of contributing a chapter to a recent Library Technology Report. While you may have trouble finding a copy of the report itself (I still haven't seen the final product) you can see the information I compiled on the code4lib trac wiki. I retained the copyright so the information you see is the same I included in the chapter. I still need to go through and update things as it is a constantly evolving area but it should give you an idea of the wide range of projects that are out there. Big thanks goes out to all the code4lib'ers who helped me track down information on the projects.

Graphic for events post

Blog Post

Online SQL Design

by ejk

We've had some great development meetings this week regarding a project that will overhaul our events handling. There are some significant design goals for this project, both on the staff and the public sides of the interface. This is turning out to be a very large project, so we're working the software engineering process to try to catch any problems before we're knee-deep in code. We've got a good set of requirements that have gone through feedback from staff, so now we're translating those into our design, starting with our database.