Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 42 min 34 sec ago

Chromatic: Taxonomy Term Shuffles - Hook Updates with Batch API in Drupal 7

14 November 2017 - 8:00am

Clare breaks down how to reassign nodes from one taxonomy term to another. Code samples included.

Categories: Drupal

Promet Source: WordPress vs. Drupal for Web Accessibility, SEO & Performance

14 November 2017 - 1:08am
Wordpress vs. Drupal - How do I choose a CMS for my web development project? The age old question - or at least decades old question of Wordpress vs. Drupal is one we encounter on an almost daily basis. When deciding between the two content management systems, it may not be a question of which is better, but rather which is the best fit for your specific project. In this article I'll walk through some of the key factors to considering when deciding between Wordpress and Drupal for your web development projects.
Categories: Drupal

Appnovation Technologies: Guaranteed Delivery using Dead Letter Queue

14 November 2017 - 12:00am
Guaranteed Delivery using Dead Letter Queue When an enterprise implements messaging, Guaranteed Delivery (Messages are persistent and are not lost even when the system crashes) becomes an imminent requirement. When implementing messaging, ensuring Guaranteed Delivery means answers to the following: Where does the message get sent when a condition is not met? Can each individual ...
Categories: Drupal

CiviCRM Blog: CiviCRM Entity 2.0-beta-11 Released - New Admin config page

13 November 2017 - 2:52pm

Today, Skvare has released a new version of CiviCRM Entity, 2.0-beta11.  This release contains a new feature, an admin configuration page which allows site administrators to disable exposure of entity types to Drupal.

CiviCRM Entity is a Drupal module which exposed CiviCRM API entity types as native Drupal entity types, providing Views, Rules, Entity Reference field integration, and Drupal native pages and forms for each. It supports both CiviCRM 4.6 LTS and CiviCRM 4.7.

Previous versions of CiviCRM Entity allowed developers to control access to Drupal based pages and forms for entity types, but there was no way for administrators to control what entity types were available in Views, Rules, or Entity Reference fields. As CiviCRM Entity has evolved over the past 2 years, over 45 entity types have been supported, including all the major financial record types. There are cases where many of these entity types are not used in Views, Rules, etc.., and admins may not want to make data of these entity types available to be used in Views by lower-ranking administrative users.  Disabling an entity type in CiviCRM Entity does not affect the Core Views integration. However it will not make any of the additions that CiviCRM Entity provides, and for types not supported by CiviCRM Core, integration can now easily be toggled on/off.

Having all entity types enabled can affect performance in some aspects. Generally, this does not affect cached page load for normal users, but anytime you clear the cache, or the Views cache, having 45 entity types can cause cache rebuild to be intensive, not to mention all the additional menu paths that are generated for the Admin menu. Disabling entity types that you do not use will streamline admin user performance, and make the site in total that much faster by reducing memory footprint.

For existing users of CiviCRM Entity, the module can be upgraded as per Drupal standard, and there are no necessary config changes to make.  There are updates that need to be run by going to "/update.php" or running "drush updatedb" from the command line. These updates simply set up a configuration variable, and do not affect the CiviCRM database.  All available entity types are enabled by default for new or upgraded installations.

All submodules that are packaged with the CiviCRM Entity will automatically enable entity types that are required by the submodule and will enforce that these entity types remain enabled as long as the submodule is enabled.

Usage

You will find an admin configuration page at "admin/structure/civicrm-entity/settings". A user with a role with 'administer CiviCRM Entity' permission is required to access and manage the settings on this page.

It is important to remember to enable all entity types used by your site's configuration and 3rd party modules. This page does not check if an entity type is required by an existing View, Rule, Entity Reference field. Disabling an entity type will break functionality in any rule, view, or field that requires it, so proceed with caution.  However, re-enabling will restore functionality for those entities.

For developers of 3rd party modules or custom modules making use of CiviCRM Entity, you are responsible for ensuring an entity type is always available. This requires only a hook_form_alter() implementation to disable the necessary configuration page checkbox, or adding a validation or submit handler to the form.

Future

We consider CiviCRM Entity for Drupal 7 to be feature complete, and it has been quite some time since there was a major bug found. We plan to release a non-beta stable 2.0 version at the end of this year. This upcoming stable release will be regarded as a Long Term Support release, and any major changes or updates will move to a 3.x branch. The primary focus of new development will now shift to the Drupal 8 version development. We will continue to support the 7.x-2.x branch throughout the life of Drupal 7 for bug fixes and minor feature updates.  We will support for CiviCRM 4.6 LTS for its lifetime, and most likely beyond.

DrupalExtensions
Categories: Drupal

Joachim's blog: Drupal Code Builder unit testing: bringing in the heavy stuff

13 November 2017 - 1:49pm

I started adding unit tests to Drupal Code Builder about 3 years ago, and I’ve been gradually expanding on them ever since. It’s made refactoring the code a pleasant rather than stressful experience.

However, while all generator types are covered, the level of detail the tests go into isn’t that deep. Back when I wrote the tests, they mostly needed to check for hook implementations that were generated, and so quick and dirty regexes on the generated code did the job: match 'mymodule_form_alter' in the generated code, basically. I gradually extended those to cover things like class declarations and methods, but that approach is very much cracking at the seams.

So it’s time to switch to something more powerful, and more suited to the task.

I’ve already removed my frankly hideous attempt at verifying that generated code is correctly-formed PHP, replacing it with a call to PHP’s own code linter. My own code was running the generated PHP code files through eval() (yes, I know!) to check nothing crashed, which was quick and worked but only up to a point: tests couldn’t create the same function twice, as eval()ing code that contains a function declaration brings it into the global namespace, and it didn’t work at all for classes where while tests were being run, as the parent classes in Drupal core or contrib aren't present.

It's already proved worthwhile, as once I'd converted the tests, I found an error in the generated code: a stray quote mark in base field definitions for a content entity, which my approach wasn't picking up, and never would have.

The second phase is going to be to use PHPCS and Drupal Coder to check that generated code follows Drupal Coding Standards. I'm currently getting that to work in my testing base class, although it might be a while before I push it, as I suspect it's going to complain about quite a few nipicks in the generated code that I'll then have to spend some time fixing.

The third phase (this is a 3-phrase programme, all the best ones are) is going to be to look into using PHP-Parser to check for the presence of functions and methods in the code, rather than my regex-based approach. This is going to allow for much more thorough checking of the generated code, with things such as method order in the code, service injection, and more.

After that, it'll be back to some more refactoring and code clean-up, and then some more code generators! I have a few ideas of what else Drupal Code Builder could generate, but more ideas are welcome in the issue queue on github.

Tags: drupal code builder
Categories: Drupal

Drupal Association blog: Intellect, fire, water, and medieval castles at Lutsk Drupal Camp 2017

13 November 2017 - 8:43am

This story is reposted from Drudesk.com thanks to Drupal Ukraine Community.

Hello everyone! Drupal Ukraine Community is thriving. Last year’s Lviv Drupal Camp 2016 seems like only yesterday, but now it’s time to share our latest camp with you. This is the story of Lutsk Drupal Camp 2017, the annual camp for all Ukrainian Drupalers. We promise you a really interesting story. After all, who’s able to tell you more about the event than the organizers — the teams from Drudesk and InternetDevels, powered by Drupal Ukraine Community? Let’s go!

Lutsk Drupal Camp 2017 and its blue ocean

The official logo for Lutsk Drupal Camp 2017 was the Druplicon’s “infinity” eyes with scenes of Lutsk city reflected in them. It also resembled a fish to many. At Lutsk Drupal Camp, the blue color of the eyes was everywhere — on T-shirts, badges, backpacks, notebooks, and so on. Wherever you stepped, the blue wave carried you. And the main hero in this story was our favorite “drop” — Drupal!

+1 step to DrupalCon Ukraine

It’s no secret that the Ukranian Drupal community dreams about hosting DrupalCon in Ukraine some day. Holding Drupal Camp in the ancient and cosy city of Lutsk is one more step to holding DrupalCon in Ukraine!

Lutsk Drupal Camp 2017,  the main event

Starting with the morning’s registration, it was clear that the day would turn out incredibly positive. The organizers (in dark blue T-shirts) worked like busy bees taking care of every small detail and were ready to solve any possible problem.

