Mike Herchel's Blog: DrupalCon Prague Recap

Planet Drupal - Fri, 2022/09/23 - 10:00pm
DrupalCon Prague Recap mherchel Fri, 09/23/2022 - 16:00

clemens-tolboom commented on issue mdn/dom-examples#134

On github - Fri, 2022/09/23 - 11:19am
clemens-tolboom commented on mdn/dom-examples#134 Sep 23, 2022 clemens-tolboom commented Sep 23, 2022

I'm not sure I get this closing ... I do not see restoration of the commits in https://github.com/mdn/dom-examples/commits/main/web-speech-api So i…

clemens-tolboom commented on pull request mdn/webaudio-examples#51

On github - Thu, 2022/09/22 - 7:53pm
clemens-tolboom commented on mdn/webaudio-examples#51 Sep 22, 2022 clemens-tolboom commented Sep 22, 2022

I myself use VSCode with the Live Server v5.7.9 from Ritwick Dey. WebStorm has similar feature. Even python3 -m http.server could do the jobs (apar…

clemens-tolboom commented on pull request denoland/deno_std#1793

On github - Thu, 2022/09/22 - 11:48am
clemens-tolboom commented on denoland/deno_std#1793 Sep 22, 2022 clemens-tolboom commented Sep 22, 2022

Not sure I should have closed this one ... the fix done in #1792 just ignores all non file/dir types (ruling out "sockets treeWalk searches"; imho …

The Drop Times: DrupalCon Prague: Project Browser and Automated Update

Planet Drupal - Thu, 2022/09/22 - 9:54am
At the moment, you need to go to Drupal.org to find modules to add to your project. What if the modules were available within your Drupal project and could be installed with a simple push of a button in the user interface?

The Drop Times: DrupalCon Prague: The GitLab Acceleration Initiative

Planet Drupal - Thu, 2022/09/22 - 8:48am
The current way the issue queue is organized can be pretty frustrating for module maintainers. There is little room for project management or prioritizing issues. To solve this, the community created ContribKanban. With GitLab, each project gets Kanban boards out of the box to help manage the issues.

Promet Source: Next Level Tools that Fast Track Drupal 9 Migrations

Planet Drupal - Thu, 2022/09/22 - 1:05am
When the Council on Foundations set out to migrate its site to Drupal 9, along with a Drupal website redesign, the stakes were high for ensuring that the new site furthered strategic objectives and reflected the value and benefits of membership. The Council's website site serves as the primary channel for interaction with membership, and overall enhancements to the user experience were required. 

Drupal Association blog: Drupal accelerating innovation for an open web for everyone

Planet Drupal - Wed, 2022/09/21 - 6:37pm

Photo by Paul Johnson - Driesnote at DrupalCon Prague

Drupal is an open source project that helps foster an open web for everyone. At DrupalCon, project lead and founder Dries Buytaert laid out the latest developments for Drupal. Drupal’s authoring experience and headless capabilities are among the key features. Drupal will see an extra focus on accelerating product innovation and sustaining Drupal’s market growth. 

Drupal has a strong market position and is growing steadily. It empowers digital experiences for many top organizations worldwide, including Lufthansa and The European Government. With its API-first approach, Drupal is an ideal choice for organizations tying their CMS into their back office. Headless frameworks accelerate this even more. At DrupalCon in Prague, Dries Buytaert talked about Drupal improvements and innovation driving Drupal’s growth further.

Open Web

Drupal’s vision remains based on an open, flexible, and accessible platform that allows individuals and organizations alike to own their own data. This is something that has become very important in a world where big tech owns people’s data. Using open source gives full control over the digital experience you want to offer to people, whether it harvests data or not. Proprietary systems often give no control and lock in on privacy and limit creative possibilities. You can’t fix accessibility issues when you use proprietary systems. Open source gives full control to developers and organizations alike. There is no limit to what you can do. 

Dries Buytaert: “My personal belief has always been not to collect people’s data and personalities. I aspire to the privacy of a printed book.”

Drupal has commitments to various ingredients for an open web allowing organizations to own their own digital experience. Scalability, accessibility, and reliability are important cornerstones for Drupal. Good software cares about end users and helps people. This will remain at the heart of the Drupal project.


Moving Drupal’s code from its homegrown environment to Gitlab eliminates friction points for the open source community to contribute to Drupal and it will improve collaboration. Automated testing will offer instant review feedback which is a huge impulse for Druapl’s product innovation.

Buytaert finally underscores the importance of the work being done on Drupal by thousands of Drupal professionals worldwide. The vast support base helps to get started with Drupal and support organizations who believe in an Open Web. People are attracted to good software. It’s an important reason why people adopt Drupal, whether it's for business purposes or making a career. 

Drupal 10

Drupal version 10 will be scheduled to release in December 2022. Drupal 9 users will have 11 months to upgrade to Drupal 10. This is because of underlying third-party dependencies that will end support by then. 


DrupalCon is an international conference where individuals and organizations meet to talk about Drupal and exchange experiences. Over 1200 people meet in person in Prague this week at DrupalCon and collaborate on the project. The Drupal Association is a non-profit organization that caters to the needs of Drupal and its worldwide community. It focuses on helping the growth of the Drupal community and supporting the project’s vision to create a safe, secure, and open web for everyone. Are you using Drupal or are you a Drupal community? Feel free to connect! 



Electric Citizen: Cookie Compliance and Privacy

Planet Drupal - Wed, 2022/09/21 - 6:09pm

You probably noticed it for the first time several years ago. You were trying to visit some website or online article–but before you could read or do anything else, there was suddenly a pop-up window or banner blocking you.

And the message wasn’t trying to sell you anything. It was simply about “cookies”. Most followed some version of the following– ”this site uses cookies, and I hope you’re ok with that.” They often didn’t say more than that. Just that this website relies on cookies and they thought you should know. Don’t like it or understand what they’re talking about? Well, too bad.

I guess you could always turn and run, but then you wouldn’t get to read or find whatever it was you were looking for. As they advanced in technology, these “cookie compliance” banners or “cookie walls” have become a little more useful. Now they may include a lot more info, such as a list of the different types of cookies being used, and what they are for. Even better, they often now give you the option to say “no, I don’t want your cookie” (aka, don’t track what I do).

But where the heck did these come from and why did it seemingly start out of the blue? We never got asked this before. Ever wonder why everyone started asking you to “approve” their use of cookies on websites? And perhaps equally important, should you be doing this on your own websites? Let’s take a run through the cookie madness.


Droptica: How to Speed Up a Website on Drupal? Lazy-load Module and its Possibilities

Planet Drupal - Wed, 2022/09/21 - 11:09am

The website loading speed is a very important aspect in the user's perception of the portal. Then how can you speed up the loading of a website that has a lot of media or iframes? One of the best solutions is to take advantage of lazy loading. The easiest way to use this method in Drupal is to use the Lazy-load module.

What is the website loading speed?

It’s the time required to display a website to a user, calculated from the moment the link is clicked. It depends on the amount of text, embedded elements (such as iframes), scripts, and media (images, videos), where the size also matters. Often the media and embedded elements take the longest to load. On big websites, many elements are invisible to the users until they scroll the website, yet they are loaded before the part that fits on the display is shown.

Google has introduced SEO guidelines in which loading speed is taken into account when positioning a website. Therefore, it’s worth taking care of the smooth display of web pages. Two significant metrics in terms of the website loading speed are TBT (Total Blocking Time) and LCP (Largest Contentful Paint). TBT indicates the time it takes for long tasks to complete, while LCP determines after how long a website's content is likely to be usable. Both metrics are largely influenced by the number and size of loaded items.

Loading the website on Drupal - Lazy-load module

Newer versions of Drupal (v9.1.0 and above), along with commonly used browsers (Chrome from v76, Firefox from v75), support lazy-loading right after installation. However, you have to reckon with the fact that many websites use older versions of Drupal. Most often, these are websites that have been developed for years, and therefore often have a lot of data (including media and embedded elements), the long loading of which worsens the perception of the portal. In such cases, it’s worth checking whether lazy loading can be used to reduce the loading time of the website and the transfer needed to load visible elements.

Released on April 10, 2018, the Drupal Lazy-load module allows you to limit the loading of the abovementioned elements to only those required at a given time. This reduces the website loading time and, above all, reduces the consumption of transmission. Due to its usefulness, the module is used by more than 10 thousand websites. It has versions for both Drupal 8+ (the latest version 8.x-3.11 as of January 31, 2022) and Drupal 7 (the latest version 7.x-1.4 as of April 22, 2019).

It’s commendable that Osman Gormus is the sole maintainer of the project, and yet the module hasn’t lost support since its creation.

To illustrate the effectiveness of the Lazy-load module, here are the test results on a website containing 36 iframes (of which 6 are visible in the loaded area) and 116 images that are out of view.


In the above example, the user is able to see the website almost fifty percent faster when using the module. Moreover, the link savings is more than 98%. Of course, the results for each website will strongly depend on the size and number of elements outside the loading area. While the example is grotesque (we are unlikely to encounter a website with such a large number of images or embedded elements), it’s meant to illustrate how important the use of a lazy loading strategy can be in the perception of a website.


The module uses additional libraries, so the installation requires taking them into account. The easiest and fastest way is to use the composer.json file for this. In a few steps, we can perform a full installation of the module, including dependencies.

  1. In the repositories section, we add the following: { "type": "composer", "url": "https://asset-packagist.org" }
  2. Then we need to run the command (we add the -W option at the end if necessary): composer require drupal/lazy:^3.0 bower-asset/lazysizes:^5.1 oomphinc/composer-installers-extender:^2.0 --no-update
  3. We need to edit the extra section in composer.json to include the following: "installer-types": ["bower-asset", "npm-asset"], "installer-paths": { … "web/libraries/{$name}": ["type:drupal-library", "type:bower-asset", "type:npm-asset"], … }
  4. Now we can run the composer update command.

Full instructions can be found in the official documentation.

In case you need a manual installation, download the module files from its website on Drupal.org and the library available on GitHub and extract them one by one to the folders of modules/contrib/lazy and libraries/lazysizes. Full instructions can be found on the module website.

How to use the Lazy-load module?

Important: The module has its own configuration located under the path of admin/config/content/lazy. It’s divided into 3 tabs.

1. General settings
  1. Prefer native lazy-loading - checking the option will force the use of lazy loading embedded in the browser.
  2. skipClass - elements that have the class entered won’t use lazy loading.
  3. Placeholder image URL - image inserted in the place of loaded objects.
  4. Enable default CSS effect - enabling default transitions when loading objects, using CSS with appropriate classes.
  5. Use minified versions - checking this option will cause the use of minified versions of scripts.
  6. Lazysizes library path, or URL - path or address pointing to the Lazysizes library (required by the module).
2. Visibility
  1. Pages - the paths of websites to use or have disabled lazy loading, dependent on the checkbox from point 2.
  2. Enable lazy-loading ONLY on specified pages - the option determining whether the paths entered in point 1 should have lazy-loading disabled (unchecked option), or whether it should be active only on the indicated websites (checked option).
  3. Disable lazy-loading for administration pages - blocks the execution of the module script on administrative websites.
3. Lazysizes Configuration
  1. lazyClass - a class designating the elements that should be considered for lazy loading.
  2. loadedClass - a class assigned when the element is loaded.
  3. loadingClass – a class assigned when the element is being loaded.
  4. preloadClass - a class designating the elements that should be loaded after "onload”.
  5. errorClass - a class assigned to the elements whose loading failed to complete correctly.
  6. autosizesClass - a class designating the elements that will be automatically scaled.
  7. srcAttr - the attribute of src
  8. srcsetAttr - the attribute of srcset
  9. sizesAttr - the attribute of sizes
  10. minSize - for use with data-sizes=”auto”. The minimum image size to calculate the attribute of sizes.
  11. customMedia - an object that is an alias for mapping various media queries. It can be used to separate/centralize the implementation (layout) of multiple specific media queries from the attribute of source[media] (content/structure) through the creation of tagged media queries.
  12. init - determines the initialization of the Lazysizes library. In some cases, it may be required to disable automatic initialization. Manual initialization is then required by using lazySizes.init();.
  13. expFactor - a factor indicating how many assets should be loaded when no valid action is performed.
  14. hFac – a factor analogous to expFactor, but in horizontal orientation.
  15. loadMode - loading mode. 0 - no loading, 1 - loading of visible elements only, 2 - loading of visible and close elements, 3 - loading of visible, close and catching elements within the range of expansion by expFactor. During onload, the option is automatically set to 3.
  16. loadHidden - determines whether hidden elements should also be loaded. LazySizes loads such elements with a delay.
  17. rlcTimeout - delay option for requestIdleCallback.
  18. throttleDelay - delay used for listeners.
  19. Plugins - selection of plugins that should be attached. The full specification and description of plugins can be found on Github.

In order to attach lazy loading, editing the display of the fields for which its use is needed is required. For example, you want to enable the addition of images that support lazy loading on the page type websites. To do this, you need to perform the following steps:

  1. Select Structure -> Content Types -> Content Page -> Manage Fields in the admin panel (admin/structure/types/manage/page/fields).
  2. Add a new field (e.g. of the Image type).
  3. Go to display management. 
  4. Expand the field options (click the cog symbol on the right-hand side).
  5. In the expanded settings, check the box of Enable lazy-loading.


From this moment on, all images added in this field will use lazy loading. What's more, classes will be added, set in the module's configuration (admin/config/content/lazy) in the Lazysizes configuration tab, discussed earlier in the Lazysizes configuration section.

With the above settings, we can add effects to elements with lazy loading, depending on their status, using styling in CSS files (such as blurring images that are still being loaded or adding a red border to elements that failed to load). Below is an example with two images – one fully loaded (top) and one in the process of loading (bottom):

For embedded content, added within the content, be sure to add the attribute of loading=”lazy”, as in case of iframe:


The module adds the hook of hook_lazy_field_formatters_alter, which allows adding formatters, not yet supported, to image-based fields.


function hook_lazy_field_formatters_alter(array &$formatters) { $formatters[] = 'xyz_module_field_formatter'; return $formatters; } Drupal Lazy-load module - summary

Using the Drupal Lazy-load module significantly reduces the loading time of websites that have multiple media, which are outside the visible area, immediately after they are loaded, and reduces user data transmission. Lazy-load is useful for older versions of Drupal, as newer versions have native lazy-load support embedded. However, even for them, this module is noteworthy for its configurable styling of elements, depending on their current loading status.

Are you wondering if the Lazy-load module is right for your website? We maintain and develop a lot of websites on Drupal, so applying our experience, we’ll be happy to recommend which solution will be best for your website.


Lullabot: CSS Features We’re Thankful For and CSS Features We Need

Planet Drupal - Tue, 2022/09/20 - 9:31pm

When Microsoft killed off Internet Explorer in June of 2022, front-end developers breathed a sigh of relief. IE's death meant that the development of lots of exciting features in CSS could now be fully supported across all major browsers (Chrome, Firefox, Safari, Edge) without worrying about IE compatibility.


Drupal Association blog: Drupal Founder, Dries Buytaert, to Keynote GitKon 2022

Planet Drupal - Tue, 2022/09/20 - 9:37am

GitKraken, the world’s leader in creating premier Git tools for software developers, will host the 2nd annual GitKon tech conference 11-13 October 2022. This free, virtual event will bring together developers, technical teams, managers, executives, and thought leaders united by a passion for software development, team collaboration, and Git. 

The event will offer 36 sessions across three days of content with speakers from companies like GitHub, GitLab, Microsoft and VS Code, Atlassian, Amazon, and more. Each day, 12 tech experts will have 15 minutes to present their thoughts on topics ranging from DevOps, distributed collaboration, security, developer skills, emerging trends, and more. 

Registration for GitKon is completely free on gitkon.com.

Founder to Share Drupal Story at GitKon Keynote

One of the most anticipated sessions of this year’s event is the keynote presentation on Tuesday, 11 October. Drupal Founder and Acquia CTO/Co-Founder, Dries Buytaert will present: From the Dorm Room to The White House - How Drupal Grew and Became the Standard for Open Source Web Experiences.

In this talk, Dries will tell the Drupal story, including how the team was able to achieve success ultimately by embracing open source. 

Bringing people together under a shared passion is at the heart of what Drupal does,” says Dries. “GitKon is a great venue for sharing our story, and I’m excited to pass along lessons learned to show more teams that they can also achieve corporate success by supporting open source. 

Founded in 2001, Drupal is a free and open source web content management system that has scaled to become a standard tool in the industry. While Dries initially created Drupal as a simple message board that could be easily edited and managed by his college community, the tool quickly gained popularity with developers and currently powers millions of websites worldwide. 

GitKraken CEO, Matt Johnston is a former colleague of Dries, joining his team after Acquia acquired Mautic, an open source marketing automation leader for which Johnston served as the CEO before joining GitKraken. 

I’ve known Dries for a decade and had the pleasure of working directly with him on Acquia’s Marketing Cloud solutions,” says Matt. “His ability to balance the needs of Drupal and Acquia–while simultaneously scaling both–is a rare feat. Dries’ talk will be an awesome opportunity for GitKon attendees to hear about open source innovation.

Mission to Create a Collaborative Future 

The theme of GitKon 2022 is Creating a Collaborative Future, a mission at the heart of what Drupal does and stands for, with collaboration through the open source community leading Drupal’s success and now Acquia’s mission.

To hear Dries and other tech experts from around the world, register now for free at gitkon.com.


Talking Drupal: Talking Drupal #365 - Event Platform

Planet Drupal - Mon, 2022/09/19 - 8:00pm

Today we are talking about The Event Platform with Kaleem Clarkson & Martin Anderson-Clutz.


  • Where the idea originated
  • What are the main goals
  • What does it do out of the box
  • Is this a Conference Organizing Distribution (COD) Replacement
  • Why make a module and not a distribution
  • Does this follow the new recipe or starter kit concept
  • Which theme do you target
  • What is on the roadmap
  • Where can the event platform team use help
  • Anything else
Resources Guests

Kaleem Clarkson - kaleemclarkson.com @kaleemclarkson Martin Anderson-Clutz - @mandclu


Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi


Smart Date This module attempts to provide a more user-friendly date field, by upgrading the functionality of core in a number of ways.


Lemberg Solutions: How to Use Drupal Layout Builder to Make Newsletters Look Good

Planet Drupal - Mon, 2022/09/19 - 2:00pm
Layout Builder (LB) is a Drupal feature enabling the creation of visual layouts fast and painlessly. It gives you flexibility in customizing your content look, making it structured and user-friendly. With this tool, you can also access a visual preview that will help you understand how all the blocks on your website will be compatible with each other. On top of that, ecommerce websites require consistency in the visual part to make a user's journey easy and interactive. But Drupal Layout Builder can give you so much more than just a compelling UI.

Morpht: Announcing the Ayrshare - a Drupal module for social posting

Planet Drupal - Mon, 2022/09/19 - 12:24pm
Morpht has supported the development of the Ayrshare module - an integration using a powerful API that effortlessly enables you to send social media posts.

Drupal Association blog: Drupal Association board meets in Prague, before DrupalCon

Planet Drupal - Mon, 2022/09/19 - 2:00am

Prague, September 19, 2022

Drupal is one of the largest open source projects in the world. It has a lively community of tens of thousands Drupal professionals worldwide. Many companies including Tesla and Amnesty International rely on Drupal for their digital experiences. The largest Drupal conference called DrupalCon is back in person for the first time in three years. The Drupal Association caters to the needs of Drupal and its worldwide community. The board of directors met ahead in Prague to make plans and work on strategies sustaining Drupal’s growth.

DrupalCon is an essential opportunity for individuals and organizations in the Drupal ecosystem, a key way to support the programs of the Drupal Association as a non-profit, and the place where many friendships, connections, major Drupal contributions are made, and project milestones are achieved.

Besides regular virtual meetings, DrupalCon is a great opportunity for the board members to meet in person and brainstorm ideas. The board retreat is where they set out goals for the leadership team to work in the coming year. This time is special also because the board is in the process of hiring a new CEO, who will be introduced in October. 

The process of hiring a new CEO was done carefully, which is now in its final stages. Other topics on the agenda were marketing strategies and ways to accelerate innovation for Drupal. Close collaboration with the communities worldwide will be another prime focal point for the coming year. The European Drupal community is very diverse and lively, DrupalCon Europe will bring continents working with Drupal closer together. 

Drupal’s position has never been stronger, with Drupal empowering digital platforms all over the world. Drupal’s authoring experience has seen some great advancements in the past year. The total cost of ownership and headless capabilities of Drupal are beyond many of its competitors, particularly as part of an open source ecosystem. With headless frameworks rapidly gaining momentum, Drupal’s strategy for 2023 includes focus on innovation and user experience. Drupal’s roadmap will be laid out by project lead Dries Buytaert at his keynote at DrupalCon.

“I'm excited that DrupalCon Europe is back in person and looking forward to meeting the global community in Prague. DrupalCon is the heartbeat of Drupal innovation, a place to grow your network and skills, and a community homecoming. I hope you join us in Prague!”

<-- Dries Buytaert, Drupal Founder, and Project Lead.

The Drupal Association is the non-profit organization focused on accelerating Drupal, fostering the growth of the Drupal community, and supporting the project’s vision to create a safe, secure, and open web for everyone. Are you using Drupal or are you a Drupal community? Feel free to connect!


#! code: Drupal 9: Debugging Cache Problems With The Cache Review Module

Planet Drupal - Sun, 2022/09/18 - 7:43pm

Drupal has a robust and dynamic cache system that allows complex pages to have different parts of it cached in different ways.

Having a cache means that Drupal doesn't need to go back to the database and ask all the elements of the page to re-render everything for every page request. The results of the render can be stored in a cache and served much faster than having to recreate them again.

You might have a page that displays content from a node and contains a few blocks to show menus, search forms, share links, and similar. Each part of this page can be cached in different ways and all of this information bubbles up to the aggregate page cache.

Tracking down issues in the cache system can be a complex task. If one element on your page is not caching correctly then this can cause the whole page (and sometimes the entire site) to not be cached properly.

Solving these problems is very important but can be a time consuming process. The best place to start is by turning on debugging headers and looking to see what sort of cache tags are being generated. Performance analysis will tell you where the most database reads are coming from, which is usually a good indication of poorly cached content.

This is where the Cache Review module comes in. The module has been designed to decorate the outgoing page request and add lots of cache information to the page.

It's never to be used in production as it does create a lot of output on the page (even for anonymous users) but it is a very useful tool in getting to grips with what your cache is doing.

Read more.


Morpht: Announcing the Quickchat AI module

Planet Drupal - Sun, 2022/09/18 - 2:00pm
Morpht has developed the Quickchat Drupal module to allow for easy integration into Drupal, making it possible for editors to train the chatbot with content from within the CMS.

Centarro: Drupal Commerce development sprint at DrupalCon Prague

Planet Drupal - Fri, 2022/09/16 - 6:49pm

It's been three years since DrupalCon Amsterdam, the last time we were able to bring our American and European teams together at a DrupalCon. In remote work years, that's practically an eternity, so we're stoked to be back together again during DrupalCon Prague. 🤘🏼

This time around we decided to "focus on us" after a busy summer of client project launches coordinated around vacation schedules. Instead of staffing a booth, we'll be hosting a weeklong Drupal Commerce maintenance sprint focused on various Commerce Core, Commerce Kickstart, and Centarro certified project issues.

Feel free to reach out if you'd like to join us physically or remotely. If you have a patch ready for review already in one of the related queues, tag it with KickstartPrague2022 and we'll do our best to take a look!

Read more