Kevin's Blog

All blog entries reflect the opinions of the author and have not been expressly endorsed by the Ivan Allen College of Liberal Arts or the Georgia Institute of Technology.

Broken Link Checking in the Modern Age

Submitted by Kevin on

We all know and dread that inevitable website management task: going through the site and checking for broken links. It's a two-part process: identifying the ones that are broken, then actually fixing them. As a technical developer, I've mainly been focused on identifying broken links, but I do fix them sometimes, when it's obvious enough what needs to be done.  Our campus has had a lot of sites rebuilt going from Drupal 7 to Drupal 9, so it's often just finding the new URL for the old page and making the substitution.

Over the years, I've done what I'm sure many of you have done: gone through a site page by page, checking each link by hand. It's a tedious process, but there's never been a lot of good tools available to streamline the process. Fortunately, I'm pretty good with repetitive tasks and know how to find little shortcuts to speed them up as much as possible, but I'd still prefer to just avoid repetitive tasks altogether.

Rebuilding the College Website: A Journey of Discovery

Submitted by Kevin on

When I came to the Ivan Allen College of Liberal Arts in late 2014, it soon became apparent that one very large project loomed in the semi-distant future:  the migration of the college's primary website from a proprietary content management system to Drupal.  Little did I know that we would not be able to start that journey until five years had passed, and that in the interim I would go through rebuilding all of our school websites twice (once in Drupal 7, and again in Drupal 8 a couple years later).  In the end, those five years of experience prepared me for the "big one", but it still proved to be a year-long project, completed amidst the Covid-19 pandemic no less.

Drupal Media Library as a Photo Album

Submitted by Kevin on

With the release of Drupal 8.7, the built-in Media Library module has become robust enough that it's possible to build some interesting components with it now.  The following gives some semi-technical details for how to configure your own photo album system that takes advantage of the Media Library to handle image uploads and automatic resizing (no more 5 MB files being sent to the browser only to be squished down to 250px X 250px on the screen).

The process is still not super simple and does require at least a little knowledge of doing custom CSS for Drupal.  However, I can imagine someone in the not too distant future creating a third party module to do a lot of this configuration for you, so that anyone can have highly functional photo albums without having to do any under-the-hood coding at all.

Creating a Photo Album System

Step One: Create a Media Type

  1. Under Structure -> Media types, select Add media type

  2. Give your type a useful Name and Description

  3. Select "Image" for Media source

Emergency Alert Infrastucture

Submitted by Kevin on

In today's blog post, I will dissect the emergency alerts system I built for my college.  Details are somewhat generic for security reasons, but this should give a clear idea of the infrastructure.

Any emergency alert system is really yet another collection of clients and a server to broadcast messages out.  The key is trying to make the system robust and reliant on a minimum of technologies and connections, so that it stands a decent chance of actually working when it's needed.

Client Architecture

Since all of our major websites run our own implementation of the official Georgia Tech web theme, it seemed most logical to integrate an alert feature into that theme module.  I integrated at the core theme level, allowing the alerts to work with any of our theme implementations (Drupal, WordPress, Omeka, PHP Application).

Hello, Layout Builder!

Submitted by Kevin on

In case you've been hiding under a rock for the last year (and I wouldn't blame you if you were), the hot new component being bundled with Drupal 8 is a built-in layout system called "Layout Builder".  For those who've always wanted magazine-like layouts without the overhead of a heavy third-party solution like Panels, this could be your dream come true.

If you've followed my blog and/or work in the past, you'll know that I've been a big proponent of Paragraphs, and I built out the Ivan Allen College of Liberal Arts' Drupal 8 infrastructure on Paragraphs.  That was not at all a bad decision at the time - I did start that work nearly five years ago in Drupal 7 (before Drupal 8 was even released) and Layout Builder itself did not become stable until late 2019.

With everyone talking about how cool Layout Builder is, I finally sat down at the start of this year and began trying to learn how it worked, so I could see how readily I could port over some of my existing Paragraphs based layouts.  I'd put a lot of time and effort into those layouts, and I really hoped I would not have to start over from scratch.