Spinning Code: What I Brought from Drupal to Salesforce

If you look over this blog, or know me, you will see that I’ve now have reasonably significant experience as both a Salesforce and Drupal developer. The last couple weeks I have been thing about what from my Drupal experience supports my work as a Salesforce developer.

I think there are three parallels that are encouraged in Drupal developers that helped me learn to be a good Salesforce developer quickly.

  1. Embrace, don’t fight, Platform Constraints
  2. Extend the Platform’s Strengths
  3. Leverage Events

Embrace Salesforce Platform Constraints

Both Drupal and Salesforce run in constrained environments. Web applications, regardless of their purpose, have to protect themselves against bad actors and bad neighbors. There are execution timeouts and memory limits, for both platforms. Salesforce adds a variety of additional limits and governors, but they are all logical extensions about memory and time. Lots of other platforms allow developers to ignore resource use until they reach a crisis point. Don’t believe me, just check the memory used by Chrome, Electron Apps, or any other Chromium-based application.

Working in resource constrained environments forces you to think through how to use the resources you do have efficiently. While these platforms aren’t like working on hardware with highly limited resources, they still can test your resourcefulness.

Drupal and Salesforce both provide ways to run large jobs across many processing contexts. New developers on both platforms often only resort to using batch and queueable operations as a last resort, but learning to use those solutions is critical to success on most interesting projects. When you try to avoid them you create solutions that appear to work and fail at scale.

Coming to Salesforce from Drupal, I already knew and understood the importance of asynchronous batch processing. So when solutions needed batch processing it was second nature to learn that part of the platform.

Extend the Platform’s Strengths

For all Salesforce’s push and marketing to avoid code, Salesforce developers are often taught that once you write code you just do everything in your code. The interfaces you can use to extend the platform’s existing solutions are treated as advanced topics. But when you work with Drupal, you are encouraged from the start to create modules that build on and extend the platform’s existing strength. Drupal developers are encouraged to leverage the features and utilities all around them.

This has always been true, but even more after Drupal’s move to leverage Symphony plugins and services. As a developer used to extending the platform, I came to Salesforce looking for ways to extend the platform’s declarative tools.

Often Salesforce developers create powerful solutions built purely in code triggered by record changes or simple buttons. They look passed Apex Actions that extend the Flow declarative automatons, platform events, and other tools that extend the system. But when you embrace a platform’s basic structures you often create more flexible solutions than your could with pure code.

The mind set of extending a platform, which I brought with me from my Drupal work helps me create tools and solutions that are designed to adapt over time.

Leverage Events

Event driven architectures are not new, but their popularity continues to grow. Where platforms used to follow informal patterns that equated to event systems, now we see formal event structures being build to replace old habits.

Drupal and Salesforce both have had event frameworks for a long time: Drupal had hooks (events by naming convention), Salesforce had triggers.

Both have seen major upgrades to their event patterns in recent versions. Platform events in Salesforce, still making their full power clear to a lot of developers. Symphony brought proper events to Drupal in version 8 and continue to help push the platform forward.

I have learned to leverage the events systems on both platforms. Understanding them as tightly constrained state machines, and learning to push them to their limits, helps me get the most from both platforms.

My experience with Drupal hooks and events has made it obvious to me when to leverage Salesforce’s Platform events. As Salesforce increases the number of places you can use them in their declarative tools, it increases the value of this approach.

So What?

As a developer, what you learn in one part of your career can make you stronger in the next. As a field we’re not actually that creative. Even if the details are different, the concepts will often carry forward because they are built on the same fundamentals. Whatever platform you are using today, learn how to make it sing – it’ll help you learn the next faster and better.

The post What I Brought from Drupal to Salesforce appeared first on Spinning Code.

ImageX: DrupalCon Prague: A Recap

We had hardly learned the Czech greeting “Dobrý den” when the time came to say goodbye. The long-awaited DrupalCon Prague, Europe’s biggest Drupal conference, rushed by like a shooting star leaving vivid memories. Let’s collect them one by one right now! The same happy author who wrote the expectations of a first-time attendee is here for you again with a recap of the most memorable moments of DrupalCon Prague 2022.

Drupal blog: State of Drupal presentation (September 2022)

This blog has been re-posted and edited with permission from Dries Buytaert's blog.

DrupalCon Europe 2022 Driesnote presentation

Last week, over 1,200 Drupalists gathered in Prague for DrupalCon Europe. It was great to see everyone together in person.

In good tradition, I delivered my State of Drupal keynote. You can watch the video of my keynote or download my slides (380 MB).

Image removed.

Why the Open Web should win

Today the web is ingrained in every aspect of our daily lives. We use it for work, to socialize, to pay our bills, get healthcare, and gain access to information.

