Back in the saddle again - at DrupalCon Nashville

Return to action

Those of you with an interest in Drupal migration may have noticed my absence in the last several months. A confluence of things led me to take a break from the Drupal community: a bout of physical exhaustion (initially diagnosed as Lyme disease, and then ¯\_(ツ)_/¯); professional exhaustion managing the D8 migration core initiative and maintaining a few contrib modules on top of paid contracts; and emotional exhaustion from the community drama of early last year. I was, frankly, depressed - whether it was more a product of the exhaustion or an underlying contributor to the exhaustion (actually, probably both in a feedback loop), I needed to deal with it. Fortunately, my contract work had been going well enough that I could afford to take a sabbatical for a while (although perhaps not for quite as long as I did😬).

Pro tip: engaging with the real world helps a lot. In my case, my wife and I had moved to Southern Illinois, where we didn’t know anyone, four years ago. While I haven’t exactly been housebound - we attend many local events, eat out at the local restaurants, hike in the Shawnee National Forest, etc. - I wasn’t really engaged with the local community. In the last several months, however, I’ve volunteered (and now become a board member) at the Liberty Theater - making popcorn and selling concessions at many events, as well as building them a new website (to be launched soon - on WordPress, sorry Drupal folks!) and proposing and running their first GoFundMe campaign. I’ve also been playing guitar and bass in weekly jam sessions at our favorite brewpub, and I took the lead in rebooting the series when the original organizer took a sabbatical himself. I’m feeling much better now - it’s good to be back.

What next?

Number one - I’m open for contracts again, please let me know if you have some migration work that needs to be done! Drupal shops, I’m happy to subcontract and let you focus on design and site-building while I get your clients’ data moved over into their new site.

Contribution-wise, I’m keeping my eyes on the migration-related issue queues and helping out a bit where I can, but I’m not going to take on nearly as much as I had before. I’ll probably budget, say, one half-day a week for this for the time being.

I had a couple of overly-ambitious, everything-but-the-kitchen-sink blog posts covering various migration techniques in the works when I stepped aside - I’ll try to extract some of the best bits into smaller and more targeted posts.

Finally, I wasn’t completely idle technically during my sabbatical - I took the time to play around with a few different ideas (some migration-related, some not). I’m pursuing one avenue in particular - more on that soon!

DrupalCon Nashville

I procrastinated on making a final decision about attending DrupalCon this year. Just at the point I finally committed to going, I got a lucky break when I saw QED42 tweet they had a spare ticket and snatched it up (thanks again, for the ticket and for the beautiful shirt!).

As always, it was good to catch up face-to-face with so many Drupalists - especially this year, when I haven’t been active online. Among many others, I had some quality time with Dries, which I haven’t had since I was at Acquia, talking about some of my tech efforts above. And borrowing his hat:

With camps and cons in recent years, while the tech sessions are most enticing on first glance, they generally cover things I can learn best by digging in and doing back in my home office. So, I tend to attend more “soft” sessions - those focusing on community and self-care. This time, that included (among others) You Matter More Than The Cause (Jeff Eaton) and Growing Our Tribes: Creating Sustainable Micro-Communities in Drupal and how you can help (Shannon Vettes). Eaton’s talk in particular spoke to me (I could have used it a year earlier!) - the expectations that volunteers of a valued community have of each other, and of themselves, can chew them up. I felt badly about “abandoning” the migration initiative as we approached core stability, but I had to step away. Eaton says:

If a cause can’t live without you suffering for it, then that cause may just deserve to die.

Fortunately, the migration initiative did not deserve to die - heddn and quietone and many other contributors got the migrate module to stability, and are well on the way to adding migrate_drupal to the stable modules list. Yay!

Main takeaway: “You are not consumable fuel.”

I did make it to a couple tech sessions, though, notably Entities 301 - Entities Elsewhere (Ron Northcutt). This was about leveraging swapping storage backends to represent external data as native Drupal entities. This was of particular interest to me, since while we normally think of the Drupal migration system as a means of importing external data into the Drupal database, it should be recognized that the architecture permits us to design destination plugins which write to an external source - another database, or PUT operations on a RESTful API (no, I haven’t yet had occasion to write such a destination plugin). But, if you were to define an entity type using external storage, you wouldn’t have to do anything special to use migration to populate these entities - just use the general purpose entity plugin:

  plugin: entity:my_remote_entity_type 

One more thing…

Thinking about online engagement, and also about security (like the occasional emergence of -geddons that take advantage of potentially any open form submissions), I had an idea - why not use Twitter as my commenting system? I.e., embed the tweet promoting a post at the bottom of that post, and people can comment by replying to the tweet.


  1. I can now disable account creation and comment creation on my site (I’m leaving the comment module in place here for the sake of past comments), improving my site security.
  2. Commenters don’t have to worry about my site’s security if they’re only engaging with Twitter.
  3. Vetting user accounts and reviewing comments for spam are now Twitter’s problems, not mine.
  4. More visibility for commenters - their responses to my blog post will be seen by a lot more people on their Twitter feed (more of whom are predisposed to hear what they want to say) than they would on my blog site.
  5. More visibility for me - other people’s responses on Twitter will help bring attention to my blog posts.
  6. In practice, these days when you tweet a post you’ve made, you’re likely to get more discussion about it on Twitter than you do on your site anyway. Why split the threads?


  1. This would exclude comments by people without a Twitter account. I don’t think this will have a big impact on my lightly-visited blog, but this would be more of an issue with higher-traffic sites trying to be all-inclusive.
  2. Replies would not be visible on the blog page. I don’t think this is a big deal, at least for my site. And, there could be a module for that!

For now, I’m doing this manually with a text field below the body using the ckeditor_media_embed module - publish the blog post, publish the tweet, add the tweet to the blog post. If this approach to comments seems to work well in practice, it would be nice to have a module that adds a field to the node form for the text you want in the tweet and at publish time creates the tweet and links to it from the post automatically, virtually eliminating the window where the two aren’t in sync.

Thoughts? Reply to the tweet below!

Use the Twitter thread below to comment on this post: