The Grinnell College Digital Library Application Developer's Blog
Call it The GCDLADB if you like.
Updating Digital.Grinnell (in Islandora) One More Time 7 min read Jan 19, 2023 | Updated: Jan 20, 2023 22:33
Digital.Grinnell’s Islandora lifespan will most likely come to an end this year, or at least in the early part 2024. So, I’m adopting a new, lean and mean process for updating it from this point forward. Basically the process will involve backing up the code that’s already in place, then using drush up to upgrade the Drupal modules and core if necessary. That process on January 19, 2023, went something like this… vSphere Snapshot In case of catastrophic failure I first elected to open my VPN then a window into VMware® vSphere. ...
Hugo: Attachments and Bundles 2 min read Jan 12, 2023
This post was written as follow-up to my previous post where I implemented a custom Hugo shortcode, attachments.html, documented in attachments.html below. The implementation of this shortcode required a Hugo Page Bundles content structure and the transition to such a structure is documented below in Page Bundles Structure. attachments.html This shortcode, attachments.html, was lifted from Hugo Attachment shortcode, a blog post by Nelis Oostens. Successfull implementation of this shortcode one minor modification (my theme did not have a referenced partial) and conversion of my content/posts from individual Markdown (. ...
Migrating CATPAW Development to Azure 4 min read Jan 11, 2023 | Updated: Jan 12, 2023 18:45
Portions of this post build on concepts introduced in Managing Azure. CATPAW - Computer-Aided Thinking, Primarily about Writing From the CATPAW home screen… In many ways, CATPAW is an online book about writing style–a guide to the choices we make in writing that connect us to our readers. Rather than setting out rules to follow, CATPAW will help you make informed choices in context. The site accomplishes that goal in three ways: It explains the choices writers face. It uses computational tools to help you examine your own writing, letting you see what choices you have already made and what you might want to do differently. ...
Creating a CollectionBuilder-CSV Instance from Our Migration Collection 10 min read Nov 28, 2022
This post is essentially a CollectionBuilder-CSV follow-up to Creating a Migration Collection, intended to document the path I’ve taken and the decisions I made when creating a first cut of Digital.Grinnell content using the aformentioned CollectionBuilder-CSV. CB-CSV_DG-01 With few notable exceptions, everything mentioned below will be visible in a new public GitHub repo at Digital-Grinnell/CB-CSV_DG-01. Corresponding Google Sheet One of the exceptions: the project’s metadata CSV in a time-stamped tab at https://docs.google.com/spreadsheets/d/1ic4PxHDbuzDrmf4YtauhC4vEQJxt3QSH8bYfLBCM3Gc/. Other worksheets/tabs in the Google Sheet contain: Sheet 1 = the initial imported demo data from the CollectionBuilder-CSV Metadata Template ...
Automated Proofreading with `htmlproofer` 17 min read Nov 8, 2022 | Updated: Nov 11, 2022 20:32
What follows is a January 2022 excerpt from a piece of Rootstalk project documentation titled Automated-Testing.md… Automated Testing Today I started a little side-project aimed at helping test or “proof” the Rootstalk structure and content. I’m attempting to use the package/process documented in this GitHub repo. I started on the command-line of my MacBook Pro like so: ╭─mcfatem@MAC02FK0XXQ05Q ~/GitHub/rootstalk ‹main› ╰─$ gem install html-proofer Fetching yell-2.2.2.gem Fetching nokogiri-1.13.1-arm64-darwin.gem Fetching rainbow-3.1.1.gem Fetching ethon-0.15.0.gem Fetching html-proofer-3.19.3.gem Fetching typhoeus-1.4.0.gem Fetching parallel-1.21.0.gem Successfully installed yell-2. ...
Another Sync to Rootstalk Production (DigitalOcean) with Dev 20 min read Nov 7, 2022
My goal for this afternoon, November 7, 2022, was to find repeat a process last performed almost a year ago on December 22, 2021, to synchronize changes in the development copy of Rootstalk (the main branch https://github.com/Digital-Grinnell/rootstalk) with our production deployment (the main branch of https://github.com/Digital-Grinnell/rootstalk-DO) to DigitalOcean. This should be a simple repeat of the process documented in Sync Rootstalk Production (DigitalOcean) with Dev. As before, I used guidance found in How To Merge Between Two Local Repositories to accomplish this. ...
Creating a `git` Hook 6 min read Oct 27, 2022 | Updated: Jan 20, 2023 20:20
I recently created Hugo Front Matter Tools which is described as… A collection of Python scripts desinged to help manage Hugo .md content front matter. I already have mechanisms in many projects, like this blog, that help me report the last time ANY content was pushed to GitHub, or the last time a Hugo site was compiled. But it would be nice, especially in the case of Rootstalk, if I could save the last git add date/time into an individual file’s front matter. ...
Managing Azure 6 min read Oct 19, 2022
For the past couple years I/we have been experimenting with moving digital content to Azure, both for storage and as a web app host. The most prominent case is with regard to Rootstalk where Azure currently supports two (recently down from three) static development apps as well as a storage account. All such services are part of a personal* Azure subscription opened under the digital@grinnell.edu email address. *I call this a “personal” account because charges for it are currently billed to my own credit card, a situation that will need to be changed sometime relatively soon. ...
Creating a Migration Collection 22 min read Oct 12, 2022
As we continue to look at potential migration paths for our Digital.Grinnell (DG) content, it’s become apparent that it would be nice to have a small “test” or “migration” collection of objects to play with. The collection should have a small, but diverse, set of objects covering all of the popular content, or CModel, types that we currently have in DG. Since Slack now imposes a 90-day lifespan for posts (we are using only free-tier Slack services at this time) I thought I had better create this blog post to capture key parts of a relevant Slack conversation… ...
VSCode Find and Replace Using `regex` 1 min read Oct 8, 2022
This morning I needed to do some bulk “find and replace” operations in most of my Rootstalk content. My first thought was to write and run a little Python script, but then I wondered what VSCode might bring to the table. Plenty, it brought plenty! To keep this post as brief as possible, I’m simply going to reference an instructional video that I created earlier: VSCode-Find-and-Replace.mp4. A list of some links mentioned in the video is provided here: https://linuxpip.org/vscode-regex-replace/ https://itnext.io/vscode-find-and-replace-regex-super-powers-c7f8be0fa80f https://www. ...