Friday, October 30. 2009Evergreen development workshop at FSOSS 2009Update 2009-11-24 Robert Soulliere has also made the videos available via the Internet Archive - thanks again, Robert! Update 2009-11-09 As promised, Robert Soulliere has posted the video recordings he made of the workshop - thanks, Robert!
Yesterday, I lead a three-hour Evergreen development workshop at the Free Software Open Source Symposium. I had promised Nick Ruest from McMaster that it wouldn't be three hours of me talking... but in prepping for the workshop, I ran out of time putting together the virtual image that was going to include all of the tutorial materials... and therefore, ended up talking for almost three hours. Not ideal. Interestingly, there were a number of non-library-world attendees who were interested in OpenSRF, so I was able to spend most of the first hour covering that framework and (I think) managed to successfully keep their attention for that period of time. I wasn't suprised to see them leave once we hit more library-centric content That said, there is a stake in the ground now for developers who are relatively new to Evergreen. The assumption is that the developer is already comfortable with basic install and configuration of OpenSRF and Evergreen, at least as far as following the install instructions, and that the developer is comfortable writing one or both of Perl or JavaScript. I posit that such a person should be able to work through the workshop tutorial and follow the workshop slides through the evolution of a CGI program to an OpenSRF service that eventually taps into the Evergreen IDL (see workshop tarball). In writing this down and trying to provide basic examples that can be building blocks for bigger applications, I surprised myself by how much I had to re-learn or in some cases learn for the first time. But now it's written down, and the re-learning path (because my brain is full and constantly rids itself of even painfully learned lessons) will be much shorter. And I hope that this makes it easier for others to become productive OpenSRF and Evergreen developers as well. This content will continue to evolve and improve over time, as I'm betting that my fellow Evergreen developers will suggest improvements to the materials. Note that I'm delivering a four-hour workshop covering much of the same material at the OLA SuperConference in 2010. The extra hour should give us time to complete some hands-on exercises, and I'll incorporate the feedback that I've received from the FSOSS workshop for the OLA workshop. (Your feedback is always welcome, either in comments to this post or via email at dan@coffeecode.net). It would be great to see other people take these materials and improve and deliver them as well - they're under a CC-BY-SA license - so if there's interest, I'll be happy to check them into a public source repository (hmm, maybe a bzr branch at the Evergreen Launchpad project). Oh! And Robert Soulliere from Mohawk College recorded the entire workshop and plans to make it available online. So if you need some sleep, those video segments will be available! Saturday, October 10. 2009Presentation at the Lyrasis "Open Source in Your Library" conferenceOn Friday, October, 9th, I had the pleasure of (along with Joe Lucia and Karen Coombs) speaking at the Lyrasis "Open Source in Your Library" conference at the Olin College of Engineering in Needham, MA. First, a note about Olin College - it is a very modern campus that makes an excellent venue for a single-track conference (New England #code4libber's take note!). Second, this had originally been a NELINET conference, but as of last week NELINET had merged with Lyrasis to create a regional library non-profit organization that spans most of the East Coast of the United States. My presentation slides (with copious speaker notes) are available in OpenOffice.org Impress, PDF, and PowerPoint format I had been asked to talk about Conifer's experiences implementing Evergreen, as there is certainly some interest on the part of Lyrasis member organizations in open source library systems. I chose to tell the unvarnished story of Conifer: how we decided to build a consortial academic library system on Evergreen, what steps we have taken in the past two years, and probably more importantly what missteps we have taken over the past two years. I told some cautionary tales that were hopefully useful to others considering the same path, and then discussed the state of the Evergreen community. As a quick recap, the biggest challenges we hit on the road to adopting Evergreen were:
I noted that our efforts to build a reserves system (Syrup) have thus far resulted in a loosely coupled reserves system that none of us have been able to use - but that for the time being Evergreen's bookbags have served as a reasonable replacement for lists of monographic reserve items, and that the discussion about how to more tightly couple Syrup with Evergreen has resumed (and is currently waiting on me for a response)... so there's hope that we might be able to deploy the all-singing, all-dancing reserves system next term. I confessed that we're using spreadsheets to track acquisitions while Evergreen's native acquisitions system solidifies (although, given the current state of our budget, spreadsheets are all that we need for the time being - sigh). Joe Lucia had remarked during his own presentation that an acquisitions system that can handle the rather complex requirements of academic institutions was a showstopper for his library. In the Evergreen 1.6 release, you can see that the acquisitions system is almost ready; we loaded six years of historical acquisitions data into a test server and were able to do most of what we need, subject to some refinements. I think it has been an extremely challenging balancing act for Bill Erickson to juggle the requirements of academic libraries with those of large consortial public library systems to come up with something that can make everyone happy (as happy as you can possibly be with acquisitions), but the progress over the summer has been encouraging. On a more positive note, one of the great advantages of adopting a consortial library system is that I was able to take two months of parental leave and not worry about the state of the system at all. We have shared responsibilities across the consortial partners, such that I can actually turn off my cell phone when it's not my turn to respond to problem reports. And during my absence, my colleagues (Art Rhyno, Robin Isard, Kevin Beswick) all gained a lot of confidence in their own understanding of the system. This shared responsibility should also pay dividends when we put together processes for reporting records to our various consortial catalogues (such as AMICUS): rather than each of us having to rediscover the process on our own, we can collaborate and improve upon each other's work. It's a lot less lonelier being a systems librarian in a consortial library system, let me tell you! I also shared our positive experiences with Evergreen's uptime and with Equinox as a support provider. The few times that we have had outages, they have been relatively brief and when we have opened a problem ticket with Equinox, they have responded quickly. Robin measured our uptime over the last two months at 99.5% - which isn't five nines, but is still far better than the 75% (maximum) that we had with our previous system due to the six hours it was down every night for backups. We also chalk up some of the downtime so far to learning experiences; we're refining the configuration of the system and improving our own knowledge of how to maintain the system without incurring an outage. So, I expect that we'll eke our way back up over the next few months to an even better uptime percentage. On the topic of the Evergreen community, I compared several commonly-used objective measures of the health of a given open source community, such as mailing list volume, number of contributors and contributing organizations, and release frequency with Evergreen's track record. We're doing reasonably well on the mailing list front, and we've seen a small increase in the number of patch contributors, but I think we need to make the on-ramp to Evergreen development slightly easier to ascend. This is why I'm trying to create a set of tutorials for new developers, starting with basic OpenSRF, extending through database access methods such as open-ils.cstore and open-ils.pcrud, rounding off with the IDL-aware custom Dojo widgets that Bill Erickson has put together, and perhaps giving people enough XUL to know how to add a new menu entry to the staff client. (I really can't tackle XUL, too, in just one half-day workshop!) If our community has a broader set of developers capable of contributing to the project, then we can expect to see more customization and extensions available - and possibly more committers. On the release front, I got a rueful laugh from the audience when I said that the Evergreen 1.6 release was expected within a few days - "just like we [the developers] said at the Evergreen International Conference". I acknowledged that we've had trouble getting high quality releases out the door - that it took months, and five point releases, before the 1.4 release was really usable out of the box, and that it had taken even longer to get 1.6 out for a release. But I also promised that we (the core committers) had been discussing ways that we can improve the release process; for example, Mike Rylander had committed resources from Equinox to help build a suite of regression tests so that we could have automated nightly builds with known pass/fail rates, and on the mailing list we had been discussing different approaches to bug-tracking and development (including the possibility of using distributed version control systems to do feature development in branches instead of trunk). On the state of the community, I applauded the Evergreen Documentation Interest Group (DIG) for leading the charge in taking a team-based approach to tackling a problem. I pointed to this as a sign the community was maturing beyond its origins of a core set of contributors who did everything from maintaining servers to creating Web site content to development, to a set of more focused teams that would be able to achieve more through close collaboration on their objectives. We're seeing that in discussions about a Quality Assurance (QA) team, as well, that would be responsible for tracking and verifying bugs in a public repository and (probably) enhancing the tests that let us measure the quality of the project code at any given time. I can imagine other possible teams charged with Web site design and content maintenance, perhaps as a more focused spin-off of the DIG; an internationalization team, focused on enabling translations and managing contributed translations; and an infrastructure team responsible for maintaining the health of the project servers. Speaking of the community, this is probably a good time to suggest The Art of Community by Jono Bacon (Ubuntu Community Manager) as an excellent read - at least based on the first half of the book that I've managed to get through during my travels. So, with that, I head back home (thanks Boston Public Library for the free wifi). We have challenges to tackle in both Project Conifer and in the growth of the Evergreen community, but knowing the people involved in both of these efforts, I'm confident that we're going to make a huge amount of progress over the next few months. Sunday, October 4. 2009Using nginx to serve static content with EvergreenUpdate 2009-10-04 Added a title to the post; oops! A long time ago, when I discovered that Evergreen was chewing up and spitting out Apache backends at a furious pace because Apache was being used to serve up static content like CSS, JavaScript, and image files, I suggested that using nginx to serve up the static content and proxying the dynamic requests to Apache would be a good solution to a number of problems we were facing. Here we are, five months later, and I've managed to put in a few hours tonight (amidst stomach-wrenching laughter at SNL's "Threw it on the ground" tune) to get a proof of concept configuration working on the Ubuntu 9.10 beta release. The following nginx configuration hasn't been tested in a production environment yet, and isn't tuned beyond the defaults that ship with Ubuntu Karmic, but it works on my laptop in a virtual image for both regular HTTP and SSL requests - so what could possibly go wrong? Steps to get this working on Ubuntu Karmic, assuming that nginx and Apache are running on the same server:
As I said, there's probably plenty of room for improvement; I have only a few hours of experimentation with nginx under my belt at this point. But assuming no showstoppers turn up after further testing, I would expect to see this going into production in Conifer sooner rather than later, and potentially becoming a standard part of any production Evergreen system. Friday, October 2. 2009Evergreen Developer Basics Workshop at FSOSS 2009If you're working on or interested in working on the Evergreen open source library system, and you can be in the Toronto area on October 29th, 2009, you might want to spend $75 and register for the Free Software Open Source Symposium (FSOSS) to be held at the Seneca@York campus. You'll get a three hour workshop introducing you to Evergreen development out of the deal, plus your choice of another workshop on the 29th and the ability to attend all of the FSOSS presentations on the 30th. I attended FSOSS last year for the first time and was stunned at the high quality of the conference. I apologize for the late notice that means that you missed out on the $30 early registration special; I did not hear until this morning that my workshop proposal had been accepted. This seems in keeping with this year's edition of FSOSS, as the conference Web site also seems to be a bit behind where one would expect with only four weeks to go (heh). The late notice will also mean that most of my spare minutes will be soaked up for the rest of the month preparing the workshop materials, but building a collection of Evergreen development tutorials for the community is high on my personal list of goals, so it will definitely be worth it. Expect a high-energy presentation! Here are the particulars for the workshop: Workshop title: Evergreen Library System Development Basics Workshop description Over the past year, Evergreen has been adopted by a number of libraries in Ontario. While it is built on a flexible, scalable architecture and offers an impressive set of features, the Evergreen community needs a broader base of developers who are able to contribute to the base functionality and create customized Evergreen instances. This workshop will provide developers with the tools they need to contribute to the Evergreen project and better serve their libraries, tackling subjects such as creating a new OpenSRF service, accessing data with permission-based methods, customizing the database schema and IDL, and building AJAX interfaces with the OpenILS Dojo widgets.
(Page 1 of 1, totaling 4 entries)
|
QuicksearchAbout MeI'm Dan Scott: barista, library geek, and free-as-in-freedom software developer.
I hack on projects such as the Evergreen
open-source ILS project and PEAR's File_MARC package .
By day I'm the Systems Librarian for Laurentian University. You can reach me by email at dan@coffeecode.net. Identi.ca microblogging
LicenseCategories |
