Final Project – Start of Journey.

The white-space below is meant to be a picture, a network diagram of topics in the newspaper created using the Fruchterman & Reingold algorithm.  However, there is not much of a visible network.

 

Even as the image of above represents failure, it also represents the thrill of doing digital history this week.  The final week of the course has truly been thrilling because now I can start to really use what we have been learning and also see even more of its potential. The fail log of this week’s work is here.

The final week is also daunting. It’s been a week of long hours and decisions about when to move on to another part of the project rather than refining.  I had a strong urge to continue to program and experiment, but realized I needed to document my findings in order for this to be a work of history. For presenting my project I decided to use Mahara because it offers more flexibility than a blog, but also looks more polished than a scratch built web site. However, I forgot that Mahara has high PITA factor with multiple mouse-clicks to do things and I reflected that using Markdown would have been more efficient and future proof.

As alluded to above I ran into errors.  I worked on doing a topic model of a collection of editions of the Shawville Equity that contained the results of a provincial election. However, as I ran the program, I ran into an error, shown on the diagram below.

Running the code past the error generated the set of almost totally disconnected dots visualized above.  This was a productive fail because it caused me to consider two things.

The simplest of these was to do with stopwords.  I had a stopwords file, but it was not working.  I examined the documentation for mallet.import and it indicated that it required stopwords be listed on each line, and my stopwords file was separated by commas, with many words on a single line.  I got a new stopwords file and that fixed that issue.

The other item I considered was my collection.  I had thought there would be themes across provincial elections, but an examination of the topics from the model did not support that.  In fact, given that the issues and people running in provincial elections change over the years, there would likely be few common topics spanning more than a decade in provincial election coverage.

The error and Dr. Graham’s help prompted me to look at my dataset and expand it.  Using all of the text files for the Shawvwille Equity from 1970-1980 caused the program to run without an error.  It also provided a more complex visualization of the topics covered during these eleven years. I want to understand what the ball of topics are at the bottom left of the visualization below.

I also completed work on a finding aid for The Equity by writing an R program. This program lists all of the editions of the Equity and notes which editions were published after specified dates. I started with election dates and want to include other events such as fairs. This program can be adapted for other digitized newspapers archived in a similar manner as the Equity has been.

The repository for this week’s work is here. Learning continues!

Consequences of Digital History

In Mapping Texts: Combining Text-Mining and Geo-Visualization to Unlock the Research Potential of Historical Newspapers, the authors set the context for their ambitious project to develop analytical models to gain historical insight into the content of 232,500 newspaper pages. One of the items they discuss is the abundance of electronic sources for research as “historical records of all kinds are becoming increasingly available in electronic forms.” Historians living in this age of abundance face new challenges, as highlighted by HIST3814o classmate Printhom who asks ”will there be many who cling to the older methods or will historians and academics see the potentially paradigm shifting benefits of technology.”

As pointed out in Mapping Texts, the abundance of sources can overwhelm researchers. In fact, being able to deal with a research project encompassing hundreds of thousands of pages of content also represents a significant financial and technical barrier for researchers. If history is shaped by the people who write it, who will be the people who overcome these barriers to producing digital history and who will be the historians and their communities who will be disenfranchised by a lack of digital access?

Digital Historian Michelle Moravec has been described as someone who “[writes] about marginalized individuals using a marginalized methodology and [publishes] in marginalized places.” Clearly her use of digital history, rather than being a barrier, has been a means to gain a deeper understanding of history, such as her work regarding the relationship of the use of language and the history of women’s suffrage in the United States.

At the same time even with an abundance of available resources, there are also choices made the determine what is available, whether or not an investment will be create a digital source and if there will be a price to access it.

Another consideration is whether the providers of digital history have an agenda beyond history. In her podcast Quantifying Kissinger Micki Kaufman quotes the former U.S. Secretary of State, “everything on paper will be used against me.” Kaufman outlines some of the controversies caused when formerly secret information was made public or, in a humorous case, when publicly available information was republished on Wikileaks. These issues point to the fact that it may be more than just digital historians benefiting from the release of digital sources. Those releasing data may have an agenda to advance, to burnish a reputation or discredit.

Analysing Data: Module 4 of HIST3814o

A finding aid for the Shawville Equity.

This wasn’t an exercise for this week, but I started the week wanting to create a list of the Equity files to make it easier to navigate to follow up annual events.  Last week I was looking at the annual reporting of the Shawville Fair and it took a bit of guess work to pick the right edition of the Equity.  Over time, this led to sore eyes from looking at pdfs I didn’t need to and discomfort in my mouse hand.

