Difference between revisions of "A Guide for the Perplexed"

From Code4Lib
Jump to: navigation, search
(add bitbucket)
(add ojs/omp)
Line 99: Line 99:
=== EAD / Archival Finding Aids ===
=== EAD / Archival Finding Aids ===
=== Scholarly Publishing ===
* [https://pkp.sfu.ca/ojs/ Open Journal Systems]
* [https://pkp.sfu.ca/omp/ Open Monograph Press]
=== Web Archiving ===
=== Web Archiving ===

Revision as of 19:19, 1 March 2019

A guide for the perplexed

What is this?

Very few people plan to have a career in library technology. Maybe you have a background in traditional librarianship, but you'd like to be a systems librarian. Maybe you're an experienced programmer, but you're having trouble learning about library specific standards. This guide is a starting point for you. It will not attempt to be a replacement for university-level education in either library studies or computer science, but it will give you a general sense of the areas of technology that are used by libraries, background knowledge you'll need in order to work effectively in these areas, and advice and ideas on how to acquire necessary skills.

Advice in this guide should focus on concrete, immediately applicable skills whenever possible. This document should be a curriculum guide, not a textbook, so before attempting to write an article on a broadly applicable subject, check to see if wikipedia has one to which you could link and contribute.

Samples of Curriculums:

Who is this for?

People with a background in libraries / archives / museums

Learning about technology can be intimidating, especially when it is a departure from the areas you're used to studying. You may have been put into a situation where you are responsible for managing or completing a technology project, but you don't understand the technology involved, and you're having a hard time finding information about it. Don't worry, this is surprisingly common and you are not alone. Many of the members of the code4lib community are self-taught, and we're here to help.

Here's a good blog post aimed at people in this category: Advice to a Library School Student by Dan Chudnov

People with a background in technology / computer science

People hiring programmers into library technology

Focus more on the why and use-cases rather than the technology. From a programming perspective much of the technology isn't terribly difficult and is well known at a basic level. How it's used, why certain choices were made is the most important information to convey. If you hired a programmer for a specific task, don't focus on dictating technology, they should tell you what is current, but rather what you need and want from the application. Helping them understand how the data is accessed by your end-users if probably the most valuable information you can convey.

Be prepared to answer questions and frustrations with library standards that aren't really machine actionable. One older example is METS, while it is XML, there is very little you can do to infer higher a higher level of organization without extensive best practice description or profiles.

-- Mike Smorul

Why is it necessary?

Broad areas of library technology

Data Formats

Data formats and protocols.


MaRC stands for Machine Readable Cataloging, and many folks in the code4lib community find themselves working with MARC records at some point.


See https://www.loc.gov/standards/mets/ for the standard.

Tools and software:


ONIX for Books

The ONIX family of standards includes the ONIX for Books Product Information format, which functions much like MaRC in the publishing, wholesaling, distribution and retail businesses.

Much of the data in a MaRC record can in principle be derived from the ONIX record for the same ISBN; see the recent mapping from ONIX to MaRC21:

Integrated Library Systems

Discovery Interfaces

Article Databases

Institutional Repositories

EAD / Archival Finding Aids

Scholarly Publishing

Web Archiving

Web ARChive ecosystem is the standard.

Specific Technologies


searches at http://lucidimagination.com include wikis, email lists, etc.

Git & Distributed Version Control

Main Git Website




Libraries with Github Organizations

Ruby on Rails (Blacklight, Hydra)

Ruby on Rails Guide