As more transactions, collaborations and interactions are taking place online, there is now a greater responsibility to ensure that the web is inclusive of every person, and accounts for everyone's safety.

When people are excluded from being able to access online experiences, they are also excluded from rewarding careers, independent lifestyles, and the social interactions and friendships that bring people together.

For those reasons, we need to do everything we can to protect and grow the Open Web.

Image removed.

Caring about Drupal is caring about the Open Web

In my keynote, I made the point that Drupal is an important player in the preservation and growth of the Open Web.

I kicked off my keynote talking about some of my personal reasons for using Drupal, most of which have to do with the future of the Open Web.

After all these years, I continue to upload my photos to my website, despite there being plenty of simpler alternatives (e.g. Facebook or Instagram). I do this for a number of reasons.

First, my photos are precious to me, and I don't want them to get lost. I look at news stories about MySpace and Facebook losing users' content. I like that I'm in control of my own data, including my backups.

Second, I don't like how proprietary platforms limit my creative freedom. Pages and templates within a closed platform tend to look the same. It's hard to stand out, or even just express yourself the way you want to. With Drupal, I'm unrestricted in how I share my photos.

Third, I don't like how these platforms treat my friends and family. Many of them use invasive tracking. For that reason, I don't use trackers or ads on my website. My site aspires to the privacy of a printed book.

All of these are reasons why I want both Drupal and the Open Web to win. We don't want to live in a world where proprietary platforms reign supreme. We need more "Good Software". Software that is open, flexible, secure, accessible, and pro-privacy.

Making security, privacy, accessibility, multilingual capabilities, usability, and ease of maintenance top priorities is hard work work, but it's worth it. Caring about Drupal is the same as caring about the Open Web.

Drupal's growth and influence

Image removed.

The good news is that Drupal has grown into a powerful platform for ambitious site builders. Drupal empowers millions of ambitious site builders to create Open Web experiences.

However, we have to get better at promoting what we're good at to ensure more people understand how powerful and influential Drupal is. That influence becomes really clear when you look at Drupal's end users.

Making Drupal's high bar easier to achieve

Because of Drupal's impact on the digital landscape, we keep a high bar with regards to stability, reliability, accessibility, security, backwards compatibility, and more. With great impact comes great responsibility.

This high bar can make contribution difficult and slow, and is sometimes what keeps people from contributing back more to Drupal.

Unfortunately, we can't lower the bar. However, we can make it easier to achieve our high bar. That's why we are moving from Drupal's homegrown collaboration tools to GitLab.

GitLab streamlines and automates various steps of the contribution process. Check out the Drupal.org GitLab video from the Drupal Association for an update.

Welcoming more people to Drupal 10

Another way to accelerate innovation is to grow our capacity and attract more people to Drupal.

The best way to attract new people to our community is by making easy-to-use software that solves real world problems.

Since my previous DrupalCon keynote, I'm happy to report that we've made a lot of progress on our key initiatives. A few key highlights:

  • Olivero became stable/default
  • CKEditor5 became stable/default
  • We're almost PHP 8.2 ready
  • We upgraded to Symfony 6
  • And we made Drupal Core smaller

Each of these initiatives is significant because they make Drupal and the Open Web more approachable.

In addition, the Project Browser initiative and Automatic Updates initiative saw tremendous progress. Videos below.

To learn more about Drupal's strategic initiatives, you can watch the Drupal Core Initiative Leads keynote. Highly recommended for those that want to contribute.

Upgrading to Drupal 10

Drupal 10 is scheduled to be released in mid-December. And after the Drupal 10 release, users will have 11 months to upgrade from Drupal 9 to Drupal 10. Drupal 10 will require PHP 8.1, something to plan for as well.

Image removed.
Drupal 10 will be released on December 14, 2022. This gives site owners until November 2023 to update from Drupal 9 to Drupal 10.

Luckily, the upgrade path has never been easier. In the video below, we compare the upgrade path from Drupal 8 to Drupal 9 to the upgrade from Drupal 9 to Drupal 10. As you can see, the Drupal 9 to 10 upgrade is much more automated. It will be the easiest yet!

The update to Drupal 10 is required because some of Drupal 9's third-party dependencies will reach end-of-life. If you don't upgrade within 11 months, you will be running a site with unmaintained third-party dependencies.

Image removed.
We recently released the first Drupal 10 beta release. At the time we released Drupal 10 beta-1, 3 times as many modules were ready compared to when we released Drupal 9 beta-1. More than a 1,000 modules are already ready for Drupal 10!
Image removed.
Thanks to various focused initiatives, Drupal is starting to get easier. Drupal 8 was peak difficulty.