To get a list of URLs I used WGET to record all of the directories that hold the Equity files on the BANQ website to my machine, without the files, using the spider option.

wget –spider –force-html -r -w1 -np http://collections.banq.qc.ca:8008/jrn03/equity/

ls -R listed all of the directories and I piped that to a text file.  Using grep to extract only lines containing “collections.banq.qc.ca:8008/jrn03/equity/src/” gave me a list of directories, to which I prepended “http://” to make “http://collections.banq.qc.ca:8008/jrn03/equity/src/1990/05/02/”.  I started editing this list in excel, but realized it would be more educational and, just as importantly, reproducible if I wrote an R script.  I am thinking this R script would note conditions such as:

  • The first edition after the first Sunday of November every 4 years would have municipal election coverage.
  • The annual dates of the Shawville and Quyon fairs.
  • Other significant annual events as found in tools such as Antconc.

That’s not done yet.

Using R.

I am excited by the power of this language and have not used it before. I also liked seeing how well integrated it is with git.  I was able to add my .Rproj file and script in a .R file and push these to GitHub.

The illustrations below come from completing Dr. Shawn Graham’s tutorial on Topic Modelling in R.

Here is a result of using the wordcloud package in R:

Below R produced a diagram to represent words that are shared by topics:

Here is a beautiful representation of links between topics based on their distribution in documents using the cluster and iGraph packages in R:

I can see that the R language and packages offer tremendous flexibility and potential for DH projects.

Exercise 5, Corpus Linguistics with AntConc.

I loaded AntConc locally.  For the corpus, at first, I used all of the text files for the Shawville Equity between 1900-1999 and then searched for occurrences of flq in the corpus. My draft results are here.

When I did a word list, AntConc failed with an error, so I decided to use a smaller corpus of 11 complete years, 1960-1970, roughly the start of the Quiet Revolution until the October Crisis.

Initially, I did not include a stop word list, I wanted to compare the most frequently found word “the” with “le” what appears to be the most frequently found French word.  “The” occurred 322563 times.  “Le” was the 648th most common word in the corpus and was present 1656 times.

The word English occurred 1226 times, while Français occurred 20 times during 1960-1970.

Keyword list in Antconc.

To work with the keyword list tool of AntConc I used text files from the Equity for the complete years 1960-1969 for the corpus. For comparison, I used files from 1990-1999. I used Matthew L. Jockers stopwords list as well. In spite of having a stopwords list, I still had useless keywords such as S and J.

Despite this, it is interesting to me that two words in the top 40 keywords concern religion: rev and church and two other keywords may concern church: service and Sunday. Sunday is the day of the week that is listed first as a keyword. Is this an indicator that Shawville remained a comparatively more religious community than others in Quebec who left their churches in the wake of the Quiet Revolution?

Details of these results are in my fail log.

Exercise 6 Text Analysis with Voyant.

After failing to load a significant amount of text files from the Shawville Equity into Voyant, instead I put them into a zip files and hosted them on my website.  This allowed me to create a corpus in Voyant for the Shawville Equity. I was able to load all of the text files from 1960-1999, but this caused Voyant to produce errors.  I moved to using a smaller corpus of 1970-1980.

Local map in the Shawville Equity.

I tried to find a map of Shawville in the Shawville Equity by doing some text searches with terms like “map of Shawville”, but I did not find anything yet. If you find a map of Shawville in the Equity, please let me know.

Conclusion.

This was an excellent week of learning for me, particularly seeing what R can do.  I would like more time to work with the mapping tools in the future.

 

 

Grooming data: Module 3 of HIST 3814o

This week in our course we considered what it means for historians to use data and adapt it to their purposes.  We also learned techniques to do that, which I will touch on below.

Yet, one of the biggest learning opportunities came from a productive failure of the availability of our course’s technical environment, DHBox. DHBox, available for access from our university, over a virtual private network, has been a marvel to use. However, even this virtual environment encountered an issue at the start of this course week when it became encumbered with too many files from its users.

The lack of availability of DHBox presented a great learning opportunity for students to adapt to. Mac computer users were able to use the terminal on their PC to replicate DHBox.  For learning regular expressions “RegEx”, sophisticated text editors such as Notepad++ could also be used instead of DHBox.

Unix running on Windows. Very cool.

