by Peter Murray
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room got up and said: “What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise.” The scientist gave a superior smile before replying, “What is the tortoise standing on?” “You’re very clever, young man, very clever,” said the old lady. “But it’s turtles all the way down!”
- Stephen Hawking’s 1988 book A Brief History of Time
The Code4Lib community is wonderful and a wonder, as numerous conference keynote speakers and journal editors have noted. It started first as a mailing list then quickly branched out to an IRC channel, a website and wiki, an annual meeting with regional and international flair, this Journal, and countless other opportunities to network, share ideas, and build on the work of each other. As an active participant in the community, what I find even more fascinating is the sense of dedication that other like-minded people have for the community. I can imagine that this is due in some part because their employer has an enlightened sense of the importance of community participation to give staff release time to engage in Code4Lib activities. In other cases, the participants themselves cherish something of value and squirrel away unofficial time (perhaps evening hours, perhaps daytime activity under the broad heading of “professional development”) to use in community activities. Some have donated server space, others funds towards a domain registration. A few years back we had a professional graphics designer volunteer time to create the Code4Lib logo and style guide.
Some make a formal expression of their volunteer contribution, like the group that is looking at conference options, the Journal editorial board, and the local conference arrangement communities through the years. Others are more informal and ad hoc, like subscribers to the code4libcon mailing list that guides conference activities or the Journal’s general discussion list. Some are short term, like those that volunteer for conference activities, or long term, like commitments to run the Zoia IRC bot.
And it is not only our own volunteers. Some of the community’s web servers are hosted by the Oregon State University Open Source Lab at no cost to us. PDPC, the home of the Freenode IRC network, recently announced that it was formally disbanding as an organization, but the Freenode network will continue — run by its volunteers.
If you step back and look at it, I hope you can’t help but be amazed at what has been accomplished by “rough consensus and running code” backed by the volunteers that make it happen — even as I have undoubtedly forgotten to list above major community projects that deserve mention. (Hey, the comments are open below — add your favorite notable Code4Lib volunteer activity!)
I wonder, though, if we can continue to scale up to more participants and more activities without some sort of guiding structure. For instance, an anti-harassment policy was created after one of the members of the community expressed the concern that “even in a wonderful community where we mostly share the same values, not everyone has the same definitions of acceptable behavior.” A link to the code of conduct was placed on the 2013 conference home page and was highlighted during the conference opening announcements. But other than the “rough consensus and running code” nature of the policy, is there any assurance that future conferences will use it or a way to appeal decisions made by meeting organizers?
Also related to the conference, we left the meeting this year without anyone stepping up to host the meeting next year. In the aftermath of the 2013 meeting, at least two groups began efforts to create a hosting proposal and the infrastructure required to host a meeting. One put out a proposal and requested a decision deadline to meet commitments for venue space; another was not quite so far along and needed time to finish their proposal. Since we were outside of precedent for making a decision for a meeting host beyond the point of the current conference, we started making stuff up out of the blue. Was the meeting hosting to be given to the group that announced their proposal first? What was an acceptable period of time wait for other proposals to be announced before starting a vote? We worked out an acceptable timeline in the end, but I wonder about the next time.
I think these are two examples of the difficulties of making decisions as we have grown. (And we do continue to grow…over half of the conference attendees each year I’ve participated have come to their first meeting.) Is it time for the community to empower a group to make decisions on behalf of the community? To have a transparent, accountable, and established procedure for addressing issues when “rough consensus and running code” isn’t good enough?
I’ll admit to being somewhat enamored with the Apache Foundation process and how it works. It is a merit based process (“government by merit”) where leaders are drawn from various parts of the community based on their commitment to the community and demonstrated ability to work with others in the best interests of the community (my paraphrasing of the Apache governance model). Apache is an IRS-recognized non-profit corporation — that kind of independent foundation structure is certainly overkill for our community’s needs and I’m certainly not advocating that we would go that far. But if we were to find a way to identify and agree on meritorious members of the community and grant them with the responsibility and trust to facilitate key decisions for the community, I think we will be able to ease some of the growing pains that we have been experiencing. At the very least, it gives the community a process through which to make key decisions in a timely and transparent manner.
Summary of Issue #20
The Code4Lib Journal editors are excited to bring you this latest issue with seven articles. The first set of articles show ways to manipulate metadata records. In Workflow Tools for Digital Curation Andrew James Weidner and Daniel Gelaw Alemneh describe how they use AutoHotkey and Selenium IDE at the University of North Texas to automate various aspects of manipulating digital objects. Heidi Frank show how to process MARC records from Archivists Toolkit in Augmenting the Cataloger’s Bag of Tricks; the techniques – using MarcEdit, Python, and PyMARC – are transferrable to other sources of records as well. In Keeping up with Ebooks Kathryn Lybarger introduces a tool for updating batches of vendor-supplied records through a set of normalization routines.
Jason Clark show how Montana State University is using YouTube as a digital video platform in Developing a Digital Video Library with the YouTube Data API. Getting users what they want without extraneous hits is always a challenge, and in Better Search Through Query Expansion Using Controlled Vocabularies and Apache Solr demonstrates how to configure SOLR to make the best use of a hierarchical controlled vocabulary. In Breaking Up With CONTENTdm Heather Gilbert and Tyler Mobley lead us through the migration of a repository to Fedora Commons using Drupal, Blacklight and Rutgers’ OpenWMS software. And for the hardware geeks, Tim Ribaric and Jonathan Younker describe how to build a simple desk counter tied to a Google Spreadsheet in Arduino-enabled Patron Interaction Counting.
Finally, I am using this space to extend my gratitude to the Code4Lib Journal editorial committee for their patience in guiding me through my first experience as coordinating editor for this issue. There is a lot of caring that goes into each issue — more than I appreciated from the outside looking in. They are just a few among the many others that step up in our community to make Code4Lib the useful, vibrant, and engaging place that it is today.