Luckily, there were no problems to solve! Well, okay there was just one. The speakers at Lutsk Drupal Camp 2017 were so awesome that it was hard to choose which sessions to attend! They touched upon the most interesting and modern aspects of Drupal development, asked about the audience’s experiences and shared their own.

The concentration of famous speakers per square meter of space was sometimes so high it made you dizzy. They were also glad to receive the certificates of appreciation from us!

During Lutsk Drupal Camp 2017, there was also a time to catch up for old and new friends.

And even for some sports.

Of course, Drupalers are driven by inspiration, but some additional snacks never go amiss.

But this was just a rehearsal before the main lunch we all had together at Lutsk Drupal Camp 2017.

Of course, it isn’t Camp without Drudesk and InternetDevels team taking photos together.

And with all the guests as well.

Lutsk Drupal Camp 2017 and the flames of our love for Drupal

After all the speeches finished, the sponsors named the winners of their prize drawings, and the closing ceremony summed up this big day, there was more  to look forward to. The big party in the XIV century medieval Lubart’s castle was a chance for all the guests to see Lutsk' main attraction and, of course, to enjoy each other’s company.

The friendly atmosphere, hot snacks, and the energy of vibrant music played by the rock band warmed up the cool evening.

But we had something even hotter, too, as our love for Drupal kindled into real fire. The fire show within the medieval walls was truly impressive. The final touch was “Lutsk Drupal Camp 2017” “written” with fire. 

Thanks to everyone involved in the awesome Lutsk Drupal Camp 2017. Hope to see you again soon! Follow us on Facebook and other social media. Find Drupal Ukraine community at drupal.org/drupal-ukraine-community.

Categories: Drupal

Dries Buytaert: Mike Sullivan joins Acquia as CEO

13 November 2017 - 7:59am

Today, I am excited to announce that Michael Sullivan will be joining Acquia as its CEO.

The search for a new CEO

Last spring, Tom Erickson announced that he was stepping down as Acquia's CEO. For over eight years, Tom and I have been working side-by-side to build and run Acquia. I've been lucky to have Tom as my partner as he is one of the most talented leaders I know. When Tom announced he'd be stepping down as Acquia's CEO, finding a new CEO became my top priority for Acquia. For six months, the search consumed a good deal of my time. I was supported by a search committee drawn from Acquia's board of directors, including Rich D'Amore, Tom Bogan, and Michael Skok. Together, we screened over 140 candidates and interviewed 10 in-depth. Finding the right candidate was hard work and time consuming, but we kept the bar high at all times. As much as I enjoyed meeting so many great candidates and hearing their perspective on our business, I'm glad that the search is finally behind me.

The right fit for Acquia

Finding a business partner is like dating; you have to get to know each other, build trust, and see if there is a match. Identifying and recruiting the best candidate is difficult because unlike dating, you have to consider how the partnership will also impact your team, customers, partners, and community. Once I got to know Mike, it didn't take me long to realize how he could help scale Acquia and help make our customers and partners successful. I also realized how much I would enjoy working with him. The fit felt right.

With 25 years of senior leadership in SaaS, enterprise content management and content governance, Mike is well prepared to lead our business. Mike will join Acquia from Micro Focus, where he participated in the merger of Micro Focus with Hewlett Packard Enterprise's software business. The combined company became the world's seventh largest pure-play software company and the largest UK technology firm listed on the London Stock Exchange. At Micro Focus and Hewlett Packard Enterprise, Mike was the Senior Vice President and General Manager for Software-as-a-Service and was responsible for managing over 30 SaaS products.

This summer, I shared that Acquia expanded its focus from website management to data-driven customer journeys. We extended the capabilities of the Acquia Platform with journey orchestration, commerce integrations and digital asset management tools. The fact that Mike has so much experience running a diverse portfolio of SaaS products is something I really valued. Mike's expertise can guide us in our transformation from a single product company to a multi-product company.

Creating a partnership

For many years, I have woken up everyday determined to set a vision for the future, formulate a strategy to achieve that vision, and help my fellow Acquians figure out how to achieve that vision.

One of the most important things in finding a partner and CEO for Acquia was having a shared vision for the future and an understanding of the importance of cloud, Open Source, data-driven experiences, customer success and more. This was very important to me as I could not imagine working with a partner who isn't passionate about these same things. It is clear that Mike shares this vision and is excited about Acquia's future.