Sarah Cole used the lack of availability of DHBox as an opportunity to set up her Windows machine to run Cygwin, a Unix command line application.  This is fantastic, I never thought I would see Unix running on Windows.  I had a similar experience, Windows 10 can run Ubuntu. With this installed, I was able to use my Windows computer in a whole new way.  I would not have thought to look for this if DHBox had been available.

Without going on at length, the lack of availability of DHBox this week highlighted not only the dependence digital historians have on technology, but also how we must plan to build technical resiliency into our projects.  We should plan for technical failure. Despite the lack of availability of DHBox this week, our class was able to move ahead because alternatives had been considered in advance and we were able to use them.

RegEx.

I learned a lot from the exercise to use Regular Expressions.  I had used RegEx a few times before, but I never really understood them. Using them was more like incantation, a spell to make data look different. Most of the time, I need to understand what the statements in a program mean before I use them; it is unwise not to.  This week with RegEx, I am finally starting to get a grasp of it. One thing I did which helped me was to make a copy of each file as I worked through each step of the exercise.  This simple thing allowed me to easily restart a step if I made a mistake.

OpenRefine.

Having spent a lot of time in previous years correcting data in spreadsheets and databases, I was impressed with OpenRefine‘s capabilities and ease of use. This week I only scratched a bit of what OpenRefine can do, but already it seems like an indispensable tool for working with structured data in columns and rows.

Wikipedia API.

I was thinking about our final project for the course and found out Wikipedia has an API thanks to the example here. This is something I would like to follow up and use for DH work in the future.

Last word.

This week I again learned a tremendous amount not only from the exercises but from the chance to follow some ideas that our course challenged me to think about. DHBox was down, and so I was able to use Ubuntu on my Windows PC instead. My OCR results for an exercise from the previous week were poor.  Looking for alternatives led to me trying OCRFeeder. Challenges made me curious to see how others in the class met them, and I learned a lot from that as well.

Data is Messy

A good long hike begins with preparation, a plan and map.  I knew this before I was soaked by a cold downpour on Mount Washington. Part of preparation is knowing things will go wrong.  Despite having a map, you may get lost or the trail may be impassable. A weather forecast is fine until a thunderstorm blows in. You might find someone who is injured or needs water. Later, you’ll want to tell your friends what to see and what to avoid if they follow in your footsteps.

Hiking outside is wonderful, but it can be…

treacherous
(Text from a story about the 1998 Ice Storm in the Shawville Equity, 7 January, 1998.)

 

 

 

Wrangling data is rewarding but it is messy.  It can be treacherous as well. To wrangle data, the digital historian needs to prepare, plan and map out where they are going in case they need to backtrack. That was something I learned this week.

Less mess with better OCR?

One example of messy data is the OCR’d text of the Shawville Equity.  As HIST3814o classmate Sarah Cole posted in her blog this week, the OCR of the Equity newspaper reads text horizontally across columns, making the task of isolating the text of a particular news story laborious.  It is to bad that the “C” in OCR does not stand for context.

OCRFeeder looks like a promising tool to use to do OCR with context if needed.  It has a graphic interface to layout individual stories using rectangles so that they can be processed in context.  It also works with PDFs directly. I found it was a challenge to install though. Notes about this are in my fail log for this week. Speaking of failures, I only found OCRFeeder because I wanted a better tool for OCR because my personal results using command line Tesseract were not usable.  OCRFeeder uses Tesseract for OCR too, so it must be using it much better than I was, a productive fail.

The user interface of ocrfeeder.
The user interface of OCRFeeder.

Gathering data with a crowd is messy.

Dr. Shawn Graham, Guy Massie, and Nadine Feuerherm’s experience with the The HeritageCrowd Project showed both the great potential reward and the complication of crowd sourcing history. The HeritageCrowd Project wanted to tap the large reservoir of local historical knowledge possessed by the residents of the Pontiac region of the Upper Ottawa Valley. However, the response of the crowd that had this valuable information for the website was complicated, even messy.  Some people misunderstood what the website was for or how to contribute to it. There was a fairly low response rate of submissions of approximately 1 person out of 4,000 residents. Some potential contributors were reluctant because they felt their knowledge was not professional enough.  Advance planning for research using crowd sourcing is likely even more important than for individual projects given the complexity of working with different people and the likelihood of losing the crowd if plans change or don’t work out.

Losing the crowd is very messy.

