Coding for Historians, Part 1

The code discussed in this post is available at: github.com/clerestories/dnz-gallery

One of the academic challenges I’ve been anticipating — and mentally preparing myself to conquer, or at least not make a complete fool of myself attempting — is the problem of doing justice to a large set of data without getting lost in it. My doctoral research incorporates several: a few dozen manuscript receipt books compiling household medical remedies, the collection of correspondence and ephemera known as the Hartlib Papers, and printed early modern English chymical works published during a particular period. (No big deal, right?)

I’m keenly aware that what I seek in each of these resources may not be what I find or, more importantly, what will prove to be most useful, or interesting. With this in mind, I need to track as much information as possible the first time around, and avoid the need for a second or third pass; I must anticipate the ways in which these books and letters and journals may interact with or illuminate one another. So what is the best method of achieving a goal that’s both clear and nebulous?

From time to time my husband Chris generously offers to write code that will make quick work of problems like these. This year I decided it might be better to learn how to build such tools myself instead of riding around on the ever-shortening coat-tails of his free time. Programming isn’t completely alien to me; I taught myself HTML as a teenager in the late ’90s and also learned rudimentary CSS and Javascript. I like math and am good at it, or I was, half a lifetime ago. Any skills I still have are best described as rusty. So, with Chris’s help, I’m learning Python, a programming language known for its clarity and ease of use. Here’s a walk-through of my first project in case you might like to try something similar.


Herman John Schmidt, Full-length portrait of Lady Eileen Knox (ca. 1910-9), Sir George Grey Special Collections, Auckland Libraries, 31-WP341.

It began with this makeshift bench: delicate arches of rough-hewn wood, rustic, ramshackle and… repeated. Over and over again. It serves as a backdrop for besuited men, their arms crossed, mischievous little boys, regal women who patronized very competent milliners, soldiers, nurses, nuns and priests, carefully dressed babies, and so on. Actually, the youngest subjects get their own matching diminutive chair.


Herman John Schmidt, Full-length portrait of Missie Long (1911), Sir George Grey Special Collections, Auckland Libraries, 31-66913.

Seeing these beautifully unaffected, compelling faces made me wonder more about the man behind the camera. So I searched for him.

Born in Auckland in 1872, Herman John Schmidt trained as a photographer from the age of fourteen, first as apprentice to local luminary Charles Hemus, whose studio he was managing by 1900. Within a decade Schmidt had married, gained photographic renown at the St. Louis World’s Fair and, thanks to his father’s financial backing, transformed Hemus Schmidt Studio to Schmidt Studio. He ran a thriving business in portraiture until his retirement in 1942. Schmidt died in 1959, but his story picks up again in 1970 with the demolition of Edson’s Building on Queen Street — and the discovery of nearly 27,000 plate glass negatives and other studio documents in the attic. A team of Auckland City Libraries staff rescued these forgotten treasures, which now form the Schmidt Collection.

The Schmidt Collection of awesomeness. Like Miss Baker.


Herman John Schmidt, Full length portrait of Miss I Baker (ca. 1910-9), Sir George Grey Special Collections, Auckland Libraries, 31-WP7332.

I’ve been looking at the scanned images using Digital New Zealand’s website. DNZ is constantly updating their interface to make it more user-friendly for enthusiastic nerds like me who love poring over Aotearoa’s digitized history. They recently added infinite scrolling to search results, and there are plenty of features in the pipeline for 2013. It’s a brilliant site both for what it offers and how it allows us to customize our experience with it. For instance, the standard search yields twenty results at a time in thumbnail format. With more than 19,000 of Schmidt’s portraits up on the site, it would take a very long time for me to get through all of them, and I might not be able to tell which of those small images linked to particularly remarkable photographs. But what if I could view larger versions from the start? What if I could search in batches of 100? The Digital NZ API allows me to do both.


Herman John Schmidt, 3/4 portrait of Baby Allen lying on a fringed shawl (ca. 1909?), Sir George Grey Special Collections, Auckland Libraries, 31-56315.

For the uninitiated, API stands for “application programming interface.” I’m grateful to Tim Sherratt for providing this very clear, simple definition at THATCamp Wellington last month: APIs allow machines and programs to communicate with each other in a language they both understand. Every person who uses the Digital NZ website can obtain his or her own API key by signing up for a free account.

I wanted to use my key to browse Herman John Schmidt’s photos more easily. My husband urged me to download the text editing program Sublime Text 2 and Bottle, a Python web framework. (He says he would probably do this with Flask now.) I work on a Mac, but can also do this on Linux or Windows. Using Python and Bottle, I created a small web application that allows me to request metadata from the Digital NZ API. The application examines each item in the response, grabbing both the image and the link to the original item. It then displays the collection of images as an HTML file. Here’s a screenshot of the code:

This looked a bit clunky, so I also brought in the jQuery and Masonry Javascript libraries to arrange the results in a more attractive way.

The finished product looks like this. Nothing flashy, but I hope to write code that’s both useful and beautiful in the future.

I can change the terms to reflect specific searches, as in this one for profile shots. (As these ladies indicate, Schmidt vastly preferred the right-facing profile to the left.)

If you would like to use this code for your own searches, or build a variation on it, I have made the files available on GitHub. Feel free to download, share or send any questions my way.

This post would not be complete without a few Digital NZ sets, so here they are: my favorite of Schmidt’s photos.
Men
Women
Children
Babies
Group Portraits

And some more thematic, less age- or gender-specific sets:
Uniformed
Profiled
Hatted
Costumed
Otherworldly Exposures


Herman John Schmidt, Full-length portrait of two men in the Sereston/Sereoton group (ca. 1920s?), Sir George Grey Special Collections, Auckland Libraries, 31-71074.

This entry was posted in Digital humanities and tagged , , , , , . Bookmark the permalink.

One Response to Coding for Historians, Part 1

  1. If and when you can share your conclusions regarding your research on these photographs, I would be interested in reading them as well. I loved your descriptions of how you set up your solition, kudos for making something like this !