Planet Drupal

Subscribe to Planet Drupal feed
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 9 hours 35 min ago

DrupalCon News: Drupal in Ireland - Project 3

14 September 2016 - 1:00am

As part of our series of showcasing what Drupal is doing in Ireland, we are happy to bring you another awesome online experience that Drupal has created.  

Categories: Drupal

Drupal Blog: Can Drupal outdo native applications?

14 September 2016 - 12:00am

Republished from buytaert.net

I've made no secret of my interest in the open web, so it won't come as a surprise that I'd love to see more web applications and fewer native applications. Nonetheless, many argue that "the future of the internet isn't the web" and that it's only a matter of time before walled gardens like Facebook and Google — and the native applications which serve as their gatekeepers — overwhelm the web as we know it today: a public, inclusive, and decentralized common good.

I'm not convinced. Native applications seem to be winning because they offer a better user experience. So the question is: can open web applications, like those powered by Drupal, ever match up to the user experience exemplified by native applications? In this blog post, I want to describe inversion of control, a technique now common in web applications and that could benefit Drupal's own user experience.

Native applications versus web applications

Using a native application — for the first time — is usually a high-friction, low-performance experience because you need to download, install, and open the application (Android's streamed apps notwithstanding). Once installed, native applications offer unique access to smartphone capabilities such as hardware APIs (e.g. microphone, GPS, fingerprint sensors, camera), events such as push notifications, and gestures such as swipes and pinch-and-zoom. Unfortunately, most of these don't have corresponding APIs for web applications.

A web application, on the other hand, is a low-friction experience upon opening it for the first time. While native applications can require a large amount of time to download initially, web applications usually don't have to be installed and launched. Nevertheless, web applications do incur the constraint of low performance when there is significant code weight or dozens of assets that have to be downloaded from the server. As such, one of the unique challenges facing web applications today is how to emulate a native user experience without the drawbacks that come with a closed, opaque, and proprietary ecosystem.

Inversion of control

In the spirit of open source, the Drupal Association invited experts from the wider front-end community to speak at DrupalCon New Orleans, including from Ember and Angular. Ed Faulkner, a member of the Ember core team and contributor to the API-first initiative, delivered a fascinating presentation about how Drupal and Ember working in tandem can enrich the user experience.

One of Ember's primary objectives is to demonstrate how web applications can be indistinguishable from native applications. And one of the key ideas of JavaScript frameworks like Ember is inversion of control, in which the client side essentially "takes over" from the server side by driving requirements and initiating actions. In the traditional page delivery model, the server is in charge, and the end user has to wait for the next page to be delivered and rendered through a page refresh. With inversion of control, the client is in charge, which enables fluid transitions from one place in the web application to another, just like native applications.

Before the advent of JavaScript and AJAX, distinct states in web applications could be defined only on the server side as individual pages and requested and transmitted via a round trip to the server, i.e. a full page refresh. Today, the client can retrieve application states asynchronously rather than depending on the server for a completely new page load. This improves perceived performance. I discuss the history of this trend in more detail in this blog post.

Through inversion of control, JavaScript frameworks like Ember provide much more than seamless interactions and perceived performance enhancements; they also offer client-side storage and offline functionality when the client has no access to the server. As a result, inversion of control opens a door to other features requiring the empowerment of the client beyond just client-driven interactions. In fact, because the JavaScript code is run on a client such as a smartphone rather than on the server, it would be well-positioned to access other hardware APIs, like near-field communication, as web APIs become available.

Inversion of control in end user experiences

When a user clicks a teaser image on the homepage of an Ember-enhanced Drupal.com, the page seamlessly transitions into the full content page for that teaser, with the teaser image as a reference point, even though the URL changes.

In response to our recent evaluation of JavaScript frameworks and their compatibility with Drupal, Ed applied the inversion of control principle to Drupal.com using Ember. Ed's goal was to enhance Drupal.com's end user experience with Ember to make it more application-like, while also preserving Drupal's editorial and rendering capabilities as much as possible.

Ed's changes are not in production on Drupal.com, but in his demo, clicking a teaser image causes it to "explode" to become the hero image of the destination page. Pairing Ember with Drupal in this way allows a user to visually and mentally transition from a piece of teaser content to its corresponding page via an animated transition between pages — all without a page refresh. The animation is very impressive and the animated GIF above doesn't do it full justice. While this transition across pages is similar to behavior found in native mobile applications, it's not currently possible out of the box in Drupal without extensive client-side control.

Rather than the progressively decoupled approach, which embeds JavaScript-driven components into a Drupal-rendered page, Ed's implementation inverts control by allowing Ember to render what is emitted by Drupal. Ember maintains control over how URLs are loaded in the browser by controlling URLs under its responsibility; take a look at Ed's DrupalCon presentation to better understand how Drupal and Ember interact in this model.

These impressive interactions are possible using the Ember plugin Liquid Fire. Fewer than 20 lines of code were needed to build the animations in Ed's demo, much like how SDKs for native mobile applications provide easy-to-implement animations out of the box. Of course, Ember isn't the only tool capable of this kind of functionality. The RefreshLess module for Drupal by Wim Leers (Acquia) also uses client-side control to enable navigating across pages with minimal server requests. Unfortunately, RefreshLess can't tap into Liquid Fire or other Ember plugins.

Inversion of control in editorial experiences

In CardStack Editor, an editorial interface with transitions and animations is superimposed onto the content page in a manner similar to outside-in, and the editor benefits from an in-context, in-preview experience that updates in real time.

We can apply this principle of inversion of control not only to the end user experience but also to editorial experiences. The last demos in Ed's presentation depict CardStack Editor, a fully decoupled Ember application that uses inversion of control to overlay an administrative interface to edit Drupal content, much like in-place editing.

CardStack Editor communicates with Drupal's web services in order to retrieve and manipulate content to be edited, and in this example Drupal serves solely as a central content repository. This is why the API-first initiative is so important; it enables developers to use JavaScript frameworks to build application-like experiences on top of and backed by Drupal. And with the help of SDKs like Waterwheel.js (a native JavaScript library for interacting with Drupal's REST API), Drupal can become a preferred choice for JavaScript developers.

Inversion of control as the rule or exception?

Those of you following the outside-in work might have noticed some striking similarities between outside-in and the work Ed has been doing: both use inversion of control. The primary purpose of our outside-in interfaces is to provide for an in-context editing experience in which state changes take effect live before your eyes; hence the need for inversion of control.