Furthermore, Mike's operational strength and enterprise experience will be a natural complement to my focus on vision and product strategy. His expertise will allow Acquia to accelerate its mission to "build the universal platform for the world's greatest digital experiences."

Formalizing my own role

In addition to Mike joining Acquia as CEO, my role will be elevated to Chairman. I will also continue in my position as Acquia CTO. My role has always extended beyond what is traditionally expected of a CTO; my responsibilities have bridged products and engineering, fundraising, investor relations, sales and marketing, resource allocation, and more. Serving as Chairman will formalize the various responsibilities I've taken on over the past decade. I'm also excited to work with Mike because it is an opportunity for me to learn from him and grow as a leader.

Acquia's next decade

The web has the power to change lives, educate the masses, create new economies, disrupt business models and make the world smaller in the best of ways. Digital will continue to change every industry, every company and every life on the planet. The next decade holds enormous promise for Acquia and Drupal because of what the power of digital holds for business and society at large. We are uniquely positioned to deliver the benefits of open source, cloud and data-driven experiences to help organizations succeed in an increasingly complex digital world.

I'm excited to welcome Mike to Acquia as its CEO because I believe he is the right fit for Acquia, has the experience it takes to be our CEO and will be a great business partner to bring Acquia's vision to life. Welcome to the team, Mike!

Categories: Drupal

Agiledrop.com Blog: AGILEDROP: Discovering clients expectations is vital. How do we do it?

13 November 2017 - 2:53am
When starting to talk with a potential client both parties are to some extent unaware what one has to offer and what the other can expect. It is of vital importance you define and manage expectations in such a manner both parties will be satisfied with results. In the next couple of paragraphs, I will outline our approach to setting expectations right up until the day the onboarding process takes place. If all checkboxes up to that point were marked, the developer won’t have any issues when working with the client.  What do we have to offer In my previous blog posts, I did write about ways… READ MORE
Categories: Drupal

Roman Agabekov: How to stay out of SPAM folder? Setting up PTR, SPF, DKIM under Exim

11 November 2017 - 3:39pm
How to stay out of SPAM folder? Setting up PTR, SPF, DKIM under Exim Submitted by admin on Sat, 11/11/2017 - 23:39

In the previous article, we covered teaching your Drupal installation to send mail to users. But that is only half the battle, now we need to make sure the mail we send hits Inbox and not Spam folder. This article describes some options you have that offer relevant solutions. Unfortunately, no one can guarantee 100% inbox hits, but keeping the amount of mail filtered to Spam to a minimum is quite possible.

Tags
Categories: Drupal

Drupal core announcements: New Drupal 8 committer: Francesco Placella!

11 November 2017 - 2:40pm

I am pleased to announce that Francesco Placella (plach) has accepted our invitation to be a Drupal 8 provisional framework manager.

Based in Venice, Italy, Francesco has been contributing to core since 2009. During the Drupal 7 lifecycle he was mainly active in the multilingual area, revamping the language negotiation and content translation subsystems. His initial contributions were really well received:

As well as some great progress on the code front, another major success of the virtual sprint was bringing in some significant new contributors. A highlight here would be Francesco Placella, who is playing a lead role in the work on translatable fields. [...] Drupal needs more contributors like Francesco, and if this sprint has helped him find his place in Drupal development that in itself is a major gain for the community.

After being appointed a maintainer for Drupal core's Language system and the Content translation module, Francesco joined the Drupal 8 Multilingual Initiative, soon becoming one of its most active contributors. Mainly focused on the content translation aspects, he gradually became heavily involved in the entity and field systems, with foundational work on the form and storage subsystems.

Francesco was also very active in the Drupal 8 Accelerate program, which had the goal of fixing all the outstanding critical bugs that were blocking the release of Drupal 8.0.0. This gave him the opportunity to expand his activity also in many other areas, with a particular focus on Views performance. Drupal 8.0.0 was eventually released and Francesco took a break to look after his newborn son.

Francesco showed up again at DrupalCon Vienna and we thought it would be a good time to ask him to become a framework manager. He gladly accepted, so please join me in welcoming him to the core committer team.

Categories: Drupal