Gathering data with a crowd can be messy.  Losing the crowd, messier still.  When I started this course, I read Dr. Graham’s How I Lost the Crowd a transparent account of what happened to the HeritageCrowd Project’s website when it was hacked. This brought back my experience when I was a volunteer running a website that contained the personal data of several hundred people and it was hacked.  It was compromised three different times in attacks that increased in damage level. It is beside the point for me to write about that, still raw, experience here.  However it is very important for digital historians to heed Dr. Graham’s examples to back up work in a disciplined manner, take notes in case you need to rebuild a web site and pay real attention to security: use secure design, updated software and monitoring and review security warnings.

By the way, the story of the hacking I endured on my volunteer website worked out. We were transparent too and told everyone involved what had happened. We moved to a more secure internet provider.  We were able to restore the site from a backup.  We patched the security and implemented monitoring because we knew we, an all volunteer gardening association, were now a target.  This took several months of work. This all could have been avoided if I had been more proactive about the Heartbleed bug in April 2014.

The data might be clean but it’s not neat.

One of the ideas I had for the final project of this course was inspired by a recent course I took, Dr. Joanna Dean’s HIST 3310 Animals in History. Each year the Shawville Equity publishes coverage of the Shawville Fair, an agricultural exhibition featuring farm animals.  According to the fair’s website it has run since 1856 and I thought it would be interesting to trace if the breeds of animals shown at the fair had changed over the years, indicating either evolution in agricultural practices or societal change. However, despite the long history of both the fair and coverage in the Equity starting September 27 1883 on page 3, there are years where the edition covering the fair is missing, such as 1937.  Details of the fair are covered regularly, but the coverage varies from lists of prize winners, the data I would like, to descriptions of what took place. Also, in my sampling, I could not see changes in patterns of animal use at the fair over the years to write about. Maybe the longevity and consistency is what is historically significant?

When data is not neat it needs to be cleaned up. Where it is missing, the historian is faced with the question of whether or not to interpolate or do other interpretation based on what data is available.  Our course workbook has this observation: “cleaning data is 80% of the work in digital history“. In relation to this, a member of the class asked, “if this is the case, then why don’t historians keep a better record of the data cleaning process?” Excellent question. If cleaning the data is 80% of DH, it is also a dirty secret. Cleaning data changes data and makes it something new, as highlighted by Ryan Cordell in qijtb The Raven. While we may be changing data for the better, it’s really to better suit the purposes we have for it and so we may also change how our data is interpreted by other historians.  To mitigate the risk of misinterpretation or error, it is important to document how the work of DH takes place so that DH work holds up to scrutiny and can be reproduced.  DH work is complicated, and sometimes the historian may have to reproduce their own work in order to correct an error. Documenting also helps explain how we spend 80% of our time.

 

 

 

 

Librarians – Ensuring data can be found so that it is used.

Having searched many times for books at home and not always finding them, I appreciate the work of librarians on a practical level. In a library I have always been able to find the book I was looking for, even a few weeks ago when I was at the MacOdrum library late on a Sunday night and a staff member found the book I needed in a basement office.

Libraries are places that collect, store and preserve information. Just as important, libraries catalog information so that it can be found and used. As a young teenager when I went to the library I knew to look under catalog number 737 for books about coin collecting, my major hobby back then. Science fiction and fantasy books were stored together so that I could easily look at books by different authors within the same genre. If I liked an author, it was easy to find other books they wrote. These simple tasks in the library were possible because librarians had a systematic means to organize content that could be easily used by a person like me, a non-librarian.

Without considering the operational effort to purchase, shelve and house items in a library, there is also tremendous skill that is required in how a library is organized in order to make it seem easy to use to a thirteen year old. As mentioned above, libraries have long had classification systems for non-fiction books, such as the well known Dewey-decimal system, and conventions for organizing fiction books. Yet as long standing as these organization systems have been, they continue to change in the library. Carleton University’s MacOdrum Library uses the Library of Congress Classification System, consider the recent changes to how information would be classified under these categories:

TK7800-8360 Electronics
TK7885-7895 Computer engineering. Computer hardware
TK8300-8360 Photoelectronic devices (General)

Librarians continue to deal with new information even as they maintain a consistent way to access it.

Another skill librarians have is knowing how to provide information through a library while also protecting the rights of authors and publishers who have sold material to the library under specific conditions of use.  Although not directly related to libraries, Cory Doctorow’s article, The Coming Civil War over General Purpose Computing, touches on the concepts of Digital Rights Management that librarians must deal with as the amount of electronic media in libraries grows from electronic books, to journals, music, videos, software and even 3d printers.