Thinking about the future, we have to answer the following question: does Drupal want inversion of control to be the rule or the exception? We don't have to answer that question today or tomorrow, but at some point we should.

If the answer to that question is "the rule", we should consider embracing a JavaScript framework like Ember. The constellation of tools we have in jQuery, Backbone, and the Drupal AJAX framework makes using inversion of control much harder to implement than it could be. With a JavaScript framework like Ember as a standard, implementation could accelerate by becoming considerably easier. That said, there are many other factors to consider, including the costs of developing and hosting two codebases in different languages.

In the longer term, client-side frameworks like Ember will allow us to build web applications which compete with and even exceed native applications with regard to perceived performance, built-in interactions, and a better developer experience. But these frameworks will also enrich interactions between web applications and device hardware, potentially allowing them to react to pinch-and-zoom, issue native push notifications, and even interact with lower-level devices.

In the meantime, I maintain my recommendation of (1) progressive decoupling as a means to begin exploring inversion of control and (2) a continued focus on the API-first initiative to enable application-like experiences to be developed on Drupal.

Conclusion

I'm hopeful Drupal can exemplify how the open web will ultimately succeed over native applications and walled gardens. Through the API-first initiative, Drupal will provide the underpinnings for web and native applications. But is it enough?

Inversion of control is an important principle that we can apply to Drupal to improve how we power our user interactions and build robust experiences for end users and editors that rival native applications. Doing so will enable us to enhance our user experience long into the future in ways that we may not even be able to think of now. I encourage the community to experiment with these ideas around inversion of control and consider how we can apply them to Drupal.

Special thanks to Preston So for contributions to this blog post and to Angie ByronWim LeersKevin O'LearyMatt Grill, and Ted Bowman for their feedback during its writing.

Categories: Drupal

Roy Scholten: Drupal UX meeting, 13 September 2016

13 September 2016 - 3:35pm

Another fun live hangout with Drupal UX peoples. We review and discuss current issues and provide feedback or guidance where needed. These hangouts are recorded and available on YouTube. I try to link to the right segment in the recording when updating issues with team feedback.

Discussed today: A separate queue for Ideas

I marked Agile process for bigger changes in core (Part A: Ideation) RTBC today. It’ll be open for final thoughts for a few more days. Looks like we’ll have a dedicated place to work through ideas soon.

Sort of like a Display Suite lite in core

Or as we say: Add ability for entity view modes to switch between two hard-coded layouts.

Eaton called it, this is very inside baseball, but adding layout options for arranging the fields in your content type is super exciting.

Media library design

We have an issue going that collects examples of media library features in other systems. Super useful. We (you!) can start sketching out Drupal specific user interface screens and flows now and post them there. (This is one of those issues that would start in the above mentioned Ideas queue).

Sample content

There’s Lee’s post about what it means to provide the tools that enable you to add your sample content to your flavour of Drupal installation. And then there’s adding some (hardcoded?) sample content to core itself, because, well, onboarding. Starting with the latter, that means figuring out what sample content to add in the first place.

The brand new Drupal user guide uses the example of a website for a farmer’s market. Wouldn’t it be great if our sample content and configuration would support that scenario? Yes, yes it would.

Tags: drupaluxproductdrupalplanetSub title: “Kevin, talk sample content to me”
Categories: Drupal

Palantir: The Secret Sauce, Ep. 31: Understanding Your Company’s Purpose

13 September 2016 - 8:14am
The Secret Sauce, Ep. 31: Understanding Your Company’s Purpose The Secret Sauce manley Tue, 09/13/2016 - 10:14 George DeMet with Allison Manley Sep 13, 2016

We want to make your project a success.

Let's Chat.

As a company, knowing what you do and why you do it is essential, but so is being able to communicate that vision to others.

In this week’s episode of The Secret Sauce, Palantir Founder and CEO George DeMet dives into the importance of being in tune with your company’s purpose.

iTunes | RSS Feed | Download| Transcript

Subscribe to all of our episodes over on iTunes.

We want to make your project a success.

Let's Chat. Transcript

Allison Manley [AM]: Welcome to The Secret Sauce, a short podcast by Palantir.net, that offers a quick piece of advice to help your business run a little bit better. 

I’m Allison Manley, an Account Manager at Palantir, and today we’re talking with our Founder, George DeMet. He’s going to share why it’s so critical to understand your company’s purpose. It sounds like a basic concept, but it’s important to give clarity around why a company exists.

George DeMet [GD]: In a previous installment of the Special Sauce a couple of months ago, I talked a little bit about my personal history with family-run businesses and some of the values and principles that have helped guide some of the world’s most enduring companies. Values and principles are important because they help answer the question of how we as a company strive to interact with each other, with our customers, and with the world around us.

Today, I’d like to talk about the importance of understanding your company’s purpose, or why it is that we do what we do. 

Being able to say what it is that gives your company direction and purpose is vital to attracting motivated employees and helping prospective customers understand why they should choose to work with you. Knowing what you do and why you do it is essential, but so is being able to communicate that vision to others. 

A core purpose can be articulated in many ways. If you’re a very small company, everyone on the team probably already knows and understands your core purpose, and you may not even need to articulate it. But as your company grows and evolves, chances are that not everyone will come in with that shared understanding, and you’ll need to find a succinct and understandable way to describe to others the reason why your company exists.

Now the flip answer is “because getting a paycheck is what puts a roof over my head and food on my table”, but I think we can all agree that that’s not enough. There are a lot of different ways to make money, and we make a deliberate choice to do what we do. Fundamentally, a core purpose is an organization’s most fundamental reason for being. It does not change, but it inspires change. And most importantly, it must be authentic to the organization’s values and culture. 

Many companies have a mission statement, which is a (usually) brief and aspirational statement describing what it is that the company seeks to do. The difference between a mission statement and a vision statement is that a mission statement focuses on a company’s present state while a vision statement focuses on a company’s future.  Some companies tend to blend these statements, and in most cases, that’s okay. What’s important is that there’s an easy way for people to understand what the company is about and its approach. This is usually something that appears in the company handbook or field guide, and it’s often on the website as well. To be clear, a mission statement or purpose is something that should be distinct from your tagline or marketing slogan.

