This continues a mini-series describing how I set up a Drupal development environment using Docker Desktop and the VS Code devcontainer functionality. The full code is available in my GitHub. This...
GitLab DevOps: Local Workflows
This continues a series setting up a GitLab DevOps pipeline through local virtual machine / container, GitLab, a dev server, a staging server, and a production server. This post assumes you already...
Drupal Docker: The Dockerfiles
This continues a mini-series describing how I set up a Drupal development environment using Docker Desktop and the VS Code devcontainer functionality. The full code is available in my GitHub. This...
Drupal: Sync Content
I have previously covered syncing configuration across Drupal. But configuration is not everything in the database. The other half of the picture is the content: nodes, custom blocks, menu items, f...
GitHub Pages: Mobile Authoring
I’ve recently switched from hosting these tech posts on a WordPress site running on a shared host I pay a small fee for, over to GitHub Pages for free. It’s a great system and might be all you need...
Microsoft 365: Email Suspected of Spam
What’s the error message A scenario I encountered recently was a user getting this error message: Your message couldn’t be delivered because you weren’t recognized as a valid sender. The most ...
WordPress vs Jekyll
I recently switched from running this blog off a WordPress site to running it off a GitHub Pages site built on a Jekyll theme. Here’s a few thoughts on the pro’s and con’s of each. Users WordPres...
GitHub Pages: Building a Site
I recently decided that I wanted to try out hosting this site on GitHub Pages instead of WordPress that I had been using for over a decade. The reason why is simple: it’s free as in cats and it’s e...
Tel Links
For many years there has been a standard for making links that open phone apps to dial a phone number. This is really great. Imagine you’re browsing a website for a pizza place and you want to star...
Power Apps: People Lookup
Background A while ago I started a post in the series on SharePoint site provisioning, unpacking some of the problems I’ve faced and overcome in building SharePoint site provisioning solutions. Ba...