Happy New Year! 2017 was a busy and eventful year – both professionally and personally. In many ways, 2017 was the most challenging and best year to date. I'm excited about 2018 and optimistic about what it has in store.

I wanted to thank you all for reading my blog in 2017. Entering 2018, I plan on setting a New Years' resolution of using social media less, and blogging more.

I've been blogging for over 12 years and have been using social media for about 10. Both are black holes for content, however, I feel that blog content at least has a chance to "survive". My blog posts have made a bigger impact than my social media posts. It's not just me. I've seen many bloggers get sucked into social media. Many of them stopped blogging altogether, and they've lost their impact.

Blogging also helps me clarify my thoughts and deepen my thinking. The consistent practice of blogging has helped me grow. Social media doesn't encourage the same kind of deep thinking or thoughtfulness, and as a result, hasn't provided me the same personal growth.

This too, seems to be a universal phenomena. President Donald Trump has infamously relied on Twitter to communicate everything from policy decisions to mockery of opponents. He went so far to call the nuclear-armed Kim Jong Un short and fat on Twitter. This level of recklessness would be harder to accomplish in a long-form blog post on Whitehouse.gov.

Last but not least, the large, centralized social media companies don't sit well with me anymore. It's undeniable that these companies have provided a forum for people to connect and share information, and in many ways they've had a huge impact on human rights and civil liberties. However convenient or impactful they may be, their scale, influence and lack of transparency is of growing concern. In the summer of 2015, I predicted that their data privacy issues and lack of transparency were going to come to a head in the next five to ten years. It didn't take that long – Facebook's unsavory involvement in shaping public opinion started to turn the tide against them in 2017.

We can't have a handful of large platform companies control what people read. When too few organizations control the media and flow of information, we must be concerned. If we allow that to happen, we risk losing what has made the web the most important network in history – a decentralized platform that enables anyone to have a voice.

The web we build today will be the foundation for generations to come and it needs to remain decentralized. It's true that a decentralized web is harder to build and more difficult to use. Frankly, it will be difficult for the open web to win without better data portability, more regulatory oversight, better integrations, and more innovation and collaboration.

At the end of the day, I want to be part of the change that I wish to see in the world. To support this vision, I want to build my audience here, on my blog, on the edge of the internet, rather than on centralized platforms that are outside of my control. So going into 2018, expect me to blog more, and use social media less.

Acquia.com in December 2017

At Acquia, our mission is to deliver "the universal platform for the greatest digital experiences" and we want to lead by example. This year, Acquia's marketing team has been working hard to redesign Acquia.com. We launched the new Acquia.com last week. The new site is not only intuitive and engaging, but "practices what we preach", so to speak.

Over the course of our first decade, Acquia's website has seen a few iterations:

A compilation of the different Acquia.com designs throughout Acquia's first decade

The new site places a greater emphasis on taking advantage of our own products. We wanted to show (not tell) the power of the Acquia Platform. For example, Acquia Lift delivers visitors personalized content throughout the site. It was also important to take advantage of Acquia's own resources and partner ecosystem. We worked in partnership with digital agency, HUGE, to create the new design and navigation.

An animation of Acquia.com before and after the December 2017 redesign

In the spirit of sharing, the marketing team documented their challenges and insights along the way, and reported on everything from content migration to agile development.

The new site represents a bolder and more innovative Acquia, aligned with the evolution of our product strategy. The launch of our new site is a great way to round out a busy and transformative 2017. I'm also very happy to finally see Acquia.com on Drupal 8! Congratulations to every Acquian who helped make this project a success. Check out it out at https://www.acquia.com!

Last night I was working on the album functionality for this website. CSS is not my strong suit, so I wanted to get some help from a CSS linter. A CSS lint tool parses your CSS code and flags signs of inefficiency, stylistic inconsistencies, and patterns that may be erroneous.

I tried Stylelint, an open source CSS linter written in JavaScript that is maintained as an npm package. It was quick and easy to install on my local development environment:

$ npm install -g stylelint stylelint-config-standard stylelint-no-browser-hacks

The -g attribute instructs npm to install the packages globally, the stylelint-config-standard is a standard configuration file (more about that in a second), and the stylelint-no-browser-hacks is an optional Stylelint plugin.

Stylelint has over 150 rules to catch invalid CSS syntax, duplicates, etc. What is interesting about Stylelint is that it is completely unopinionated; all the rules are disabled by default. Configuring all 150+ rules would be very time-consuming. Fortunately you can use the example stylelint-config-standard configuration file as a starting point. This configuration file is maintained as a separate npm package. Instead of having to configure all 150+ rules, you can start with the stylelint-config-standard configuration file and overwrite the standard configuration with your own configuration file. In my case, I created a configuration file called stylelint.js in my Drupal directory.

"use strict"

module.exports = {
  "extends": "stylelint-config-standard",
  "plugins": [
    "stylelint-no-browser-hacks/lib"
  ],
  "rules": {
    "block-closing-brace-newline-after": "always",
    "color-no-invalid-hex": true,
    "indentation": 2,
    "property-no-unknown": true,
    "plugin/no-browser-hacks": [true, {
      "browsers": [
        "last 2 versions",
        "ie >=8"
      ]
    }],
    "max-empty-lines": 1,
    "value-keyword-case": "lower",
    "at-rule-empty-line-before": null,
    "rule-empty-line-before": null,
  },
}

As you can see, the configuration file is a JSON file. I've extended stylelint-config-standard and overwrote the indentation rule to be 2 spaces instead of tabs, for example.

To check your CSS file, you can run Stylelint from the command line:

$ stylelint --config stylelint.js --config-basedir /usr/local/lib/node_modules/ css/album.css

In my case it found a couple of problems that were easy to fix:

Stylelint album css

For fun, I googled "Stylelint Drupal" and found that Alex Pott has proposed adding a Stylelint configuration file to Drupal core. Seems useful to me!

Join more than 5,000 others and subscribe to my blog by e-mail:

Acquia gift drive

Yesterday in Acquia's Boston headquarters, there were hundreds of presents covering the lobby. These gifts were donated by over 130 Acquians on behalf of the Department of Children and Family Services' Wonderfund. For years, Acquia has participated in this holiday gift drive to support children that otherwise wouldn't receive presents this season. This December, we were able to collect gifts for 200 children throughout Massachusetts.

One of Acquia's founding values is to "Give back more". Inspired by our Open Source roots, contributing back to our communities is ingrained into the way we work. Acquia's annual gift drive is one of the most meaningful examples of giving back. It's incredibly heartwarming to see the effort and passion that goes into making the gift drive possible. Year after year, Acquia's gift drive remains one of my favorite office moments. It makes me incredibly proud to be an Acquian. Happy Holidays!

Acquia gift drive

Fingers on keyboard

We have ambitious goals for Drupal 8, including new core features such as Workspaces (content staging) and Layout Builder (drag-and-drop blocks), completing efforts such as the Migration path and Media in core, automated upgrades, and adoption of a JavaScript framework.

I met with several of the coordinators behind these initiatives. Across the board, they identified the need for faster feedback from Core Committers, citing that a lack of Committer time was often a barrier to the initiative's progress.

We have worked hard to scale the Core Committer Team. When Drupal 8 began, it was just catch and myself. Over time, we added additional Core Committers, and the team is now up to 13 members. We also added the concept of Maintainer roles to create more specialization and focus, which has increased our velocity as well.

I recently challenged the Core Committer Team and asked them what it would take to double their efficiency (and improve the velocity of all other core contributors and core initiatives). The answer was often straightforward; more time in the day to focus on reviewing and committing patches.

Most don't have funding for their work as Core Committers. It's something they take on part-time or as volunteers, and it often involves having to make trade-offs regarding paying work or family.

Of the 13 members of the Core Committer Team, three people noted that funding could make a big difference in their ability to contribute to Drupal 8, and could therefore help them empower others:

  • Lauri 'lauriii' Eskola, Front-end Framework Manager — Lauri is deeply involved with both the Out-of-the-Box Experience and the JavaScript Framework initiatives. In his role as front-end framework manager, he also reviews and unblocks patches that touch CSS/JS/HTML, which is key to many of the user-facing features in Drupal 8.5's roadmap.
  • Francesco 'plach' Placella, Framework Manager — Francesco has extensive experience in the Entity API and multilingual initiatives, making him an ideal reviewer for initiatives that touch lots of moving parts such as API-First and Workflow. Francesco was also a regular go-to for the Drupal 8 Accelerate program due to his ability to dig in on almost any problem.
  • Roy 'yoroy' Scholten, Product Manager — Roy has been involved in UX and Design for Drupal since the Drupal 5 days. Roy's insights into usability best practices and support and mentoring for developers is invaluable on the core team. He would love to spend more time doing those things, ideally supported by a multitude of companies each contributing a little, rather than just one.

Funding a Core Committer is one of the most high-impact ways you can contribute to Drupal. If you're interested in funding one or more of these amazing contributors, please contact me and I'll get you in touch with them.

Note that there is also ongoing discussion in Drupal.org's issue queue about how to expose funding opportunities for all contributors on Drupal.org.