Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 19 hours 59 min ago

Agaric Collective: Keep modules compatible with multiple Drupal Core branches while using new services

Mon, 2020-06-08 12:01

While working on making a module compatible with Drupal 9 I found that the module was using an obsolete function that became a new service. It was something like this:

/** * My plugin. * * @SearchPlugin( * id = "my_plugin", * title = @Translation("My plugin") * ) */ class MyPluginSearch extends SearchPluginBase implements AccessibleInterface, SearchIndexingInterface { /** * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition ) { return new static( $configuration, $plugin_id, $plugin_definition ); } /** ... **/ public function indexClear() { search_index_clear($this->getPluginId()); } }

The function search_index_clear is now part of the new search.index service that was added on Drupal 8.8. In order to keep this working on Drupal 8.8+ and Drupal 9 we need to inject the service in the create function. But if we do this unconditionally, we will get an error in Drupal 8.7 because that service was added on 8.8. What to do then?


Fortunately years ago I read an article that addressed a similar need. It talked about how to safely extends Drupal 8 plugin classes without fear of constructor changes. In my case I didn't want to change the constructor to keep it compatible with Drupal 8.7 and below. At the same time, I wanted to inject the new service to use it in Drupal 8.8+ and Drupal 9. I just modified a bit my code to something like this:


