Drupal

CU Boulder - Webcentral: Change My View: D8 isn't the best upgrade path for 1000 D7 EDU sites

Planet Drupal - 12 April 2018 - 12:31pm

Like many other Drupallers, I'm in Nashville this week. Unlike previous DrupalCons, I'm less excited about being here than previous year. While my team at the University of Colorado Boulder currently manages 1000 D7 sites, it looks increasingly less likely that we'll be upgrading to D8.

Angela “Herder of Cats” Byron recently tweeted...

OK, time for our semi-annual poll/group therapy session. ;)

What are the 5 top things you or your clients run into problems with on #Drupal 8?

— webcsillag (@webchick) March 9, 2018

The last time she tweeted this, we responded with a few specific issues we had at the time. After maintaining a handful of D8 sites in production for a few months and meeting with 20+ developers and designers from teams at all campuses in the University of Colorado system earlier this year, we now have a more comprehensive list to answer the question of why the University of Colorado Boulder isn't moving forward with updating the Express install profile to D8.

We've already written and presented about some of these, but my goal at DrupalCon is to find people who will convince me that we're wrong or point out what we're missing. I can't emphasize this enough that we really want to be proven wrong and pointed in the right direction about some of these so we can stop evaluating options other than D8:

  • When running 1000 sites, D8 requires much more CPU and memory resources to render the same HTML output as D7. Because D8's core can't be run from symlinks, it doesn't support atomic deployments or efficient opcode caching when running 1000 copies of the same codebase. This leaves traditional multisite or containers as options. Multisite's limitations are well known. Containers add complexity and require more resources that provide little benefit when running Drupal as a service.
  • D8 seems slower than D7 or other PHP alternatives. Everything from updating with Composer, menu routing, and editing pages. While this isn't as much of an issue for users browsing the sites since the output is cached and served by Varnish, the slow renders are very noticeable to editors and developers.
  • Install profile inheritance is still unstable. Despite 6 years of development, being included in popular D8 distributions like Lightning, and Dries blogging about it, it is unclear this core patch will ever be committed. Acquia drove the patch in a different direction for over a year trying to make a base profile's dependencies optional. When we suggested making the Umami demo a sub-profile of Standard, it became clear how few members of the core team knew anything about profile inheritance or supported updating core to support it.
  • Our experience with highly promoted D8 "successes" like Webform wasn’t great. The D7 version of Webform reports more than > 440K installs. The D8 version, ~32K reported installs. This isn't a criticism of @jrockowitz or the Webform code. He is doing amazing work, but we felt the lack of a larger base of developers contributing fixes and extending Webform when working with Webform and Views.
  • The lack of license compatibility with 2 of the 3 most popular licenses off the island (Apache-2.0 and GPL-3.0) is a dead end. This is related to @jrockowitz's repeated attempts to find away to give work away while earning a living developing for Drupal. Drupal's strict GPL policies now seem to stifle development vs. encouraging it when compared to the more balanced approach taken by projects like WordPress.
  • D8’s Layout Initiative isn’t a good match for how we currently manage Drupal as a service. Now that the dust has settled on 8.5.0, we'll post more on this soon.
  • We're finding fewer well-maintained contrib projects. While using contrib projects can be golden handcuffs that only get you 80% of a solution with options and assumptions you end up fighting against in the end, we've mastered the embrace and customized/extend/contribute back approach. We rely heavily on contrib and actively contribute back. We maintain or co-maintain projects used by more than 100K D7 sites. When we find fewer D8 contributions to meet even 80% or our needs, it makes less sense to develop our own solutions for Drupal than a leaner, faster framework.
  • The "let's throw everything in core" approach results in an increase in critical security releases for code we aren't using. This is an issue in environments with distributed development, systems, networking and security teams, where a security team is periodically scanning for known vulnerabilities with tools like Qualys, Arachni or Nessus. With something like sa-core-2018-001, these scans don't care that the Comments module is disabled or even deleted. They scan the code looking for anything less than Drupal 8.4.3 and report that the entire code base is a security issue. We can respond to the issue by explaining that it is mitigated by X, but that fact remains that more code in core will likely translate to more staff time applying security updates to 1000+ sites. Ideas like what @davidhernandez suggested package Drupal both framework (essential core) and product (core) aren't getting the same attention from the DA as demos and other improvements to attract non-technical users to Drupal. LTS support services offered for D6 aren't really enough since they aren't altering the code fingerprint that the security scans are looking for.

I wish moving from D7 to D8 was an obvious move for us. It would make my job much easier. After watching the normal stability requirements ignored to sneak Umami into 8.5 and realizing that the initiatives DA was promoting for core (automatic updates, project browser, telemetry and in site announcements from the DA) are NOT features we'd use in our service, it's becoming increasingly clear our needs no longer align with what is driving the priorities of the Drupal project. When I evaluate D8 through the Umami demo, it's clear that we aren't even the target audience for what the project wants to highlight to people evaluating it. When we evaluate a framework, product or service, part of what we evaluate is the cost to maintain. When fatal errors are acceptable in a demo after a core update, we question whether we'll be able to easily apply upgrades if the developers most familiar with this framework can't upgrade the demo?

The Express install profile we've developed and use at multiple campuses is the 5th most popular D7 distribution on Drupal.org.

It's not that the entire University of Colorado system is against D8 either. Both the University of Colorado Colorado Springs (UCCS) and Auraria Library are both using D8, but for very different use cases than the Web Express service we offer for free on the Boulder campus.

UCCS is moving from Ingeniux to D8. For those of you who aren’t familiar with Ingeniux, it is a XML/XLST static site generator with limited features for dynamic content.  UCCS initial D8 offering has similar limitations to Ingeniux, but they are leveraging Migrate to move sites from Ingeniux to Drupal very quickly.  They are also hosting their Drupal 8 sites themselves on the most advanced server architecture within the CU system which well set them up well to add new features in the future.

Auraria Library is another high profile D8 site.  This site has more features and functionality than the UCCS sites, but it also has a small development team supporting a small group of content editors and is hosted on Pantheon.

While D8 makes sense for both of these use case, neither of these groups had insights on how we could overcome what we think are D8's short comings for the ~1000 sites we manage for the University of Colorado Boulder.

While I'd prefer to continue maintaining D7 sites while developing new projects in D8, the lack of clarity from the DA around the EOL of D7 is forcing us to invest time in evaluating alternatives now. When I read that Symfony 4.1's router is now the fastest PHP router, I get both excited and terrified. I'm excited since, in some ways, this would prove everyone that pushed to get off the island and collaborate with the larger PHP community right. I'm terrified because I realize that Drupal going from Symfony 3 to Symfony 4 most likely means D8 to D9. If D9 means the end of support for D7 and quarterly justification for running software our security team views as insecure, we have to go all in on a direction other than D8 soon.

We've spent some time trying to answer the question, "if not Drupal, then what?" If we can't figure out how to make D8 work for us, I'll post more about what we found when evaluating alternatives to D8. This week, I'm focused on trying to make D8 work well when hosting Drupal as a Service in higher ed.

If you see me at DrupalCon, PLEASE change my view. I won't be hard to spot.

I've started a thread on r/drupal/ for everyone who's not at DrupalCon.

Developer Blog
Categories: Drupal

Acro Media: Drupal Commerce 2: How to Add a Shipping Method

Planet Drupal - 12 April 2018 - 7:45am

 

Drupal Commerce 2 shipping module let you quickly add and configure various shipping methods for your site. Out-of-the-box, you can easily set up basic shipping methods for flat-rate per-order or per-item shipping options. The plug-in based system allows for more advanced shipping integrations with suppliers for real-time rate calculation.

In this Acro Media Tech Talk video, we user our Urban Hipster Commerce 2 demo site to show you just how easy it is to create a simple flat-rate shipping fee for your eCommerce store. We set it up and then run through the checkout so that you can see exactly what your customers would see.

Its important to note that this video was recorded before the official 2.0 release of Drupal Commerce useing a beta release of the Commerce Shipping module. You may see some differences between this video and the current releases. The documentation is also evolving over time.

Urban Hipster Commerce 2 Demo site

This video was created using the Urban Hipster Commerce 2 demo site. We've built this site to show the adaptability of the Drupal 8, Commerce 2 platform. Most of what you see is out-of-the-box functionality combined with expert configuration and theming.

More from Acro Media Drupal modules in this demo

Categories: Drupal

Formazing

New Drupal Modules - 12 April 2018 - 6:04am

Formazing helps you to create easily custom forms and add it as fields into your content

Categories: Drupal

Dropsolid Purge

New Drupal Modules - 12 April 2018 - 5:12am

The Dropsolid Purger module enables you to invalidate caches in multiple varnish loadbalancers.

This module is a rework of the Acquia purge module to be usable on every environment. So the initial code should be credited to nielsvm

This module uses the Purge module

Categories: Drupal

Slaask for Drupal

New Drupal Modules - 12 April 2018 - 12:31am

The Slaask module integrates the Slaask chat JavaScript into your Drupal site.

Requirements

This module requires no other modules.

Installation

Clone the repo into the "modules" folder of your site.

git clone https://github.com/slaaskhq/drupal-slaask.git cd drupal-slaask

See here for further information.

Categories: Drupal

myDropWizard.com: Drupal 7 Long-Term Support ... for after official support ends!

Planet Drupal - 11 April 2018 - 7:24pm

You may already know that we've been providing Drupal 6 Long-Term Support (D6LTS) for over two years.

What we have been hearing over and over lately - especially at Drupalcon - is "what about Drupal 7?"

Typically, only two major versions of Drupal are supported at once: the latest version, and the previous one. Right now, that means Drupal 7 and Drupal 8.

We don't know when the community's support for Drupal 7 will end or if the community itself will do some kind of LTS. But we do know that community support will come to end at some point. While the details will depend on what the community does, we just wanted to let everyone know...

We intend to provide Long-Term Support for Drupal 7, in order to keep your site going long after the end of official support!

Read more to learn more about our plans for D7LTS...

Categories: Drupal

Multivalue Field Order

New Drupal Modules - 11 April 2018 - 10:58am

Summary

This module allows to set an order of items of multivalue fields, field collections or nested field collections. It works with integer, float, decimal, text, date fields, field collections and nested field collections.

Configuration

Getting to the field multiple value opens select box containing options to sort items of the field.

API

There are two hooks to implement for custom field:

Categories: Drupal

Google Optimize Hide Page

New Drupal Modules - 11 April 2018 - 9:01am

Adds the Google Optimize page-hiding snippet to pages.
See https://developers.google.com/optimize/#the_page-hiding_snippet_code for Google's documentation.

Categories: Drupal

Chapter Three: Presentation: A Drupal City

Planet Drupal - 11 April 2018 - 8:57am

I presented at DrupalCon Nashville about working with the City of San Francisco to make a better transaction experience for residents. Moving beyond a simple content site where we tell users how to do things, we are now developing a brand new city website in Drupal 8, where residents can actually do those things online. The presentation covers how to run an agile project of this scale in a government environment, what we did as a part of discovery, where we're going, and how our foray into design & development is progressing so far.

Here are the slides to digest. Don't hesitate to reach out if you have any questions!

Categories: Drupal

Simple Popup Views

New Drupal Modules - 11 April 2018 - 8:01am

Show views any fields in the popup.

Categories: Drupal

ComputerMinds.co.uk: Rebranding ComputerMinds - Part 1: Branding

Planet Drupal - 11 April 2018 - 7:35am

After seeing our logo alongside others in various places it was clear to us that we were starting to look outdated. The work we were doing was getting more and more advanced and our branding did not reflect this. We needed to rebrand.

We briefly stripped things right back and considered a company name change, as although it did represent what the company did when starting out, it didn’t completely represent what we do now. We quickly concluded that this was too big a change, it was important to keep the name for existing clients and also for the history of the company. This discussion did get me thinking, though, and although we weren’t changing the name, we could look toward representing the name differently. We often referred to the company as ‘CM’ and I was keen to explore using this more prominently.

One thing not so obvious that I wanted to consider was future proofing. Our current logo looked outdated, I wanted to avoid this happening to the new logo a few years down the line. It was important not to choose current styles that could easily date.

Although discussions and research revealed that the squares in our logo didn’t represent anything, we kinda liked them so I was happy to attempt to include them. This would also create a better transition from the old logo, as if I was to consider representing the company without the name fully displayed, including squares would mean it would be recognisable to existing clients.

Next up, we would need a new font, or two. Only one for the logo but I also wanted a second font for body text that could be used throughout the whole brand. Having had concerns from working with clients about the cost of using certain fonts, as these would be used throughout all official documentation these fonts had to be free to use.

What was really important to me when facing the rebrand was colours. I felt the old red was too aggressive and strangely even felt it was an outdated colour. Perhaps it was through looking at it for many years, either way it needed to change. I was very keen to introduce multiple colours that would not just be used in the logo, but spread throughout the website and other places. These colours needed to be softer, happier, current and accessible. I was also very keen to be exact even on somewhat less important colours like greys and blacks.

The last thing I needed to consider before starting was responsiveness. More and more over the years I’ve seen companies creating multiple logos that can be used in differing scenarios based on available space. Having had issues with our wide logo in the past I was keen to create 3 logos for this reason.

So, now I had a clear understanding of what I needed to create and of the deliverables we would have at the end of the process. Here’s a summary list of everything above, which I used as a reference when completing the next phase.

  1. Experiment using CM instead of ComputerMinds in logo.
  2. Future proof as best possible.
  3. Use squares in logo.
  4. Use free fonts; we need a heading and a body font.
  5. Create a palette of soft, happy, current, accessible colours
  6. Create logos for use at different sizes.

Now I could begin. It was important to create SVGs for scalability, so using Adobe Illustrator I started experimenting with squares, fonts and colours before settling on the final look. Rounded corners, 3D effects, crazy concepts were all experimented with but following feedback sessions from other ‘Minds I was happy with what we had.

 

I created three logos, each for use at different widths of available space and in different scenarios. The smallest did not display the company name as discussed earlier, I was excited to see it in use.

In addition to the logos, I also chose two free-to-use fonts from Google Fonts and compiled an assortment of colours fitting earlier requirements. Being keen for consistency, I produced a brand guidelines document available to all ‘Minds. This detailed each logo and in which circumstance to use each, all the colours with a sample and both hex and RGB values. Each heading and paragraph font samples and other specific brand guides, leaving no room for confusion and inconsistencies going forward.

 

Categories: Drupal

ComputerMinds.co.uk: Rebranding ComputerMinds - Introduction

Planet Drupal - 11 April 2018 - 7:30am

After 7 years of our brand and website, we felt the outdated look did not reflect the cutting edge work we were doing, so it was time for a change.

With the relatively recent release of Drupal 8 there was no better time for a complete overhaul, so I set to work. But before any website design or build could begin it was important to rebrand the company fully so this could be carried through and be consistent throughout.

We released the new site and branding at the same time a few weeks ago. This series of articles talks through the complete process from rebranding to designing, development and deployment. Here’s what we’ll look at:

  1. Branding
  2. SEO analysis, planning and Information Architecture
  3. Website design
  4. Pattern lab
  5. Development
  6. Migration
  7. Deployment
  8. Lessons learned and looking forward

So, let’s jump straight in to the branding!

Categories: Drupal

Jeff Geerling's Blog: Installing PHP 7 and Composer on Windows 10, Using Ubuntu in WSL

Planet Drupal - 11 April 2018 - 6:34am

Recently, I detailed how to get PHP 7 and Composer installed natively inside Windows 10, but there are now two easy ways to get started with PHP on Windows, since Windows 10 introduced the Windows Subsystem for Linux (WSL), which is by far the easiest way to run Linux environments within Windows.

To get the WSL, and in our case, Ubuntu, running in Windows 10, follow the directions in Microsoft's documentation: Install the Windows Subsystem for Linux on Windows 10, and download and launch the Ubuntu installer from the Windows Store.

Once it's installed, open an Ubuntu command line, and let's get started:

Install PHP 7 inside Ubuntu in WSL

Ubuntu has packages for PHP 7 already available, so it's just a matter of installing them with apt:

Categories: Drupal

Okta Integration

New Drupal Modules - 11 April 2018 - 6:27am

The Okta Integration Module provides Okta functionality as Drupal addon module to manage the Okta instance.

Following helper modules are available:

Okta Batch Import

Batch import users into Okta application from CSV or comma seperated list.

Okta Dashboard

Dashboard view of your account account. Prevents giving direct Okta Access to multiple users. Allows granular control of Okta views directly from Drupal.

Categories: Drupal

OPTASY: Collecting Requirements for Your Project: Best Tools and Techniques

Planet Drupal - 11 April 2018 - 5:06am
Collecting Requirements for Your Project: Best Tools and Techniques adriana.cacoveanu Wed, 04/11/2018 - 12:06

Instead of stubbornly keeping yourself stuck, thinking that “Clients don't really know what they want”, how about you... give them a hand? Helping them identify and clearly articulate their needs! Especially since there are so many effective, tried-and-tested tools and techniques that grant you success when you're collecting requirements for your project.

And it sure is worth all the effort. Or, to put it this way:

It will cost you/your project a lot if you're doing it wrong.

In this respect, numbers make the most reliable proofs:

Behind the great majority of project failures, there's a lack of clarity on requirements.

Therefore, learning how to collect requirements for your project:
 

Categories: Drupal

Tim Millwood: Should Drupal's installer be tailored towards the Enterpise?

Planet Drupal - 11 April 2018 - 3:47am
Should Drupal's installer be tailored towards the Enterpise?

In Dries' keynote at DrupalCon Nashville 2018 he discussed a blog post by Matthew Grasmick where the "first impression" or installer experience of Drupal was compared with Wordpress, Symfony, and Laravel. A tweet by Jeff Eaton then got me thinking:

Kind of weird that the #driesnote compares the install complexity of Drupal, Wordpress, Laravel, and Symfony. Why aren't AEM and Sitecore in there?

— Actually, (@eaton) April 10, 2018

Drupal powers about 2% of the web, but when looking at top websites, either by NASDAQ, FTSE, or number of visitors, Drupal powers a much bigger percentage of sites. This shows that Drupal is an Enterprise platform. When an enterprise level client is evaluating Drupal they would have much difference "first impression" experience than for example a hobbyist or blogger. Enterprise users would not often use the inbuilt installer, they'd be looking at tools such as Drush or Composer to facilitate the installation for them via some kind of continuous integration platform. For example, in my day job we install an instance of Drupal most hours of the day, this is all handled by a python script running on iron.io.

When tweeting about this blog post I had an interesting response from Kevin Oleary:

#2 is already true. The question should be “should Drupal go back to the simple install and extend model that produced it’s period of explosive growth”

— Kevin Oleary (@kolearyUX) April 10, 2018

This tweet made me readjust my thinking. Drupal was almost a ground up initiative. Drupal may not have had it's success without people like me running a blog on it, contributing to it, and fostering it within enterprise organisations. Kevin also completely derailed what the conclusion of this post was going to be. The post was going to conclude with thoughts and ideas about making things easier for enterprise clients. However, maybe the proposal in Dries' keynote to improve the installer experience will help grow Drupal from the ground up, yet again.

timmillwood Wed, 11/04/2018 - 11:47 Tags drupal planet drupal-planet drupal Add new comment
Categories: Drupal

AddToAny DX8 integration

New Drupal Modules - 11 April 2018 - 3:41am

This module makes the social sharing block functionality from the
AddToAny module available as a custom element within Cohesion DX8.

Enable the module and the "AddToAny" element will become available in
the DX8 element sidebar.

Select a combination of universal and specific social sites, placement
and icon size.

The title and URL of the page are detected automatically.

This module requires a DX8 subscription.

Categories: Drupal

Matomo Api

New Drupal Modules - 11 April 2018 - 2:30am
Categories: Drupal

Pages

Subscribe to As If Productions aggregator - Drupal