SlideShare a Scribd company logo
1 of 51
Download to read offline
War Stories
Programming in the field of Medieval History
Tara L Andrews (@tla)
Assistant Professor of Digital Humanities, University of Bern
How do we write history?
Matthew of
Edessa
He went through the wars.
And then his text did, too.
Interlude:
A fragile history
package Text::Tradition::Collation::Data;
use Moose;
use Graph;
use Text::Tradition::Datatypes;
has 'sequence' => (
is => 'ro',
isa => 'Graph',
default => sub { Graph->new() },
handles => {
paths => 'edges',
},
);
has 'relations' => (
is => 'ro',
isa => 'Text::Tradition::Collation::RelationshipStore',
handles => {
relationships => 'relationships',
related_readings => 'related_readings',
get_relationship => 'get_relationship',
del_relationship => 'del_relationship',
equivalence => 'equivalence',
equivalence_graph => 'equivalence_graph',
relationship_types => 'types'
},
writer => '_set_relations',
);
package Text::Tradition::Directory;
use strict;
use warnings;
use Moose;
use DBI;
use Encode qw/ encode decode_utf8 /;
use KiokuDB::GC::Naive;
use KiokuDB::TypeMap;
use KiokuDB::TypeMap::Entry::Naive;
use Safe::Isa;
use Text::Tradition::Error;
## users
use KiokuX::User::Util qw(crypt_password);
use Text::Tradition::Store;
use Text::Tradition::User;
use Text::Tradition::TypeMap::Entry;
extends 'KiokuX::Model';
use vars qw/ $VERSION /;
$VERSION = "1.2";
=head1 NAME
Text::Tradition::Directory - a KiokuDB interface for storing and retrieving
traditions and their owners
=head1 SYNOPSIS
[warn] leaked objects:
.--------------------------------------------------------------+----------.
| Class | Count |
+--------------------------------------------------------------+----------+
| Text::Tradition::Collation::Data | 1 |
'--------------------------------------------------------------+----------'
[warn] leaked objects:
.--------------------------------------------------------------+----------.
| Class | Count |
+--------------------------------------------------------------+----------+
| Text::Tradition::Collation::Data | 1 |
'--------------------------------------------------------------+----------'
[warn] leaked objects:
.--------------------------------------------------------------+----------.
| Class | Count |
+--------------------------------------------------------------+----------+
| Text::Tradition::Collation::Data | 6 |
'--------------------------------------------------------------+----------'
[warn] leaked objects:
.--------------------------------------------------------------+----------.
| Class | Count |
+--------------------------------------------------------------+----------+
| Text::Tradition::Collation::Data | 1 |
'--------------------------------------------------------------+----------'
[warn] leaked objects:
.--------------------------------------------------------------+----------.
| Class | Count |
+--------------------------------------------------------------+----------+
| Text::Tradition::Collation::Data | 6 |
'--------------------------------------------------------------+----------'
[error] Caught exception in stemmaweb::Controller::Relation->main "Cannot allocate
memory during fork at /usr/local/share/perl/5.18.2/Text/Tradition/Collation.pm line
976."
Testing. A cute idea.
Mac-c8e0eb150215:base tla$ prove -l t/*.t
t/00dependencies.t .............................. ok
t/01app.t ....................................... ok
t/02pod.t ....................................... ok
t/03podcoverage.t ............................... skipped: set TEST_POD to enable this test
t/text_tradition.t .............................. ok
t/text_tradition_collation.t .................... ok
t/text_tradition_collation_relationshipstore.t .. ok
t/text_tradition_parser_collatex.t .............. ok
t/text_tradition_parser_json.t .................. ok
t/text_tradition_parser_self.t .................. ok
t/text_tradition_parser_tabular.t ............... ok
t/text_tradition_parser_tei.t ................... ok
t/text_tradition_witness.t ...................... ok
All tests successful.
Files=13, Tests=556, 43 wallclock secs ( 0.10 usr 0.03 sys + 40.60 cusr 1.12 csys = 41.85 CPU)
Result: PASS
Digital Humanities tenure submission
Textual criticism
A war of methodology
Interlude #2:
We really have problems.
use strict;
use warnings;
use feature ‘say’;
use WWW::Google::Places;
my $api_key = 's33kr1t';
my $place = WWW::Google::Places->new({ api_key =>
$api_key });
# Google search place
my @results = $place->textsearch({ query => $ARGV[0] });
foreach (reverse @results) {
say "Id : ", $_->place_id;
say "Name : ", $_->name;
say "Types : ", join(", ", @{$_->types});
say "Geometry: ", $_->geometry;
say "Icon : ", $_->icon;
say "Vicinity: ", $_->vicinity;
say "Scope : ", $_->scope;
say "----------------------------------------";
}
----------------------------------------
Id : ChIJsX7lyvNMSIgRVXRTNgaDlb0
Name : Gihon Elementary School
Types : school, point_of_interest, establishment
Geometry: Location: Latitude: 39.234044, Longitude:
-81.552035
Icon : https://maps.gstatic.com/mapfiles/place_api/icons/
generic_business-71.png
Vicinity: N/A
Scope : GOOGLE
----------------------------------------
Id : ChIJRUzmdd7J5YgR0aKaqFXMhLI
Name : Shorstein, Lasnetski, & Gihon
Types : lawyer, point_of_interest, establishment
Geometry: Location: Latitude: 30.254356, Longitude:
-81.627089
Icon : https://maps.gstatic.com/mapfiles/place_api/icons/
generic_business-71.png
Vicinity: N/A
Scope : GOOGLE
----------------------------------------
Id : ChIJYbwjTt06K4gRuKL-IX6oTy0
Name : Gihon Spring Park
Types : park, point_of_interest, establishment
Geometry: Location: Latitude: 43.754475, Longitude:
-79.594406
Icon : https://maps.gstatic.com/mapfiles/place_api/icons/
generic_business-71.png
Vicinity: N/A
Scope : GOOGLE
Art or
engineering?
Skirmishes on the place of
creativity
Thank you!
¡Grácias!

More Related Content

Similar to War stories: Programming in the field of medieval history

Scanned by CamScanner s iO re W . th th e.docx
Scanned by CamScanner s  iO re  W .   th  th e.docxScanned by CamScanner s  iO re  W .   th  th e.docx
Scanned by CamScanner s iO re W . th th e.docx
kenjordan97598
 
Data Manipulation with Numpy and Pandas in PythonStarting with N
Data Manipulation with Numpy and Pandas in PythonStarting with NData Manipulation with Numpy and Pandas in PythonStarting with N
Data Manipulation with Numpy and Pandas in PythonStarting with N
OllieShoresna
 
An intro to applied multi stat with r by everitt et al
An intro to applied multi stat with r by everitt et alAn intro to applied multi stat with r by everitt et al
An intro to applied multi stat with r by everitt et al
Razzaqe
 
Applied parallel coordinates for logs and network traffic attack analysis
Applied parallel coordinates for logs and network traffic attack analysisApplied parallel coordinates for logs and network traffic attack analysis
Applied parallel coordinates for logs and network traffic attack analysis
UltraUploader
 

Similar to War stories: Programming in the field of medieval history (20)

Summerization notes for descriptive statistics using r
Summerization notes for descriptive statistics using r Summerization notes for descriptive statistics using r
Summerization notes for descriptive statistics using r
 
Eli plots visualizing innumerable number of correlations
Eli plots   visualizing innumerable number of correlationsEli plots   visualizing innumerable number of correlations
Eli plots visualizing innumerable number of correlations
 
An Interactive Introduction To R (Programming Language For Statistics)
An Interactive Introduction To R (Programming Language For Statistics)An Interactive Introduction To R (Programming Language For Statistics)
An Interactive Introduction To R (Programming Language For Statistics)
 
De-Cluttering-ML | TechWeekends
De-Cluttering-ML | TechWeekendsDe-Cluttering-ML | TechWeekends
De-Cluttering-ML | TechWeekends
 
Programming Assignment Help
Programming Assignment HelpProgramming Assignment Help
Programming Assignment Help
 
Linking data without common identifiers
Linking data without common identifiersLinking data without common identifiers
Linking data without common identifiers
 
Ultra Violet-Visable Spectroscopy Analysis of Spin Coated Substrates
Ultra Violet-Visable Spectroscopy Analysis of Spin Coated SubstratesUltra Violet-Visable Spectroscopy Analysis of Spin Coated Substrates
Ultra Violet-Visable Spectroscopy Analysis of Spin Coated Substrates
 
Report Cryptography
Report CryptographyReport Cryptography
Report Cryptography
 
Data Science Academy Student Demo day--Michael blecher,the importance of clea...
Data Science Academy Student Demo day--Michael blecher,the importance of clea...Data Science Academy Student Demo day--Michael blecher,the importance of clea...
Data Science Academy Student Demo day--Michael blecher,the importance of clea...
 
Scanned by CamScanner s iO re W . th th e.docx
Scanned by CamScanner s  iO re  W .   th  th e.docxScanned by CamScanner s  iO re  W .   th  th e.docx
Scanned by CamScanner s iO re W . th th e.docx
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientists
 
Generation_XSD_Article - Part 3.pdf
Generation_XSD_Article - Part 3.pdfGeneration_XSD_Article - Part 3.pdf
Generation_XSD_Article - Part 3.pdf
 
Data Manipulation with Numpy and Pandas in PythonStarting with N
Data Manipulation with Numpy and Pandas in PythonStarting with NData Manipulation with Numpy and Pandas in PythonStarting with N
Data Manipulation with Numpy and Pandas in PythonStarting with N
 
An intro to applied multi stat with r by everitt et al
An intro to applied multi stat with r by everitt et alAn intro to applied multi stat with r by everitt et al
An intro to applied multi stat with r by everitt et al
 
renato_barros_arantes_article
renato_barros_arantes_articlerenato_barros_arantes_article
renato_barros_arantes_article
 
An Optimal Approach For Knowledge Protection In Structured Frequent Patterns
An Optimal Approach For Knowledge Protection In Structured Frequent PatternsAn Optimal Approach For Knowledge Protection In Structured Frequent Patterns
An Optimal Approach For Knowledge Protection In Structured Frequent Patterns
 
Applied parallel coordinates for logs and network traffic attack analysis
Applied parallel coordinates for logs and network traffic attack analysisApplied parallel coordinates for logs and network traffic attack analysis
Applied parallel coordinates for logs and network traffic attack analysis
 
4 Descriptive Statistics with R
4 Descriptive Statistics with R4 Descriptive Statistics with R
4 Descriptive Statistics with R
 
maXbox starter67 machine learning V
maXbox starter67 machine learning VmaXbox starter67 machine learning V
maXbox starter67 machine learning V
 
Statistics lab 1
Statistics lab 1Statistics lab 1
Statistics lab 1
 

Recently uploaded

1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 

Recently uploaded (20)

Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 

War stories: Programming in the field of medieval history

  • 1. War Stories Programming in the field of Medieval History Tara L Andrews (@tla) Assistant Professor of Digital Humanities, University of Bern
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. How do we write history?
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Matthew of Edessa He went through the wars. And then his text did, too.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 23.
  • 24.
  • 25.
  • 26. package Text::Tradition::Collation::Data; use Moose; use Graph; use Text::Tradition::Datatypes; has 'sequence' => ( is => 'ro', isa => 'Graph', default => sub { Graph->new() }, handles => { paths => 'edges', }, ); has 'relations' => ( is => 'ro', isa => 'Text::Tradition::Collation::RelationshipStore', handles => { relationships => 'relationships', related_readings => 'related_readings', get_relationship => 'get_relationship', del_relationship => 'del_relationship', equivalence => 'equivalence', equivalence_graph => 'equivalence_graph', relationship_types => 'types' }, writer => '_set_relations', );
  • 27.
  • 28. package Text::Tradition::Directory; use strict; use warnings; use Moose; use DBI; use Encode qw/ encode decode_utf8 /; use KiokuDB::GC::Naive; use KiokuDB::TypeMap; use KiokuDB::TypeMap::Entry::Naive; use Safe::Isa; use Text::Tradition::Error; ## users use KiokuX::User::Util qw(crypt_password); use Text::Tradition::Store; use Text::Tradition::User; use Text::Tradition::TypeMap::Entry; extends 'KiokuX::Model'; use vars qw/ $VERSION /; $VERSION = "1.2"; =head1 NAME Text::Tradition::Directory - a KiokuDB interface for storing and retrieving traditions and their owners =head1 SYNOPSIS
  • 29. [warn] leaked objects: .--------------------------------------------------------------+----------. | Class | Count | +--------------------------------------------------------------+----------+ | Text::Tradition::Collation::Data | 1 | '--------------------------------------------------------------+----------' [warn] leaked objects: .--------------------------------------------------------------+----------. | Class | Count | +--------------------------------------------------------------+----------+ | Text::Tradition::Collation::Data | 1 | '--------------------------------------------------------------+----------' [warn] leaked objects: .--------------------------------------------------------------+----------. | Class | Count | +--------------------------------------------------------------+----------+ | Text::Tradition::Collation::Data | 6 | '--------------------------------------------------------------+----------' [warn] leaked objects: .--------------------------------------------------------------+----------. | Class | Count | +--------------------------------------------------------------+----------+ | Text::Tradition::Collation::Data | 1 | '--------------------------------------------------------------+----------' [warn] leaked objects: .--------------------------------------------------------------+----------. | Class | Count | +--------------------------------------------------------------+----------+ | Text::Tradition::Collation::Data | 6 | '--------------------------------------------------------------+----------' [error] Caught exception in stemmaweb::Controller::Relation->main "Cannot allocate memory during fork at /usr/local/share/perl/5.18.2/Text/Tradition/Collation.pm line 976."
  • 30. Testing. A cute idea. Mac-c8e0eb150215:base tla$ prove -l t/*.t t/00dependencies.t .............................. ok t/01app.t ....................................... ok t/02pod.t ....................................... ok t/03podcoverage.t ............................... skipped: set TEST_POD to enable this test t/text_tradition.t .............................. ok t/text_tradition_collation.t .................... ok t/text_tradition_collation_relationshipstore.t .. ok t/text_tradition_parser_collatex.t .............. ok t/text_tradition_parser_json.t .................. ok t/text_tradition_parser_self.t .................. ok t/text_tradition_parser_tabular.t ............... ok t/text_tradition_parser_tei.t ................... ok t/text_tradition_witness.t ...................... ok All tests successful. Files=13, Tests=556, 43 wallclock secs ( 0.10 usr 0.03 sys + 40.60 cusr 1.12 csys = 41.85 CPU) Result: PASS
  • 32.
  • 33. Textual criticism A war of methodology
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Interlude #2: We really have problems.
  • 42.
  • 43.
  • 44. use strict; use warnings; use feature ‘say’; use WWW::Google::Places; my $api_key = 's33kr1t'; my $place = WWW::Google::Places->new({ api_key => $api_key }); # Google search place my @results = $place->textsearch({ query => $ARGV[0] }); foreach (reverse @results) { say "Id : ", $_->place_id; say "Name : ", $_->name; say "Types : ", join(", ", @{$_->types}); say "Geometry: ", $_->geometry; say "Icon : ", $_->icon; say "Vicinity: ", $_->vicinity; say "Scope : ", $_->scope; say "----------------------------------------"; }
  • 45. ---------------------------------------- Id : ChIJsX7lyvNMSIgRVXRTNgaDlb0 Name : Gihon Elementary School Types : school, point_of_interest, establishment Geometry: Location: Latitude: 39.234044, Longitude: -81.552035 Icon : https://maps.gstatic.com/mapfiles/place_api/icons/ generic_business-71.png Vicinity: N/A Scope : GOOGLE ---------------------------------------- Id : ChIJRUzmdd7J5YgR0aKaqFXMhLI Name : Shorstein, Lasnetski, & Gihon Types : lawyer, point_of_interest, establishment Geometry: Location: Latitude: 30.254356, Longitude: -81.627089 Icon : https://maps.gstatic.com/mapfiles/place_api/icons/ generic_business-71.png Vicinity: N/A Scope : GOOGLE ---------------------------------------- Id : ChIJYbwjTt06K4gRuKL-IX6oTy0 Name : Gihon Spring Park Types : park, point_of_interest, establishment Geometry: Location: Latitude: 43.754475, Longitude: -79.594406 Icon : https://maps.gstatic.com/mapfiles/place_api/icons/ generic_business-71.png Vicinity: N/A Scope : GOOGLE
  • 46.
  • 47. Art or engineering? Skirmishes on the place of creativity
  • 48.
  • 49.
  • 50.