Drupal.org blog: Shortcuts and Friendly URLs for Issues

10 November 2017 - 2:27pm

Drupal developers have been shouting node id numbers across tables at sprints for almost 15 years now. The Drupal Association has added some shortcuts and friendly urls for issues to make this a little easier.

Shortcuts

The first shortcut we added is a searchbar feature. If you enter any node id in the search bar you'll be automatically redirected to that node. This works for more than just issues!

The second shortcut we added is a quick url pattern for finding issues. If you know your node id, just type:

https://drupal.org/i/<node-id>

 and you're there!

Friendly-Urls

We've implemented a new friendly url pattern on Drupal.org to make the canonical urls more sensible and search engine friendly.

Project pages: https://drupal.org/project/drupal

Issue Queue: https://drupal.org/project/issues/drupal

Specific Issue: https://drupal.org/project/issues/drupal/2922626

This new pattern should be backfilled to all issues by the beginning of next week.

And of course, if you have old bookmarks linked, you can still get there by going to: https://drupal.org/node/<node-id>

These are small, but powerful improvements that should make the lives of everyone who contributes to the Drupal project easier.

Categories: Drupal

Drupal blog: An update on the Media Initiative for Drupal 8.4/8.5

10 November 2017 - 7:49am

This blog has been re-posted with permission from Dries Buytaert's blog. Please leave your comments on the original post.

In my blog post, "A plan for media management in Drupal 8", I talked about some of the challenges with media in Drupal, the hopes of end users of Drupal, and the plan that the team working on the Media Initiative was targeting for future versions of Drupal 8. That blog post is one year old today. Since that time we released both Drupal 8.3 and Drupal 8.4, and Drupal 8.5 development is in full swing. In other words, it's time for an update on this initiative's progress and next steps.

8.4: a Media API in core

Drupal 8.4 introduced a new Media API to core. For site builders, this means that Drupal 8.4 ships with the new Media module (albeit still hidden from the UI, pending necessary user experience improvements), which is an adaptation of the contributed Media Entity module. The new Media module provides a "base media entity". Having a "base media entity" means that all media assets — local images, PDF documents, YouTube videos, tweets, and so on — are revisable, extendable (fieldable), translatable and much more. It allows all media to be treated in a common way, regardless of where the media resource itself is stored. For end users, this translates into a more cohesive content authoring experience; you can use consistent tools for managing images, videos, and other media rather than different interfaces for each media type.

8.4+: porting contributed modules to the new Media API

The contributed Media Entity module was a "foundational module" used by a large number of other contributed modules. It enables Drupal to integrate with Pinterest, Vimeo, Instagram, Twitter and much more. The next step is for all of these modules to adopt the new Media module in core. The required changes are laid out in the API change record, and typically only require a couple of hours to complete. The sooner these modules are updated, the sooner Drupal's rich media ecosystem can start benefitting from the new API in Drupal core. This is a great opportunity for intermediate contributors to pitch in.

8.5+: add support for remote video in core

As proof of the power of the new Media API, the team is hoping to bring in support for remote video using the oEmbed format. This allows content authors to easily add e.g. YouTube videos to their posts. This has been a long-standing gap in Drupal's out-of-the-box media and asset handling, and would be a nice win.

8.6+: a Media Library in core

The top two requested features for the content creator persona are richer image and media integration and digital asset management.

The results of the State of Drupal 2016 survey show the importance of the Media Initiative for content authors.

With a Media Library content authors can select pre-existing media from a library and easily embed it in their posts. Having a Media Library in core would be very impactful for content authors as it helps with both these feature requests.

During the 8.4 development cycle, a lot of great work was done to prototype the Media Library discussed in my previous Media Initiative blog post. I was able to show that progress in my DrupalCon Vienna keynote:

The Media Library work uses the new Media API in core. Now that the new Media API landed in Drupal 8.4 we can start focusing more on the Media Library. Due to bandwidth constraints, we don't think the Media Library will be ready in time for the Drupal 8.5 release. If you want to help contribute time or funding to the development of the Media Library, have a look at the roadmap of the Media Initiative or let me know and I'll get you in touch with the team behind the Media Initiative.

