Skip to main content
New book · out now

Understanding Drupal: A Complete Guide to Caching Layers

A deep, practical tour through every caching layer in Drupal — from the render cache to chained fast backends.

Get it on LeanPub
Understanding Drupal: A Complete Guide to Caching Layers — book cover
Recent writing RSS feed →
Jan 31, 2018

Running Behat tests from CircleCI to a Platform.sh environment

In client projects, I push for as much testing as possible. In Drupal 8 we finally have PHPUnit, which makes life grand and simpler. We use Kernel tests to run through some basic integration tests using a minimally bootstrapped database. However, we need Behat to cover behavior and functional testing on an existing site for speed and sanity reasons.
#drupal  #platformsh  #circleci  #ci  #behat
Jan 23, 2018

Soonish: A humorous and insightful look to emerging technologies

SOONISH highlights ten emerging technologies that can make our life awesome, or appear awesome and ruin everything. The book ranges from wrangling asteroids to mine like space cowboys all the way to being able to plug your brain into The Cloud™ so we can share emotional feels and stuff. 

#book
Jan 20, 2018

Drupal, Coffee, Burgers - A small world afterall

This year I joined a coffee exchange for some members of the Drupal community. I had known there was one floating around, but finally got signed up. Over the past two years, I have gotten more and more into coffee - being a coffee snob about roasts and learning brewing techniques. Last week we were paired up. And sent out some roasts.
#coffee  #drupal
Jan 17, 2018

Attributing RSS traffic on your Drupal site using UTM

It seems like RSS is not quite as a buzz as it once was, years ago. There are reasons for that, but I partly believe it is because more services mask direct RSS feed subscriptions in larger aggregate tools. This change also makes it more interesting to get analytics about where that traffic is coming from, and what feed. When I migrated my site to Drupal 8, I decided to take an adventure on adding UTM parameters to my RSS feeds.
#drupal  #rss  #analytics
Jan 09, 2018

My first day with React.js

On New Years Day I sat down over ReactJS and decided to see what all the commotion was about. I primarily work on the backend and have dabbled lightly with AngularJS. Generally, my JavaScript work just falls to basic DOM manipulation using vanilla JS or jQuery. Nothing fancy, no components. ReactJS is fun.

#reactjs  #javascript  #drupal
Jan 05, 2018

Noindex WTF

On a client project, we wanted to prevent search engines from accessing pages on the site. It needed to be directly linked to from some various sources, public, but not queryable. So we did the reasonable thing. We modified our robots.txt and added our metatags. Unfortunately, this didn't seem to work as we would expect and pages still showed up in Google searches.
#drupal  #google  #seo
Jan 02, 2018

Goodbye 2017, Hi 2018

I spent the last 8 days of 2017 not touching my computer. Except for one night, after a few old fashions in, I decided to upgrade my MacBook to High Sierra "for the hell of it." Then New Years came, and we are riding into 2018. I'm going to also try to focus more on blogging. This was my goal for the end of 2017, but I did not stick to it.

#drupal  #reactjs
Dec 02, 2017

MigrationWTF: Specified key was too long; max key length is 3072 bytes

I recently hit a curveball with a custom migration to import location data into Drupal. I am helping a family friend merge their bespoke application into Drupal. Part of the application involves managing Locations. Locations have a parent location, so I used taxonomy terms to harness the relationship capabilities. Importing levels one, two, three, and four worked great! Then, all the sudden, when I began to import levels five and six I ran into an error: Specified key was too long; max key length is 3072 bytes
#drupal  #migrate
Oct 28, 2017

Using JSON API to query your Search API indexes

The JSON API module is becoming wildly popular for in Drupal 8 as an out of the box way to provide an API server. Why? Because it implements the {json:api} specification. It’s still a RESTful interface, but the specification just helps bring an open standard for how data should be represented and requests should be constructed. The JSON API module exposes collection routes, which allows retrieving multiple resources in a single request.
#drupal  #jsonapi  #search api
Oct 23, 2017

ContribKanban.com: What's next

Back in 2015, I created ContribKanban.com as a tool to experiment with AngularJS and also have a better tool to identify issues to sprint on at my previous employer before Commerce Guys. At the Global Sprint Weekend in Chicago, I received a lot of feedback from YesCT and also ended up open sourcing the project.

#drupal  #contribkanban