|
Ruth Blay Gets Her Day |
Seacoast History Blog #52
June 25, 2009
It’s a good day for history when a long dead character finally gets her story told in an important publication. Our copy of HISTORICAL NEW HAMPSHIRE arrived today (Vol 63, No 1) with Carolyn Marvin’s detailed telling of the hanging of Ruth Blay on December 30, 1768. The story of the last woman executed in NH has long been the buzz of Portsmouth historians, but accounts were fuzzy and no reporter had really done her homework – until now. After a year of research and months of writing, Marvin’s 20-page study is now the most comprehensive source available.
Although most people don’t read scholarly essays in history journals, the facts are now collected, interpreted and published. That means that other history writers, students and journalists searching for Ruth Blay will find Marvin’s article. Although the myths and false reports will never die, we now have a place to go to learn the basics from a hard-working author who has made herself into an expert on the topic. And that is a very good thing for poor Ruth who finally has a biographer and publicist after all these years.
Ruth is doubly lucky that Marvin, who is a research librarian at the Portsmouth Athenaeum is also an accomplished writer. Her essay separates the popular legend from facts to get at the human character beneath. Until now, most of us have come to Ruth Blay through Albert Laighton’s poem or Charles Brewster’s essay. Both mock the local sheriff who, legend says, hanged Ruth quickly so that he could go to dinner, just missing a reprieve that arrived too late from the royal governor. The focus of the story was on the sheriff, not the victim, who some versions said, killed her infant child and buried it beneath the floorboards of a schoolhouse where she was a teacher.
MORE ON Ruth Blay and Carolyn Marvin
Marvin tracks back to Blay’s youth, digs into her early years and describes how a 30 year old unmarried woman could conceal her pregnancy in the clothing of the era. Like all good historians, Marvin sees her subject as a citizen of her own time, not ours. We learn, for example, that 30 to 40 percent of women were pregnant at the time of their marriage in Revolutionary days. Ruth’s refusal to name the father, as in Hawthorne’s Scarlet Letter, allow Marvin the chance to speculate on his identity, adding intrigue to an already intriguing tale
The child, probably stillborn, was discovered beneath the floorboards of a barn in South Hampton by a five-year old child. What followed seems like a travesty of justice to modern readers, but as Marvin continually reminds us, colonial New England was a wholly different nation. The author peoples the trial of “The King Vs Ruth Blay” with real characters. She brings Blay’s brief prison term to life by digging up a sketch of the Portsmouth jail and comparing it to the restored “gaol” at nearby York, Maine. We learn about the victim’s three reprieves and follow the death cart to the execution site, now South Cemetery.
Good history writing is a balancing act. The writer needs to keep the narrative alive, while filling in great gobs of expository detail. Where the reader needs to learn important facts about a forgotten era, the writer must paint the background, artfully, then leap out of the way to let the story progress. Marvin does this smoothly, offering expert commentary based on her unique knowledge of the topic, while correcting errors and setting the records straight, all without a hint of ego or bias. The reader can tell, as I have often noticed in conversations with Marvin, that she feels deeply for this character, but never lets her empathy get In the way of the facts.
Most intriguing are Blay’s own final words, published as a broadside by NH Gazette printers Robert and Daniel Fowle on the morning of Blay’s hanging. We get the whole first person account, a primary document I had never seen before. Blay hints that two women bore false witness against her. In modern terms, if we believe her account, Blay was framed. The mystery grows even deeper as eaech new fact is unearthed. By providing us with enough context to draw our own conclusions, Marvin turns what has been largely a nursery rhyme character into a fully human figure with a voice and a past.
In the model of Laurel Thatcher Ulrich, Marvin tells a woman’s tale from a woman’s perspective with impeccable research and clear prose, never wavering from the topic, but never letting the topic weight us down. The author knows that Ruth Blay is not just a footnote to history, but a touchstone to the society that formed our own modern culture. This is the kind of writing we need more of and Marvin shows us that one good essay on a marginalized figure like Ruth Blay reveals more about our American history than 10 more biographies of George Washington.
For now, this is everything you need to know about Ruth Blay, at least until Carol Marvin’s book comes out next year.
To join the NH Historical Society and / or purchase copies of Historical New Hampshire CLICK HERE
© Copyright 2009 by J. Dennis Robinson. All rights reserved.
Joomla! Debug Console
session.client.forwarded ⇒ 10.3.184.74
session.client.browser ⇒ Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
password_clear ⇒
groups ⇒
com_rsfirewall.geoip ⇒
6.21 MB (6,515,536 Bytes)
62 Queries Logged
SELECT `data`
FROM `rabbul_session`
WHERE `session_id` = 'c339055440ccfd7b2704435796a74837'DELETE
FROM `rabbul_session`
WHERE `time` < '1793700963'SELECT `session_id`
FROM `rabbul_session`
WHERE `session_id` = 'c339055440ccfd7b2704435796a74837'
LIMIT 0, 1INSERT INTO `rabbul_session`
(`session_id`, `client_id`, `time`)
VALUES
('c339055440ccfd7b2704435796a74837', 0, '1793701863')SELECT extension_id AS id, element AS "option", params, enabled
FROM rabbul_extensions
WHERE `type` = 'component'
AND `element` = 'com_users'SELECT b.id
FROM rabbul_usergroups AS a
LEFT JOIN rabbul_usergroups AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt
WHERE a.id = 1SELECT id, rules
FROM `rabbul_viewlevels`SELECT folder AS type, element AS name, params
FROM rabbul_extensions
WHERE enabled >= 1
AND type ='plugin'
AND state >= 0
AND access IN (1,1)
ORDER BY orderingSELECT extension_id AS id, element AS "option", params, enabled
FROM rabbul_extensions
WHERE `type` = 'component'
AND `element` = 'com_languages'SELECT `query`
FROM `rabbul_admintools_wafexceptions`
WHERE (`option` IS NULL OR `option` = '')
AND (`view` IS NULL OR `view` = '')
GROUP BY `query`
ORDER BY `query` ASCSELECT `value`
FROM `rabbul_admintools_storage`
WHERE `key` = 'cparams'SELECT `path`
FROM rabbul_rsfirewall_ignored
WHERE `type`='ignore_folder' OR `type`='ignore_file'SELECT `file`
FROM rabbul_rsfirewall_hashes
WHERE `type`='protect'SELECT *
FROM rabbul_rsfirewall_configurationSHOW FULL COLUMNS
FROM `rabbul_sef_config`SELECT *
FROM rabbul_sef_config
WHERE `id` = '1'SELECT non_sef_url,alias
FROM rabbul_sef_alias
WHERE published='1'
ORDER BY idSELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.language,m.browserNav, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element as component
FROM rabbul_menu AS m
LEFT JOIN rabbul_extensions AS e
ON m.component_id = e.extension_id
WHERE m.published = 1
AND m.parent_id > 0
AND m.client_id = 0
ORDER BY m.lftSELECT *
FROM rabbul_sef_redirect
WHERE CONVERT(source USING latin1) COLLATE latin1_general_cs = 'ruth-blay-gets-her-day/?print=1&tmpl=component'
AND published='1'
LIMIT 1SELECT id
FROM rabbul_menu
WHERE alias='ruth-blay-gets-her-day'
AND published=1SELECT id
FROM rabbul_categories
WHERE path='ruth-blay-gets-her-day'
AND extension='com_content'SELECT id,catid
FROM rabbul_content
WHERE alias='ruth-blay-gets-her-day'
AND state>0SELECT id,catid
FROM rabbul_content
WHERE alias='ruth-blay-gets-her-day'
AND state>0SELECT id
FROM rabbul_menu
WHERE type='component'
AND published='1'
AND link LIKE 'index.php?option=com_content&view=article%&id=2393'
ORDER BY idSELECT id
FROM rabbul_menu
WHERE type='component'
AND published='1'
AND link LIKE 'index.php?option=com_content&view=categor%&id=258'
ORDER BY idSELECT `id`
FROM `rabbul_usergroups`SELECT parent.id, parent.lft, parent.rgt
FROM rabbul_usergroups AS parent
ORDER BY parent.lftSHOW FULL COLUMNS
FROM `rabbul_assets`SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT b.rules
FROM rabbul_assets AS a
LEFT JOIN rabbul_assets AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt
WHERE (a.name = '')
GROUP BY b.id, b.rules, b.lft
ORDER BY b.lftSELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT rules
FROM rabbul_assets
WHERE id = '1'SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT id
FROM rabbul_assets
WHERE parent_id = 0SELECT u.*
FROM rabbul_user_usergroup_map m
RIGHT JOIN rabbul_users u
ON (u.id=m.user_id)
WHERE m.group_id IN (6,7,8)
GROUP BY u.id
ORDER BY u.username ASCSHOW FULL COLUMNS
FROM `rabbul_rsfirewall_logs`SELECT *
FROM rabbul_rsfirewall_hashes
WHERE (`type`='2.5.28' OR `type`='protect')
AND `flag`!='C'SELECT *
FROM rabbul_rsfirewall_snapshots
WHERE `type`='protect'SELECT `ip`,`reason`
FROM rabbul_rsfirewall_lists
WHERE (`ip`='10.3.184.74' OR `ip` LIKE '%*%')
AND `type`='1'
AND `published`='1'SELECT `ip`,`reason`
FROM rabbul_rsfirewall_lists
WHERE (`ip`='10.3.184.74' OR `ip` LIKE '%*%')
AND `type`='0'
AND `published`='1'SELECT *
FROM rabbul_rsfirewall_exceptions
WHERE `published`='1'SELECT extension_id AS id, element AS "option", params, enabled
FROM rabbul_extensions
WHERE `type` = 'component'
AND `element` = 'com_content'SELECT *
FROM rabbul_languages
WHERE published=1
ORDER BY ordering ASCSELECT id, home, template, s.params
FROM rabbul_template_styles as s
LEFT JOIN rabbul_extensions as e
ON e.element=s.template
AND e.type='template'
AND e.client_id=s.client_id
WHERE s.client_id = 0
AND e.enabled = 1SELECT a.rules
FROM rabbul_assets AS a
WHERE (a.id = 1)
GROUP BY a.id, a.rules, a.lftSELECT b.rules
FROM rabbul_assets AS a
LEFT JOIN rabbul_assets AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt
WHERE (a.name = 'com_content')
GROUP BY b.id, b.rules, b.lft
ORDER BY b.lftSELECT a.id, a.asset_id, a.title, a.alias, a.title_alias, a.introtext, a.fulltext,
CASE WHEN badcats.id is null THEN a.state ELSE 0 END AS state, a.mask, a.catid, a.created, a.created_by, a.created_by_alias,
CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.version, a.parentid, a.ordering, a.metakey, a.metadesc, a.access, a.hits, a.metadata, a.featured, a.language, a.xreference,c.title AS category_title, c.alias AS category_alias, c.access AS category_access,u.name AS author,(
SELECT MAX(contact.id) AS id
FROM rabbul_contact_details AS contact
WHERE contact.published = 1
AND contact.user_id = a.created_by) as contactid,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count
FROM rabbul_content AS a
LEFT JOIN rabbul_categories AS c
on c.id = a.catid
LEFT JOIN rabbul_users AS u
on u.id = a.created_by
LEFT JOIN rabbul_categories as parent
ON parent.id = c.parent_id
LEFT JOIN rabbul_content_rating AS v
ON a.id = v.content_id
LEFT
OUTER JOIN (SELECT cat.id as id
FROM rabbul_categories AS cat JOIN rabbul_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt
WHERE parent.extension = 'com_content'
AND parent.published <= 0
GROUP BY cat.id) AS badcats
ON badcats.id = c.id
WHERE a.id = 2393
AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2026-11-03 10:31:03')
AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2026-11-03 10:31:03')
AND (a.state = 1 OR a.state =2)SELECT c.*,
CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
FROM rabbul_categories as c
LEFT JOIN rabbul_categories AS s
ON (s.lft <= c.lft
AND s.rgt >= c.rgt) OR (s.lft > c.lft
AND s.rgt < c.rgt)
LEFT JOIN (SELECT cat.id as id
FROM rabbul_categories AS cat JOIN rabbul_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt
WHERE parent.extension = 'com_content'
AND parent.published != 1
GROUP BY cat.id) AS badcats
ON badcats.id = c.id
WHERE (c.extension='com_content' OR c.extension='system')
AND c.access IN (1,1)
AND c.published = 1
AND s.id=258
AND badcats.id is null
GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
c.path, c.published, c.rgt, c.title, c.modified_user_id
ORDER BY c.lftSELECT a.alias AS article
FROM rabbul_content AS a
WHERE a.id = 2393UPDATE rabbul_content
SET hits = hits + 1
WHERE id = 2393UPDATE `rabbul_session`
SET `data` = '__default|a:9:{s:15:\"session.counter\";i:1;s:19:\"session.timer.start\";i:1793701863;s:18:\"session.timer.last\";i:1793701863;s:17:\"session.timer.now\";i:1793701863;s:24:\"session.client.forwarded\";s:11:\"10.3.184.74\";s:22:\"session.client.browser\";s:103:\"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)\";s:8:\"registry\";O:9:\"JRegistry\":1:{s:7:\"\0*\0data\";O:8:\"stdClass\":0:{}}s:4:\"user\";O:5:\"JUser\":25:{s:9:\"\0*\0isRoot\";b:0;s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:8:\"usertype\";N;s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:6:\"groups\";a:0:{}s:5:\"guest\";i:1;s:13:\"lastResetTime\";N;s:10:\"resetCount\";N;s:10:\"\0*\0_params\";O:9:\"JRegistry\":1:{s:7:\"\0*\0data\";O:8:\"stdClass\":0:{}}s:14:\"\0*\0_authGroups\";a:1:{i:0;i:1;}s:14:\"\0*\0_authLevels\";a:2:{i:0;i:1;i:1;i:1;}s:15:\"\0*\0_authActions\";N;s:12:\"\0*\0_errorMsg\";N;s:10:\"\0*\0_errors\";a:0:{}s:3:\"aid\";i:0;}s:20:\"com_rsfirewall.geoip\";s:0:\"\";}'
, `time` = '1793701863'
WHERE `session_id` = 'c339055440ccfd7b2704435796a74837'
41 Query Types Logged, Sorted by Occurrences.
SELECT Tables:
15 × SELECT id
FROM rabbul_assets3 × SELECT extension_id AS id, element AS "option", params, enabled
FROM rabbul_extensions3 × SELECT id
FROM rabbul_menu2 × SELECT id,catid
FROM rabbul_content2 × SELECT b.rules
FROM rabbul_assets AS a
LEFT JOIN rabbul_assets AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt2 × SELECT `ip`,`reason`
FROM rabbul_rsfirewall_lists1 × SELECT *
FROM rabbul_rsfirewall_hashes1 × SELECT rules
FROM rabbul_assets1 × SELECT *
FROM rabbul_rsfirewall_snapshots1 × SELECT u.*
FROM rabbul_user_usergroup_map m RIGHT JOIN rabbul_users u
ON (u.id=m.user_id)1 × SELECT *
FROM rabbul_rsfirewall_exceptions1 × SELECT c.*,
CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
FROM rabbul_categories as c
LEFT JOIN rabbul_categories AS s
ON (s.lft <= c.lft
AND s.rgt >= c.rgt) OR (s.lft > c.lft
AND s.rgt < c.rgt)
LEFT JOIN (SELECT cat.id as id
FROM rabbul_categories AS cat JOIN rabbul_categories AS parent
ON cat.lft BETWEEN parent.lft
AND parent.rgt1 × SELECT a.alias AS article
FROM rabbul_content AS a1 × SELECT a.id, a.asset_id, a.title, a.alias, a.title_alias, a.introtext, a.fulltext,
CASE WHEN badcats.id is null THEN a.state ELSE 0 END AS state, a.mask, a.catid, a.created, a.created_by, a.created_by_alias,
CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.images, a.urls, a.attribs, a.version, a.parentid, a.ordering, a.metakey, a.metadesc, a.access, a.hits, a.metadata, a.featured, a.language, a.xreference,c.title AS category_title, c.alias AS category_alias, c.access AS category_access,u.name AS author,( SELECT MAX(contact.id) AS id
FROM rabbul_contact_details AS contact1 × SELECT a.rules
FROM rabbul_assets AS a1 × SELECT *
FROM rabbul_languages1 × SELECT id, home, template, s.params
FROM rabbul_template_styles as s
LEFT JOIN rabbul_extensions as e
ON e.element=s.template
AND e.type='template'
AND e.client_id=s.client_id1 × SELECT parent.id, parent.lft, parent.rgt
FROM rabbul_usergroups AS parent1 × SELECT id
FROM rabbul_categories1 × SELECT `query`
FROM `rabbul_admintools_wafexceptions`1 × SELECT `value`
FROM `rabbul_admintools_storage`1 × SELECT folder AS type, element AS name, params
FROM rabbul_extensions1 × SELECT id, rules
FROM `rabbul_viewlevels1 × SELECT `session_id`
FROM `rabbul_session`1 × SELECT b.id
FROM rabbul_usergroups AS a
LEFT JOIN rabbul_usergroups AS b
ON b.lft <= a.lft
AND b.rgt >= a.rgt1 × SELECT `path`
FROM rabbul_rsfirewall_ignored1 × SELECT `file`
FROM rabbul_rsfirewall_hashes1 × SELECT *
FROM rabbul_sef_redirect1 × SELECT `data`
FROM `rabbul_session`1 × SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.language,m.browserNav, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element as component
FROM rabbul_menu AS m
LEFT JOIN rabbul_extensions AS e
ON m.component_id = e.extension_id1 × SELECT non_sef_url,alias
FROM rabbul_sef_alias1 × SELECT *
FROM rabbul_rsfirewall_configuratio1 × SELECT *
FROM rabbul_sef_config1 × SELECT `id`
FROM `rabbul_usergroups
OTHER Tables:
1 × UPDATE rabbul_content
SET hits = hits + 11 × UPDATE `rabbul_session`
SET `data` = '__default|a:9:{s:15:\"session.counter\";i:1;s:19:\"session.timer.start\";i:1793701863;s:18:\"session.timer.last\";i:1793701863;s:17:\"session.timer.now\";i:1793701863;s:24:\"session.client.forwarded\";s:11:\"10.3.184.74\";s:22:\"session.client.browser\";s:103:\"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)\";s:8:\"registry\";O:9:\"JRegistry\":1:{s:7:\"\0*\0data\";O:8:\"stdClass\":0:{}}s:4:\"user\";O:5:\"JUser\":25:{s:9:\"\0*\0isRoot\";b:0;s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:8:\"usertype\";N;s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:6:\"groups\";a:0:{}s:5:\"guest\";i:1;s:13:\"lastResetTime\";N;s:10:\"resetCount\";N;s:10:\"\0*\0_params\";O:9:\"JRegistry\":1:{s:7:\"\0*\0data\";O:8:\"stdClass\":0:{}}s:14:\"\0*\0_authGroups\";a:1:{i:0;i:1;}s:14:\"\0*\0_authLevels\";a:2:{i:0;i:1;i:1;i:1;}s:15:\"\0*\0_authActions\";N;s:12:\"\0*\0_errorMsg\";N;s:10:\"\0*\0_errors\";a:0:{}s:3:\"aid\";i:0;}s:20:\"com_rsfirewall.geoip\";s:0:\"\";}' , `time` = '1793701863'1 × SHOW FULL COLUMNS
FROM `rabbul_rsfirewall_logs1 × SHOW FULL COLUMNS
FROM `rabbul_assets1 × INSERT INTO `rabbul_session` (`session_id`, `client_id`, `time`)
VALUES ('c339055440ccfd7b2704435796a74837', 0, '1793701863'1 × SHOW FULL COLUMNS
FROM `rabbul_sef_config1 × DELETE
FROM `rabbul_session`