Library Carpentry @ UiO

Feb 2–3, 2017

9:00 – 16:00

Info at

Instructors: Fredrik Hovind Juell, Ahmed Abdi Mohammed, Hugo Huurdeman, Dan Michael O. Heggø, Kyrre Traavik Låberg

General Information

Software Carpentry aims to help researchers get their work done in less time and with less pain by teaching them basic research computing skills. Participants will be encouraged to help one another and to apply what they have learned to their own research problems.

For more information on what we teach and why, please see our paper "Best Practices for Scientific Computing".

Who: The course is aimed at graduate students and other researchers. You don't need to have any previous knowledge of the tools that will be presented at the workshop.

Where: Undervisningsrom UE26, Niels Henrik Abels Hus, Moltke Moes vei 35. Get directions with OpenStreetMap or Google Maps.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below). They are also required to abide by Software Carpentry's Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organisers have checked that:

Contact: Please email or for more information.


Day 1

09:00 Welcome and short intro to Library Carpentry
09:30 Data Intro for Librarians
12:00 Lunch break
13:00 OpenRefine for Librarians
14:30 Coffee break?
16:00 Wrap-up

Day 2

09:00 Shell Lessons for Libraries
10:30 Coffee break?
12:00 Lunch break
13:00 SQL for Libraries
14:30 Coffee break?
16:00 Wrap-up

We will use this Etherpad for chatting, taking notes, and sharing URLs and bits of code.


Data Intro for Librarians

  • Understand terms, phrases, and concepts in software development and data science
  • Identify and use best practice in data structures
  • Use regular expressions in searches
  • Reference...

OpenRefine for Librarians

  • Understand what the OpenRefine software does
  • Use the OpenRefine software to work with data files
  • Reference...

Shell Lessons for Libraries

  • Understand the basics of the Unix shell
  • Understand why and how to use the command line
  • Use shell commands to work with directories and files
  • Use shell commands to find and manipulate data
  • Reference...

SQL for Libraries

  • Understand what SQLite does
  • Use SQLite to summarise and link databases
  • Reference...


To participate in a Software Carpentry workshop, you will need access to the software described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.


OpenRefine is a tool for cleaning up and transforming data.


Java Runtime Environment (JRE) is required to run OpenRefine. If using a UiO computer, please install JRE (64 bit) from Software Center. Otherwise, please install JRE from Oracle at this site. Check "Accept License Agreement", then download the "Windows x64 Offline" file from the list (jre-8u121-windows-x64.exe)

Install OpenRefine 2.6-rc2 Release Candidate 2 Windows Kit by downloading this .zip file from OpenRefine and extracting it. Once extracted, you might want to move the folder to your "Program files" folder for consistency, but you can also leave it where it is. Apart from that there is no installation. Check that you can start OpenRefine by opening "openrefine.exe". If not working, you can try "refine.bat" instead.

Note: OpenRefine recommends using Chrome or Firefox over Internet Explorer. We therefore recommend having Chrome or Firefox installed.

Mac OS X

Install OpenRefine 2.6-rc2 Release Candidate 2 Mac Kit by downloading this file from OpenRefine, open it and, then drag and drop OpenRefine into Applications.

(Open Refine requires Java Runtime Environment (JRE), but the Mac Kit includes this, so a separate installation should not be necessary.)


Java Runtime Environment (JRE) is required to run OpenRefine. In most cases, it's best to use your package manager to install this. E.g. sudo apt-get install default-jre on recent Ubuntu distributions, or yum install java-1.8.0-openjdk on recent CentOS distributions.

Install OpenRefine 2.6-rc2 Release Candidate 2 Linux Kit by downloading this file from OpenRefine and extracting it.

The Bash Shell

Bash is a commonly-used shell that gives you the power to do simple tasks more quickly.


Video Tutorial
  1. Download the Git for Windows installer.
  2. Run the installer and follow the steps bellow:
    1. Click on "Next".
    2. Click on "Next".
    3. Keep "Use Git from the Windows Command Prompt" selected and click on "Next". If you forgot to do this programs that you need for the workshop will not work properly. If this happens rerun the installer and select the appropriate option.
    4. Click on "Next".
    5. Keep "Checkout Windows-style, commit Unix-style line endings" selected and click on "Next".
    6. Keep "Use Windows' default console window" selected and click on "Next".
    7. Click on "Install".
    8. Click on "Finish".
  3. If your "HOME" environment variable is not set (or you don't know what this is):
    1. Open command prompt (Open Start Menu then type cmd and press [Enter])
    2. Type the following line into the command prompt window exactly as shown:

      setx HOME "%USERPROFILE%"

    3. Press [Enter], you should see SUCCESS: Specified value was saved.
    4. Quit command prompt by typing exit then pressing [Enter]

This will provide you with both Git and Bash in the Git Bash program.

Mac OS X

The default shell in all versions of Mac OS X is Bash, so no need to install anything. You access Bash from the Terminal (found in /Applications/Utilities). See the Git installation video tutorial for an example on how to open the Terminal. You may want to keep Terminal in your dock for this workshop.


The default shell is usually Bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.


SQL is a specialized programming language used with databases. We use a variant called SQLite in our lessons.


Download and run the Software Carpentry Windows Installer to install SQLite for Windows.

Mac OS X

SQLite comes pre-installed on Mac OS X.


SQLite comes pre-installed on Linux.

(If you installed Anaconda, it also has a copy of SQLite without support to readline. Instructors will provide a workaround for it if needed.)

Text Editor

When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words.

In this particular workshop we won't be using a text editor in any of the sessions. A good text editor is still an important tool in the toolbox of any software carpenter, so there's no reason not to install one.

Editors you can try are Notepad++ (Windows) or Sublime Text (Windows, Mac, Linux).