It’s my belief that regardless of what form it takes, a statement of purpose is not one of those things that you can just knock out in a workshop over an afternoon. It needs to come from deep inside you, and it needs to “feel” right. It’s also really important that the stated mission, vision, and values are be aligned with the actual culture of the company, or else they’re just lip service. 

For example, Enron advertised Communication, Respect, Integrity, and Excellence as their core values, yet the actions of their senior leadership created a culture of greed that encouraged unethical behavior at all levels, using a variety of deceptive, bewildering, and fraudulent accounting practices to make the company appear more profitable than it actually was. The company’s traders were also actively involved in manipulating the energy market in California, illegally cutting power to the state and causing rolling blackouts in order to keep prices artificially inflated. Enron’s CEO, Ken Lay, even bragged to the Chairman of the California Power Authority that "In the final analysis, it doesn't matter what you crazy people in California do, because I got smart guys who can always figure out how to make money." 


I would argue that one of the most important things that the executive leadership of a company can do is to reinforce the company’s vision and values. They need to hold other leaders in the organization accountable and accept ultimate responsibility for the company’s actions. As Harry Truman famously put it, the buck stops here.

At Palantir, our purpose is to strengthen humanity by helping others discover, create, and share knowledge. This informs the kinds of projects and clients we choose to work with, and along with our values and principles, it informs the approach our team takes to helping solve problems. It’s important to note that our purpose is not connected to any specific technology or even to the web itself; we just happen to believe that at this time and place in human history, the web is the primary conduit by which knowledge is discovered, created, and shared, and that we at Palantir have a role in helping others use the web in a way that helps strengthen humanity.

Especially during times of economic and political uncertainty, it’s especially important for companies to understand why they exist. Market conditions and technology change all the time, and if you’re going to be successful in the long term, you need to root yourself in something that is more stable. In our case, that means being able to help customers understand, articulate, and solve their problems in a holistic way. We have always defined our success by the results we help our customers achieve, not by the names of the brands we work with, or the amount of profit we make.

At the end of the day, I believe that companies are most effective when they can communicate who they are and why they are here. That’s something that we try to do at Palantir every day, and I think it’s a big part of what’s contributed to our success for the last twenty years.

AM: Thank you George! For more great tips, follow us on Twitter at @palantir, or visit our website at palantir.net. Enjoy your day.
 

Categories: Drupal

Acquia Developer Center Blog: Drupal 8 Content Workflow Initiative - Part 1

13 September 2016 - 8:09am

Part 1 of 2 - I got the chance to talk with Dave Hall and Dick Olsson from Pfizer at DrupalCon New Orleans about the Drupal 8 Content Workflow Initiative. This post includes the video and full transcript of our conversation, as well as links to many of the people and topics we touched on!

Mentioned in the conversation
Conversation Video - 23 min.

Transcript - Welcome to DrupalCon New Orleans!

jam: So – yes. Looking around us (and my joke of the week), we are in beautiful, glamorous New Orleans. Home of great food, which I haven’t had time to partake of this week, and amazing music, which I haven’t heard at all either, but that’s why we called it work, right? We’re here at the New Orleans cConvention Center on the sprint day of the North American DrupalCon 2016. Dick Olsen, how many DrupalCons have you been to and how was DrupalCon New Orleans for you?

Dick: DrupalCon New Orleans has been lovely for me, really. I’ve been at DrupalCon since Paris 2009. I’ve lost ...

jam: The whole time?

Dick: The whole time except San Francisco, which I missed due to the ash cloud.

jam: That was a fun con.

Dick: Yes, that was a – no, it wasn’t a fun ...

jam: No. So I had made it. So we all – we live in Europe, you live in Australia.

Dave: I made it.

jam: You made it. I made it because I went early, but a whole bunch of people couldn’t come right until the end of the week because they weren’t allowing any airplanes to fly because of the unpronounceable volcano in Iceland that was going on. So you have been to several DrupalCons?

Dick: Yes. I think I missed – maybe Washington in there. Was that after San Francisco or was it before?

jam: No, that was 2009. That was before.

Dick: Yes, that was before. Okay. So I’ve been more or less in all of them since 2009. It’s been a long journey.

Meet Dick Olsson!

jam: You’ve been in Drupal for ages as well, right?

Dick: Yes. So I’ve been in Drupal since 2007 – 2008, yes.

jam: Were you doing Drupal before you worked at NodeOne in Stockholm?

Dick: Yes, I did Drupal as a freelancer.

jam: What would you say your specialty is? What’s your Drupal thing?

Dick: I worked a long time on just general contribution to core, but my thing has really been focusing on content workflow and various topics within that. So, Deploy Module has been something that I’ve been involved with since early days of Drupal 6. I took over maintenanceship of that module for Drupal 7. That ecosystem also includes the UUID module and a few other bits and pieces. So the content workflow, content staging, previewing, content type of thing, that’s been what I’ve liked to play with in the community.

jam: UUID’s actually really great and important. That’s something that’s in Drupal 8 core now, and that means every piece of content that you create ever, has a unique identifier, which means that you can merge federated systems of sites, organize better search results, and you never get a conflict where your NID – your node ID is 20 or 200,000, and therefore, boom! Your database breaks, right? Like everything has a completely unique identifier.

Dick: Right. Which is very important when we stage content and move content around between various environments. So that was one of the first big contributions that myself and Dave did for Drupal 8. We got UI ...

jam: Segue to Dave!

jam: But that also helps you solve the problem of live comments happening while you’re updating a site in the background and – yes.

Dick: Yes.

Meet Dave Hall!

jam: Dave Hall! How long have you been doing Drupal and what is your first Drupal memory?

Dave: Okay. So I started with Drupal 4.6. I messed around with it. I first used 4.7 in anger. So I think that was around 2008 – yes, about 2008 probably.

jam: I think it was a little earlier, but talk about using Drupal 4.7 in anger?

Dave: Yes. So I had a client who wanted some content and an online store and I looked around and I already knew about Drupal. I’d done a CMS evaluation for another client and recommended Drupal. They decided to go with WordPress and I said, “See you later guys.” So yes, for this other client, I started using Drupal Commerce – Drupal eCommerce from Gordon Hayden back in.

jam: Yes. Yes. You remembered Drupal eCommerce, which is before Ubercart, which was before Drupal Commerce.

Dave: Yes. I’m one of the grumpy old men of the Drupal community these days.

jam: Get off my shopping cart!

