Technical

Grafana line showing load dropping to normal

Rate Limiting an aggressive bot in Nginx

High load isn't necessarily an emergency, but it may be a heads-up before a site noticeably…

Picture of someone moving blocks from one pile to another

Deploying blocks and content to other site environments

If you have a current Drupal site (built in Drupal 8 or later) you no longer need to entirely…

Theming - Halloween Pumpkins

A new approach to Drupal theming, just in time for Drupal 10

Over the past few months, I've fielded a lot of minor styling requests, and as I work through…

Laptop with coffee and pills

Aggregate fields in Drupal 8 views

Views module has long been the killer feature of Drupal, making it easy for a site builder or…

Flat road

Using modern Javascript for quick utility scripts - bulk search and replace

With as much Javascript work as we're doing these days, I'm starting to do more and more quick…

D8 Development: Console, Menus, and Entity load/save basics

I learn best when I have a problem to solve, and with one of our D8 upgrade projects, we had a…

Importing foreign key references with Migrate

One of our clients wanted to regularly update a list of dealers along with the parts carried at…

Performance problem: N! database calls

Kicking off some posts about various performance challenges we've fixed.

N Factorial

[…

I've got a theory: The Scientific Method applied to web site performance

What can you do about this page being so slow? That's a question we've been asked by half a…

Using a File Field with imported files in Drupal: Drush to the rescue!

We regularly import content from old web sites and systems. One recent client had thousands of…