The Grinnell College Digital Library Application Developer's Blog
Call it The GCDLADB if you like.
Remote Atom 2 min read Jul 1, 2020 | Updated: Nov 17, 2021 16:07
Earlier this year I installed and configured the remote-atom package to assist with editing content and code for my personal blog. Naturally, I wrote a blog post to document it. In the past week I’ve added the remote-atom package, and configuration to many of my Digital.Grinnell servers. The installation and configuration was virtually identical to what I described in Adding remote-atom to my DigitalOcean Server. Thus far the package and it’s configuration have been implemented on the following workstations, both personal and professional, with the following username@server configurations: ...
Updating Digital.Grinnell in ISLE 14 min read Jun 22, 2021 | Updated: Jun 28, 2021 13:27 Superseded by posts/111-updating-isle-v1.5.11
Attention: This is an annotated copy of the ISLE project’s update.md document. Annotations specific to Digital.Grinnell appear in specially formatted blocks like this one There was one universal change made here in the original text, specifically all references to master branches have been changed to main to correlate with updated names of the repositories involved in this process. Note: This update procedure was first performed “locally”, as recommended on 2021-June-22 when I attempted it on my Grinnell College MacBook Pro, MA10713, serial number C02FK0XXQ05Q. ...
SNOWBALL 8 min read May 15, 2021 | Updated: May 17, 2021 13:47
Digital.Grinnell and a handful of other servers/sites that I deal with crashed on the morning of Thursday, May 16. Really bad timing! I have yet to figure out what happened to trigger the tsunami, but it happened shortly before the college announced successful cut-over to a new emergency alert system. Related? I dunno. In any case, on Friday afternoon (yesterday) I got a steroid shot for a nasty sinus condition and my doctor warned that I might not be able to sleep well. ...
Adding `.htaccess` to Apache Container `/tmp` Directory 2 min read Apr 14, 2021
For some time now we’ve had a problem lurking in Digital.Grinnell, when large files are opened for viewing or download one of the DG services makes a temporary copy of the file in the Apache container’s /tmp directory. Locally, and in staging I’ve debugged the code that is responsible for removing the temporary file once the operation is complete. Running locally or in staging the process does its job, the temporary files get deleted soon after creation, but this never happens in production. ...
301 Redirect in Digital.Grinnell 3 min read Apr 14, 2021
A colleague and I were recently sifting through the Digital.Grinnell logs and came across some recurring 404, “page not found”, status messages. 404’s are not uncommon in DG, but these were particularly troubling because they were requests of the form drupal/fedora/repository/grinnell:162 and drupal/fedora/repository/grinnell:86. That’s the old, and by that I mean VERY OLD, like Drupal v6 vintage from 2012 or 2013, form for an object address. All such references were to some of DG’s oldest digital objects, too. We tried to figure out where such old address references might be coming from, but we struck out. ...
Debugging ISLE Local with PHPStorm 8 min read Mar 12, 2021 | Updated: Mar 17, 2021 08:39
For the past couple of years I’ve been working in Digital.Grinnell to remove as much “customization” as I can. The effort is coming along, but still, there’s a long way to go. Every now and then I come across a feature that we just can’t live without, and it’s in times like those that I turn to PHPStorm for development and testing. Unfortunately, I’ve been operating without PHPStorm in ISLE because I worried that configuring the PHPStorm debugger in a Docker environment would be a time-consuming, tall task. ...
Everything You Ever Wanted to Know About Digital.Grinnell Entities, but were Afraid to Ask 7 min read Feb 16, 2021 | Updated: Feb 17, 2021 15:12
Digital.Grinnell used to support and use “entities”, metadata-only objects that are referential in nature. Entities are best described in this Entities Solution Pack documentation. Quoting from that resource… This module allows you to add person, place, event, and organization entities to an Islandora repository. Entities are small, metadata-based objects. A number of forms and additional features are provided in this module for those building an institutional repository with Islandora. Much of the functionality for batch ingest and autocomplete (to use entities as authority objects) centres [sic] around the MADS forms provided with the module. ...
Book Ingest in Digital.Grinnell 3 min read Nov 30, 2020 | Updated: Feb 5, 2021 16:12
It’s high-time this was posted to my blog, but the canonical copy of this document can be found in smb://Storage/LIBRARY/mcfatem/DG-Book-Ingest-Workflow.md. Valid Book Datastream Structure I want to begin here by showing what I see as a “proper” working book datastream structure in Digital.Grinnell. The image below is a screen grab of the datastreams from the Grinnell College Yearbook 1961, DG object grinnell:23749: Figure 1 · Valid Book Datastreams Creating a Valid Book Structure One of the biggest problems I have encountered with ingest of books is uploading very large multi-page PDFs. ...
Git Submodule Tips 2 min read Jan 25, 2021 | Updated: Jan 27, 2021 12:10
I seem to have a never-ending struggle with git submodules. Today, I need to add some new features to one of my submodules in a non-ISLE project, but I’ve elected to post this here because this blog is relatively easy to search. I also feel fortunate to have found Mastering Git Submodules from Christophe Porteneuve. So, what I need to do now is update some submodule code, commit, and push that change back to its remote. I will also want to subsequentmly update a pair of projects that use the submodule so they are referencing the newest submodule code. ...
Debugging SSH Login Issues 3 min read May 6, 2020 | Updated: Jan 26, 2021 20:15
Lately my passwordless, SSH logins to all my servers have quit working, at least they seem to have stopped working from the only accessible “work” workstation that I have at the moment, MA7053. Since our enterprise malware mitigation agent, Traps, is blocking my access to my “real” workstation, MA8660, this has become more than just a nuisance. So here’s what I came up with as a process to try and determine exactly where the problems are… To Debug SSHD Issues with Key Logins From a terminal opened in the target (CentOS 7 in this example) server: ...