Dave: Yes, exactly. Or get off my site, full stop. Yes. So I’ve been doing lots of stuff with Drupal over for the years. Me and Dick Olsen have actually been stalking each other for years. We both applied for the same job at one point. We co-authored the report to get the Symfony components for HTTP routing into Drupal 8 Core.

jam: Thank you. Thank you. Thank you for that.

Dave: So all of these OO stuff is actually our fault. I know Larry likes to take the credit for it but ...

jam: Oh, here we go ... Okay. I like this. Now, we can get a sort of a rap battle style, diss competition going.

Dave: Yes, I actually heard him take in credit for it when we were in Mumbai and pulled him up on it, and he didn't seem too impressed, but ...

jam: So I have to ... – I will also thank him but I have to thank you guys because not only do we get a really powerful up-to-date, standards based, great core that we can work with for years and years now, which is amazing, but that has also been a great excuse for me, personally, to go out and get really involved, meet a lot of people in the PHP community, go to a ton of great conferences, and really – so thank you. I’ve personally benefited from this.

jam: You, Grumpy Old Drupal Man, what made you stick with Drupal all these time?

Dave: I’d got into dealing with developer workflow and deployment issues around Drupal. So back in the days of Drupal 6 for a single client, I deployed 2086 production Drupal 6 sites using Aegir. That was a crazy project, and ever since then, I’ve been really interested in how do we get code, content, and configuration through the sausage factory that is Drupal development? So really trying to dig into that problem space. So, I do some stuff with content staging but Dick has dug into that a lot more, but I look at ... once you’ve got your content staging solution, how can you automate that? How can you make your config and your code and all of that stuff be able to move around in a coordinated way?

jam: So, deployment in every sense.

Dave: Yes.

What do you like about Drupal 8?

jam: Tell me, please Dick. We’ve been working on Drupal 8 for the last five plus years. What’s your favorite thing about Drupal 8, and where do you think – what sort of horizons does it open for us?

Dick: The biggest and the most important change – I think with Drupal 8 is not necessarily that it’s object-oriented and all of these things. It’s that we have changed our mental model of how we develop Drupal. Semantic versioning in our release process, because that’s absolutely going to set us up for innovating quicker and faster, engaging more people and that ...

jam: Did you see – you’re reading my session notes from what I talked about yesterday.

Dick: I didn’t, but I know how you think sometimes. No, so that’s really I think the biggest impact. Along with that comes Composer - that, I know that you talk about a lot, semantic versioning and Composer. So those things. I think if we have those, everything else will come naturally. More object orientation, more features that we want, more UI improvements. That iterative approach is what I’m most excited about in Drupal 8.

jam: Okay and how about you?

Dave: Well, there’s a strange thing that happens between me and Dick. It’s like I’m thinking something and it comes out of his mouth or the other way around. So I agree with everything that Dick said, but also, I think CMI is a really important ...

jam: Now, just called Configuration Management, I think.

Dave: Yes. Sorry. Configuration management. I work in a corporate environment. So I love my TLAs – "three letter acronyms," for those of you watching at home. So the configuration management stuff makes things so much better, like I embraced features very early on. I could say the power of features and the benefit of features, having YAML files that you can just shuffle around, import, export ...

jam: Version control ...

Dave: Yes. All of that stuff makes things so much easier, and you don’t end up with a developer going in and hacking a feature to just tweak it a little bit, and then when you go to deploy it, stuff breaks everywhere. So yes, I know they can hack the YAML files as well, but hopefully, they do that less. So yes, I’m really excited about that stuff.

Community Initiatives for Drupal 8

jam: Dries talked in public in his keynote here in New Orleans about how he thought the idea of initiatives that we started in Drupal 8, that that went really well, and obviously, there’s been a lot of talk about how to do them better. One of the ideas is to essentially, instead of sort of top down announcing, “We’re going to do this, that, and the other thing," – sourcing ideas from end users, from developers, from the people who work on it to make new initiatives that we can actually use to improve Drupal 8, six months from now, a year from now, two years from now, which is the amazing thing about the semantic versioning model. So I like the idea that there’s this sort of community sourced initiatives, and he’s announced a couple, and you are both part of the one that’s actually the furthest along already. Were you in some ways maybe the model for how to make a new-style initiative?

Dave: We’re happy to take the credit for it.

jam: So it wasn’t Larry this time, it was Dave and Dick.

Dave: No, Larry better not try to take the credit for this one.

jam: So what is the initiative that you’re involved in?

The Drupal 8 Content Workflow Initiative

Dick: The initiative is called the Workflow Initiative or to be more precise, Content Workflow Initiative, and the idea here is really to bring major improvements for our content authors when it comes to content moderation, content workflow and content staging. This will be done by doing lots of UX work and big improvements to our Entity API in core. Lots of the things that we have on our Workflow Initiative roadmap is already being worked on in contrib. and these modules for Drupal 8 has been in development for already quite a few years ... Or two years, I should say. And sort of being battle tested in contrib. as well.

Pfizer and Drupal and the Workflow Initiative

jam: You both work for Pfizer. Talk about – and Pfizer is an organization that literally needs thousands, thousands, and thousands of websites, and they use a lot of Drupal. Talk about the needs of your organization and how this fits to those ... Please use as many acronyms as possible.

Dave: Okay. I’ll do my best. So Pfizer has this thing called MLR, Medical and Legal Review, because being a pharmaceutical company, it’s a highly regulated industry. Pfizer can’t just ...

jam: (That’s an "HRI".)

Meeting real world workflow challenges

Dave: Yes. Pfizer just can’t put up a website saying, “Buy this drug, it’ll solve all of your problems.” They need to make sure that the claims that are being made are backed by research and have been approved by the FDA and there are certain disclaimers that need to be on the website. So all of this stuff that needs to go through a process, where both the lawyers and the medical people check that the content is actually accurate and legal to go on the website. Now, there may also be marketing campaigns where there’s particular stuff that has pre-approved messaging that they can use anytime. So that stuff can go through quite quickly, like say for a coupon for discounted medication or something. They need to be able to roll those out as the TV campaigns are ready to run or the newspaper ads or whatever. Whereas the changes to the content around the claims and things like that that can take a long time, so we need the ability to have multiple streams of content changes running through our environments.

jam: And I see potentially as well, for different kinds of information, different approval workflows, and then I believe you also have to deal with the internationalization side of that, and the regulations and the claims are not just straight translations at that point, right?