Thank you

I hope we can all find ways to care about building the web we want to see for the future. Making Drupal better means making the Open Web better.

I'd like to thank everyone that was involved in making DrupalCon Prague, Drupal 10, and the key initiatives described above a resounding success.

Last but not least, I'd like to encourage even more people to get involved. It might not always be easy, but it's well worth it.

Lullabot: Lullabot Podcast: Healthy Minds @Lullabot

We’re so excited to share about a program that we've been participating in at Lullabot – Healthy Minds @Work. This is a science-based app and program shown to help strengthen your well-being skills. The Healthy Minds program was built by neuroscientists and is designed to teach and measure skills associated with emotional well-being using meditation and other contemplative practices.

A group of Bots discusses the program and the 30-Day Challenge that's been going on inside Lullabot.
 

OpenSense Labs: Ahoy Prague! Attending First DrupalCon

Ahoy Prague! Attending First DrupalCon Akshita Thu, 09/29/2022 - 17:26

The DrupalCon newbie trinity from OpenSenseLabs - Anmol Goel (Tech Lead), Pritish Kumar (Tech Lead), and Akshita Rawat (Marketing Lead) - attended DrupalCon Prague 2022 and were psyched with the community exposure. We were looking forward to getting to know the community better and meeting familiar faces who we had only heard or read about. This is a quick recap of our experience at DrupalCon Prague 2022.  

 

I got introduced to the Drupal community in 2017. Ever since, I have been learning and writing about the new upgrades, modules, distributions, and the community. 

From a non-tech perspective, I always wondered what DrupalCon could be like other than technical sessions and contributions. 

When I got my session selected for DrupalCon Prague 2022, I was ready to know the answer. 

Our team included Anmol Goel, Pritish Kumar, and myself. Anmol & Pritish were selected as volunteers for the event. It is an opportunity given to a handful of community members who have made significant contributions to the community. I was to speak on effective team management practices, also highlighting our employee-first policies at OpenSense Labs. 

All three of us were looking forward to getting to know the community better and meeting familiar faces who we had only heard or read about (for sooo long). 

Keynotes and Dries Note

The opening keynote majorly covered the new product updates and why they matter. With CKEditor 5 coming up in Drupal 10 - it was the highlight for me. 

The keynote also covered new updates in The Local Inititative,  Project Browser, & moving to Git for community contribution, among others. 

DriesNote has always been a popular session in DrupalCon. When you sit for a Dries note, it is not just about learning the product growth plan, you experience how much the community looks inward to make it better for everyone.

Image removed.

This year’s Dries note focussed on 2 things: 

  1. How much user-centric is Drupal
  2. The upgrades to be expected in newer versions 

It was interesting when he used his website as a use case to showcase how Drupal is a safer bet (keeping in mind user privacy, owning data, and accessibility) than most of the platforms (esp. social media platforms) 

Important product updates included - Recipes, Project Browser, and moving to Git for collaboration (more about it later). 

And then our Aha! moment.


Exploring the booths & engaging with the community

We started our quest by hopping from one booth to another and interacting with everyone with who we could. I was amazed at the thought-process behind all the efforts they had put in for their booths, in terms of creativity. 

As a Marketer, I was inspired by their ‘hook’ to bring in the audience and show them what they wanted to. 

In the Pantheon booth, they were literally printing your t-shirts in front of you. 

Image removed.

Dropsolid had Beat Saber in their booth. You could play it all the time and compete with fellow community members for the highest score. 

Image removed.

 

Then Annertech booth, where their team was nice and patient enough to teach us how to juggle (very helpful if you are a Project Manager :P)
 

Image removed.


1Xinternet had a chill-out place in their booth with a photo competition. Guess who won the photo challenge competition on Day 3. 

Image removed.


Factorial was serving really good coffee with a cute unicorn over their booth. 

At SystemSeed booth, we met Bran who bought little handcrafted jam bottles he got exclusively for DrupalCon. 

Image removed.

 

Not to forget the open mic, and jamming sessions going on throughout. 

As Volunteers & Speakers

Anmol: It was a delightful and wholesome experience attending the conference. Since this was my first community event, I was nervous too. I volunteered as a session monitor for ‘Growing and sustaining an Open Source Drupal Distribution’. 

The Q&A for this session went on for almost 30 mins. It was an extraordinary experience by being involved so closely in a session and seeing how the community engages within. This definitely inspired me to submit sessions for the next Con. 

Being involved with sessions as a runner, and ensuring everything was in place and done right when the session happens brought a lot of respect for the organizing team. They made the first DrupalCon Europe post-pandemic happen without being located in the same place. Cheers to them!


