Migrating 20,000 images, audio clips, and video clips into Drupal 8

tl;dr : If you want to skip the 'how-to' part and explanation, check out the pix_migrate example Drupal 8 migration module on GitHub.

For a couple years, I wanted to work on my first personal site migration into Drupal 8, for the last Drupal 6 site I had running on my servers. I've run a family photo/audio/video sharing website since 2009, and through the years it has accumulated hundreds of galleries, and over 20,

Family Photos and Events website display - desktop and mobile

Review: Elecrow HDMI 5" 800x480 TFT Display with XPT2046 Touch Controller

Elecrow 5 inch HDMI display with Raspbian Pixel on Raspberry Pi 3 model B

I recently found a discount code through SlickDeals for $10 off the Elecrow 5" HDMI Touchscreen display for the Raspberry Pi . Since the Raspberry Pi was introduced, I've wanted to try out one of these mini screens (touchscreen or no), but they've always been prohibitively expensive (usually $60+).

This screen hit the right price (even regular price is $40, which is near my 'okay for experimentation' range), and I picked it up, not


Drupal VM supports MySQL, MariaDB, and PostgreSQL

PostgreSQL elephant transparent PNG

The PostgreSQL logo . Same family as PHP's mascot !

For the past few years, I've been intending to kick the tires of PostgreSQL, an open source RDBMS (Relational DataBase Management System) that's often used in place of MySQL, MariaDB, Oracle, MS SQL, or other SQL-compliant servers. Drupal 7 worked with PostgreSQL, but official support was a bit lacking. For Drupal 8, daily automated test builds are finally being run on MySQL, SQLite, and PostgreSQL, so many


How to get your server's emails through Gmail's spam filter with Exim

There's one thing that most first-time server administrators have in common: they have to either learn a lot about how email and spam filters work, or they offload email delivery entirely to a third party.

The latter option is often the best option, since successful email delivery is a crazy complicated endeavor. I know, because I've worked on two separate medium-volume email delivery systems in the past (over 1,000,000 emails/month, to hundreds of thousands


Require a minimum Ansible version in your Playbook

It's helpful to be able to enforce a minimum required Ansible version in Ansible playbooks. Ansible Roles have long been able to specify a minimum Ansible version—but only for Ansible Galaxy and ansible-galaxy -related dependency management.

I've found more and more that users who installed Ansible further in the past (in the 1.7.x or 1.8.x era) are now using some of my newer projects that require Ansible 2.0 (there are so many nice new


Interview with Cal Evans on Voices of the elePHPant

A few months ago, when I spoke at php[tek] in St. Louis, I had the honor of being interviewed by Cal Evans on the Voices of the elePHPant podcast ! In the interview, we discussed Drupal 8, Acquia, the Raspberry Pi Dramble , and the PHP community.

Check out the interview: Interview with Jeff Geerling - Voices of the elePHPant .

There's also a video recording of the podcast, embedded below:


Remapping the Caps Lock key to Escape in macOS Sierra

Update : As of macOS Sierra 10.12.1, the Caps Lock -> Escape remapping can be done natively in the Keyboard System Preferences pane! To remap without any 3rd party software, do the following:

  1. Open System Preferences and click on 'Keyboard'
  2. Click on 'Modifier Keys...'
  3. For 'Caps Lock (⇪) Key', choose '⎋ Escape'
  4. Click 'OK'

( See screenshot for reference ).

For the past three years, I


Server Check.in turns 4 years old

I started Server Check.in , a simple website and server uptime monitoring service, almost four years ago. I built it when I was in the hospital and recovering from mono (symptoms were worse because of one of the Crohn's-related drugs I was taking), and it's been a very slowly-but-steadily growing service since.

Server Check.in logo

I wrote a four-year retrospective post on the service, and published it on the Server Check.in blog: Four years running Server Check.in


Change the displayed username in Drupal 8 ala Realname

Recovering from surgery finally gave me time to update my last D6 site—a 7 year old private photo and media sharing site with nearly 10,000 nodes and 20+ GB of content—to Drupal 8. Drupal 8 has become a lot more mature lately, to the point where I'm comfortable building a site and not having the foundation rot out from beneath as large ecosystem shifts have mostly settled down.

One thing that I thought would have the simplest implementation actually


My Favorite Aunt

You don’t choose your family. They are God’s gift to you, as you are to them. ( Desmond Tutu )

This past week, while I was in the middle of recovering from surgery, and the day after my family celebrated my daughter's 2nd birthday, I learned of the death of my Aunt Mary, the eldest of my Mom's sisters.

Maryanne Newman / Hafner

Aunt Mary and her family have hosted almost every Easter, Thanksgiving, and Christmas family gathering at their house