Tuesday, June 15, 2010

RailsConf

Rails is a web application framework that is used by both the Blacklight and Umlaut (Find It) applications we use here.

I attended RailsConf, a conference dedicated to Rails, June 7-10 here in Baltimore.

I think this may be the first non-library-focused software/programming conference I have attended since working here. I was reminded of how crucial it is to stay involved in larger software development communities beyond the library world; while the library world has many good software developers, when you step into a larger community there is more expertise to learn from.

N0t all software code is created equally. Writing software that is flexible, maintainable, sustainable, and shareable is not as easy as just hacking out something quickly to meet local needs at the present. But it's something that pays off in the long-term for the organization hosting the code, with sustainable easy to maintain and enhance software. Writing good code like this is a skill (or art) that you learn through practice. One of the best ways to increase your skill is through reading or working with code that has been written by someone who is much better than you at this, and seeing how they designed it.

So one of the most useful parts of RailsConf was the opportunity to see other people's well written code, and their ideas for solving problems with elegant code. Many sessions at RailsConf involved code examples or code walk throughs. Rails3, the new version of Rails, has been extensively re-written to be cleaner and easier to work with code, and seeing some of the internals gave me several ideas for how to better structure Blacklight, Umlaut, or other applications we work with. One realization I had: Since most of the applications I work with are designed to be shareable accross multiple institutions, each making their own customizations but still maintaining a common codebase, these applications actually have a lot in common with a 'framework' like Rails, instead of a typical 'just an application'.

In addition to learning about new features of Rails3 that should make Blacklight and Umlaut much easier to develop (but will require migrating code to Rails3 to take advantage of -- something else I learned about), other topics of interest covered in workshops I attended included: non-SQL data stores like MongoDB or Redis; using OAuth for federated authorization management; and tools such as Cucumber for integration testing in Rails.