Published on Sunday 7, October 2018

I am looking to try something new on my site, adding a way to just provide quick updates. Possibly experimenting with it being my way to publish to social networks.

Test driven development in PhpStorm with auto-testing enabled

Published on Saturday 6, October 2018
When I work, I try to follow the principles of Test-Driven Development. I have found it to aid me in writing cleaner code, identifying odd coupling of components or crazy accidental dependencies between components. It also lets me write my API first by using mocks against interfaces I have defined. PhpStorm's auto-test functionality speeds up my test-driven development process.

Tracking changes in Migrate with dynamic row hashes

Published on Thursday 27, September 2018

When it comes to Drupal and external data, I use Migrate. A lot. Like a lot, lot, lot. Many times this data is being imported over CSV files that are pushed to a server at some defined interval. Usually, the data can be derived directly from the CSV file itself, other times a custom process plugin derives data from other information. Drupal's Migrate system has two steps to check if new data should be imported or skipped. First, you can tell the migration source to track changes for each row. Then, if you are tracking changes, it hashes each row of data to see if it has been changed.

Xdebug over the command line with DDEV

Published on Monday 24, September 2018

I moved over to DDEV for my local development stack back in February. One of my favorite things is the ease of using Xdebug. You can configure Xdebug to always be enabled, or turn it on and off as needed (my preferred method.) When you have Xdebug enabled, it also enables it for any PHP scripts executed over the command line. That means you can debug your Drush or Drupal Console scripts like a breeze!

This article is based on using Xdebug within PhpStorm, as it is my primary IDE.

Goodbye AdSense, hello CodeFund.

Published on Thursday 20, September 2018

For a long time, I have had Google AdSense on my website. It generated enough revenue that I could hit the minimum payout of $100 about once a year, covering my hosting costs. Then, a few months ago, I found CodeFund by Gitcoin. I still have Google Analytics on my website, but as a responsible web property owner, I wanted to reduce the exposure of my visitors to Google's ad network and various profiling and trackers.

Also, CodeFund actually servers better-targeted ads for my readers. AdSense wasn't that great. 

Filtering out invalid entity references in Drupal 8

Published on Friday 6, July 2018
Today I was working on a custom Drupal 8 form where I needed an option to purge existing entities and their references on a parent entity before running an import. It seemed pretty straightforward until I saw "ghost" values persisting on the parent entity's inline entity form. Here's my journey down the rabbit hole to fix broken entity reference values.

Teaching my son debugging through Code Master

Published on Tuesday 22, May 2018

My son received Code Masters for his birthday last year. The game states it is for 8 years and older, but we busted it out this year. It is a single player game which requires you to visualize and prepare logic into movements on the game board.

Looking back at my first Drupal events and talks

Published on Sunday 13, May 2018

I have been spending the month of May cleaning out my basement office. I have found a treasure trove of old papers and random things bringing up memories and other thoughts. Just like my last blog post on an organization's values and the culture it creates. This time I found two legal pads which had my notes and planning for my first Drupal Meetup talk and first came session.

Subscribe to Blog