Dave: Yes. Pfizer's in a lot of different markets. Each country has their own regulations, and in countries like Switzerland, you’ve got four official languages in that country. So Pfizer has to deal with a lot of complexity with our content.

jam: Okay. This work that you’re doing fits into this model. I like this because this is – I think – going to be a successful example of this very pragmatic marriage between fundamental business interests and doing open source right. Pfizer has benefited from our technology and everything that we’ve put into it. You benefit because you have a great job, and now they need more and it seems to be clear that doing that in your work time that’s – and it’s still going to be Drupal, right? It’s still going to be open-sourced. So was that a hard conversation to have with them?

Dick: With Pfizer, you mean or ...?

jam: Yes.

Dick: No. The management that we have – the IT management that we have at Pfizer, specifically our boss, Mike Lamb, has a very good vision, and he has a very good understanding of open source and what it means, and what it can bring back to a company like Pfizer by doing all of these things. So it was actually Mike who was the driver behind these things, and he got the team on board, and of course, he needs to have a dialogue with his senior management, but that has been a very successful dialogue so far.

Workflow Initiative roadmap, timeframe, phased approach

jam: So what sort of a roadmap and timeframe do you have going on?

Dave: For the initiative?

jam: Yes. Sorry. For the initiative, yes.

Dave: It’s going to be a phased roadmap. So instead of what happened with Drupal 8.0 where it tried to make massive changes and get them to land as one big chunk, we’re adopting a phased approach and looking at what will actually bring benefits – the greatest benefit at each point in the roadmap.

jam: I hate to use the word ‘agile’ but you’re going to do it like a minimum viable product release? And are you going to take advantage of the experimental core modules along the way, hopefully?

Dave: Yes, that’s exactly how we’re looking at doing it. I would actually say that what’s in contrib. today is our MVP, and we’ve been iterating on it in contrib. like with Deploy, it started in Drupal 6 and iterated in 7, and now 8, and now it’s moving into core, and we’re also bringing in parts of Workbench and that started in Drupal 7, building on ideas from previous content workflows as well. So it’s very much that iterative approach and bringing in changes that help people as we get to the end-game, but one of the things we’re very conscious of is when we’re building our own MVP, we’re not going to try to turn our skateboard into a car. We are actually going to be looking at needing to build a car eventually, and making sure that what we build along the way gets us to a car.

jam: Cool. Okay. So mixing our metaphors here a little bit, but it’s also – I guess it’s more a matter of if contrib. does more or less all of this pretty well, it’s also a matter of abstracting it out to the most general use case and sort of strengthening it so that it can be reliable enough to be in core.

Dave: Yes. And there’ll also be some parts where we decide, “Okay. This will work for the 80% case or the 90% case,” and then drop in our pluggable service. So then contrib. can still extend what we’re building, because that’s the power of Drupal. We won’t build something that works for every single user into core. So we need to still allow contrib. to extend what we’re doing.

jam: Right. So we invested heavily in CK editor for WYSIWYG but we still have the – is it the WYSIWYG API – the Editor API? Anyway, we have the wrapper around it, so you can still integrate something else if you want to.

Dick: Yes, exactly. And this is very much an ongoing conversation with the whole community, in terms of a roadmap in our plan. It’s not like Pfizer stepping in here and saying, “This is how it should be done.” As Dave said, these ideas have evolved outside of Pfizer with many different companies, many different clients of both myself and Dave on our own. It’s also reflected in Dries’s survey that this is something that people are looking for. It’s one – media, I think was one of the sort of main user, and content authoring functionalities or future sets that we look for. The second one was workflow related or previewing, moderation type of thing. So this is not something where even though we will be working on this initiative as part of our day job, this is not something where we are coming in and imposing a roadmap.

jam: It’s still the community process.

Dick: It’s absolutely, fully a community process, without a doubt.

jam: What sort of help are you looking for and where should people go to find out more?

Dick: So we have the official plan issue in the core issue queue – it’s there. Just search for anything tagged with the "workflow initiative" tag and you will find it. We will also be gathering our community efforts around Drupaldeploy.org, which is going to be a little bit like – it’s a home for our contrib. modules in this space, and it will also be the home for the initiative a little bit. So those are two good places to start, and there you can find the roadmap, you can find the people who are going to work – sort of the dedicated team for this – and these are people that you can reach out to if you want to help. We have myself as the initiative coordinator, Dave as a senior member of the team with lots of experience here. So Dave will help guide the roadmap and the priorities.

Dave: I’ll play the grumpy old man of the initiative.

jam: Okay!

Dick: Then we have team Tim Millwood, Andrei Jechiu, and Andrei Mateescu on the backend coding side of things. Tim is working for Appnovation, Andre Jechiu is working for FFW, and Andrei Mateescu is freelancing.

jam: Okay. Oh, amateescu, yes, yes.

Dick: Yes. So if you’re interested in coding and the backend side of things, those are people you could reach out to. Certainly, myself as well. If you’re interested in user experience, design, and frontend, then we have Joseph Toth on the initiative as well. You can reach out to him if you want to help with the UX part or the frontend and they’re all listed in that initiative plan that you will find in issue queue. So that’s where you could start.

jam: So did Dick read your mind and say everything that needed saying?

Dave: Yep. I’ve also read the plan multiple times.

jam: Okay, all right. So this is really, really exciting and I actually – it’s especially exciting – I just want to underscore this. We can see results in – maybe not 8.2 but in 8.3, a year from now. Drupal will be better and doing more things, right?

Dave: There will actually be - some of our first phases of development are targeted for 8.2, so yes.

Wrap-up: please help out!

jam: Amazing, amazing. I love that. Thank you so much for taking the time to explain this. Please come help these folks out, I think this is the beginning. There are a bunch of these initiatives coming, and this is the beginning of this possibility where we can make significant differences in a really rapid time frame in our project, and keep ourselves really relevant and on the front lines of the web for quite a while, I think. Quite a while. All right, how was your Con?

Dave: Awesome! It’s probably – after Mumbai, it’s my favorite Con – so my best North American Con I’ve been to.

jam: All right. Big words, and you?

Dick: Because of the initiative, I’m super excited and it’s been one of the best conferences here.

