Setting up a
GLAM Workbench

in your library

Image: State Library of Victoria, http://handle.slv.vic.gov.au/10381/342096

Tim Sherratt

@wragge

these slides

  1. Collections as data?
  2. The GLAM Workbench
  3. What is Jupyter?
  4. Types of Jupyter notebooks
  5. Notebook interfaces
  6. Running notebooks
  7. Your own GLAM Workbench
  8. Homework

This workshop

Collections as data?

SEARCH IS FAMILIAR

BUT What about the other 3m?

SAME search

DIFFERENT VIEW

MORE searches

different questions!

APIs

data dumps

CSVs

full text

images

collections

as

data

?

APIs

data dumps

CSVs

full text

images

collections

as

data

+

GLAM Workbench

Not just how, but why...

  • possibilities – why should I be interested?
  • starting points – can you give me an example I can use?
  • pathways – where do I go next?

628

CSV files from Australian GLAM organisations

harvested from government data portals

https://glam-workbench.github.io/glam-data-portals/

CSV FILES

GLAM CSV Explorer

MY GLAM WORKBENCH

GLAM Workbench

  • tools, tutorials, examples, hacks
  • live code
  • editable, reusable, hackable
  • openly licensed

is

GLAM Workbench

  • coding 101
  • finished or perfect

is NOT

GLAM Workbench

Powered

by

JUPYTER

GLAM Workbench

Jupyter

  • Computing in your browser
  • A computational narrative – combine text, images, code & more
  • A standard format – use on different platforms
  • See Introduction to Jupyter Notebooks

Jupyter Notebooks

JUPYTER

LIVE CODE
in your browser

JUPYTER

Click to edit

SHIFT+CLICK
to run

JUPYTER

Gather data

Visualise results

JUPYTER

TRY IT YOURSELF

JUPYTER

Clicking the button will:

  • create a customised computing environment in the cloud
  • load the Jupyter notebook containing these examples – LIVE!

Examples

NOT all notebooks are the same!

Use Jupyter notebooks to...

  • create tutorials
  • develop tools
  • harvest data
  • share code snippets
  • document an API
  • visualise a dataset
  • hack an interface
  • move data around

visualise searches over time

A Tutorial

(asking historical questions with search facets)

A Tutorial

(asking historical questions with search facets)

visualise searches over time

A Tutorial

(asking historical questions with search facets)

visualise searches over time

A SIMPLE tool

(providing lots of nicely-packaged data)

Trove newspaper harvester

National Museum of Australia Collection

EXPLORE AN API

(collections in time & space)

EXPLORE AN API

(collections in time & space)

National Museum of Australia Collection

EXPLORE AN API

(collections in time & space)

National Museum of Australia Collection

National archives of australia

Harvest data

(no API? you can always try screen-scraping!)

Harvest data

(no API? you can always try screen-scraping!)

National archives of australia

White Australia policy in NAA

Harvest data

(no API? you can always try screen-scraping!)

save a newspaper article as an image

Hack Interfaces

(add a new download option to Trove)

save a newspaper article as an image

Hack Interfaces

(the same notebook as an app)

NOTEBOOK INTERFACES

Notebook interfaces

STATIC or LIVE?

  • static interfaces only render the content of the notebook
  • live interfaces also let you edit and run the code

GitHub

GITHUB provides a static view

NBVIEWER

NBVIEWER is static, but...

Jupyter can refer to either:

  • the notebook standard (which is really just a JSON object)
  • an interface used to create, edit, and run notebooks
  • but Jupyter notebooks can be used in interfaces other than Jupyter!

two jupyterS?

The Jupyter interface comes in two flavours:

  • the classic Jupyter notebook
  • the new Jupyter Lab

Three jupyterS?

One notebook per window

Classic jupyter

Multiple tabs in a window & more!

jupyter LAB

ChangE the Jupyter interface

Extending jupyter

  • iPyWidgets – adds interactive widgets
  • Appmode (Classic only) – hides the code & runs all cells
  • RISE – turns your notebook into a slideshow
  • Voila – turns your notebook into a dashboard or standalone app

One notebook, Multiple views!

In the GLAM Workbench

One notebook, Multiple views!

In the GLAM Workbench

} STATIC

} LIVE

One notebook, Multiple views!

POSSIBLE PATHWAYS

} STATIC

} LIVE

Novice

One notebook, Multiple views!

POSSIBLE PATHWAYS

} STATIC

} LIVE

Learning

One notebook, Multiple views!

POSSIBLE PATHWAYS

} STATIC

} LIVE

Experienced

OtheR interfaces

RUNNING NOTEBOOKS

Running notebooks

You can run Jupyter notebooks on your own computer, or by using a cloud service such as:

run notebooks from GitHub

Binder

Open notebooks LIVE in binder

BINDER

Binder In GLAM WorKbench

The magic of Binder

Binder In GLAM WorKbench

  • A single click to start
  • Batteries included (no software for the user to install)
  • Encourages experimentation
  • Just try it...

Limitations of BINDER

Binder In GLAM WorKbench

  • Limited resources
  • Notebooks close when inactive
  • Changes not saved
  • Where do I go next?

Create your own GLAM Workbench

The BASIC Recipe

  • an environment to develop notebooks
  • a public GitHub (or similar) repository
  • a configuration file (specifying the software your notebooks need)
  • a Binder link

Your own GLAM Workbench

Developing notebooks

  • set up a development environment on your own computer
  • install Python (or Anaconda) to run Jupyter & create notebooks
  • notebooks can use a variety of programming languages
  • copy, edit, & reuse my GLAM Workbench!

Your own GLAM Workbench

PUBLISH Notebooks

Your own GLAM Workbench

LINK to Binder

  • copy the url of your GitHub repository
  • go to Binder and paste the url in the box

Your own GLAM Workbench

LINK to Binder

  • copy the Binder link or button code
  • add the link to your GitHub README

Your own GLAM Workbench

LINK to Binder

Your own GLAM Workbench

REPEAT! EXPAND!

Your own GLAM Workbench

  • create more notebooks, and more repositories
  • create a documentation site to bring together the links
  • share, share, share!

Try This!

HOMEWORK

CONTACT ME

@wragge on Twitter

timsherratt.org

GLAM Workbench issues on GitHub

GLAM Workbench Gitter chat