development
"First" based approaches need to die
Off the top of my head, I can name several "first"-based approaches. Do any of these ring a bell? Mobile first, content first, API first, user first, design first, experience first, modeling first, security first. For far too long, experts in these various realms have caught the attention of communities by coining these terms. They speak to the vulnerable: people who have ultimately been burned by not applying the best practices of whatever is being sold. But, that is an altogether different problem than what is ultimately being sold. What is being sold is the need to put something first. This
Just Another Varnish and Drupal 8 Blog Post
Since both core caching continues to evolve in Drupal 8 and contrib modules are maturing, I wanted to capture my steps for configuring Varnish 4 to properly work with Drupal 8. Set up the VCLFirst, I am NOT a systems administrator. I rely heavily on the expertise of others in the community to steer my efforts. I set up Varnish to serve up content from the Drupal site, hoping that the VCL configuration I found from Jeff Geerling would do the trick. (Reference: https://raw.githubusercontent.com/geerlingguy/drupal-vm/master/provisio…). Under your acl purge IP settings
Lessons Learned: The "Why" and "How" of Drupal Contributions
WhyI am ashamed to admit, for the longest time I used Drupal (heck, even complained about it) but contributed absolutely nothing back. It occurred to me that, not only did I learn technical and marketable skills thanks to Drupal, my Drupal experience directly corresponded to opportunities that supported my livelihood and viability for me and my family. And, all of this occurred without one line of code from me contributed back. A long while back, I decided to make an effort to solve a core issue. At that point, I had stronger SVN experience than Git. I had approximately eight years of
Balancing Theory and Practice
When you are building a tool, how do you measure the success of your efforts? There are data driven approaches around adoption, like number of times your tool has been downloaded or installed. Similarly, success could be defined as how effectively you solved the problem. This could be measured by the number of issues filed, the (hopefully) lack of vulnerabilities, or the number of feature requests created. But, in any measure, success is actually defined by other people. And, as an engineer, it's such a difficult task to put yourself in their shoes. How do you deal with that? Theory People are
Setting up your system for Drupal coding standards
As a bit of background, my main objective is to integrate Drupal coding standards into PHPStorm. I would imagine similar steps can be taken with other IDEs. I'm mainly writing this blog post to remind myself of these steps if/when I need to do this in the future. But, it occurred to me others might benefit from this as well. DependenciesComposer is the lone dependency. And, bear in mind, the instructions are for PHPStorm. Installing tools PHPCS is the defacto tool used to do code sniffing. And, Drupal has built in PHPCS libraries with it's Coder tool. composer global require "squizlabs/php
The Technical Lift of Drupal 8
Drupal 8 has been widely praised for improving the developer experience (DX). The "best of breed" adoption of tools (see: Symfony, Guzzle, PHPUnit, Composer, etc) clearly positions Drupal to mature and evolve beyond that which one community is able to do alone. But, there are many different considerations of DX that need explored. And, what lift is required for the community to grasp this new version? And, what is the impact? DX ConsiderationsProbably the number one thing that is praised with Drupal 8 is the technical modernization. Drupal is already challenging to learn effectively. But, if
Theming Drupal 8 Field Collections
I'm a big fan of Field Collections. It provides a high level of flexibility in setting up an auxiliary (and potentially shared) data structure that can associate with another entity. As such, it's a highly customizable way to do relational data in Drupal. This shouldn't be confused with Inline Entity Form which helps embed an entity within another entity (and is also an amazing project). One of the major challenges is around the fact that the Field Collection entity is decoupled from the entity in which it is hosted. This complicates practically everything from rendering, Views, and much more
A slideshow in Drupal 8
I thought I'd play around with creating this feature in Drupal 8. Here's the step-by-step run down. This is assumed your logged in with an administrative user. 1. "Slideshow Item" data structureCreate a slideshow item content type with any structure you desire. In my case, I added an image, a title, a description, and a link. This was all done by core provided field types.Manage > Structure > Content TypesAdd Content TypeFill out the form for slideshow items and SaveEnter the fields you desire for the data structure 2. Slide orderingI considered adding a weight as a numeric field. However, I
Site Updates in Drupal
Site updates in Drupal are one of the most critical, proactive things needed to eliminate vulnerabilities on your site. While the open source community strives to make these updates smooth, there are no guarantees there won't be issues for your specific site based on how you've extended your Drupal instance. This is because each site may have it's own custom code, it may have it's own combination of contributed modules with unique interactions, and it may have it's own visual theme. The key point is that it's not a safe assumption that site updates meet all use cases. Most module maintainers
Common DrupalVM Use
I long struggled with how to effectively do local development in Drupal. Few would argue the merits of doing local development over working directly on a production system. While the problem seems straightforward, nothing seemed to work quite right. It took me quite a while to land on DrupalVM. I'd like to explain how I landed here and some of the ways I use/configure DrupalVM to support my needs. RequirementsThis whole experiment made me think about what criteria I was evaluating these against...MOST IMPORTANT - I really want my solution to JUST WORK with as little set up as possible. Most