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

Playing with Flex

We have quite a few in-house applications written in Adobe (formerly Macromedia) Flash. It's an easy way to layout your GUI and build dynamic animations. Another plus is the ability to run it on multiple platforms.

But Flash is intended as an animation tool: you layout graphical elements on a timeline for movements and transitions. You can then go to keyframes in the timeline and attach ActionScript code to them in order to do your programming logic. This model is sufficient for development and deployment, but it becomes a little troublesome to maintain. There is no easy way to search the ActionScript code that has been attached to the different objects in the timeline. Say you need to correct the logic surrounding all the calls to your updateWidget() function. You have to manually navigate through the timeline, searching over the bits of code until you find what you're looking for, and basically cross your fingers that you've corrected them all.

Library Card Renewal Alerts: a sonnet

A tragedy! Your AADL card
Has now expired, and you must renew.
Just keeping track of all this stuff is hard,
And each new thing is one more thing to do.

But now, we send alerts out in advance,
One month before, by e-mail, as you'll see;
While III's Createlist does its dance,
The work is mostly done in PHP.

So now, you need remember one thing less,
Which hopefully will ease life's angst; and so,
If you decide this service (as we guess)
Is helpful, please feel free to let us know.

For those who travel Innovative's road:
The Clearinghouse is where I've put the code.


(P.S. If you are not with Triple-I,
You cannot use the Clearinghouse, you know;
And therefore, should you find you'd like to try
These card alerts, I've placed the code below.)

IRC For Staff Communication

With multiple branches, buildings and tech support that can often be anywhere working on problems, there is a need for an easy way of communication.

At AADL this is currently an inhouse IRC server with channels for various groups of staff. A webclient is provided for those who only have a browser or need an easy way to sign on. This allows staff to have easy communication with each other with a low barrier. Here's some of the things I've seen:

  • Troubleshooting problems with phone lines (can't reach branch, multiple people test)
  • Help with patron questions
  • Sharing knowledge about library events and information

There is also a bot that announces when helpdesk issues are reporting (allowing staff to know the problem is happening) and gives some utilities for looking up information on various in-house things.

Granted IRC may be a bit more infrastructure that some care to install, but there are other options. A library may look into using Meebo rooms or Campfire. While IM and Email serve their purposes, there is something about a "chat room" or channel that gives a kind of continuing converstation and immediacy that breaks down the distance between locations. Suddenly everyone is connected.

Some other tips include having people append their location such as the branch to their name. I would be Eby[ne] if I was at the Northeast branch. This allows others in the room to know who exactly is present and who to send any specific questions to. I also use [d] for desk and [h] for home (since we work from all over).

Regardless what option you choose if you have multiple locations think about different ways they can communicate in real time. I hadn't thought of it before but now that I see it in use I think it makes a huge difference.

Summer Reading Registration... What's new!

It's that time of the year when all flock to the library for Summer Reading sign-up. Last year we had over 8000 participants including youth, teens and adults.

This year we bring the sign-up form to you to sign-up from home. The Summer Reading form was build using drupal's new form API. If you want to get a jump start I would suggest the "quickstart guide", which is awesome with little code snippets and examples.

Here is how the form works. The name of the from is the $form_id and to build the form drupal looks for a function with the same name. In this case the $form id is sumreading_form. Here is an example:

My 7 Favorite Sessions from php|tek

In May, I was lucky enough to attend the php|tek conference in Chicago. I met some really cool people, took a crash course on Zend Certification, and learned a lot about security, optimization, and new technologies. Here's a list of my five six SEVEN favorite sessions that I attended during the week (I had to add a couple from my original plan):

7. Opening Keynote : Rasmus Lerdorf "PHP on Hormones"

The conference was started off with a bang as the "father" of PHP, Rasmus Lerdorf, gave the opening keynote. Rasmus gave some of the history of PHP, which started as a pet project. He talked about how to get people to contribute to open source projects, how to tweak performance, security issues and APIs. He even used drupal as his example for testing performance (hint: turn on drupal caching!). Great talk and a great way to get the Oxytocin flowing!

AADL Open-Source Software

We do quite a bit of software development at AADL, and some of the work we've done may be of interest or use to other libraries. Our website is powered by the completely awesome open-source CMS Drupal, and much of our development takes the form of drupal modules. We also run Innovative Millennium (Triple-I), so many of our drupal modules use shared code libraries or PHP classes that we've developed to interface with our III server. Here are several tools you may be interested in, especially if you've got PHP experience or are running III.

These files are all released under the GNU Public License, so they're yours to use and remix however you'd like, but use must be attributed, and resultant works cannot be sold. Also, feel free to contactus if you have questions about these projects, but please understand that we cannot provide tech support for this software.

Thanks for your interest, and enjoy!

  • III-PatronAPI: This is a PHP script that interfaces with III's optional web-based PatronAPI module and makes that data more easily available to PHP projects.
  • III-XMLOPAC: This is a PHP5 Class that uses III's XMLOPAC to return a bib record as a PHP array when passed the bib number.
  • SOPAC & Middleware source code: SOPAC is what we call our social features on our public catalog. It includes the ability to add ratings, reviews, and tags to items in the catalog and integrates with our drupal patron account module.
Syndicate content