jam: Fantastic! I’ve also had a good time, though I haven’t seen much of New Orleans because it’s just been one of those weeks. Thank you so much for explaining this and doing this, and anyone who wants to help out, come find these people online, Workflow Initiative.

Dave: Yes.

jam: Thanks, guys.

Dick: Thanks.

Dave: Thanks, jam.

Podcast series: Drupal 8Skill Level: BeginnerIntermediateAdvanced
Categories: Drupal

InternetDevels: D8 Module Recap: Workbench Moderation

13 September 2016 - 7:58am

So, Drupal is not seem to stop migrating modules any time soon and we are not complaining. So much information to explore, so much things to share with you guys.

And this time we’re covering the Workbench Moderation module. Sounds serious. And it is!

Let’s count some of the features of this module, but, first, let’s find out what it does and how it works.

Read more
Categories: Drupal

OSTraining: Four Videos Showing How to Build a Drupal 8 Module

13 September 2016 - 7:48am

Building modules in Drupal 8 is surprisingly easy.

With just four files, you can register the module with Drupal 8, create functionality, control permissions and add a menu link to the module.

In these four videos, taken from the "How to Develop Drupal 8 Modules" class, we're going to show how easy it is to build your first module.

All you need is a Drupal 8 site and you should be able to follow along in just a few minutes:

Categories: Drupal

Drupal.org blog: What's new on Drupal.org? - August 2016

13 September 2016 - 7:44am

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

Our latest update about Drupal.org comes as the Drupal Association has moved out of our central office in Portland, OR, and gone to an all-distributed team. A move of that sort always creates some upheaval but amidst the move we've continued to push forward on several initiatives to improve Drupal.org.

At the same time we've been pushing forward towards DrupalCon Dublin at the end of September- and we hope to see you there!

Drupal.org updates A new home page, coming soon

As we recently previewed on the Drupal.org blog, some changes are coming to the home page. We're building some new editorial tools to allow for more flexibility with the home page content, and to enable an increased focus on the adoption journey for visitors to Drupal.org. You'll see styles reminiscent of the Drupal 8 release announcement pages, and a continued modernization of theme.

The launch of the new home page is coming soon, but as a precursor we've been making some small improvements. The new user menu which we launched in July has been updated for better keyboard accessibility, and to show a user picture as an indicator that a user has logged in. We've also moved the search feature into an icon in the top navigation. This gives us more flexibility with the header, which can be customized per-page type or per-section with the overall site search box still being present. For example, the header in the new documentation section features search box specific to this particular section, so while you are there you can search for other documentation without having to go through the full-site search and then filtering down. Lastly, we've merged the 'Get Started' and 'Download & Extend' pages. 90% of the content on these pages was duplicated with each other - and the new page presents a cleaner experience with the essential details needed for getting started with Drupal.

The new front page is beginning editorial review, with the help of DA staff, a marketing task-force from the Drupal Association board, and a few key community members.

We've also just launched our fall membership campaign, and we've used this opportunity to beta test some of these new editorial tools to build the campaign landing page. Your support makes our work possible. Thank you!

Documentation

There's some news to report on the documentation front as well. Firstly, as mentioned above, we've updated the header of the documentation section to default to a documentation-specific search box. While not so important for other areas of the site,, we want to preserve and improve the highly-visible, in context search for Documentation.

We've also made some updates to the new system for Documentation maintainers. Authors of new documentation guides will now automatically become maintainers of those guides and automatically 'follow' the guide content so that they will receive notifications of activity in that guide. Any user following a guide can modify notifications settings at any time from their user profile. Within the notification settings a user can select their prefered method of receiving updates - via email or via their tracker page.

Tvn has continued to spearhed the migration of documentation from the old book pages, to our new documentation system.

We have completed the migration of the majority of the 'general' documentation. While that is done, there is still a lot of work to do to make the documentation content better using the new tools that are now available.

We need community volunteers to take on small sub-sets of documentation to clean them up post-migration and to maintain going forward.

If you don't want to commit to maintaining a guide, you can still help out by doing some of the pending tasks for any of the documentation pages.

Lastly, if any Drupal developers are interested in contributing code to the new documentation system to clean up a few minor bugs and features, please contact tvn. And if you are going to be at DrupalCon Dublin, consider joining us at the sprints!

Quality of Life Improvements

We also took the time in August to make a few quality of life improvements, both for our end users, and for our own team. Firstly, we've made it easier than ever to download a copy of your invoice for DrupalCon. Any user can now log into events.Drupal.org and any time, go to "My Account" -> "Orders" and download a pdf of their invoice for any past event. If your company is sending you to DrupalCon, this makes the process easier than ever. (And if they're not, here are some tools to convince your boss!)

Behind the scenes, we've made some additional improvements to our sophisticated spam prevention system, which focuses on preventing bad actors from even registering on Drupal.org in the first place. For those few bad actors that do get through, the system is also tuned to allow us to prevent those users from making multiple account registrations, as one of the primary methods for targeting Drupal.org in the past has been to make a large number of 'sleeper' account registrations that can be later updated with spam links. Unfortunately, on rare occasions this tool can make it difficult for legitimate users to register an account, so we've updated the system with a whitelisting system that allows legitimate to register, without opening the floodgates to the bad actors.

Infrastructure Virtualization and better Drupal.org dev sites

On the infrastructural side we've been focused on improving the maintainability, stability, and portability of our infrastructure with our smaller engineering team. In particular we've been focusing on virtualizing all the components of our infrastructure.

In August in particular we completed the virtualization of pre-production services. We've optimized the snapshotting and whitelisting process that allows us to create staging and development environments to make that process more efficient and easier to manage. We've also replaced our drupal.org dev site architecture with a new architecture that is no longer vulnerable to docker-fs faults which have multiple times resulted in data loss on our development environments. Drupal.org contributors who've been affected by dev site fragility should find dev sites to be much more robust moving forward.

Community Initiative Updates

Finally, here are some updates on our active community initiatives. Community initiatives are a collaboration; with dedicated community volunteers building improvements to Drupal.org with the architectural guidance and oversight of the Drupal Association engineering team.

Drupal 8 User Guide

The Drupal.org user guide is an effort lead by jhodgdon and a number of other contributors to create a highly produced, tightly editorially controlled guide to using Drupal 8. This user guide has been written to the standard of an industry publication, and uses a custom editorial workflow with git + asciidoc. Jhodgdon has been building out functionality to publish the user guide to a Documentation guide on Drupal.org.