Special thanks to Angie Byron for contributions to this blog post and to Janez Urevc, Sean Blommaert, Marcos Cano Miranda, Adam G-H and Gábor Hojtsy for their feedback during the writing process.

Categories: Drupal

Dries Buytaert: An update on the Media Initiative for Drupal 8.4/8.5

10 November 2017 - 3:54am

In my blog post, "A plan for media management in Drupal 8", I talked about some of the challenges with media in Drupal, the hopes of end users of Drupal, and the plan that the team working on the Media Initiative was targeting for future versions of Drupal 8. That blog post is one year old today. Since that time we released both Drupal 8.3 and Drupal 8.4, and Drupal 8.5 development is in full swing. In other words, it's time for an update on this initiative's progress and next steps.

8.4: a Media API in core

Drupal 8.4 introduced a new Media API to core. For site builders, this means that Drupal 8.4 ships with the new Media module (albeit still hidden from the UI, pending necessary user experience improvements), which is an adaptation of the contributed Media Entity module. The new Media module provides a "base media entity". Having a "base media entity" means that all media assets — local images, PDF documents, YouTube videos, tweets, and so on — are revisable, extendable (fieldable), translatable and much more. It allows all media to be treated in a common way, regardless of where the media resource itself is stored. For end users, this translates into a more cohesive content authoring experience; you can use consistent tools for managing images, videos, and other media rather than different interfaces for each media type.

8.4+: porting contributed modules to the new Media API

The contributed Media Entity module was a "foundational module" used by a large number of other contributed modules. It enables Drupal to integrate with Pinterest, Vimeo, Instagram, Twitter and much more. The next step is for all of these modules to adopt the new Media module in core. The required changes are laid out in the API change record, and typically only require a couple of hours to complete. The sooner these modules are updated, the sooner Drupal's rich media ecosystem can start benefitting from the new API in Drupal core. This is a great opportunity for intermediate contributors to pitch in.

8.5+: add support for remote video in core

As proof of the power of the new Media API, the team is hoping to bring in support for remote video using the oEmbed format. This allows content authors to easily add e.g. YouTube videos to their posts. This has been a long-standing gap in Drupal's out-of-the-box media and asset handling, and would be a nice win.

8.6+: a Media Library in core

The top two requested features for the content creator persona are richer image and media integration and digital asset management.

The results of the State of Drupal 2016 survey show the importance of the Media Initiative for content authors.

With a Media Library content authors can select pre-existing media from a library and easily embed it in their posts. Having a Media Library in core would be very impactful for content authors as it helps with both these feature requests.

During the 8.4 development cycle, a lot of great work was done to prototype the Media Library discussed in my previous Media Initiative blog post. I was able to show that progress in my DrupalCon Vienna keynote:

The Media Library work uses the new Media API in core. Now that the new Media API landed in Drupal 8.4 we can start focusing more on the Media Library. Due to bandwidth constraints, we don't think the Media Library will be ready in time for the Drupal 8.5 release. If you want to help contribute time or funding to the development of the Media Library, have a look at the roadmap of the Media Initiative or let me know and I'll get you in touch with the team behind the Media Initiative.

Special thanks to Angie Byron for contributions to this blog post and to Janez Urevc, Sean Blommaert, Marcos Cano Miranda, Adam G-H and Gábor Hojtsy for their feedback during the writing process.

Categories: Drupal

CTI Digital: NWDUG Unconference 2017

10 November 2017 - 2:00am

I always look forward to unconferences. It’s their unpredictability and element of surprise that I enjoy, you never quite know what the day will bring. I love the edgy feel, the lower barrier to entry, and that it’s OK to fluff your words or try something new. Sensing the nerves of the ones who unexpectedly present for the first time, witnessing how energising their experience is, discovering a topic or theme for the first time, or taking the mic because you feel inspired by others are all reasons I’m drawn to attend and why CTI Digital was proud to be one of the sponsors.

The North West Drupal User Group Unconference last weekend was no exception in terms of inclusivity and our Drupal team were there in force.

Categories: Drupal

Appnovation Technologies: Drupal Website Accessibility, Part 1: The problem, and why it matters…

