Well, I'm finally back from Atlanta and the Evergreen AcqFest. I'll apologize right off the top for not providing more blog updates over the course of the weekend, but the requirements and design discussions were pretty intense so I didn't want to risk continuously missing subtle but important details and not being able to participate intelligently by live-blogging the event. After each full day of work, we "unwound" with a serious meal--which, after some socializing, usually involved slipping back into kicking more design and implementation ideas, problems, and potential solutions around. By the time I got back to the hotel room, I was either completely wiped out, or itching to commit something to the group document / or play with some code. So I hope you understand (all three of you that are reading this!).
On top of everything else, it was a bit of a gruelling trip back. In order to save a few hundred dollars and make a greener transportation choice for the final leg of my journey, I took the bus back to Sudbury. Hello, five-hour layover in Toronto and a packed six-hour bus ride (thanks to Hwy 401 construction) back home! It was quite a relief to get back and see the family.
Anyways, here is a mini-summary of what we accomplished:
- Agreement on some realistic time frames for acquisitions and serials development: call the stages one philosopher, two philosopher, and three philosophers
- After kicking the left-of-field idea of using a calendar server to handle serials schedules, coverage information, predictions, and claiming events for a day or so, and clearly invoking the concern of at least one library blogger, Mike had a brilliant idea for how to represent all of this natively in PostgreSQL. He's going to take a few days to work through a proof-of-concept to ensure that it's as solid as it sounds, so I won't give away the details just yet...
- Agreement on the requirements for basic item-at-a-time acquisition workflow support (to be implemented first) and more advanced acquisitions support (batch orders via MARC record import, integrated vendor discovery API support, EDI support)
- Agreement on adding internationalization support to OpenSRF. Right now OpenSRF (the messaging infrastructure on which Evergreen depends) knows nothing about locales. We've been able to use URL tricks to support translation of the catalog interfaces thus far, but Mike worked through the changes that will be required to pass locale as a property of each session. This will enable the service being invoked to "do the right thing" if locale is of a concern to whatever output it returns.
- _Almost_ agreement on how to add internationalization support to Evergreen. We worked through a number of different scenarios for supporting translation of dynamic strings (library names, for example) that reside in the database, from a single table that holds all of the translated strings, to an i18n schema that holds tables that parallel any table in another schema that holds translatable content. We settled on the latter schema. I say "almost agreement" because until something gets committed to code, I have a feeling that this is still subject to change a little bit
- Exposure to some parts of Evergreen that many of us hadn't seen before -- in particular, the reporting interface that Evergreen provides is extremely powerful and well-designed. It even supports basic line and bar charts for adding punch to your presentations.
- Art introduced us to OFBiz and OpenTaps via an online training video, and later on Art and Ed successfully played around with the Java OpenSRF client via BeanShell. My takeaway lesson about OFBiz if I ever need to customize something built on it: it's all in controller.xml!
There was a lot more than that that we covered, but for now I have to get some shut-eye. For any skeptics out there, the actual acquisitions and serials workflows employed at our constituent libraries were used as testbed scenarios for the discussions about Evergreen's serials and acquisitions requirements and design. I'm feeling good about the work we accomplished, I think we found some elegant solutions for some of the age-old problems in these areas, and I think we have a common understanding of the path forward.