Security

A few interrelated initiatives are in progress to improve how information about project security is displayed on Drupal.org. Mlhess has been working on a new security advisory content type for Drupal.org, which will allow security advisory content to be more easily related to project releases, among other things.

With the input and collaboration of quite a few community members, including the security working group, we've also deployed an update to project pages.

This update adds a shield icon next to stable releases. This shield icon indicates which releases are covered by the security advisory policy. This small change is also part of the groundwork for a project application revamp.

Community initiatives are not work that the Drupal Association can tackle on our own. Our mandate requires us to remain focused. That said, whenever the community has arrived at a strong plan and individual volunteers are ready to contribute code, the engineering team can provide architectural advice, code review, and deployment support.

———

As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects.

If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Categories: Drupal

OSTraining: 3 More Major Features in Drupal 8.2

13 September 2016 - 7:32am

In early August, we wrote about 7 improvements you'll see in Drupal 8.2.

During the four weeks since that post, the Drupal team has added more major features. Drupal 8.2 is now in the release candidate stage, so the features are finalized. Now is a good time to download and test.

You can read the 8.2 changelog for a rundown of all the changes, but in this blog post we'll introduce you to three more big improvements.

Categories: Drupal

Valuebound: Most Commonly Used hooks in Drupal 7

13 September 2016 - 6:28am

Before I begin with hooks, I am sure that you must be aware of the Drupal hook system. What is hook? How modules interact with the core code of Drupal? How hooks make it possible for a module to define pages, content, bundle, entity, menu, region, table, url etc? In this article I will be re-introducing you to the hooks and if you are looking for more information on the hook system then my suggestion is to go through Understanding hook system for Drupal module

First, I would like to give a small summary on hooks. A hook is a way to place a piece of your own custom code to be run by Drupal. Using hooks, you can ask Drupal to run a piece of code when a node is viewed/edited/deleted. hooks are conceptually related to method. They…

Categories: Drupal

Zivtech: 3 Things Junior Devs Should Know About Writing Drupal PHP

13 September 2016 - 6:00am
PHP can be challenging to learn, especially if you’re learning Drupal at the same time. Three things stood out to me while I learned how to write PHP within Drupal, and I’m hoping by highlighting them, it might help other junior developers.