10 November 2017 - 12:00am
Drupal Website Accessibility, Part 1: The problem, and why it matters… Drupal Website Accessibility, Part 1: The problem, and why it matters… "The power of the Web is in its universality.  Access by everyone regardless of disability is an essential aspect." - Sir Tim Berners-Lee, W3C, Director and Inventor of the World Wide Web In the coming weeks, I’ll be taking a look into one...
Categories: Drupal

Red Route: Knowledge Is Dead, Long Live Learning

9 November 2017 - 10:22pm

This article was originally posted on the Capgemini Engineering blog

There's a certain inescapable truth that people who work with technology need to face. As time goes by, the knowledge we’ve gained almost inevitably becomes obsolete. If we specialise in something, how do we deal with the fact that our specialism, which may even have been cutting edge technology that we were pioneering, eventually becomes a legacy system? As Ellen Ullman put it, "The corollary of constant change is ignorance ... we computer experts barely know what we are doing."

Front end developers are very familiar with this feeling, confronted so frequently with the dizzying pace of change in the world of JavaScript frameworks. Once upon a time, I was very proud of my ability to make CSS layouts work in IE7. Now all those tricks and hacks are little more than worthless trivia, perhaps less valuable than actual trivia. At least knowing who scored the winner in the 1973 FA Cup final might help in a pub quiz - I can't imagine that being able to prefix properties with an asterisk will ever come in handy, but it's taking up storage space in my brain. Now that CSS grid is becoming widespread, everything I've learned about floats (and even flexbox) is becoming less and less useful. There are even some people (although I'm not one of them) who would say that CSS itself no longer has value. Similarly, jQuery is already on its way to joining YUI and MooTools in the graveyard of things I used to know about, and experienced members of the Drupal community have recently been coming to terms with the fact that in order for the technology to progress, we'll have to unlearn some of our old ways.

It isn't just true for technology. London taxi drivers are finding that their hard-earned Knowledge is being made obsolete by satnav, and before too long, the skill of driving will itself have gone the way of basket weaving or being able to pilot a horse-drawn buggy - something that might still be interesting for the enthusiast, but isn’t relevant to most people’s lives.

Confronted with the unpleasant reality that our hard-learned skills are becoming outdated, what's the appropriate response? Do we follow the example of the Luddites and rage against the evolution of the machines? It's easy to fall victim to the sunk costs fallacy, and ego provides a strong temptation to hang on to our guru status, even if we're experts in an area that is no longer useful. If you're a big fish in a shrinking pond, you may need to be careful that your pond doesn't dry up entirely. Besides, do you really want to work on legacy systems? Having said that, if your legacy system is still mission-critical somewhere, and migrating away would be a big job, there's good money to be made - just ask the people working on COBOL.

I think there's a healthier way of looking at this. With the internet acting as a repository of knowledge, and calculators at our fingertips, education is evolving. There's no longer much value in memorising times tables, or knowing the date of the battle of Culloden. As my colleague Sarah Saunders has written, you're never too old to learn, but the value of learning things is greater than the value of the facts or skills that we learn - the meta-skill of learning is the really useful thing. Then again, I would say that, having done a philosophy degree.

For example, the time and effort I put into learning French and German at school doesn’t currently seem like a worthwhile investment, when I think about how frequently I use those languages. But I would never say that it was a waste of time. When I lived in Tokyo, having learned other languages definitely helped when it came to learning Japanese. Then again, these days I don’t often spend any time in Japan or with Japanese people, so the current value of that effort seems low. But do I regret spending that effort? Not a bit. It helped me to make the most of my life in Japan, and besides, it was interesting.

Two of the most compelling conference talks I've heard in the last few years touched on this theme from different directions. Andrew Clarke and Patrick Yua both emphasised the importance of focussing on the underlying principles, rather than chasing whatever the current new hotness might be. Designers and developers can learn something from Yves Saint Laurent: "Fashions fade, style is eternal".

We need to recognise that things will always keep changing. Perhaps we could help ourselves to acknowledge the impermanence of our skills by saying some kind of ceremonial goodbye to them. I have an absurd vision of a Viking funeral, where a blazing longboat sails away full of old O'Reilly books. We may not need to go that far, but we do need to remind ourselves that what we've learned has served us well, even if that knowledge is no longer directly applicable. A knowledge funeral could be an opportunity to mourn for the passing of a skill into obsolescence, and to celebrate the value of learning.