Librarians have become users and developers of databases as well as search tools to find items in them.  HIST3814o class members @angelachiesa and @bethanypehora discussed whether something has historical value if it could not be found. Extending this idea to search tools bears thinking about by librarians.  A search tool can confer value to a piece of information by putting it at the top of the list of results.  A flawed search tool can destroy value by not displaying information items in a library that are relevant to what a researcher is looking for, as the MacOdrum Library’s electronic search tool Summon is purported to do.

Where I work we have a library that is accessible by the public.  Co-workers of mine and I have discussed if we should have a library anymore. In this electronic age, we should be able to just Google information.  The space occupied by the physical book collection we have should be used for something else more innovative.  That is how one argument goes. However, as the amount and types of information available to us continues to grow, the need for skilled people to collect, organize, curate and make visible information is greater than ever. Many of those skilled people are librarians and they work in libraries.

 

 

Finding Data, Experience with tools in module 2 of HIST 3814o.

Exercise 1, Using databases.

It was excellent to see how well organized, detailed and search-able a history database could be with the Epigraphic Database Heidelberg. Data could also be downloaded as json, here is a sample. Among many other things, the database would be a great reference to locate Roman inscriptions when traveling.

The Commonwealth War Graves Commission (CWGC) web site is used to locate the graves of soldiers who fought in the Commonwealth forces during the First and Second World Wars. It can also locate cemeteries and I looked up the Camp Hill cemetery in Halifax, NS.

In World War I my great-grandfather Samuel Hood served with the No.2 Construction Battalion, which is also known as the Black Battalion. Below is an excerpt from the Canadian Encyclopedia about the burial of veterans of No. 2 Construction at Camp Hill cemetery:

Many veterans of the Black Battalion were buried in Camp Hill Cemetery in Halifax. Each grave was marked by a flat, white stone, forcing visitors to crouch down and grope the grass to find loved ones. In 1997–98, Senator Ruck successfully lobbied the Department of Veterans Affairs, and each soldier received a proper headstone and inscription in 1999.

The spreadsheet for the Camp Hill cemetery I downloaded from the CWGC did not have names from No.2 Construction. That may be because members of No.2 Construction who died during World War I were not buried at Camp Hill, while veterans who died later were.

I searched for the unit in the CWGC search engine and could not find reference to it. Is it possible that no soldiers from No.2 Construction died in World War I? No, for example, the battalion’s war diary mentions that on September 23, 1918, 931410 Pte. Some, C. was found dead and likely murdered.

Searching the CWGC’s database using Private Some’s service number brings up his record, but his regiment is listed as Canadian Railway Troops. According to oral history No. 2 Construction sometimes built railways, but they were not Railway Troops. The unit was attached to the Canadian Forestry Corps. Some of the other work No. 2 Construction did in the war was logging and producing lumber.

I began to conclude that the war dead of No. 2 Construction were misclassified in the database. By trial and error I learned I had to type the name into the search box for unit as “2nd Construction Bn.” or “2nd Construction Coy.” Those searches returned the war dead, however the regiments listed for them were different. All this to conclude that even with impressively organized databases the problems with how data was recorded originally may persist.

Exercise 2, Wget.

Using wget will be essential for our final project, I wish I knew about this before for other work.

Exercise 3, Close Reading with TEI

Doing this exercise made me wonder about the benefits of web sites like allowing keen volunteers who care about quality to transcribe their text (with the aid of OCR). This exercise was laborious and to save time I made an .jpeg of each column of text, saved that file, and uploaded it to freeocr.com.

I ran one image through freeocr.com and got some text and some unreadable characters. However, it was faster to use some of the good text than to type it. I converted the second image to just a black and white image and this reduced some of the background smudging that stopped good character recognition. I OCR’d that and the results, albeit for a different column of text, seemed better.

After correcting some syntax issues in the xml, I like how precise it is, it was satisfying to see the text render with different colors for additional information. I did not finish marking up the people in this exercise given I had to move on.

Exercise 4, API’s.

I edited Dr. Ian Milligan’s excellent program to retrieve data from Canadiana.ca.

I ran this and then saw I was getting a lot of files so I canceled the run. I did not want to pollute DHBox (my output.txt was 340 mb) So I refined my search using Shawville as the city. I kept getting huge downloads, regardless of the time period. I also used a couple other towns, for various time periods. “Why am I getting all of this content for New Germany, Nova Scotia during 1919-1939?” is close to what I thought.