I’m going to use a snippet from a basic Drupal form with a submit handler (see code for the entire form here). It’s an example of code you will see often, since Drupal re-uses their form API for consistency in form processing and presentation. This particular code snippet adds a fieldset called ‘name’ to the form.
/** * Returns the render array for the form. */ function my_module_my_form($form, &$form_state) { $form['name'] = array( '#type' => 'fieldset', '#title' => t('Name'), '#collapsible' => TRUE, '#collapsed' => FALSE, ); Three items within just these few lines seemed strange to me starting out. Function t '#title' => t('Name'), You’ll see this bugger everywhere! Of course I know how to write a string, but what is the t for? Straight from the Drupal 7.x API:

“Translates a string to the current language or to a given language.”

As explained here, each string within function t can be translated through the Drupal UI, which is great for the accessibility of your site. All strings need to be passed through this function, but it’s worth noting that content translations are actually handled elsewhere (see the Internationalization module for more information).

& - Passing by reference function my_module_my_form($form, &$form_state) { } As I started to write functions in PHP for Drupal sites, I noticed that so many of the arguments had ampersands in front of them. So what is that about?
From the PHP Manual:

“You can pass a variable by reference to a function so the function can modify the variable. The syntax is as follows:”

<?php function add_one_to(&$var) { $var++; } $a=5; add_one_to($a); // $a is 6 here ?>

In my function my_module_my_form, I want to modify the variable’s $form_state. This variable is used to retrieve the values entered from the user in the form, so it follows that I probably want that variable to be modified in order to store those entries. It’s worth noting, however, that by default, objects are copied before they are passed to a function. From php.net:

“When an object is sent by argument, returned or assigned to another variable, the different variables are not aliases: they hold a copy of the identifier, which points to the same object.”


This acts as a safety net by ensuring you don't change an object by mistake. But sometimes the purpose of a function IS to change one of the objects passed (like in our form example), and this is when you pass by reference.

# Properties $form['name'] = array( '#type' => 'fieldset',

The form API is robust in Drupal, and can be used over and over again. It would be reasonable, then, for the same properties to exist for certain variables, like $form (see complete list of properties for $form in the Drupal 7.x API). So when you’re setting the properties of your variable, the ‘#’ denotes that ‘type’ is a property, and so is ‘title’, etc. Not every property needs to be set, but you’ll see the major ones being defined often.

I hope I was able to demystify some of these conventions - the learning curve of Drupal is steep, and sometimes you just need to break it down into manageable pieces. I’d love to hear about other Drupal or PHP conventions that were odd to you when you started out.

A special thanks to Dan Zinkevich for helping to edit and clarify this post by lending his expertise!

Categories: Drupal

Annertech: Meet the Annertechies You'll Meet at DrupalCon

13 September 2016 - 4:39am
Meet the Annertechies You'll Meet at DrupalCon

Annertech will be descending upon DrupalCon with (nearly) our full team of "Annertechies". So much so that there will be more Annertechies in attendance than all other people from Irish agencies combined. With that kind of showing, we thought we'd introduce ourselves and let you get to know us.

Categories: Drupal

Valuebound: 7 Things you need to know before expanding to a Multilingual Website

13 September 2016 - 4:03am

For a Digital Media website, expanding business to another language is a quite challenging and tough task to deal with. It makes you re-evaluate your CMS . A lot of questions come forward while you take the decision. Firstly Why? But now that you know you want to translate, you think, What all should we translate? How will we handle pages in default language? What components do we add? What services to use and how to maintain pages?

A major chunk of content these days is written, managed and stored with the help of a CMS or Content Management System (CMS). Selecting the right CMS at the beginning of expansion into a multilingual site ensures that the website and its contents are effectively managed and displayed right from the beginning.

# 1 What  is the…
Categories: Drupal

OpenLucius: Update OpenLucius | September 2016

13 September 2016 - 2:04am



We've updated OpenLucius, a Drupal social intranet / work management system. This is the most important new stuff we built for you:

1. Board

We added a new app: Board. In this Kanban board you can collaborate on tasks more easily and efficient:

Categories: Drupal

DrupalCon News: Drupal in Ireland - Project 2

13 September 2016 - 1:00am

As part of our series of showcasing what Drupal is doing in Ireland, we are happy to bring you another awesome online experience that Drupal has created.  

Categories: Drupal

Dewy: Stop The Update Module From Scaring Your Clients And Users

12 September 2016 - 11:00pm
The update module provides an important view of what modules are out-of-date and insecure on your Drupal site. But to your users and clients, the list is confusing, alarming, and the more they see these warnings before you can get to them, the more risk to your reputation.
Categories: Drupal

Colan Schwartz: User-friendly encryption now in Drupal 8!

12 September 2016 - 1:54pm
Topics: 

The problem with most encryption strategies nowadays is that they require third-party software and/or services, require maintenance of additional keys and/or secrets, and provide an awful user experience.

Earlier this year, I started wondering why we couldn't simply encrypt data with pre-existing secrets, the passwords users already have for logging into their Drupal sites. They shouldn't have to deal with public and private keys and other cryptographic details. So I did some research, and was happy to discover that the security model is already in existence. The folks at ownCloud have not only published it (Data Encryption Model 1.1 and 2.2); they've already implemented it in their product. What's even better is that the product is also written in PHP like Drupal, and has an open-source license. So the ideas and code can be reused.

Not too long after I made this discovery, the Drupal community was looking for project ideas for Google's Summer of Code (GSOC). So I added mine to the list. There were several students interested in the topic, and wrote proposals to match. Talha Paracha's excellent proposal was accepted, and he began in earnest. With Adam Bergstein (nerdstein) and I mentoring him, Talha successfully worked though all phases of the project. For details, please see his blog posts.

Now that GSOC 2016 has come to a close, we have a full project release for the Pubkey Encrypt module. It's currently in beta, awaiting community review before we publish a production-ready version. We've included an architecture document, user stories, and usage documentation. There's also a video! Please take the time to experiment with the module, and create tickets for any issues that you find.

At the time of this writing, only field data can be encrypted via the Field Encryption module. The File Encryption module is still in development, but as soon as it's released, it should work with Pubkey Encrypt as well.

This article, User-friendly encryption now in Drupal 8!, appeared first on the Colan Schwartz Consulting Services blog.

Categories: Drupal

Palantir: Dublin DrupalCon, Here We Come!

12 September 2016 - 9:00am
Dublin DrupalCon, Here We Come! brandt Mon, 09/12/2016 - 11:00 Alex Brandt Sep 12, 2016

See us speak at Dublin DrupalCon September 26 - 30, 2016.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

If there’s any event that gets us excited, it’s DrupalCon. Dublin DrupalCon is approaching in two short weeks, and we will have three Palantiri in attendance speaking about Drupal and its community values. Check out the full list of our presentations below. We can’t wait to see you there!

Contextual Configuration in Core: Do We Want It and Can We Do It? By Ken Rickard
Tuesday, September 27, 2016
3:45 - 4:45pm
Room: Liffey Meeting 4

Why you shouldn’t miss it:

  • If you need to change site variables within a specific context, such as a group, a domain, or a workspace, building a UI is currently blocked by core limitations.
  • For instance, do you need to change the timezone of your site based on that language of your users? Right now, you have to do that with YAML files.
  • We’ll explore these limitations, discuss possible solutions, and try to decide if it’s important enough to fix.

 

Improving the Drupal Contributor Experience by George DeMet
Tuesday, September 27, 2016
10:45 - 11:45am
Room: Liffey Meeting 3

Why you shouldn’t miss it:

  • George and other members of the Drupal Community Working Group (CWG) will be exploring some of the root causes of contributor frustration and burnout in the Drupal community and discuss some possible solutions.
  • The session will talk about how things like formalized mentorship programs, leadership training, and better community conflict resolution resources can help improve the experience of contributing to Drupal for everyone.
  • Attendees will gain insight into the kinds of issues that people experience when contributing to Drupal and other open source projects, but also learn about some important non-technical tools and techniques that can help improve communication and make it easier for people to become more engaged community members.

 

Workbench for Drupal 8 by Ken Rickard
Thursday, September 29, 2016
10:45 - 11:45am
Room: Liffey Hall 1

Why you shouldn’t miss it:

  • Workbench makes building complex editorial workflows easy.
  • Learn how to select and configure the components that make up Workbench.
  • Workbench Moderation has moved into Drupal core. Find out what that means for your project.

 

Midcamp Madness and Planning Human-Centered Events by Avi Schwab
Thursday, September 29, 2016
2:15 - 3:15pm
Room: Liffey Meeting 4
Why you shouldn’t miss it:

  • Avi will channel the knowledge of the whole MidCamp organizing team to share the special sauce that makes MidCamp one of the premier Drupal camps in the country.
  • Conferences often focus more on the code than the people who make it. Whether you are an organizer or an attendee, we’ll try to help you feel more like a human being at any event.
  • A wealth of Drupal knowledge awaits those who seek to find it. Learn how we achieve some of the fastest video turnaround and highest recording rate of any camp out there.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.
Categories: Drupal

Acquia Developer Center Blog: Multisite Governance, Site Delivery, and Other Issues Related to Managing Many Sites: Part 4

12 September 2016 - 7:35am

This is Part 4 of an interview with Will Eisner, Senior Director, Product at Acquia. Will’s primary focus is on Acquia Cloud Site Factory, which helps organizations create and manage many sites, from a dozen to thousands.

Tags: acquia drupal planet
Categories: Drupal

Drupal Association News: Membership is connection

12 September 2016 - 5:00am

Today we launch the membership campaign focused on the Drupal Association Community Cultivation Grants program. Association members fund grants to kickstart community-strengthening projects around the world.

The campaign runs through October 28 and our goals are 265 new members signed up and $10,918 in revenue. These are a 10% increase over the same period of time last year.

We'll have a banner on drupal.org throughout the campaign and a landing page. In it, you'll read how grant recipients feel connected in the community.  Their pride shows in their words about work on Drupal camps and a traveling roadshow. Thanks to Andrey, Ricardo, Martha, Ivo, and Tom for sharing stories.

You can help make this campaign a success. Join the Drupal Association and share your story. How has community connected you with people, resources, and success? Tell your story to the Drupal community members and open source advocates you know.

Spread the word

Personal blog tags: Membershipcommunity cultivation grants
Categories: Drupal

Pages