Image source: wikimedia

Tags:  learning development psychology Capgemini Drupal All tags
Categories: Drupal

Morpht: Announcing Entity Class Formatter for Drupal 8

9 November 2017 - 7:06pm

The Entity Class Formatter is a nifty little module which allows editors to place classes on to entities, allowing their look and feel to be altered in the theme layer or with other modules such as Look and Modifiers. It is now available for Drupal 8.

Entity Class Modifier is a humble little module, however, it does open up a lot of possibilities. The most obvious is to use the theme layer to provide styles for the class which has been applied. This makes it possible for the “designer” at design time to can some different styles to pick from. It is however, possible to use the module in a more flexible way and combine it with Modifiers and Looks.

Once a class has been defined and added to a field, a “Look Mapping” can be defined, associating the class with a set of Modifiers. The site builder or skilled editor can then go in and define any number of Modifiers which will be fired with the class.

For example - a “my-awesome-class” class could be created which is wired into a “field_my_awesome” set of Modifiers. The Modifiers could include a blue linear gradient with white text overlay with generous padding. All of this configuration happens in the UI after deploy. It is a very flexible and powerful system. The system can be configured after deployment and adapted to the styles you wish to apply.

Basic use of Entity Class Formatter

The use of the module is very easy. We can for example define our own class on the article.

The first thing we need to do is to enable the module. Once installation is complete we can go and add our custom field. In this little tutorial we will basically add the class onto the article content type. So go to Structure > Content types > Article > Manage fields and add new text field. We can name the field simply "Class" and save it. As we keep everything in default we can save it on the next page too.

 

Now the last thing we need to do to make it work is set the Entity Class on the field in Manage display page. Go to Structure > Content types > Article > Manage display and change the format to "Entity Class". There's no need to any other manipulation with field because it won't render any values which would be visible to the visitor of the page.

 

That's it! No we can go to create an article (Content > Add content > Article). Input class to our field...

... voila, class is there!

Similar but different

There are a couple of modules out there which are similar but are different enough for them not to be totally suited to our requirements.

Classy Paragraphs, available in Drupal 8, has been influential in the Paragraphs ecosystem and has opened the way for creative designs. It was intended to apply to Paragraphs only and is quite structured in the way classes are applied through a custom field type. The Entity Class Formatter module is more flexible in that it has been designed to apply to all entity types. It can also handle a variety of field types (text, select lists, entity references) and is able to adapt to the data at hand. So, Entity Class Formatter has a similar aim - it is just somewhat more generic.

Field Formatter CSS Class, available in Drupal 7, also uses a field formatter approach to applying the class to the entity. It does have more complexity than this module because it deals with several layers of nesting. The Entity Class Formatter is very simple and only applies to the parent entity of the field.

Entity Class Formatter was inspired by Classy Paragraphs (thanks) and is supported by the team at Morpht.
Categories: Drupal

Agiledrop.com Blog: AGILEDROP: Drupal con Vienna’ session about business

9 November 2017 - 5:11pm
Nowadays business in a complex and dynamic environment. Because of its uncertainness, it's never too late to listen to a good lecture. If you have missed any session from DrupalCon Vienna, let us highlight some of them to you.    Co-operative Drupal: Growth & Sustainability through Worker Ownership Finn Lewis, Technical Director of Agile Collective Ltd   There is an increasing number of worker-owned Drupal companies. So there are more and more sectors looking for effective and customizable software solutions, so it's a good time to start or grow Drupal's business, which is not… READ MORE
Categories: Drupal

Acquia Developer Center Blog: Optional Config Weirdness in Drupal 8

9 November 2017 - 12:24pm

Ah, the config system. Crown jewel of Drupal 8, amirite?

Well, yeah, it’s fantastic and flexible (as is most of Drupal). But if you have advanced use cases — such as building a system that alters config dynamically — there are traps you should know about.

Tags: acquia drupal planet
Categories: Drupal

Stanford Web Services Blog: BADCamp 2017: Caryl’s Training Recap

9 November 2017 - 10:14am

BADCamp is a delightful mix of networking and educational opportunities. Along with connecting with former acquaintances and meeting new people, I attended two really informative trainings. Here’s my recap:

Categories: Drupal

Pages