2020.02.18
Reading through the Psalms each month is a traditional Christian practice, and a good excuse to write a cli app in Rust.
The recitation of the Psalms is central to daily worship throughout the whole of Christian Tradition. Anglicanism at the time of the Reformation established that the entire Psalter should be read in the Daily Office once each month, according to the pattern printed with this Lectionary. Contemporary practice sometimes lessens the number of the daily psalms, which practice is permissible as long as the entire Psalter is regularly read. For any day, the psalms appointed may be reduced in number according to local circumstance. If there is only one office, the psalms may be drawn from those appointed for Morning or Evening that Day. If a two month cycle of psalms is desired, the Morning psalms may be read in one month and the Evening psalms in the next. When there is a thirty-first day of the month, psalms from the Psalms of Ascents, Psalms 120 to 134, are used.
From THE BOOK OF COMMON PRAYER (2019)
Copyright © 2019 by the Anglican Church in North America
``` rust use std::collections::HashMap;
fn main() { let mut psalter = HashMap::new();
psalter.insert(
"Day 1".to_string(),
"Psalms 1 through 5 (Morning)\nPsalms 6 through 8 (Evening)".to_string(),
);
psalter.insert(
"Day 18".to_string(),
"Psalms 90 through 92 (Morning)\nPsalms 93 through 94 (Evening)".to_string(),
);
println!("Day 18:\n{}", psalter["Day 18"]);
} ```
2020.02.19
There are several things this program could do. Here are some in order of usefulness:
print daily psalm text
print daily psalm text, pointed for Anglican Chant
print (?) musical settings
As a man lacking stick-to-it-ivity, it's reasonable for me to add entries over time. Having the program do task 1 is trivial. Anything beyond that requires research; I'd need to decide how to store and link the data. Perhaps individual psalms would be stored in their own text files. That would allow me opportunity to vary the format since I surely won't be able to make up my mind about it. Psalm text can be included as I get around to it, and replaced with text pointed for chant (also, as I get around to it).