I executed:

curl 'http://search.canadiana.ca/search/'${i}'?q=montenegr*&field=&so=score&df=1914&dt=1918&fmt=json' | jq '.docs[] | {key}' >> results.txt

When I looked at results.txt and it had 60 lines. I ran the curl command again; results.txt now had 90 lines. Again; 120 lines. This command was appending my various searches and mixing results.

I got better results when I deleted the working files before running $ ./ canadiana.sh. I added these commands to the top of the retrieval program:

# to clean up from the previous session
rm results.txt
rm cleanlist.txt
rm urlstograb.txt

This is uploaded to:

https://github.com/jeffblackadar/module2e4

Exercise 5, Twitter Archiving

It is very exciting to retrieve data from Twitter using a program. Thanks to my HIST3814o classmate @sarahmcole who posted helpful content about how to install twarc on DHBox.

I thought I would start with something small by searching for tweets related to our class:

$ twarc search hist3814 > search.json

This was a fail: search.json had 0 results.

Manually searching Twitter for HIST3814 showed one result from less than 2 weeks ago on July 11, I was expecting to see that at least.

I got many more results with this:

$ twarc search canada150 > search.json

I installed json2csv in order to convert search.json into a .csv I could view as a spreadsheet. Thanks to a post by @sarahmcole in our course Slack channel I expected to get an error:

      module.js:433           throw err;           ^       SyntaxError: /home/jeffblackadar/search.json: Unexpected token {

I used @sarahmcole’s excellent program and fail log to adapt the json that json2csv was having errors with into a form json2csv could use. Here is a modified version of the program

# code inspired by https://stackoverflow.com/questions/4746190/find-and-replace-within-a-text-file-using-python  
# Thanks to @sarahmcole who wrote this 
 n = 1 
 f1=open("search.json", "r") 
 f2=open("output.json", "w") 
 f2.write("{") 
 for line in f1: 
         addComma="," 
         if n==1: 
                 addComma="" 
         line = addComma+'"tweet' + str(n) + '":'+line 
         n = n+1 
         f2.write(line) 
 f2.write("}") 
 f1.close() 
 f2.close()

Given the .json files related to Canada150 were really big to work with and thus hard to troubleshoot I used a smaller search:

$ twarc search lunenburg > search.json

I ran the program and then checked the json formatting at https://jsonformatter.curiousconcept.com/ , it was “correct”

I then ran:

 $ json2csv -i output.json -f name,location,text

It ran but I didn’t get a the multiple rows of values I expected, I got:

 "name","location","text"  ,,

To spare you, the reader, the full blow-by-blow here is my conclusion for this exercise:

Using a program I can format a json file so that json2csv could parse it without errors, but I ended up with a file that was only 2 rows. The first row was tweet1, tweet2, tweet3, etc. The second row consists of each tweet in full unparsed json format.

Using a program I can produce a json file that looks correctly formatted, but json2csv has errors when parsing it.

Dr. Graham has posted that json2csv may have a new implementation and is not performing as expected.

A bit more with Twitter json

The json for each tweet has a complicated hierarchy. I took one line and put it into a json viewer and there I could see how it was organized. There are a number of json to csv conversion websites and tools on the internet but several of them look pretty shady.

Reading through for solutions to my problems with json2csv I ended up trying jq to make a .csv. I chose to use tilde ~ as my delimiter given that the text of tweets often contain commas.

In jq each json entity starts with a . and some entities (like name) are subentities: .user.name.

Running this:

jq '.user.name+""""+.user.location+""""+.lang+""~""+.text+"""' search.json > outjq.csv

I was able to produce a hacked together file delimited with ~ characters

https://github.com/jeffblackadar/m2e5/blob/master/outjq.csv

Thanks to @dr.graham for the jq tutorial here.

Exercise 6, Using Tesseract OCR

All of the software installed and ran as expected, but the ocr results I saw after I ran $ tesseract file.tiff output.txt were not usable. I am not sure why, but suspect the darkness of the newspaper images as the cause. I tried to edit and upload some clearer images to test Tesseract with, however DHBox kept giving “0 null” errors which would stop the upload. I was able to upload an another image file of text from exercise 3 that was 230k in size. I was able to use Tesseract to recognize text from it.

Open Access Research – The Benefits and Obligations for Digital Historians.

Trevor Owens writes a cautionary tale about the David Abraham Affair where this former historian’s work was discredited due to inconsistencies in his footnotes. Owens asks “when it takes 15 seconds instead of 15 hours to fact check a source do we think historians will start to write differently, or otherwise change how they do their work?”

I don’t think so. My training in history at Carleton has instructed me to keep rough copies of my notes and be rigorous in citing references. I complete a paper with the expectation that it may be checked and also with the knowledge that the professors I am submitting work to are specialists and know the area I am writing about much better than I do. However, I do make errors and find formatting footnotes to be tedious. Much more importantly, footnotes and bibliographies are important pieces of work themselves. Using smart bibliographies as Owens recommends is not only more efficient for the historian writer, it offers the ability to share this work with others more easily.

Ian Milligan describes the impact of SSHRC’S Research Data Archiving Policy which mandates that work funded by SSHRC must be made available for use by the public who paid for it. This includes research data. This is a sensible directive given that researchers can do their work more effectively by building on the credible work of other researchers rather than starting from scratch. It also provides an overall benefit to historians. Even with the vast amount of electronic data, there is still a huge amount of information that is not available digitally. Potentially a historian’s research data may exist no where else on the Internet and making it available on-line allows other historians to use knowledge that may previously had been difficult to access. Also, as historians benefit from governments providing more Open Data, so we should reciprocate by keeping our research data open too, as long as it is ethical to do so.

In her blog entry “Generous Thinking: Introduction” Kathleen Fitzgerald notes that when universities train students to be critical thinkers, students often miss what the author they are reading is trying to communicate. More Generous Thinking is needed in order to properly study at university. Fitzgerald’s idea of Generous Thinking also applies to the unspoken contract between the Digital Historian who opens their notebook to the public and the public who reads it. By using an Open Notebook, as described by W. Caleb McDaniel, the Digital Historian benefits when a member of the public reviews their work and generously offers additional related material or alerts the historian to an error, something that would save them a great deal of time compared to finding the error during publication. However, if the public is unduly critical of the historian’s open notebook, it discourages historians from posting further work. Open Notebook history is most useful when it is part of an active project, but that also requires the most fortitude from the historian to keep it open as ideas develop and change in front of a virtual audience.

Sheila Brennan’s blog entry “My Digital Publishing Update: Nothing” describes the pitfalls of publishing a digital first project with editors used to print projects. The Digital Historian, like anyone else delivering a project, needs to be aware of the specifications of what will be produced. If the outcome of a project is to, for example, produce an article for a journal, the project should be designed to create a deliverable that matches that outcome.

Experience with Module 1 in HIST3814o

One of our exercises this week was to write about a thought provoking annotation in the course readings using markdown syntax and the Dillinger.io editor – viewer. At first, I was I was not in a good mood to write and did other work. I came back to this on Saturday morning. I was fired up the about a podcast cited by @sarahmcole that described the decline in the number of women studying in Computer Science since 1984. On Saturday I also discussed the issue with my with my wife and daughter who gave me additional insight. I am glad I procrastinated so that I could consider this issue by writing about it here.

As a technical aside, I noticed that Dillinger rendered my footnotes from markdown syntax, but the .md viewer on Github did not recognize them.

Accessing DHBox

It is excellent experience for our class to access a virtual machine like DHBox remotely. As more computing power and services move to the Cloud, users of data analysis tools, such as digital historians, will access these tools through virtual machines, similar to DHBox. Rather than using a computer on a desk to process data, desktop computers will increasingly be used as terminals to access virtual computers with potentially much greater processing power than what would be available on a physical computer in an office.

Git and Github

Quite a few times when I needed to download something for a computer project, I was directed to Github. I just used it as a consumer, I took the file I was looking for and left. I knew Github was used to run software projects including open-source ones, but I really had only a vague idea of how contributions to these kinds of projects were made.

I now have a better sense of Git’s function for version control and branching within a repository. I also see Git’s role in governing large projects with multiple contributors. I realize I could make a fork from someone’s repository if I wanted to work on their project independently. If my work progressed to the to the point where it was worthy of including in the original project, I see how I would make pull request to ask if my contribution could be added to the original project I had forked from.

Raspberry Pi

I had wanted to test if Raspberry Pi could perform some of the things we do in this course. It runs Linux and is a low cost computer. I think it has potential to reduce barriers to people getting access to computers.

I found that Github, Slack and Hypothes.is are not supported on the versions of the Safari and Chromium web browsers I have on the Raspberry Pi (Pi for short). Some reduced functionality is available, but not enough to do real course work with these tools.

I did an experiment to see if I could connect the Raspberry Pi to Carleton University’s VPN so that I could access DHBox. I was unable to install OpenConnect, the VPN client, likely due to my lack of knowledge of OpenConnect. I was able to log in to the front page of Carleton’s VPN using the Safari web browser on the Pi. The AnyConnect software launched, but it downloaded the Windows version which does not work on the Pi.

I have stopped work on this for now.

Help

Seeing the annotations has provided deeper insight into the readings, it is interesting to see what others in this class are thinking. The postings in Slack have also been helpful as have links to blog posts.

Fail Log

In the interests of practicing open notebook Digital History here is my fail log for this week. I must admit, I don’t like how its formatted.

Diversity in DH and the lack of Women In Computer Science.

There are many thought provoking annotations in our course this week, but it was @sarahmcole’s post in our course Slack off-topic channel that stuck with me the most. She called out how the lack of availability of computers to women affected their decisions to complete degrees in computer science, according to a documentary she cited.[1] This resulted in a striking decline in participation by women starting in 1984, in sharp contrast to other types of degrees. The National Public Radio podcast she found describes this history and makes points I had not considered before, despite having lived though this time during high school.

My family bought the computer mentioned in podcast, the RadioShack / TRS-80 Color Computer 1, in 1983. I have a younger sister and brother, and while the computer was in various common rooms, it did become more mine. I was on it a lot. My younger sister Janelle used the computer and worked through exercises in the book “Programming with Extended Color BASIC.” but didn’t get access to it nearly as much as I did and stopped using it after the first summer we had it. Janelle now works as a detective in internet crime for the Toronto Police force and lectures and trains other police forces on technology internationally, but did not take computer science in university.

TRS-80 Color Computer 1 with a BASIC program
Figure 1, TRS-80 Color Computer 1 with a BASIC program.[2]

In my high school computer classes in 1984, I remember it seemed that the people who were the most proficient with computer programming were male. While as a group we weren’t particularly smart (judging by achievement in other classes), we all had computers at home, the same advantage mentioned in the podcast. Today my daughter has her own computer, but has faced male majority/male dominated computer programming courses in high school where she has at times felt uncomfortable. Two years in a row her class debated the École Polytechnique massacre of 1989. My daughter thought this was counter to encouraging women to continue in computer science.

I asked my wife Christine Blackadar about her experience. Her family purchased a Commodore 64 in 1983 and she remembers that she and her younger brother were so excited about a game called Blue Max that they typed in the machine code for another game from a magazine article. (It didn’t work.) Christine’s experience taking computer courses in high school resembled what I had seen. There were not enough computers to go around and in a male majority class she ended up with a male partner who she described as “not scary, just very off-putting.” Her partner got much more time on the shared computer and he frequently rushed Christine to finish her work. She said the male students in her class formed a group that the male teacher catered to. Although Christine did not go on to study computer programming in university, she did become a software developer in the late 1990’s. Ultimately she chose to change careers and become a teacher. One of the things she loved during her career was to teach computer skills to her students.

Many of the pioneers of computer programming were women. My favourite is United States Navy Rear Admiral Grace Hopper.  Among other achievements she is a co-developer of COBOL, a computer language still used where I work. If you use a bank, it is likely some of your financial transactions are still processed with this language. It is interesting to mark the close proximity of two events, in the NPR Podcast referenced above, 1984 was the inflection point when women’s participation rate in computer science started to decline. 1986 marked the final retirement of Grace Hopper from the United States Navy.
Grace Hopper and UNIVAC
Figure 2, Grace Hopper and UNIVAC.[3]


  1. Planet Money, “Episode 576: When Women Stopped Coding,” aired October 2014, National Public Radio podcast, 17:13, posted July 22, 2016, http://www.npr.org/sections/money/2016/07/22/487069271/episode-576-when-women-stopped-coding. Retrieved 15 July 2017.
  2. Gilles Douaire, “TRS-80” photograph (2013), Flickr, https://www.flickr.com. Retrieved 15 July 2017.
  3. Smithonian Institution, “Grace Hopper and UNIVAC” photograph (c.1960), Flickr, https://www.flickr.com. Retrieved 15 July 2017.

Completed for HIST3814o Module 1, Exercise 1.

This was composed in Dillinger.io as markdown and then exported as html.