Akshita: As a first-time DrupalCon Speaker, I was jittery and excited after all it was an opportunity I got after not being able to make it to 2 DrupalCons (was twice selected as a speaker before). 

They say the third is a charm. It must be. 

I got stage fright when preparing for my session since this was the first event I had attended after the pandemic. And the room was packed. But after hearing so many sessions in the first 2 days and meeting amazing people of Drupal, I was more comfortable when giving the session. 

Post-session when someone from the audience reached out to tell me that they really liked my session and learned something from it - made the remaining Con even better :) 

Image removed.


Contribution

The last day of the event was focused on contribution. We worked with Leslie and the team on Project Browser. Project Browser helps new website owners to find modules of their interest from their own website. Here’s how it went. 

Anmol: I was looking forward to contribution since I wanted to see how I could bring it back to India and introduce it to new team members. Working with the community on issues and resolving them in real time was an amazing experience. It felt good by doing my bit and giving back to the community. 

Image removed.


Akshita: This was my first contribution. I wasn’t really sure what it would be like, since I was looking for a no-code contribution. Found Leslie who introduced me to Project Browser and I made my first non-code contribution by adding and reviewing couple of module descriptions for Project Browser. It was so easy and I will definitely contribute more moving forward.


Trivia Night

Our team - Uzumaki 1 - won second prize in Trivia. We had 2 community members joining us - Deepak and Fernando Simoes. For one of the rounds where we answered all the questions correctly, we won a free drinks voucher too.

Image removed.


Meeting these amazing people who make the community and product what it is, genuinely made us feel that we are a part of it. Learnings from the amazing sessions and having non-Drupal conversations with them inspires you to get more involved with the community. In the end, I realized, even as a non-techie, I too can contribute in unique ways, in building the community, and making the product better. 

The community I have been part of for so long finally has a face. 

DrupalCon was tiring, no doubt at all, but it was an enthralling experience for all of us. 

Image removed.Articles Off

CTI Digital: CTI attend DrupalCon Prague 2022

Image removed.

It’s back! CTI meets Prague for DrupalCon 2022 - the world's second-largest annual gathering of Drupal experts and enthusiasts. For some, it was great to return to the perfect place to share expertise, create solutions and build relationships. For others, it was a first leap into an event which offers a fantastic opportunity to connect with members of the community whilst gaining knowledge from experts.

Image removed.

Oomph Insights: The “Read More” Teaser — A Persistent UX Pattern and How to Manage it with Drupal

A “Read More” Teaser is still a common UX pattern; it contains a title, often a summary, sometimes a date or author info, and, of course, a Read More link. The link text itself may differ — “read more”, “learn more”, “go to article”, and so on — but the function is the same: tell the user that what they see is only a preview, and link them to the full content. In 2022, I’d argue that “Read More” links on Teaser components are more of a design feature than a functional requirement; they add a visual call to action to a list of Teasers or Cards, but they aren’t necessary for navigation or…

#! code: Drupal 9: Content Sharing Between Drupal Sites Using oEmbed

A while ago I wrote about including oEmbed providers in a Drupal site and briefly touched upon creating custom providers. I didn't go into any more detail there so I decided to write another article looking at creating custom oEmbed providers.

In this article I will cover what oEmbed is and how to set up a custom oEmbed endpoint. I will also then go onto show how to setup and configure a Drupal site to consume that custom oEmbed endpoint. 

What Is oEmbed?

oEmbed is a specification that allows websites to share content through the use of an API. This allows users to share a URL for a web page and see a representation of that page embedded in any site. Using this technique allows for videos and images to be shared between sites easily, without the user having to worry about image dimensions or generating thumbnails.

It's up to the oEmbed provider to decide on what sort of content they will publish as part of an oEmbed request. The response will have a 'type' parameter that can be "photo", "video", "link" or "rich" (which is essentially just HTML), each of which will return different parameters depending on what is needed. You can see the full specification of oEmbed on the oembed.com website.

As it is possible for third party sites to add pretty much anything to the response there are some security considerations to be taken into account. The oEmbed group maintains a list of available providers (seen at https://oembed.com/providers.json) that you are recommended to adhere to. It is also recommended that all embedded content is done as an iframe element to prevent anything within the iframe leaking out into the rest of the page.

Read more.

Drupal Commerce: Commerce PayPal release adds Venmo support

Centarro held a productive sprint at DrupalCon Prague on all things Drupal Commerce. Goals for the sprint included planning future Commerce Core improvements, packaging full releases of the modules included in Commerce Kickstart, and catching up on some long overdue marketing tasks. That including rolling out a new project homepage and planning an approach for the project blog to focus on release announcements - like this one!