/** * My plugin. * * @SearchPlugin( * id = "my_plugin", * title = @Translation("My plugin") * ) */ class MyPluginSearch extends SearchPluginBase implements AccessibleInterface, SearchIndexingInterface { /** ... */ protected $searchIndex; /** * {@inheritdoc} */ public static function create( ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition ) { $instance = new static( $configuration, $plugin_id, $plugin_definition ); // Only inject the service in Drupal 8.8 or newer. if (floatval(\Drupal::VERSION) >= 8.8) { $instance->searchIndex = $container->get('search.index'); } return $instance; } /** ... **/ public function indexClear() { if (floatval(\Drupal::VERSION) >= 8.8) { $this->searchIndex->clear($this->getPluginId()); } else { search_index_clear($this->getPluginId()); } } }

And that's it, Drupal 8.8 and newer will take advantage of the new service while we keep this compatible with Drupal 8.7. This will give users more time to upgrade to Drupal 8.8+ or Drupal 9.

Read more and discuss at

Categories: FLOSS Project Planets

Tag1 Consulting: What you need to know about Drupal 9

Mon, 2020-06-08 09:29

Though the biggest news this month is the release of Drupal 9, that doesn't mean big releases aren't happening on other versions of Drupal too. The milestone represented by Drupal 9 also welcomes new versions of both Drupal 7 and Drupal 8 to the Drupal ecosystem. It's been four-and-a-half years since Drupal 8 was released, and 54 months of development from scores of contributors around the world went into Drupal 9. And thanks to the indefatigable efforts of open-source contributors in the module ecosystem, there are already over 2,000 contributed modules ready to go, compatible with Drupal 9 out of the box. Drupal 9 is a massive step for innovation in the Drupal community, thanks to the careful thought that went into how Drupal can continue to stay ahead of the curve. During the Drupal 9 development cycle, which was largely about deprecating and removing old code, the Drupal core committers laid the groundwork for the future and facilitated a more pleasant upgrade experience from Drupal 8 to Drupal 9 that should smooth over many of the hindrances that characterized the transition from Drupal 7 to Drupal 8. And there's already exciting new plans ahead for Drupal 9, with coming...

Read more preston Mon, 06/08/2020 - 16:27
Categories: FLOSS Project Planets

Drupal blog: Drupal in COVID-19 Series: Community Learning for ME

Mon, 2020-06-08 09:06

Continuing our short series of articles highlighting ways that the Drupal software and its community are building solutions to help combat the effect of COVID-19, today we hear from Patrick Corbett of Redfin Solutions. Here, he describes their project at the  Rural Aspirations Project.

The Rural Aspirations Project was created to expand educational opportunities in rural Maine that develop and honor the community while stimulating the innate curiosity of the students and teachers. When the Maine state government shut down the schools to limit the spread of COVID-19, parents and teachers found their roles turned upside down. Rural Aspirations saw the need for a service to connect Maine families and teachers with the wide array of activities and resources offered by Maine organizations.

In light of this growing need, Redfin Solutions collaborated with Rural Aspirations to launch an improved Community Learning for ME website. The new website had to be capable of addressing immediate needs in the community: collegial support for teachers, a way for organizations to explore and pilot innovative virtual connections, and a quick and easy resource for families that are struggling to manage what some have called “crisis schooling.”

With, local educational organizations such as the University of Maine Cooperative Extension, the Portland Public Library, and the Maine Audubon can post their resources, learning activities, and links to live events. With Drupal, we were able to use taxonomy and views with exposed filters to empower the teachers and parents to find the perfect resource while enabling them to discover more. Users can filter and search by subject, age group, and duration for a resource that fits a specific need. They can also browse through the website to learn more about what Community Learning for ME has to offer. Teachers can create schedules for their students to follow along with at home. Parents can find resources to support them in engaging their child, and fun activities for their child to work on. 

Community Learning for ME is a volunteer-driven, grassroots effort. The website is best served by Drupal because it allows administrators to grant trusted organizations access to manage their own pages on the site through a custom publication workflow. Before using Drupal, the administrators spent hours each day on a Wix-based site creating and updating resources manually. Now, with the time they save, they can focus on providing targeted support to those in the rural Maine community who need it the most.

Categories: FLOSS Project Planets

Evolving Web: Empowering Universities With Large-scale Drupal Platforms Using Custom Upstreams

Mon, 2020-06-08 09:02

For higher education IT departments, it's a familiar scenario.   

Your team is in charge of managing hundreds of websites that support different mission-critical areas of your organization. You are responsible for updating the sites, keeping them all up and running, and optimizing their performance. Additionally, each site has its own small team updating content, creating new features, and working within the Drupal admin system. They are predominantly non-technical users, and reach out to your team whenever they need help.  

Over the years, we've worked with many teams facing these exact challenges. Through our clients' experiences, it is quite clear that your ability to effectively manage your platform is substantially determined by your architecture. Drupal 8 core includes multisite functionality and is a popular choice that works well up to a certain number of websites. For a large-scale university platform with hundreds of sites, our preference is to use a shared codebase that provides more fine-grained control. This is exactly what Pantheon Custom Upstreams provides.  

Why is that? Read on...

Challenges for Deploying Higher Education Websites

While each of our clients is unique, they also share many of the same challenges. For our higher education clients with large, complex Drupal platforms, we encounter some key pain points time and time again.  

  • Redundant implementation. When fixing a bug or developing a new feature, the wrong architecture can leave you re-implementing and testing the solution on a site-by-site basis. This can turn a 5-minute fix into a project that takes several hours.
  • Ungainly testing. Testing and deploying Drupal updates across hundreds of sites can get very tedious and time consuming. There are weekly releases of updates for contributed projects, twice monthly core updates, and additional critical security updates when needed, each of which must be tested against every site.
  • Difficult system-level updates. System updates like PHP versions are infrequent, but critical for maintaining site security, and can require code adjustments to keep things working correctly. These adjustments must be discovered, implemented, and tested within both the platform code and per-site customizations, making these important updates a potentially daunting task.
  • Significant risk of introducing new bugs, conflicts, and inconsistencies. When hundreds of sites share a codebase or installation profile, but also have their own customizations, any change to the platform code has the potential to cause problems at the site level. A new platform feature, for example, might work great on most sites, but conflict with a custom module used on a quarter of the sites, several of which have their own revisions of the module that may cause additional can get quite messy. 
Possible Architectural Solutions

It's clear that these challenges are big enough to deserve a good solution. There are two main approaches to architecting large-scale Drupal platforms, each with their own advantages and disadvantages.

Multisite Installation

With Drupal's multisite setup, separate, independent sites can be served from a single codebase, each with its own database, configuration, files and domain.   

Multisite has the advantage of being relatively simple and intuitive to manage. With just one codebase, there is less code to administer, and updates are rolled out to all of the sites at once. Additionally, individual sites can incorporate their own themes and modules as needed. 

However, it also comes with some disadvantages, which are amplified when managing large-scale platforms:

  • Having a single codebase and single server means you also have a single point of failure. An issue in your server or codebase will affect all of your sites, potentially taking down the entire platform.
  • Deploying updates or fixes to selected sites is difficult because all of them share the same codebase. Anything deployed for one site has the potential to affect any other site on the platform.
  • Drupal updates deploy to all sites at once, and cannot be reverted on a per-site basis. This means that either all sites must be tested before any can receive the update, or some sites will be in a broken state until they can be fixed individually.
  • Teams come up with homemade solutions to circumvent some of the challenges involved with maintaining a Multisite installation. These solutions can be difficult to maintain if documentation is not properly written, or if they function in unexpected ways.
Shared Codebase

A shared codebase can include a set of modules, an installation profile, a Drupal distribution, or other code that is used for multiple sites on your platform. Rather than all running off of the same code, however, each site has its own copy. Individual sites can also have their own customizations if they don't conflict with the shared codebase.   

Some advantages of this approach are:

  • Bug fixes, new features or even security updates can be added to the shared codebase and pulled into each site when its team is ready to work on it, rather than all sites updating together on a forced schedule.
  • Customizations can be done for each individual site without having unintended effects on other sites.
  • Avoiding a single point of failure at the server level eliminates the risk of an error or conflict taking down the entire network of sites.  

Some disadvantages for this approach are:

  • Applying shared codebase updates to each site individually requires doing work for each site, and can take more time.
  • Multiple servers or hosting environments must be administered and kept consistent across the platform.
Custom Upstreams: The Pantheon Approach to a Shared Codebase

Pantheon hosting platform has introduced the concept of Custom Upstreams to solve scenarios like the one described above. With this solution, you can standardize design and functionality across multiple Drupal sites that share a custom upstream managed by your organization. This governance does not compromise the customization of individual sites. Instead, it offers a sustainable and scalable solution for handling updates across massive site portfolios. When used well, Custom Upstreams frees up developer time to focus on higher-impact work, and makes it possible to spin up new sites quickly, without repeating foundational work.   

Deploying updates.

Deploying updates to the upstream is as easy as pressing a button in the dashboard to pull the update into the development environment and then deploying this update to test and live environments. Further automation is possible with Terminus, even to the level of running a single script to update and deploy all of the sites at once. There is a lot of good documentation from Pantheon about creating Custom Upstream and related topics.  

Custom Upstreams within Pantheon provides solutions for the challenges presented and also the disadvantages of the architectural solutions explained above:

  • There are no servers for you to administer.
  • The PHP version could be changed globally and overridden per site if needed using the pantheon.yml file.
  • Security updates, new features and global bug fixes can be applied to the custom upstream and pulled into all of the sites either manually or through some automation.
  • There is no Single Point of Failure at the server level, and the Pantheon folks are really good at managing their infrastructure.
  • A lot of automation can be done by using Terminus and Terminus plugins.  
Final Thoughts

There are always tradeoffs to be made when attempting to balance power with complexity. Drupal's Multisite--a solution that is initially simple and intuitive--can evolve into a quagmire as the platform scales up to meet the requirements of higher education institutions.  

It has been through our years of experience with such institutions that we have established our preferred best practices for architecting and managing these exceptionally challenging platforms with a shared codebase. Pantheon's Custom Upstreams provide tools and automation to relieve some of the complexity of administering independent sites and their environments, while retaining the powerful benefits of such an architecture.   

If you'd like to learn more about our toolbox for large-scale Drupal platforms, check out How to Set Up BLT and GitLab CI to Work with Pantheon Hosting (Part 1) and (Part 2), or just click the green chat bubble to ask one of our team members. 

+ more awesome articles by Evolving Web
Categories: FLOSS Project Planets

DrupalEasy: Exclude and include pages in Drupal 8 block visibility settings

Sun, 2020-06-07 10:25

The standard Drupal 8 block visibility page settings allow you to either include the listed paths (via "Show for all listed pages" or exclude the listed paths (via "Hide for all listed pages") - but you can never include and exclude at the same time. The Block Exclude Pages module provides a solution to this.

Consider the following situation: you have a block that needs to appear at all pages whose URL begins with "/about", with the exception of "/about/me". With just Drupal 8 core visibility rules, it isn't possible to easily make this happen.

With the Block Exclude Pages module installed and enabled, the following visibility rules can then be used:

/about !/about/me

(Show for all listed pages" selected.)

The Block Exclude Pages module allows you to use the "!" character as a negation - problem solved!

Categories: FLOSS Project Planets

DrupalEasy: An effective method of using Config Split

Sun, 2020-06-07 10:21

If you use Drupal 8's configuration system, then you know that one of the trickiest parts of using it effectively is managing configuration on a per-environment basis. Luckily, the Config Split module makes it easy to manage different configurations in different environments, but how to set it up properly isn't always readily apparent. 

In this blog post, I'll provide one method for setting up Config Split in an efficient manner, with splits for local, remote development, and production environments. 

The goal is to be able to set things up right the first time, without having to worry about manually enabling/disabling different "splits" depending on the environment. 

The key to it all is leveraging Config Split's ability to enable/disable individual splits with configuration in the settings.php file.

The first step is to set up your splits - I normally start by doing this on my local environment. Once Config Split is enabled, via the admin toolbar, head to Configuration | Development | Configuration Split Settings (/admin/config/development/configuration/config-split). Click to add a new split setting - in this example, we'll use the following settings:

  • Label: Local
  • Folder: ../config/splits/local
  • Active: (selected)
  • Modules: Complete Split: Devel, Devel Generate, Devel Kint, Reroute emails
  • Configuration items: reroute_emails.settings

Let's also add a second split - this one for remote development environments:

  • Label: Dev
  • Folder: ../config/splits/dev
  • Active: (selected)
  • Modules: Complete Split: Reroute emails
  • Configuration items: reroute_emails.settings

Note that we're not going to split out the Config Split configurations (meta, I know), rather we're going to allow the Local and Dev Config Split settings to be exported to the main /config/sync/ directory. 

Next, when exporting config, the following directories and files will be created:

/config/splits/local/ reroute_email.settings.yml /config/splits/dev/ reroute_email.settings.yml /config/sync/ ... config_split.config_split.local.yml ...

At this point, if we did nothing else, then both the "Local" and "Dev" splits would be automatically active all the time in all the environments and we really wouldn't have accomplished anything yet. 

The final step to make this all work is to add a couple of lines of code to each environment's settings.php file. For example, in the settings.local.php, add:

$config['config_split.config_split.local']['status'] = TRUE; $config['']['status'] = FALSE;

Then, in the settings.php for the remote development environments, add:

$config['config_split.config_split.local']['status'] = FALSE; $config['']['status'] = TRUE;

If you use a single settings.php for all environments, then you can use if-statements to determine the current environment and then enable/disable the appropriate splits. For example:

if ($env == 'local') { $config['config_split.config_split.local']['status'] = TRUE; $config['']['status'] = FALSE; if ($env == 'dev') { $config['config_split.config_split.local']['status'] = FALSE; $config['']['status'] = TRUE; else { $config['config_split.config_split.local']['status'] = FALSE; $config['']['status'] = FALSE; }

With this type of Config Split setup, you'll always be able to immediately run a configuration import after pulling in new commits from the project repository without having to worry about manually enabling or disabling your splits. 

Categories: FLOSS Project Planets

OpenConcept: Stories from the Open Gov Interview

Sat, 2020-06-06 10:14

I had the pleasure of being interviewed by Richard Pietro as part of his Stories from the Open Gov podcast. Richard has gotten some amazing speakers on his show including Sir Nigel ShadboltAshley CasovanNathaniel HellerMelanie RobertRob DavidsonTony ClementMichael GeistLindsey MarchessaultRyan AndrosoffTracey LauriaultKeith Loo, and Jesse Hirsh. You should subscribe to the podcast and listen to it on SoundCloud. We talk about a range of things here from accessibility to open government and open source, I hope you find it interesting.

I was encouraged by Ioanna Talasli & Nicolas Steenhout to promote podcasts which are accessible and have transcripts. This is difficult for many podcasts, but I wanted to start ensuring that at least the podcasts I am interviewed with have transcripts. For this one I used to transcribe the audio which Richard provided from the discussion. It was really quite accurate and also a useful tool as a speaker to actually see what you say. I have to admit to editing the text below to remove some of my filler words and phrases. I do hope that with this awareness I'll become a better speaker over time.

With that said, I hope you enjoy the content. 

Richard Pietro:
Hello and welcome to stories from the Open Gov, a podcast dedicated to telling the stories about what open government and open data look like. My name is Richard Pietro and I am joined by Mike Gifford. He is the owner of Ottawa based OpenConcept Consulting, it's a company that specializes in web development with a particular focus on open source and web accessibility. OpenConcept has also contributed to the Drupal Core. Now for some of us that's a whole heck of a lot of tech jargon, which is why Mike is here. Not only will we glance over some of these tech matters, but we will also talk about how open source technology can help governments. Hello Mike, and thanks for joining us.

Mike Gifford:
Richard, good to talk.

Richard Pietro:
So my first question is quite simply, do you mind clearing up your introduction a little for us? Like, what is Drupal?

Mike Gifford:
So Drupal is a content management system, and so what that means is it's a framework that allows people to go from entering content into a database, and allow it to be expressed in a website or for that matter it can be put up in a whole bunch of other ways. It can be used as a framework to organize and display content orally through Alexa or for... through your mobile app, through a smart smartphone in terms of trying to go up and have responsive and native mobile apps. It's a framework.... It's a content organization framework and it's also very flexible and allows you to go off and do a lot with it. More people are aware of WordPress as a tool and WordPress is great but it's more sort of geared towards blogging and for simpler websites, where this is about trying to build something that is more customized, more comprehensive things like bilingualism and whatnot are things that are harder to do with a simple blogging tool, and Drupal allows you to create multilingual sites.

It's also really useful to build sites that are accessible which is why I've been involved, and I've contributed to Core and a whole bunch of modules in Drupal, but I'm also a Drupal core maintainer. So I have an official capacity and in every copy of Drupal 8 that's downloaded my name is listed there amongst a whole bunch of other people who've contributed tons and tons of their time to make sure that this open source software (which is free for everyone to use and drives 3% of the web) is able to be as good and robust as possible.

Richard Pietro:
Now, am I wrong in thinking that a number of years ago under the Obama administration, they used Drupal to build

Mike Gifford:
That is absolutely correct, and they used it for... Well, up until I think that the first... the end of the first year of Trump's presidency, and I think they just realized that for a president that... yeah, thought in tweets it wasn't really relevant to have something as powerful and is able to organize as much content as what Drupal does.

Richard Pietro:
This is quite possibly the most political this podcast has been, this little exchange here between Trump and Obama but okay, so let's get back on track a little bit here. One other thing I want to ask you is, there are tons of tech languages and programming languages out there, and for people like me who are not programmers it can be very confusing.

Mike Gifford:

Richard Pietro:
So I want to understand the relationships between these languages a little bit better. So if we were to think of as an analogy thinking of a car, right? With something like JavaScript and Python and PHP, is it kind of like the engine of the car?

Mike Gifford:
PHP would be the engine, JavaScript would be things like the automatic window-

Richard Pietro:
Or be like the features of the car?

Mike Gifford:
The features of the car, the windshield wipers and whatnot.

Richard Pietro:

Mike Gifford:
It's the stuff that is dealing with the exterior look and feel, the stuff that you see but you never see PHP. I mean that's all under the hood and so you see the effects of JavaScript because JavaScript organizes, and arranges the HTML and CSS to display information to the browser. So the JavaScript sort of is the functional moving parts and the CSS is like the paint job of the car, and the images those are the decals you throw in the car.

Richard Pietro:
Where does Drupal sort of fit in that conversation? Or in that analogy, I'm sorry.

Mike Gifford:
So Drupal in that case is... it's the whole car because it includes everything and whether you want to build a car or an aircraft carrier or a moon lander, I mean you can do that all you need to have the... there's an engine that allows you to power your websites and organize the content that you don't actually see that, and there's a database as well, the database is sort of like the gas for the car.

Richard Pietro:
That would be things like SQL or MySQL or things of that nature, right?

Mike Gifford:
Yeah, that's right. But yeah Drupal is the whole package and so it's hard when you're comparing something like Ruby or Python to Drupal, because those are essentially the engine.

Richard Pietro:

Mike Gifford:
So it's like you can't really compare Ruby with Drupal because it's like comparing a V8 to an electric engine. They're both engines and they both do the same thing and if you don't bother to look up the hood... if you're not trying to build a car it doesn't really matter, but if you are trying to build the car it does matter and if you want to be able to have a car that has certain things built into that, like if you want to make sure that you've got comfortable bucket seats as opposed to-

Richard Pietro:
Bench seats?

Mike Gifford:
Yeah, bench seats or milk cartons stuck on the ground you're going to want to have a framework that actually has a lot of material and development that's going into it to improve its usability.

Richard Pietro:
Which is I'm assuming probably why... and for a lot of people like me they don't understand that just because you can code doesn't mean you can build a car. There're some specialists that focus on the engines and the pistons and things of that nature, and then you have your brake guy and then you have people that do the paint job.

Mike Gifford:

Richard Pietro:
People that do the electrical, so that much within your community while there's... you can dabble in a lot of different things it doesn't mean you can do everything.

Mike Gifford:
It's really interesting and going back to the car analogy, the only car I've ever owned is a 1967 Beetle. I went off and ripped it apart and... actually ripped two of them apart, put them back together into one and drove it across the country, and you could do that with a car that old with very little information, with material online you could... you didn't need to take it into the shop. But if you were to go off and buy let's say the latest... the last issue of Volkswagen that rolled off the press or latest Beetle. You couldn't do that, there's so many electrical components that are built into that, there's so many special tools that are required. It's been so fine tuned over the years that it's not possible for somebody with no training and education to put together a working, viable vehicle because we've made them more complicated.

Mike Gifford:
The same thing applies to the web and that's 20 years ago when I started my company, one person could probably do everything like it wasn't that complicated things had not advanced that far, but now there are so many specialties and there's so many different requirements and so many different use cases, that it's not possible to find somebody who's an expert in everything.

Even if you find a jack of all trades, it's so much more complicated than that, there are people who are full stack developers but they still just know the tools they know and the patterns that they've run into and they know what's worked in the past and can probably learn to replicate it and expand on that, but it's not like it was. You need to have more people involved in building and developing these tools because we expect so much more out of them.

Richard Pietro:
Ain't that the truth? And now that we have this sort of foundation for our conversation I'd like to get into the meaty part of it. For a good long time now many governments have lingered when it came to changing the way they work in the 21st century and the tools that they use. For example, even though it's been on the books for a number of years, Canada has an edict that says it must consider and use open source tools as often or as frequently as possible or the edict is something along those lines, but there hasn't been I think the kind of buy in even though the edict is present or the directive is present. Do you think that that government is giving enough consideration to open source solutions? If not why do you think that is?

Mike Gifford:
No, I don't think that the government is giving enough consideration for open source. Initially it's difficult to try and think about this in terms of the long term and how legacy institutions tend to work, but they're not really keen to innovate and so much of the time it's about trying to minimize risk. For the longest time the least risky thing to do was to buy a service from a third party and then be able to incorporate that afterwards, so that you could just externalize the risk so that a third party is responsible for all of that.

I think that there's been a real effort... well, under the Harper government there was an effort to try and outsource all of the IT functionalities as much as possible, and to... whether it's and web renewal or whether it's The Phoenix Project, there was the belief that IBM or Microsoft or somebody else knew how to do it better and that government could just set up a contract through a long process and pay somebody else to take care of it. I hope that belief is coming to an end that there's a reawakening of the need to invest in people inside the government to understand technology, and to use technology and to be able to not just be consumers of technology but to actually be producers of technology.

There is no other entity in Canada that hires more computer scientists than the Government of Canada, and yet they don't spend a lot of that time finding ways to build and to contribute back to projects that they use. I think that a lot of this comes down to building confidence in their team, and building... and shaping the culture so that people are actually not just consuming open source tools, because there are actually open source tools that are used throughout government, but actually getting governments to start to contribute back to them and to find ways to demonstrate by engaging with the community outside of the government silo, to actually learn how to verify and to build a better product that works well for everyone.

Richard Pietro:
I think one of the examples of what you're referring to that relates particularly to open government and open data, is the Open Data Portals themselves. So for those of you who are not familiar there are really two big dogs in the community, which is you have the traditional sort of over the shelf software known as Socrata, and then you had the open source software known as CKAN. With Socrata government can easily go to them and say, "we want to buy a license, we want you to implement it and you put it out there and we won't worry about a thing." But with CKAN you need to hire people that are familiar with some of those programming languages that we talked about earlier, so they can more appropriately customize a portal that fits their needs and their citizens.

Mike Gifford:
Yeah, I mean that's a great example and CKAN is a wonderful tool. There's actually a variation of it called DKAN which is a Drupal content organizer and manager as well, so that's maintained by-

Richard Pietro:
How's it different? I've never actually heard of DKAN before.

Mike Gifford:
It's just based on Drupal, so a lot of that infrastructure like CKAN is built on... I think it's a Python application if I'm not mistaken, and DKAN is just built on Drupal and PHP. So it's similar in terms of organizing content and it works very similarly, but it's just a Drupal based initiative.

Richard Pietro:
Would it be easier for government agencies to use the DKAN than it would be CKAN? Is it kind of like you're asking someone to just go out and buy a car and do some minor modifications, but with CKAN you're asking someone to build the car from scratch?

Mike Gifford:
I think that with CKAN it's just that it's... I think that there may be some government departments that will be more appropriate to use DKAN because they're already using a Drupal natively, and see CKAN uses Drupal as well but it's... at least the StatsCan implementation does. But it's... I think that having... it's just a matter of providing options that make it easier for people and a lot of times the organizing and managing that content, it's not that difficult as a way of structuring and organizing content itself.

Richard Pietro:
Mm-hmm (affirmative)

Mike Gifford:
For many organizations CKAN is the right solution and DKAN just provide another option that is a little bit lighter, and a little bit easier for people to implement if you're looking to have a data store. But that provides an option that's more... probably more in line with what their current web teams are already familiar with.

Richard Pietro:
So you are a hardcore open source, web accessibility, Open Data practitioner and advocate?

Mike Gifford:

Richard Pietro:
I have to ask you this question, what are some of your biggest beefs on how the government views open source?

Mike Gifford:
So, I think that the biggest problem is that governments see open source as free, and so the big advantage that they see of open source is that you don't have to pay for the license. But that sort of mindset is sort of like free as in beer and not the intention that many people have had in the open source or free software movement as in free isn't speech as a right and whatnot. I tend to think about open source as in... free as in kittens.

Richard Pietro:
Okay. Sorry, I didn't mean to take you out of your zone here but that was just do funny, please continue.

Mike Gifford:
It's totally good. So kittens are lovely and we all like them but then they rip things up and you need to train them, and you have to nurture them if they're going to grow up and be a lovely mature adult cat. If you don't train that and invest time in working with the kitten, then you're going to have a very unpleasant life as a cat owner. So it's that same idea that you need to invest back in the community and that could be a matter of paying for things like there's paying for... paying open source development firms who have experienced working the software, and trying to maintain those organizations who are leading the software initiatives that you're using. I mean that's a great way to do that, even going off and organizing hackathons and providing sponsorships for events that are related.

There's Drupal Camp Ottawa, and there are Drupal camps all over the place but events like that are things that can be... that are always looking for sponsorship whether they're in person or virtual, there's always expenses that need to happen. There's also just trying to go often to educate and talk about it. I mean Drupal is used extensively in governments around the world but you almost never hear about it. The Prime Minister's website uses it, we built the Governor General's website with it, StatsCan can use it which is still one of the largest websites that's the government of Canada has as does buy and sell, as does, as does, as do most governments in the European Union use Drupal still, it's very, very popular in governments in the United States. Australia has put forward an initiative to use Drupal and built their own theme and distribution around that, to make sure that they have a consistent look and feel that is possible for governments not just at a federal level, but also at the state and municipal level.

Mike Gifford:
So there's a lot of stuff that could be done but in general governments are not talking about it, and they're not talking about what all of the work that they're getting for free by choosing open source, and finding ways to help their communities grow and flourish and to get more adoption of these software communities. So it's ridiculous that there are so many governments out there that are using the same tools and yet they don't collaborate with each other on this. They don't collaborate with the community, they're still sort of stuck in their silos for the most part and they're not looking at ways to really benefit from the community aspect of a community driven software initiative like Drupal is.

Richard Pietro:
This is actually very relevant Mike I think, on how the government reacted after the COVID-19 lock downs were announced. So for example, all of a sudden you have all these public servants that are just overloading the government VPNs. I'm not sure if this is still a problem or not but are there sort of solutions that could have helped the government resolve this problem aside from just buying more servers?

Mike Gifford:
So I'm sure that it is a problem but I'm not sure for which departments and I don't know that even the government itself is aware of how much they are... the more they need to invest in order to be able to support a remote workforce. I think that they're certainly struggling for this but a lot of information is decentralized in across all the departments of the Government of Canada, and I'm sure that the CIO councils are trying to gather this information. I haven't seen anything about a concerted effort to evaluate and track the progress of the internet access and availability of access to the internal network of the Government of Canada.

I'm on the outside though so it's very possible that these conversations are happening elsewhere, but a lot of the problem comes down to this idea that there's a government network that all of the secure information will be held within this government network, and that if you... you need to go often and get clearance in order to get access to that network and then once you're on the network, you can be more loosey goosey about what happens inside there with the permissions and configurations and access to information that you can just assume that anyone who has access to the government network has what they need to to access it. I think that's part of the challenge that there's a lot of stuff that has been put inside of the government network that probably should never be there.

There are things like MediaWiki is installed on... in Government of Canada instances in their various different government departments, but the big one is GCpedia and with GCpedia like at the moment you can only access that through the VPN. There's no other way to access GCpedia. So all of that knowledge base of information they could just expose GCPedia to the public and have an authorization system so that you need to be able to log in through MediaWiki in order to access any of the content on the page. That wouldn't be that hard to go from to set up for them, but it will require a way of thinking about how security is managed and how they deal with this... deal with a more permeable membrane between the government network and the internet. I think that one of the elements I was really interested in is the idea of building an internet and committing to building an internet that is okay for secure transactions, and many people will go off and remember the Heartbleed bug of a few years back.

It cost a few trillion dollars in the economy, it was a fairly significant impact for the economy and as a result of that many organizations started contributing to an initiative that is managed by the Apache Foundation called the Core Infrastructure Initiative, and the point of this is to take... to look at the files that are critical to maintaining a secure internet and to make sure that there's enough people reviewing those little files for security to make sure that there isn't... that we don't have another Heartbleed bug issue again. That $3 trillion economic... or the $3 trillion expense happened essentially because one little file has been maintained by one or two people on the side of their desk for a period of decades and just hadn't gotten the attention that it deserved, and there was an exploit that was within that that was not fixed in the internet because people were not contributing back to this open source software.

Another thing that I'd like to think about is this idea of internet exchanges, and for government towns like for that matter Ottawa and Toronto and Victoria, there's government towns where there's a lot of critical government infrastructure that is being... that should be shared. That we should have common fiber or potentially common wireless available that is available in these heavily government oriented municipalities. Not that it needs to be limited to that but there are communities that have invested in fiber and have had a faster, more reliable, more resilient infrastructure. But for the longest time governments have built relationships with Bell and Rogers to provide them with internet access and I don't think that those have really demonstrated that they're as resilient as we need particularly in times of crisis like this.

Richard Pietro:
Mm-hmm (affirmative)

Mike Gifford:
A packet of information to jump between department A and department B should not have to get routed through a server in Chicago, in order to get back to jump between the two departments but often that's what needs to happen. There isn't enough of an emphasis on building a resilient, redundant infrastructure in our municipalities to make sure that the packets are kept local wherever possible, and only sit outside of the city when we need to do that.

Richard Pietro:
This is getting pretty technical for a lot of us. We're talking about packets and things along those lines and analogy... we've had this discussion before and an analogy we used at the time was this idea of sort of carpooling a little bit for these internet exchanges. I forget at the time, did you agree with that analogy or would you reframe it?

Mike Gifford:
I think that carpooling is probably... I mean that's not a bad analogy. CIRA has a really interesting model where they visualize this as well, and the way that they provided their visualization was that right now each department has their own freeway to the Internet, and they're maintaining independent freeways to the internet to exchange information back and forth and so from the Ottawa example, department A would need to get onto the Queen's way in order to get to department B, even if they're all... if they're both located in downtown Ottawa. Whereas if we just sort of built around about in the downtown core for information then you could get off where it was appropriate for you to get off, and not necessarily have to jump onto the freeway in order to communicate to your neighbours.

Richard Pietro:
Got you, got you. I want to go back to open source right now because you were very clear about some of the things that governments are doing wrong when it comes to open source and how they should view it, but have you come across any government initiatives or any governments in general that are doing open source right?

Mike Gifford:
I think that there are governments that definitely are and that are doing some really interesting work. The European Union has had a lot to try and promote open source. I think that they see this as part of a way of trying to build more economic independence from largely American tech companies, and that's certainly an issue for us here in Canada as well. France in particular has seen a whole series of businesses pop up because they're able to leverage open source tools in order to be able to provide high level support for larger organizations, and if the developers weren't able to stand on the shoulders of giants in order to be able to do that, then there's no way to be able to accomplish these tasks. If everyone was trying to go off and to code from scratch the work that needs to be done, then it wouldn't be possible for a small organization to be able to meet the requirements of government much of the time, but leveraging open source software you can.

You can access millions of dollars worth of software for free if you're able to leverage open source code effectively, and so there definitely are small businesses and government agencies that are able to do this. I've been really impressed by the open source community in the US government particularly under Obama, there was some really interesting things that came out of it. There was was one of the initiatives that came out of it, 18F is another one you can see a lot of the code that has been used in Canada and other government departments has been shared on the 18F's GitHub page.

Richard Pietro:
Mm-hmm (affirmative)

Mike Gifford:
There's a lot of governments that are sharing code and policy and documentation through GitHub, and that's really wonderful to see all of the ways that that's been being done. That's exciting to see, I'm also excited to see things like the Australian Government has made a big commitment to using Drupal and to invest in a distribution of Drupal that there... that's able to be used consistently across government departments and to really drive cost down, because they can build a single distribution that is able to go off and to meet the security and accessibility requirements of the government and be able to implement that. I've got to say I'm also really impressed by a lot of the work that StatsCan has done, StatsCan with their Drupal WET distribution and all the work they're doing on Kubernetes and cloud infrastructure. It's really visionary stuff and it's amazing to see a small team of people in a government department really going off and moving ahead, and sharing some best practices to the government and to others that really are able help advance the bar and to see that the government is actually able to see that these tools and technologies are really able to off, and serve not just the needs of a particular department but the government as a whole and society at large.

Richard Pietro:
You just mentioned WET which stands for the Web Experience Toolkit, which was from my understanding one of the very first open source projects coming out of the Treasury Board Secretariat, and I remember this was happening I think around the 2011s.

Mike Gifford:

Richard Pietro:
And at the time speaking to some of the people because it was such a trailblazing exercise, there was a lot of meetings, a lot of conversations, a lot of legal. It was an experience or an experiment that they really didn't know what was going to come out of it. The Web Experience Toolkit became sort of a standard across Canada for building web accessible templates based on open source code. Were you at all in part as a community member in those conversations in those early days?

Mike Gifford:
Yeah, I definitely was and it was definitely an exciting era to go from be involved in and it was nice to see Paul Jackson and Mary-Beth involved in the WIRED Magazine. You don't see government departments anywhere in the world featured in Wired magazine all that often.

Richard Pietro:
Oh, my I didn't know that.

Mike Gifford:
Yeah, there's a great picture they look a little younger than they do now but-

Richard Pietro:
You're talking Mary-Beth Baker?

Mike Gifford:
Yes, that's right. So there was... there's really interesting times to pull that together, and I think the project... a lot of effort was put into this in terms of policy and regulation and sort of what it would be like for the government to contribute a code... a front end framework to the community using GitHub. It was exciting to see that, but they never really had the resources that they needed like it was always understaffed and run in a very tight manner. So things like documentation was a problem and still is a problem trying to go off and make sure that there's a clear set of documentation around how to actually implement this.

Things like roadmaps, so how do you try and... where is WET going next? What are the concerns that are going to be addressed in the next release? They did such an amazing job given the resources that they had and it really does stand outside of Canada as well as it stands inside Canada, but it also needs to have... it's one of the things where the web has changed a lot since then, and there hasn't really been the investment in WET that there needs to be to maintain this framework.

Richard Pietro:
So you have been... we've just talked about you've been in this space for a long time.

Mike Gifford:
It's true.

Richard Pietro:
Do you think that we now need to rethink the open government, open data and open source movements in the context of COVID-19? Has COVID-19 changed anything when we think about those movements?

Mike Gifford:
I think that one thing that does... we do need to rethink is just... I've been involved in promoting open source in organizations for over 20 years and there... we haven't made as much progress as I would have wanted. Whether it's open government, open data, open source like all of those are... there's been some... there's a geeky clan of people who've gotten excited by this and have... and understand why it matters, but we haven't really extended beyond that geeky clan of people. I think what we need to rethink is what we're... what our aspirations are, and who do we need to bring together to go actually understand how these geeky ideas really do matter and that they... that we need to start investing them if we're going to be able to build a resilient infrastructure that we need.

So I think that the... Yeah, we haven't seen a lot of collaboration or as much collaboration around this, and how do we try and not just use these open approaches as a way to save a bit of money which hopefully we can, but also really to allow for innovation to happen and it allows innovation to happen inside of government. One of the projects that I didn't mention but I should have mentioned, is all of the open source work that's been done by... in the UK Government and The Notify project that the... or the Notification project was developed by the GDS team that the Canadian Digital Services team went off and was able to take advantage of and start leveraging that out. So we're using a common code base to go off into to build a messaging service that is used and available for departments across... in the Government of Canada to be able to reach out to citizens through email, through SMS and eventually I'm sure to other means of communication as well.

So it's nice to see this leveraging of open source tools but it took teams to be able to sort of... to sit down and to think about what are the opportunities for us to collaborate and what are the things that we can contribute back to make sure that this tool is more bilingual, is more accessible, is more secure? I was happy to say that the Canadian Digital Services has done that. It has really taken a forward thinking approach to using open source software that has been pioneered in other government departments, and been able to find ways to apply that and we just need this to be the norm and not the exception. I don't see why every government department out there, every IT team is looking out and finding ways to leverage tools and patterns and libraries that are being used by other government departments that have similar functions inside their own government department infrastructure.

Richard Pietro:
It's funny because you're really sort of talking about one of the things that I've been harping on for a number of years now, which is sort of the marketing of open Gov, Open Data, open source within the community and governments in general as well, which is these tools exist but I don't think we've done a very good job of explaining their relevance, their value, breaking... and essentially the culture of government, right? Just sort we always talk about siloed governments, and they don't talk to each other.

Mike Gifford:

Richard Pietro:
We always talk about how one of the biggest users of open data sets for example is the government, because now they don't need to go through all the different channels down the red tapes to get access. So I think we as a community need to do a better job of essentially marketing and selling our movements because unlike many movements, we don't have sort of a David Suzuki Foundation behind us to promote and invest a lot of money in some of these things. So we're sort of left on our own on that one.

Mike Gifford:
No, absolutely. I was thinking about how the... a lot of the work that's been done with open data was actually stuff that even inside the government departments before the call for open data it wasn't available. So there were tool sets that's... Sorry, there were data sets that were sitting on in somebody's desk and was there... in their fiefdom and that they didn't want to release or didn't want us to share information back and forth, or agree to a common data standard because they preferred organizing dates one way, and somebody else in another section of the department preferred organizing dates another way.

Richard Pietro:

Mike Gifford:
So you'd have these different varying datasets, but when you suddenly have to start publishing the information under a common open DNS format. You just look like complete amateurs if you have different data formats and otherwise largely identical data. One of the things I think is a huge need with the open data community is not necessarily focusing on publishing more, but trying to get government employees to look at consuming open data more, and what can they do as consumers and how can they engage with other producers of open data to go off and be able to really build a community around those data sets? So maybe there's a privacy issue that a publisher isn't aware of that you could combine different data sets to gather information about individuals with open datasets that are being published or accessed.

Maybe it's just about inconsistencies, that flaws in the data but how do we build those feedback loops within government so that the Ontario government is actively looking at the federal data and looking to contribute to and benefit from the work that's being done on different levels because there's so much data that's out there, but there, I don't think there's a real effort to find, to build a community around those datasets that there's the ability to critique and review and improve those data sets over time.

Richard Pietro:
I need to mention this real quick because I live in Toronto and I've worked very closely with the city of Toronto's open data team, and that's one of the things I give them full credit for. When they decided to revamp their Open Data program a few years ago, they definitely took a leadership position, because they have the resources, they have the budget so compared to a city like Sudbury or Timmins or even say Kingston, they have people that can work on developing sort of a template and that's what they've done when it comes to their open data portal and their Open Data program. So they've created a kind of cookie cutter that any other jurisdiction in Ontario and I'm assuming around the world could literally grab and just put and install right into their government.

Mike Gifford:
One of the challenges... I mean that's great to hear. One of the big challenges that a lot of times, developers and techies in general don't want to leverage other people's work, they want to do it themselves because they think they can do it better and faster and easier. So often we underestimate the complexity of the problems that we're taking on and want to be given the freedom to be able to explore the solution in a way that makes sense for us. But when you do that often you can't take advantage of all of the learnings that you get from building on somebody else's dataset.

Now, it could be that the structure that's built for the City of Toronto is more complicated than will be required for Wolfville Nova Scotia. But there should be some similarities and if there aren't then there should be enough... there's enough small municipalities that have this common need that should be able to unite together under the leadership of the Federation of Canadian municipalities or other organizations to go off, and to build those tools at a scale that's relevant for them that allows them to track the things that are going to help them be able to make better decisions going forward.

Richard Pietro:
So we've talked a lot about open source and things of that nature and websites, but one of... a lot of your work is actually focused more on web accessibility and by that we're talking about things like disabilities like blindness, how can a blind person navigate the web? Now there are some legislations that mandate that websites be web accessible, but they're often not adhered to. Why do you think that is and how can we get over that Trump... over that Trump. How can we get over that hump? And full disclosure I do have a website reopen and I refuse to believe it would pass the web accessibility test, but I still want to ask the question nonetheless.

Mike Gifford:
So the most important thing about web accessibility is to keep in mind that this is a journey, your website is never going to be 100% accessible you just need to focus on learning more and making sure that every day your site is a little bit more accessible than it was before. If you take that mindset then you can reach out and find some basic tools and find some flaws in it, and look for ways to start asking questions on a regular basis to see what can you do to it to be better? So that's definitely a huge part of the mindset that we try to go off and building with our communications with our clients, and it's been interesting like web accessibility is a really... the big challenges is that there hasn't really been enforcement and everyone is so excited by the newest shiny flashy tools, that they're not looking at how do they address the needs of people with disabilities and that's... people think about this as a really small portion of the population but it's actually pretty significant.

It's not just blind users and deaf users I mean there are certainly those people but it's also one in seven people according to StatsCan. So if you've got a team of seven people there's probably one of them that has a... identifies as having at least one disability. That can be dyslexia, it can be color blindness, it can be mobility challenges. There's so many different ways that people interact with digital tools and with the physical world, but with digital tools as well in this context. If you can write off one in seven people and certainly the Government of Canada can't legitimately write off one in seven people, most businesses can't afford to write off one in seven people but it hasn't sort of been at the forefront.

The other side is I try to think about accessibility in terms of not just the people with permanent disabilities, but there's people with temporary disabilities and people with situational disabilities. So, for instance recently I went off and I kicked a ball for my dog and I have been trying to stay off of it because I think I fractured a bone in my foot.

Richard Pietro:
Oh, wow.

Mike Gifford:
Yeah, this is a month ago. It's like this is still so annoying, but I mean... and I can walk on it but it just... it causes me pain so I don't go very far and I don't walk like I used to until my foot feels better. But that's a clear example of a temporary disability if you are... there're all sorts of people who have temporary disabilities that are because of medication or injuries. There are all kinds of ways even just all the people who have glasses and wear glasses, and if they don't have their glasses with them then they can't necessarily read the email that they would with a proper prescription glasses on. So, that's a really simple example of a temporary disability.

Situational disabilities are another one that a lot of people face, if you've got a nice sunny office and the sun comes in and it's beautiful and whatnot, it's really hard to see your screen to be able to see the content that... whereas opposed if you're sitting in the darkroom. Another great example is how many presentations have you seen that it's really hard to read because they were built on a desktop that has really crisp definition, but then they're broadcast on a LED/LCD projector and with some additional light bleeding in and it's really hard to figure out what it is that there is that they're trying to say with this gray on gray background. So that's a situational disability, if they were doing the presentation at night then it wouldn't be a problem because there'd be no light bleeding in, but in the daytime with sunlight then that's a huge issue for people. We don't think about these implications because we're used to creating content in an ideal environment, and that's just not how people are living and working with technology anymore.

Technology is with us basically 24 hours a day and if we may want to be accessing it on our phone, or through our Google home device, or through virtual reality or through... there are so many ways that we interact and engage with other technology beyond just our desktop computers. So we need to start thinking about how do we think about improving the access of our information and digital content however people want to be consuming it. So right now with the COVID crisis, this is another example where people who are in the public sector were able to effectively communicate and work together because they were in person most of the time and those meetings were in person, and they built tools and approaches to deal with those in person meetings.

When you suddenly bring it so that everything is digital then suddenly maybe somebody has a harder time hearing somebody, and making... and communicating with them because they can't see the subtle gestures that they make, or that there's a slight delay that makes it difficult for them to focus on the work. There're elements where we're just not having a high bandwidth, for instances is there something that can make it very difficult and slow for people to access information, because the sites were built assuming that you had high speed broadband access to navigate it, and that's just not the reality when everyone is working from home, you can't assume that everyone has bandwidth.

Richard Pietro:
Actually it's an interesting point that you bring up because one of the fun stories that I like to talk when I mentioned web accessibility or accessibility in general, is that oftentimes while accessibility is viewed as a cost, right? It takes a lot more time, it takes some work. The benefits are not just for those one out of sevens, a lot of the times those benefits come for the general public like for example, having a much quicker website but the story that I always use is one from Toronto which deals with transit.

Mike Gifford:

Richard Pietro:
So when you jump on a streetcar or when you jump on a bus, there's auditory signals like you're approaching this stop like there's a... it tells you what stop you're coming to it and you cannot... there's also a visual cue that says you're approaching this stop. Even though I'm fully capable I'm not someone that I would identify as having disabilities. Those are extraordinarily helpful but the only reason why those are on streetcars and subways and buses is because of a lawsuit from disabled communities in Toronto, who said to the TTC, how are we supposed to know what stop we're at?

Mike Gifford:

Richard Pietro:
There's got to be better ways, so they introduce all this technology and it turns out that it helps a lot more than one out of seven people.

Mike Gifford:
It's absolutely true and I remember back when they started adding the automatic door openers to doors at Carleton University and seeing how many people were using those to get in and out of the open doors when they could just open the door. There's nothing stopping them from opening the door but they found it just that much easier just to tap the button than to carry on through.

Richard Pietro:
Or if they're carrying like groceries, that's one of those like sort of situational disabilities that you would think of. You got your hands full of groceries, you bump it with your butt or you bump it with your foot and

Mike Gifford:
Yeah, it's so useful to have that, and curb cuts are another one that people often point to. I think the reality is that we're all trying to juggle so many things, and at this time we're juggling more than ever as people are working from home, and often trying to balance kids and families and work and friends and there's so many things coming at so many different levels. We don't really have a quiet space to focus on the work at hand and be able to off and manage that. So trying to make sure that it's accessible and organized and really written in plain language, so that it's something that people can understand as they're managing their busy, chaotic, hectic lives. I think that's a really important part of accessibility and something that people often overlook.

Richard Pietro:
Okay, so we got to start thinking about wrapping up the episode here, but before we go I want to give you an opportunity. Is there anything that we haven't discussed yet that you want to bring up?

Mike Gifford:
I guess there's two things that I think are worthwhile going off and adding. One is that that we just recently added an accessible business hub, it's and that's essentially a space to organize information not just for businesses but for people with disabilities, and for organizations who are looking at understanding what the implications of COVID are for people with disabilities in Canada, and try have something that's specifically focused on Canadian legislation and best practices here for dealing with this virus. So that's that's a small initiative that we're involved in and excited about trying to look at ways for us to help better support a community of people with disabilities in Canada.

The other thing is we've got a newsletter that we've been putting out for the last seven months, and there's a lot of information there about accessibility and trying to raising awareness about this issue in the various different complexities behind it, because this is something that is a really deep issue and I'm an accessibility expert but there's so much that I don't know, there's so much that is beyond what I've had experience with. So sort of being able to point to other resources and to engage people with the process of learning and becoming part of the journey of looking at web accessibility and to improve their content over time.

Richard Pietro:
Well, you're doing some fantastic work and like you were mentioning you've been in the space for 20 years and I have a feeling you'll be in the space for a lot longer, and we need people like you in the community to keep sort of preaching the choir or not preaching to the choir but singing the gospel, that's the term I'm looking for. So we thank you for that and then please don't stop.

Mike Gifford:
Thank you Richard, you've organized some really amazing interviews and it has been really flattering to be amongst so many of the amazing people that you've brought on to your podcast, so I really appreciate this opportunity to talk with you.

Richard Pietro:
Oh, it was my pleasure and thank you for being part of the interview, and we also want to thank our audience for listening and as usual please leave us a rating or a comment on how to make the podcast better, or if there's any guests or any stories that you'd like to hear. So, until next time let's make it open.

Categories: FLOSS Project Planets

DrupalCon News: DrupalCon Global Mega Update: How the first Virtual DrupalCon will Look and Feel

Fri, 2020-06-05 19:01

In light of last week’s challenging events, we are reflecting on the importance that Drupal is global in scale and has the capability to promote hope through access. With the launch of Drupal 9, we're witnessing an increased interest in the Drupal project from around the world. This year, we have a unique opportunity with our virtual conference to reach a broader audience than ever before. Join us to learn and meet others online everywhere at DrupalCon Global from July 14-17th, 2020 (registration is open now). 

Categories: FLOSS Project Planets

Just a Gwai Lo: Drupal 9 Is Here, and the Pirate Module is Ready. Yarr!

Fri, 2020-06-05 09:45

In anticipation of the June 3rd launch of Drupal 9, I spent the weekend a week previous to the launch dusting off the Drupal module I'm most famous for: the Pirate module! What does it do, exactly? Like the WP extension, the Pirate module changes your site's content to pirate-speak on September 19th, International Talk Like a Pirate Day. I took the tagline ("Ah, Squiddy! I got nothing against ye. I just heard there was gold in yer belly. Ha ha har, ha ha ha har!"), which I buried in the configuration, from a non-pirate, sea captain Horatio McCallister. (Spoiler alert: He's not even a real sea captain.) It adds a text filter (previously known as an input format) to whatever field you specify, and on September 19th, that field's content is changed into various pirate-like sayings, interspersed with yarr! and avast! During Drupal's semantic versioning transition, versions 8.x-1.1 forward are intended to be fully compatible with Drupal 9.

The module started out as an internal ticket at Bryght in 2005. Boris Mann came across the Talk Like a Pirate plugin for WordPress, and since both Drupal and WordPress are written in PHP, he wanted it ported over. I took the ticket, 45 minutes before a colleague saw it and, almost 15 years later, it serves as the project I use to keep up with Drupal internals. Thanks to a patch from Snehal Brahmbhatt, later confirmed by a robot, I am able to legitimately claim that the module has full Drupal 9 compatibility. (Unlike the move from Drupal 7 to 8, Drupal 9 is an update, not a rebuild.) It has had an official release for all versions of Drupal since 4.6.

Over the weekend of updating the module for D9, I caught wind of DrupalSpoons, and without fulling realizing the implications, I applied to have the Pirate module mirrored there. (Moshe was excited!) After reading the DrupalSpoons announcement, I understood it to be an experiment in using GitLab as the issue queue and repository platform more directly than the Drupal core and contributed modules projects, which uses GitLab as an underlying provider for their official repositories. As long as code and issues are synced between the two, I don't have a problem pushing and responding in both spaces.

I'm looking forward to September 19th this year and years to come. Yarr!

Categories: FLOSS Project Planets

OpenSense Labs: Writing For Designers

Fri, 2020-06-05 04:55
Writing For Designers Tuba Ayyubi Fri, 06/05/2020 - 14:25

Writing is an exploration. You start from nothing and learn as you go.
- E. L. Doctorow

When you think of a writer, the first thing that would come to your mind is someone who writes novels, blogs, or poems, or maybe scripts. That’s where we go wrong. Today, content is required in every part of the web. Not only does it help your audience create a relationship with your brand but it covers every single aspect of the business. Upkeeping your content will help you upkeep your brand.

Most of the designers don’t see writing as a skill that is required for them. UX designs are not complete without writing. It is important for them to communicate in order to influence. 

Writing Can Be Hard

Writing is hard even for writers. There are times that you have to write about things that you don’t believe in or things that you don’t know about. The more you accept that it is a tough task, the more it becomes easy for you. 

Even though writing is hard, it doesn’t have to be painful. In school, we were asked to write essays which had a specific word count which made most of us assume that writing is a painful and unpleasant experience. 

A writer's job is to help in selling a product, but a designer who writes does more than that. He is responsible for the writing along with the design.

Essential Tips For A Designer To Improve Writing 

With the apps and websites becoming more complex, the need for clear guidance within them has grown. Words convey meaning, and writing in a concise manner helps the users to understand the message your design and content is trying to send. 

Writing will help you become a better designer and a better thinker. In a way, writing is similar to designing. In writing you have to decide which ideas you need in the content and which ones to remove. Similarly in designing, you look for features that your design needs or features that need to be removed from it. 

Writing in a clear and concise language helps the users to understand your content easily and get the desired information. Here are some ways that will help:

When a user searches for something on the web, they usually search for keywords. So, it is important to use clear and front-loaded heading to make it easier for users to reach your webpage. 

Use short sentences that give a clear message. Long and complicated sentences make the readers work harder to understand what they are reading. They would want you to get straight to the point instead of confusing them with complex words and sentences that are not needed. If you do this, it shows that you respect the readers time and attention.

Too many lines can confuse the users so it’s always better to use bullet lists wherever possible. Try to keep it short and clearly emphasize the points that you are trying to make. 

It is crucial to prioritize your content. When a user visits your webpage, he should be able to get the important information in the beginning and continue to read if they want to understand more of the content.

Source: The Ready | MediumReasons why writing makes you a better designer

Now that we know of a few tricks to make our writing clear and concise, let’s quickly look at how consistent writing makes you a better designer:


When you make a mistake or repeat a thought in your writing you will remove or change it and run your thoughts around it to get better ideas. Writing is great exercise for your mind and it helps you to stay organised and logical in your thinking. 


Another benefit of writing is that it makes you a better listener which is a crucial skill for designers. The more you read and explore the world of writing, the more you become involved with creativity.


Writing makes you creative! A designer with great writing skills brings out more creativity in his designs. Keeping a small notepad to make notes when you read, talk or observe something helps you gather ideas for designing. 

You can try the pen and paper magic. Writing things down using a pen and a paper benefits your brain. Writing everything down, whether it’s during a user interview, or you’re conducting research or testing, helps you remember and understand better.


Having clarity in your writing improves your understanding with the users. It not only helps you in supporting your reasoning but also to answer any sort of objections made on your content. 

It is important that the readers understand what you write. Your writing should be so clear that even a reader who is new to the subject is easily able to understand it. After you are done writing, you can ask a non-designer to give it a read so that you are able to get an idea if the audience will be able to understand your content. 


Writing makes you a better leader. When you start writing, you research the particular subject.  More and more writing will help you get clearer thoughts and explain your concepts better to your readers and listeners and support your reasoning. 


It is important to write friendly content so that when a user engages with your website he feels like he is engaging with a human rather than computers.

You can always keep trying and find resources to improve your writing skills. Read as much as you can. It is important to explore to keep your thoughts moving and enhance your creativity both as a designer and writer. 

blog banner blog image Drupal Designer Design Ideas Content Creation UI/UX Writers UX Design UX Writer Design writing Blog Type Articles Is it a good read ? On
Categories: FLOSS Project Planets

Matt Glaman: Boost your test writing productivity with PHPUnit for PhpStorm

Fri, 2020-06-05 00:30
Boost your test writing productivity with PHPUnit for PhpStormThursday 4, June 2020mglaman #
  • phpstorm
  • phpunit
  • drupal
Categories: FLOSS Project Planets

Kristen Pol: Drupal for justice

Thu, 2020-06-04 21:36

As I'm sure you already know, Drupal 9.0.0 was released yesterday which was the result of thousands of people in the Drupal community coming together to make Drupal even more amazing. The release has a new Drupal 9 landing page and a Drupal 9 video that highlights the journey of Drupal and the Drupal community. We are truly better together.

You are also most certainly aware of the tragic killing of George Floyd as a result of police brutality and the resulting protests throughout the United States and other parts of the world. As an American, it sickens me to see how the Black community is treated in the US. Systemic racism is real and real change is needed urgently. Watching the peaceful protests throughout my country, I feel outrage, sadness, and hope.


For better or worse, I've been on Twitter a lot over the last couple months, and during the last couple weeks, it's been difficult to reconcile the content in my Twitter feed. Violence and anger and grief from yet another senseless tragedy in the Black community. Excitement and pride and joy from years of hard work on Drupal 9. I've struggled to take pleasure in the Drupal 9 release while watching the heartbreaking events unfold in the news.

I wanted to write a post about how amazing Drupal 9 is and how amazing the Drupal community is. Yet I'm preoccupied with thinking how I can make things better, how I can make the world better. Knowing many in the Drupal community, I am certain I am not alone with these thoughts and feelings. I did some research and have found some reactions from the Drupal community in light of recent events that I would like to highlight.

read more

Categories: FLOSS Project Planets

Electric Citizen: What You Need to Know About Drupal 9

Thu, 2020-06-04 11:06

Happy birthday! Drupal 9 was officially released on June 3rd, 2020 and is available to start using today.

But what does this mean for the thousands of websites currently using Drupal 8 (and earlier)? Do you have to upgrade? Will your existing Drupal site no longer be supported? What is new and how different is it from the Drupal we know? 

Let’s take a look at these questions, review the upgrade process and highlight what’s new or changed with the latest version of this popular open-source CMS.

Categories: FLOSS Project Planets

Joachim's blog: Using lazy builders with Twig templates

Thu, 2020-06-04 10:04

Lazy builders were introduced in Drupal 8's render system to solve the problem of pieces of your page that have a low cacheability affecting the cacheability of the whole page. Typical uses of this technique are with entire render arrays which are handed over to a lazy builder.

However, in retrofitting an existing site to make use of caching more effectively, I found that we have a large amount of content that would be cacheable were it not for a single string. Specifically, we have a DIV of the details for a product, but also in that DIV there is the serial number for the user's specific instance of that product.

The whole of this product DIV was output by a Twig template. I could have ripped this up and remade it as a big render array, putting the lazy builder in for the serial number, but this seemed like a lot of work, and would also make our front-end developers unhappy.

It turned out there was another way. The render system deals with placeholders for lazy builders automatically, so you typically will just do:

$build['uncacheable_bit'] = [ '#lazy_builder' => [ 'my_service:myLazyBuilder', [], ], ];

but as I learned from a blog post by Borisson, you can make the placeholders yourself put them anywhere in the content and attach the lazy builders to the build array. This is what the render system does when it handles a '#lazy_builder' builder render array item.

One application of this is that you can pass the placeholder as a parameter to a twig template:

// Your placeholder can be anything, but using a hash like the render system // does prevents accidental replacements. $placeholder = Crypt::hashBase64('some_data'); $build['my_content'] = [ '#theme' => 'my_template', '#var_1' => $var_1, // This is just a regular parameter as far as the Twig template cares, // output with {{lazy_builder_var}} as normal. '#lazy_builder_var' => $placeholder, ]; $build['#attached']['placeholders'][$placeholder] = [ '#lazy_builder' => [ // The lazy builder callback and parameters. 'my_service:myLazyBuilder', [], ], ];

With this approach, the Twig template just needed some minor changes. It doesn't care about the lazy builder; all it sees is the placeholder string which it treats like any other text. The render system finds the placeholder in the '#attached' attribute, and handles the replacement when the rendered template is retrieved from the render cache.

The result is that we're able to cache much more in the render cache, and improve site performance.

Now I just have to figure out the cache tags...

Categories: FLOSS Project Planets

Centarro: Adding Custom Ajax Commands to the Add to Cart Form

Thu, 2020-06-04 09:34

Most eCommerce platforms support offering multiple product variations on a single product display page. These variations are often differentiated by named attributes, e.g. size, color, etc. In Drupal Commerce, we support all of this via Product and ProductVariation entities paired with ProductAttribute and ProductAttributeValue entities that define those differentiating attributes on each variation. Furthermore, you can fully customize your product data model by adding fields of any Drupal field type to your products and variations.

Unlike many other platforms, we support virtually unlimited variations and attributes for any product. It may seem like a small thing, but consider that Shopify, one of the largest eCommerce platforms in the world, only lets you add 3 such attributes to your products, only supports entering options via free-tagging, and offers no way to change how attributes are rendered on the Add to Cart form. This is all elementary in Drupal Commerce thanks to the strengths of Drupal's data model.

Read more
Categories: FLOSS Project Planets - Thoughts: Get Your Campaigns to Market Earlier with Drupal 8 & 9

Thu, 2020-06-04 06:00
 As the team which spends the most time creating amazing online customer experiences, shouldn’t we be talking about how Drupal 8 and 9 will end your marketing frustrations.
Categories: FLOSS Project Planets Blog: Drupal 9 - a new era for enterprise digital experiences

Thu, 2020-06-04 05:26

Drupal 9 represents the framework's most significant shift and paves the way for a new outlook on digital experiences. In this post, we give an overview of some of the most notable novelties with Drupal 9 and why they’re so groundbreaking for the digital sphere.

Categories: FLOSS Project Planets Drupal 9, it's here!

Thu, 2020-06-04 03:13

It’s here! June 3rd 2020 marks the official release date of the first production ready version of Drupal 9. It feels like Drupal 8 was only released a short while ago but it turns out it’s been 4.5 years already! The release of any new major version of Drupal is an exciting milestone in the project’s history and with a shiny new brand logo in place, Drupal 9 is ready to hit the ground running.

We are already well underway doing upgrade builds for our clients that are still on Drupal 7, and for those that are on Drupal 8 already, we will be shortly getting those running on Drupal 9 too.

With the release of Drupal 9 now out in the wild, you only have until November 2021 until Drupal 7 and 8 reach end of life (EOL). By that time those versions will no longer receive any further security updates. So it’s imperative that any Drupal 7 or 8 sites out there have plans to complete the upgrade to Drupal 9 in time before then because the work required for Drupal 7 sites to upgrade may be pretty significant. One of our developers Christian wrote an excellent article on upgrading your existing Drupal 7 site in May last year, so be sure to check that out if you haven’t already.

So what new features can you expect when upgrading a Drupal 8 site to Drupal 9? Well, nothing immediately obvious. The first release of Drupal 9 (9.0.0) contains the exact same features as the final minor release of Drupal (8.9.0), just with updated dependencies that Drupal 9 relies upon and there’s been a clear out of deprecated code from the 8.x codebase. This means Drupal can continue to improve in future with less baggage holding it back.

Work in progress 'Olivero' theme for Drupal 9

This is an exciting new front end theme currently in the works called ‘Olivero’ - which aims to give Drupal 9 a fresh modern default theme - and a new default admin theme called ‘Claro’. New and exciting features of Drupal 9 will start arriving with the release of Drupal 9.1 onwards...

At ComputerMinds we still believe strongly in Drupal as the number one platform of choice to build our sites upon and it’s evident that others share that view as there are now over 1 million websites powered by Drupal. It remains a very powerful platform which allows us to build exactly the kind of experience that a client wants, tailored to their specific needs, whilst being able to scale up to potentially handle millions of users and pieces of content. (If your site gets that big!)

Being open source itself and using other open source technologies like Symfony, Composer, Twig and PHPUnit to power it means it’s now more widely accessible than ever to other PHP developers that may have experience with other frameworks using some of the same underlying technology.

Whether it’s powering nonprofit websites such as the Rainforest Alliance, Government websites such as the Colorado General Assembly, providing a superior CMS editing experience for a global magazine like The Economist, helping boost Tourism numbers to Fiji, promoting your favourite music artist like Bruno Mars or helping you to find your favourite recipe on BBC Good Food, Drupal really can do it all.

Drupal 9 is available to download right now from so what are you waiting for? Go check it out! (Of course those of you with a properly managed workflow will be upgrading from 8 to 9 using composer, so get that composer file updated!)

If you’ve liked what you’ve read and feel like you’re ready - or in a position - to start thinking about a site upgrade, why not start a conversation with us today by using our contact form. We’d love to hear from you and look forward to seeing what benefits we can bring to your site.

Categories: FLOSS Project Planets

Dries Buytaert: Drupal 9.0.0 released

Wed, 2020-06-03 15:12

Today, we released Drupal 9.0.0! This is a big milestone because we have been working on Drupal 9 for almost five years.

I updated my site to Drupal 9 earlier today. It was so easy, it's hard to believe.

As I write this, I'm overwhelmed by feelings of excitement and pride. There is something very special about building and releasing software with thousands of people around the world.

However, I find myself conflicted between today's successful launch and the tragic events in the United States. I can't go about business as usual. Discrimination is the greatest threat to any community, Drupal included.

I have always believed that Drupal is a force for good in the world. People point to our community as one of the largest, most diverse and most supportive Open Source projects in the world. While we make mistakes and can always be better, it's important that we lead by example. That starts with me. I am committing to the community that I will continue to learn more, and fight for equality and justice. I can and will do more. Above all else, it's important to stand in solidarity with Black members of the Drupal community — and the Black community at large.

During this somber time, I remain incredibly proud of our community for delivering Drupal 9. We did this together, as a global community made up of people from different races, ethnicities, genders, and national origins. It gives me some needed positivity.

If you haven't looked at Drupal in a while, I recommend you look again. Compared to Drupal 8.0.0, Drupal 9 is more usable, accessible, inclusive, flexible, and scalable than previous versions. We made so much progress on such important things:

  • Drupal 9 is dramatically easier to use for marketers
  • Drupal 9 is easier to maintain and upgrade for developers
  • Drupal is innovating with its headless or decoupled capabilities

It's hard to describe the amount of innovation and care that went into Drupal since the first release of Drupal 8 almost five years ago. To try and grasp the scale, consider this: more than 4,500 individuals contributed to Drupal core during the past 4.5 years. During that time, the number of active contributors increased by almost 50%. Together, we created the most author-friendly and powerful version of Drupal to date.

Thank you to everyone who made Drupal 9 happen.

Categories: FLOSS Project Planets