Software

Drupal Watchdog: The Automagic Speed-Up Cache

Drupal Planet - Thu, 2014-09-18 19:05
Feature Motivation

The granularity of cache expiration in Drupal has been a long-standing problem.

One can have the most effective cache in the world, but if it clears entirely on any content change, it is not really workable. A “page” in Drupal can have blocks, listing, entities, regions, and many other objects. When one contained item changes, the container of that item needs to be fully rebuilt; often, that is the whole page, a problem requiring a much-needed solution.

A page is divided into regions, blocks, listings, and content items. Only the red item needs to be re-built as only a single node has been changed; the rest can be retrieved from cache.

Why can't we just rebuild the parts that have actually changed?

Consider what would be the best case scenario here. Assume that every item listed above can be cached separately. Now if one single entity changes, the following would be our "perfect" page request:

  1. Drupal bootstraps.
  2. Drupal builds the page.
  3. Drupal notices that only the “content” region has changed and retrieves the remaining regions from cache.
  4. Drupal re-builds the content region.
  5. Drupal notices only one listing in the content region has changed and retrieves the remaining blocks from cache.
  6. Drupal builds the “missing” block.
  7. The block contains a listing of entities.
  8. Drupal re-builds the listing, and entity_view() is called on these entities.
  9. Drupal retrieves all entities except the changed one from cache.

We would have a bootstrap, then we would see just one region call, one block call, one listing call, and one entity building call. Is this really possible?

Yes and no.

There are certain implementation limitations – especially around page assets – and a unified caching strategy needs to take them into account.

State of the Art

Render Caching is the saving of HTML content in a storage cache, while retaining assets like CSS and JS files and other “out-of-band” data. It can be used for reconstructing the page content, without changing the state the page would have without render caching active. The render cached HTML markup needs to be removed from the cache, or updated in the cache when the objects used for generation of the markup change.

Categories: Software

Acquia: Drupal 8 developer experience wins, the PHP Renaissance and more with Angie Byron

Drupal Planet - Thu, 2014-09-18 18:06

Part 2 of a 2-part conversation with Angie Byron in front of the cameras at NYC Camp 2014, held at United Nations headquarters in New York. In this part of our conversation, we talk about improvements in the Drupal developer- and learning-experience thanks to the major changes under the hood in Drupal 8; the "PHP Renaissance"; and about being welcomed "back into the fold" of the greater PHP world thanks to the nature of Drupal 8 being a sort of "meta project" (my words) that includes parts of many others.

Categories: Software

ThinkShout: The Small Business of Open Source

Drupal Planet - Thu, 2014-09-18 16:00

This summer, ThinkShout was named the 9th Fastest Growing Private Company in Portland, Oregon. Admittedly, this came as sort of a shock to me and Lev. Over three and a half years, we’ve grown the company from two dudes renting desks in an incubator space to a full-time team of 17 professionals averaging 10 years of experience each. But most of the time, it doesn’t feel like we’ve come up with any secret sauce for running a successful business. We try to listen to our employees and our peers in the industry. We partner with nonprofit clients trying to make the world a better place, and we do our best to treat them with integrity in all aspects of our work - from our design and engineering practices to our approach to project management and our billing process.

Perhaps there are a few things that we do particularly well. We win our fair share of work in coopetition with our peers in the nonprofit tech industry. But then again, in talking with our friends at ZivTech, Gorton Studios, Aten Design Group, Jackson River, Forum One Communications, and others, what we consistently hear is that there is more than enough work to go around in the world of technology for good.

How is that? What are the mechanics of "the small business of open source" that work for all these firms and, more importantly, for their customers?

You could tackle this question from a number of angles. Conventional wisdom suggests that the business value of open source, both in the for-profit and nonprofit sectors, is simply: you get a lot of stuff for free. This is true. With open source, you avoid licensing fees. With an open source platform such as Drupal, you can pick and choose among literally tens of thousands of free tools and extensions.

But this perspective speaks only to open source’s initial customer appeal. It speaks to the coarse outlines of the sales cycle of open source. You can’t just build a sustainable business off the idea that a platform like Drupal provides a lot of stuff for free.

So, what is the guiding principle of growing a small business around open source? For us, it boils down to:

Our customers benefit tremendously from their own contributions to open source.

Put a bit more bluntly:

Our customers benefit from paying us to give away their code.

To illustrate this point, I’d like to run through some of our numbers as a small business of open source. The following statistics are relative to the publication date of this blog post:

  • ThinkShout’s team includes 8 engineers with a total of 4,269 commits to contributed modules hosted on Drupal.org.

  • We actively maintain 24 contributed modules that represent over 100,000 lines of code.

  • The combined installation base of these modules (i.e., the aggregated number of websites using each of these modules) is over 42,000.

Interestingly, our staff has grown 750% from the end of our first quarter. The growth in adoption of our contributed tools by the community (1,400% since the end of Q1 2011) tracks closely with the growth of our quarterly revenues (1,300%).

thinkshout-growth.png

Obviously, these statistics are only related anecdotally. On their own, they don’t prove that our open source contributions drive our success.

Still, it is interesting to look at some of the statistics around our client work:

  • Averaging the last four $80-$150K Drupal website projects we’ve completed, a typical project in this price range is made up of 36,289 lines of custom code and exported site configuration (excluding the theme, or the implementation of the graphic design).

  • In addition, most of these projects include the release of 1,000-5,000 lines of contributed code. In other words, clients who engage with us on these sorts of projects pay for us either to contribute back major features to a contributed module, or to release one or two stand-alone modules.

  • But what’s most interesting is that each of these projects leverage at least 4 to 5 of the contributed modules that other clients have paid for on previous projects. Each leverages around 20,000 lines of contributed code that our team has written for similar use cases.

Of course, these statistics reflect the significant cost savings to our clients in going with an open source solution. They get a lot of free stuff…

But more importantly, our clients benefit from becoming financially invested in the direction and cultivation of these open source projects. By becoming committers, they are ensured that their requirements will continue to be prioritized in the future development of the modules their website depend on. They benefit too by the tens, sometimes hundreds, of open source developers reviewing their contributed code for bug fixes and improvements.

Moreover, by releasing the code that powers their websites, our clients connect with other organizations with similar requirements who, in turn, will often contribute additional features to these projects over time. As a case in point, we released the Leaflet module, a web-based mapping solution, on behalf of the Intertwine Alliance in the summer of 2011. The Alliance paid for the initial release, which included a modest yet highly-innovative feature set. Since then, 36 different Drupal developers have contributed code to improve the module, and over 4,500 websites have adopted it.

Similarly, we initially released RedHen CRM, a native CRM solution built entirely within Drupal, for a small cohort of nonprofits with similar needs. In this case, we actually got these nonprofits to work together to brainstorm and prioritize their CRM requirements. Pooling funding, this group helped us launch RedHen publicly in the spring of 2012. Since then, over a dozen of our clients have continued to invest in RedHen, and it has been adopted on over 850 websites around the world. Most impressively, those initial clients that funded our early work on RedHen continue to upgrade their sites with each new release, benefitting from hundreds of thousands of dollars of free development.

Client investments in open source present many less tangible benefits as well. While our developers are inspired to support our mission-driven nonprofit customers, they are particularly excited (and therefore, keenly focused) when their work leads to open source contributions. Not only does this lead to high-quality engineering, it helps reduce turnover among our engineering team, which can be costly for clients. Among our team’s contributors to Drupal, our average turnover is less than half of the industry standard in information technology.

For readers of this post who represent agencies that also contribute to open source, I’d be curious if your data and experience track to ours. Business and nonprofit readers whose teams have paid for open source contributions, I’d be curious to hear your stories as well. After all, open source is all about transparency, which we believe makes us a more effective business.

Categories: Software

Code Karate: Drupal 7 Entity Registration Views, Access and Wait List

Drupal Planet - Thu, 2014-09-18 15:53
Episode Number: 168Drupal 7 Entity Registration Views, Access and Wait List - Daily Dose of Drupal Episode 168

Following up on the previous Daily Dose of Drupal episode on the Entity Registration module, this episode looks at some of the additional Entity Registration add on modules.

In this episode you will learn:

Tags: DrupalDrupal 7Drupal Planet
Categories: Software

Unimity Solutions Drupal Blog: Modify Apache Solr Queries in Drupal

Drupal Planet - Thu, 2014-09-18 07:27

In a recent project I got the opportunity to tweak Drupal’s Apache solr queries.In this blog p

Categories: Software

PreviousNext: Report from Drupal Camp Islamabad

Drupal Planet - Thu, 2014-09-18 05:42

After Drupal Camp Lahore and Drupal Camp Islamabad earlier this year, I was once again inivited to Drupal Camp Islamabad to present a session on Drupal 8 as a framework.

Categories: Software

Forum One: Using Acquia Dev Desktop to Set Up a Drupal 8 Code Sprint Environment

Drupal Planet - Thu, 2014-09-18 03:10

With Drupal 8 looming on the horizon, everyone is talking about doing their part to contribute. In fact — shameless plug alert — Forum One is running a Drupal 8 Code Sprint tomorrow night! Come on out and code with us. 

Wanting to get involved but new to Drupal development, I wasn’t really sure where to start. Through a Drupal DC meetup, I was introduced to the Drupal Ladder. Following the Drupal Core Ladder, I got a practice Drupal environment set up, got familiar with the issue queue, and tested some patches! Of course, all the issues and patches written and tested for the LEARN portion of the ladder only affect the sandbox version of D8 used in the tutorials, but it gives you a great idea of what to expect.

After working through the Ladder, I felt ready to attend some Drupal code sprints. However, one of the biggest problems new people have at code sprints is setting up their Drupal environment. As a newbie, I found the quickest way to set up a test environment on my Mac was through the Acquia Dev Desktop. This is a stack built specifically for Drupal (it’s pre-loaded with Apache, MySQL, PHP, etc.), so no downloads other than Drupal itself should be necessary. For this tutorial, we’ll be using Acquia Dev Desktop 2 Beta.

Note: although I am using the Mac version, the Windows instructions should be the same.

Installing Acquia Dev Desktop 2 Beta

From the downloads page, click on Mac / Win Download within the, “Get the Acquia Dev Desktop 2 Beta” box at the top of the page. Locate your download file and double click the file to launch the installer.

  • Click Next on the initial screen. The following screen will give you an overview of what is included in the Dev Desktop package: Apache, MySQL, PHP, etc. Review these and click Next.
  • Review the license agreement, click Yes if you accept the terms, and then click Next.
  • Make note of this next screen. This lets you choose the install locations of your stack and Sites folder. I would recommend leaving these as the default selections.

install-one

  • The next screen displays the port settings that will be used by Dev Desktop. Do not change these. Simply make note of them and click Next.

install-two

  • Review your information, then click Next, then Next again to begin the installation.
  • Once the installation has completed, click on Finish. If the program pops up, minimize it. We must first download a copy of Drupal 8.
Downloading and Setting Up Your Drupal 8 Environment

After installing Dev Desktop, we can now get our Drupal 8 environment running:

  • Download your desired version of Drupal 8 (use Drupal 8.0.x-dev if you are going to help test and develop D8) by clicking on the .tar file for Mac or .zip for PC in the Download column. Be sure to extract the tar/zip folder if your system does not automatically do it!

install-three

  • You can place the files inside your Sites folder, or simply leave it where it downloaded. It is advisable to change the name of the directory from “drupalx.x-x.x” to something simpler (e.g. drupal8, drupaltest, d8dev, etc.).
  • Bring back up Acquia Dev Desktop, or launch it. Click on Start with an existing Drupal site located on my computer.

install-four

  • For Local codebase folder, select the Drupal root folder you just downloaded and click on Open. You can leave Local site name as is, or change it up.

install-five

  • Drupal 8 requires at least PHP 5.4, so select the PHP version 5.4 your Dev Desktop came with.
  • For Database, select Create a new database. You can leave New database name as is, or alter as you like.

install-six

  • Click OK, and your site will be imported into Dev Desktop.
  • Select your site from the left, if it is not already selected. At the top of Dev Desktop, click on your Local site URL and it will come up in your default browser.

install-seven

  • On initial launch, your site should go to /install.php. If not, manually enter /install.php to the end of your site URL (e.g. http://drupal8.local:8083/install.php). Select your language, and click on Save and continue.
  • Leave Standard selected as your installation profile. Click Save and continue.
  • The database info should transfer and auto-fill into the fields, but just in case, enter the following info:
    • Database name: name you created during the import (New database name)
    • Database username: drupaluser or root
    • Leave the password blank
    • Under the Advanced Options: Host: 127.0.0.1 & Port number: 33067

install-eight

Click on Save and continue once the information has been filled out.

Drupal will now install your site. Once finished, enter whatever you’d like for the site name, email, and user configuration, and your Drupal site should be up and running! Be sure to remember the username and password for the account you created, as this is your main administrator account (user 1).

That’s All, Folks

Installing Acquia Dev Desktop is fairly quick simple if you follow these steps. Don’t let not having a dev environment stop you from participating in Drupal 8 code sprints, as there are plenty of other AMP stacks available to install, making sure you’re comfortable with one goes a long way. With my development environment setup all that’s left to do now is to actually write a patch…Maybe I’ll take care of that during Forum One’s code sprint tomorrow night!

Categories: Software

Drupal Easy: Run, Don't Walk to Drupal 8 Migrate in Core Sprints

Drupal Planet - Thu, 2014-09-18 01:48

DrupalCon code sprint photo

Have you always wanted to get involved with Drupal core development but don’t know where to begin? Have a Drupal 6 site that you’re looking to upgrade to Drupal 8? The Drupal 8 Migrate in Core initiative aims to provide a robust and extensible migration path from Drupal 6 and Drupal 7 to Drupal 8. A lot of work has already been done, but we’re looking to increase our throughput by training up some testers and developers to contribute to the cause.

To that end, we’ve planned two in-person events and an ongoing virtual event where you can get some facetime with other contributors to get you up-to-speed on the current progress and how you can help. Development experience isn’t required! It takes all types of contributors to complete a project of this scope. We have opportunities for manual testing, documentation writing, UX, theming, patch testing, and patch creating. If you need more of a challenge, I’m sure that chx, benjy, and mikeryan can find something for you to sink your teeth into!

If you can’t wait to get started, please check out how you can properly configure your system in order to contribute. Even if you just want to do some manual testing, you’ll want to check this out. Once your system is ready to go, then find me in IRC (#drupal-migrate) or find us at an upcoming event.

-->

read more

Categories: Software

Drupal Association News: Drupal Global Training Day Omsk

Drupal Planet - Wed, 2014-09-17 23:33

Omsk ADCI Global Training DayThis post originally ran on the ADCI blog, and has been reposted with their permission.

On August 30th ADCI Solutions and Omsk Drupal community participated in a worldwide event and organized the first Drupal Global Training Day.

This unique program is being conducted around the world since 2012. Every quarter training activities take place in different countries and cities in a single day. The Drupal Association promotes Drupal Global Training Days where various organizations across the globe host free events to bring people into the Drupal community.

Simultaneously with us 36 companies in Rome, London, Sydney, Madrid, Milan, Chicago, New York, Pakistan, India, and other far-away places conducted trainings for Drupal beginners.

Drupal is an advanced platform with open source software, which is developing dynamically, because about six hundred of thousands of developers around the world are constantly working on the project. Drupal is used for websites of any complexity: from blogs to public and government portals. Sites of the White House, The Beatles, Aeroflot, MTV, Forbes, GEO are working on Drupal.

Learning about Drupal

More than forty people came to get and share knowledge, among them were students, programmers, content managers, experienced developers and newbies who are at their start on the Drupal-way. The training program was built so that students first learned what Drupal is, where it comes from and who it is developed by, what its characteristics are, what open source technology and drupal community are. Then followed a report about advantages and disadvantages of Drupal, for what types of projects it is most effective to use.

During the coffee break, we gave T-shirts with the logo of the Omsk Drupal community to the wiiners of our competitions and made a group photo.

Then we moved on to the practical part. Audience took the basic steps of creating a site. Everybody learned how the Drupal looks and what opportunities it gives out of the box. Without writing a single line of code we made a news site with flexible content filters and sponsors' logos in the footer. Drupal allows an individual, a community of users, or an enterprise to easily publish, manage and organize a wide variety of content on a website. Its modular architecture allows you to put together the components you need to build practically any site. For those who have a general idea of ​​how it works, but have no practical experience, the course was an excellent start.

The day ended with a report on theming. Students learned basic rules that should be followed in order that work with the theme was simple and clear, got aquainted with popular themes and learned how to create their own theme effortlessly.

A Community of Amazing People

As it was the first meeting in the new format of the training, we asked the guests to fill out a short feedback questionnaire. We wanted to know what people are interested in, and what they would like to hear next time. Thanks to the participants, we are pleased to see you. Everyone appreciated the initiative of free educational software. Most noted that they came to learn how to work with Drupal, and this training helped them to make the first step. We were pleased to see the live chat during the break, when the speakers are willing to explain something to beginners with a cup of coffee.

Of course, in the technical sense, Drupal is a CMS/CMF, but for thousands of people it is much more. This community is full of amazing people who are open to dialogue and able to inspire. Last year, the Drupal Association registered 2765 Drupal events. Glad that this year we will fill up this number.

Categories: Software

Don't Panic: A blog about Drupal: Releasing DrupalCamp Gothenburg's website. Finally!

Drupal Planet - Wed, 2014-09-17 23:30

My blog has been suffering alongside my work with DrupalCamp Gothenburg. It's hard work since we're only two guys making it happen this year, and there's a lot done and more to do. It brings me great pleasure to say that we just passed a major mile-stone when releasing the website for DrupalCamp Gothenburg. It's a new take on camp-sites, at least what I can gather. This site wont disappear after a couple of years, when the community looses interest in it. This site will not only promote this year's camp, it will also act as a collection of the earlier sites, tying sessions together, acting like a "blast from the past" - one site to rule them all. 

Why, you might ask? Well, time is limited and since it's hard to get volonteers in Gothenburg to help out, this is a way to tighten the information flow and a way to skip doing the same thing year after year (making, coding and releasing a new site). Instead, we will focus on presenting the information from former DrupalCamps in a good way on the site, perhaps making it more interesting for our sponsors since their sponsoring presence won't disappear after a couple of years.

This year, though, we have a new design, since it's a new take on the website all together, and Daniel Andréasson is the one pulling the strings behind the curtain. He has done a lot of work on it, and I'm truly grateful for his help. His effort has given me the chance to focus on the sponsoring part, talking to hotels to bring good rebates to our visitors during the camp-weekend, and also see if some of all the other ideas might come to life at the camp.

Well, enough talking, head over to the new site and check it out. And, if you're up for the task - add a session and share your Drupal knowledge!

http://gothenburg.drupalcamp.se/

Categories: Software

Glassdimly tech Blog: Feeds Extensible Parsers JSONPath Tutorial: Map JSON to Drupal Fields

Drupal Planet - Wed, 2014-09-17 22:12

Ever have wanted to import data into your Drupal site from JSON or a big ol' PHP array? You don't need to sweat all the gory details of matching up nodes and fields and coding massive for loops. Let the Drupal Feeds module do that for you.

Categories: Software

DrupalCon Amsterdam: Join In On the Bicycling Fun in Amsterdam

Drupal Planet - Wed, 2014-09-17 20:26


In the immortal words of Queen: “all I wanna do is bicycle!” If you’re heck on two wheels and love nothing more than the feeling of the wind on your face and pavement whizzing underneath your wheels, you may want to consider joining in the Tour de Drupal leading up to DrupalCon Amsterdam.

Drupalers from countries all across Europe are teaming up for the Tour de Drupal, an epic bike ride from the UK and Switzerland to Amsterdam. Taking place the weekend before DrupalCon Amsterdam, the triumphant arrival of the Drupalcyclistas is expected on Sunday, September 28th between 4 and 5 PM at Eta Vondelpark in Amsterdam.

It’s not too late to join in on the bike ride, where you can find information here. Of course, if cross-country bicycling doesn’t do it for you but you still want to cruise around with a crew of awesome folks, consider renting a Yellow Bike during DrupalCon Amsterdam. For €50, you can rent a bike, a bike helmet, two bike locks, a bike map of greater Amsterdam, and insurance. The rental is from Monday-Friday. You can find more information here.
There are a lot of passionate bikers in the Drupal community— and we all care about our causes, too. UK Tour de Drupaler Alan Burke is combining his love of biking and charity by participating in a two-day, 360 kilometer cycle around Galway for charity. For more information about Alan’s ride, click here.

Regardless of whether you fly, bike, or take a train— we’re looking forward to seeing you in Amsterdam.

Image by Sonny Abesamis on Flickr.

Categories: Software

Acquia: Introducing the Drupal 8 Console scaffolding module generator with Jesus Manuel Olivas

Drupal Planet - Wed, 2014-09-17 18:10

Every modern framework nowadays provides a scaffolding tool code generator for speeding up the process of starting a new project and avoiding repetitive tasks. Now Drupal does, too! In this session you can build a module while following along with the live demo. You will learn how to take advantage of the Symfony Console Component to provide a CLI tool that automates the creation of Drupal 8 modules, automatically generating the module directory structure, controllers, forms, services, plugins, and required configuration files.

Categories: Software

CiviCRM Blog: DC Sprint - Drupal and Joomla and WordPress

Drupal Planet - Wed, 2014-09-17 15:53

I just returned from my first CiviCRM sprint. It was called the DC Sprint, but as Jeremy has already posted, we were actually in Maryland.

As a first time attendee of a CiviCRM conference and sprint, I really did not know what to expect. I was very pleased that both WordPress and Joomla! received some real attention at the sprint and I hope we are heading to a place where CiviCRM can be truly CMS agnostic.

WordPress CiviCRM installs can now benefit from WP-CLI tools. WP-CLI is a Drush equivilant for WordPress. We were able to merge Andy Walker's port into 4.5 and Tim Otten added full API Explorer support for this. At the developer training day in DC on Saturday, we noticed an issue with civix and WordPress. This also fixed and now civix works with all CMSs without having to be directly tied to one as in the past. These two enhancements will help WordPress developers immensely.

Dana Skallman and I also worked through the unresolved tickets for WordPress. A great deal of progress has been made there, and in addition to all the new features in 4.5 users will find that the WordPress integration is better than ever.

What really made the sprint a great event were the people. We had three CMSs represented and while there was some good natured kidding going on, it is clear to me that the community is focused on the CiviCRM project and supporting Drupal, Joomla! and WordPress.

I cannot wait to see the 4.5 release and I encourage everyone to participate in the CiviCRM Community. Whether you go to a meetup,  attend CiviCon in the spring or go to the next Code Sprint, you will not be disappointed and the community will be the better for it.

Categories: Software

cs_shadow: Locked and loaded for GSoC Reunion summit

Drupal Planet - Wed, 2014-09-17 15:34

GSoC 2014 is over and it was a great summer for me. As a student, I lead the development of Entity Embed module for Drupal 8. I learnt a lot about Drupal 8 and the core values of Drupal community. Apart from working on my project, I also got involved with the Media Team and now I'm also trying to contribute to some of the other projects of the Drupal 8 Media initiative. It's been a fun journey with Drupal so far and I expect it to become even better.

To top it all off, I've been selected as a delegate to represent Drupal at the GSoC Reunion summit. Details at the original post on gdo. I'm absolutely delighted that I've been selected as one of the delegates given the fact that Drupal os such a big community. What makes it even better is the fact that Angie Byron, (webchick) will be accompanying me at the summit as she's the other delegate. Its going to be a great chance for me to meet her in person.

I'm all set for the summit. Visa approved, flight & hotel booked. I'm eagerly waiting for this summit and I'm extremely thankful to the Drupal community for providing me with this wonderful opportunity.

Tags: Google Summer of CodeReunion SummitgsocDrupal Planet
Categories: Software

Code Karate: Drupal hosting solutions and service providers

Drupal Planet - Wed, 2014-09-17 15:02

There are many different ways to host a Drupal website.

Categories: Software

LightSky: My Thoughts on the Drupal Project Application Process

Drupal Planet - Wed, 2014-09-17 14:54

Giving back to the Drupal community was one thing I wanted to make sure we did more of as a company. It's been a little over a year since I took ownership of LightSky and our Drupal contributions are increasing. We are actively contributing patches where we can, sponsoring local Drupal meetups and camps and even hanging out on IRC. One thing we have not done until now was to contribute a module. At some point, I would like all my development staff to contribute a module (or modules) back to the community and I figured if I was to ask this of my staff, it was only fair that I did it first. It took some time to figure out what to contribute back, but once I had an idea I was excited to get started.

My first attempt was to write a Tweet Embed module. It would create an input filter so that when you dropped a link to a tweet into it, it would embed it into the content. I spent a few weeks polishing the module and felt ready to submit it to review. After submitting it, it was discovered by an approver that there was an issue in the Twitter module issue queue to implement this exact functionality. That means this module was a no go since it would cause duplication. At the time I was frustrated, but only at myself. I should have been more diligent on ensuring that I was not duplicating functionality.

My second attempt, and the one that would be successful, was to write a module to encapsulate the LinkedIn Company API. The module would pull in shares and display them in a themeable block. I wound up writing two modules, one for the authentication and one to pull in the shares. I spent some time writing, testing and polishing and finally felt it was ready to submit.

The Review Process

The review process was immensely helpful. It is encouraged that you do a peer review of three other modules that are awaiting approval. This allows your application to move a little more quickly through the process, but I would encourage you to do it even if that is not something you are interested in. For me, the review process did a few things. One, it allowed me to see how other people were solving problems in Drupal. I've been doing Drupal development for five years or so, but there are always things to learn. It also allowed me to become intimately familiar with what is expected of your module during the review process. After I did my initial set of reviews, I found myself going back to my module and making improvements that I may have not made otherwise. 

After adding the reviews to my application issue, I started to get feedback on my module. The feedback that was given was very helpful and informative. I can confidently say that I learned a few things in the process. I got quite a few reviews of my module and each pointed out things that I should fix. At one point the reviewers asked me to contact the LinkedIn module maintainers and verify that my modules functionality was not something they intended to implement. It was not and I got the green light to move forward. From there my module sat in a RTBC state for 3-4 weeks. It was difficult during this time to remain patient, but with so many applications awaiting approval and so few approvers, this is what happens. Eventually, I was granted the ability to promote my module to a full project, and the ability to create full projects in the future.

Final Thoughts and Tips

The review process is thorough, and that is a good thing. As a community we want to make sure that the people who are submitting modules are properly vetted and that they use best practices when coding. Although there was a bit of inactivity after the module was RTBC, it was not unbearable and if anything has encouraged me to remain involved in the review process to help alleviate some of the load. The biggest tip I can give is to not only be patient, but also be open to criticism. It's a little nerve wracking to have many people comb through your code line by line, but that is the nature of open source software. The feedback they provide will help you become a better Drupal developer and I know for me it was very exciting to learn how I could do things better. One of my big stumbling blocks the first time around was the fact that I did not do enough research when determining what module to write. Make sure that the module you are submitting doesn't duplicate functionality of another module. If there is a similar module out there, create an issue asking if they intended to implement your functionality. Sometimes a patch is a better place for a piece of functionality than a module and that is how it should be. Putting in a little extra research and effort on your end early on will prevent headaches during the review process.

If contributing is something you want to do, I would encourage you to take the jump and do it. I really do believe that you get back ten times what you give to the Drupal community.

 

If you have not already be sure to follow us on social media or subscribe to our RSS feed and newsletter. You can also contact us directly or request a consultation
Categories: Software

Drupal Association News: Free Membership from InMotion Hosting

Drupal Planet - Wed, 2014-09-17 00:10

InMotion Hosting Featured Benefit

Individual Membership badge

We recently added a Featured Discount/Benefit section to the Membership page and the first benefit to be featured is a really good one.

InMotion Hosting is giving you one year of free Drupal Association Individual Membership when you buy a new hosting plan.

This is an unprecedented and generous offer that will help support Drupal Association community programs. If you have been thinking about signing up for site hosting check out the offer from InMotion.

We will rotate the Featured Benefit every month so expect more good offers to come your way. And big thanks to the InMotion Hosting team for giving back and being part of the Drupal community.

Personal blog tags: membership benefits
Categories: Software

Ben's SEO Blog: Top SEO Factors for Drupal in 2014

Drupal Planet - Tue, 2014-09-16 23:26

On Sept 15, 2014, Searchmetrics released their 2014 Ranking Factors Study. In it, they analyzed 10,000 search results and created correlations between characteristics of websites and their rankings. In other words, webites that rank high, do x. Sites that ranks low, do y. For this blog post, I’m leaving out things like Backlinks (factor 4, 9, 12, etc.) because - as far as I know - there just aren’t that many modules or settings that can help you with it.

Now, with all the usual caveats about correlations not equaling causation, here’s a list of their top correlated ranking factors that can be influenced with the proper use of Drupal and/or a module. (A quick note about correlations. Um...NM. Just read this.)

Factor 1: Click-Through Rate

People that click in the search engines, want to visit relevant and interesting websites.

Correlation: .65 (Pretty Strong)

Now, take this with a grain of salt. Of course sites with high rankings have a high click-through rate. They're at the top of Google. Still, there are some things you can do to increase your click-through rate and that's never a bad thing.

How to influence your website's click-through rate in Google.

Make your listing in Google as interesting as possible to make it stand out from everyone else. Use your target keyword at least once in the title (Factor 45) and in the description (Factor 40). Make sure the keyword is used as close to the beginning of the Title tag as you can (Factor 27 & 29). Google bolds words that match the search so your listing will stand out.

Google Search Appearance Overview

Module(s) that increase your click-through rate:
  • Metatag - Write great, optimized Title Tags and great Meta Descriptions (Factor 35).

  • Custom Breadcrumbs - If they’re available, Google search results will list breadcrumbs instead of the URL. It looks nicer.
    Breadcrumbs
    source: loseyourmarbles.co

  • Schema.org - Highlights events or product ratings that will make your listing stand out and give you extra links in the search results.

Factor 2: Relevant terms

People search for topical content, not just specific keywords. Including keywords that are not exact or are on related topics can help your rankings.

Correlation: .34 (Weak) How to increase the number of SEO relevant terms on your Drupal website.

Think about topics and organization based on topical areas, not just keywords. Create topical silos in your site content. Write your content using a list of terms, not just a single term.

Module(s) that increase the SEO relevant terms on your site:
  • Path & PathAuto: Create paths that naturally organize your content by topical areas.Pathauto example

  • Taxonomy: Tag content with appropriate terms. Tags link to term pages. Term pages link to related content. That connection helps.

Factor 3: Google +1

People love to share great content so top ranking content tends to have a lot of shares. This also encompasses Facebook Shares (Factor 5), Facebook Total (Factor 6), Facebook Comments (Factor 7), Pinterest (Factor 8) Facebook Likes (Factor 10), and Tweets (Factor 11). Social is very important to SEO!

Correlation: .33 (Weak) How to increase your social shares on a Drupal website

Write great, unique, sharable content. Make it easy to share by sharing it first. (Retweets and likes are easier than sharing it yourself.)

Module(s) that increase social sharing on Drupal

By the way…if this blog post is helpful, please share it to your favorite social network! :)

(Note: Factor 4 - 18 are almost all either Linking or Social. These are very important factors that are outside the scope of this article.)

Factor 18: Number of Internal Links

Linking to yourself is a good indicator of the quality of a piece of content.

Correlation: .16 (Very Weak) How to increase the number of internal links

Link to your own great content! Use keywords in your internal links for extra credit. (factor 30)

Module(s) for internal linking on a Drupal website
  • aLinks - Use this module judiciously. For example, set up links to your taxonomy term pages for your top keywords or topics.

  • Menu - Build menus of great content. Use them throughout your site. Those links are valuable!

  • Taxonomy - As mentioned above, tag your content. Drupal automatically creates the links.

  • Solr's More Like This - Adds links to related content using Apache Solr.

Factor 20: Keywords in the Body

It’s just logical. If you want to rank for a certain term, you’ve got to have that term on the page.

Correlation: .15 (Very Weak) How to use keywords in the body

Use the target keyword once or twice in the body field of each node. Don’t write like a robot, though. That’s bad.

Module(s) to increase keyword use in the body
  • SEO Compliance Checker - Set up the rules to match these recommendations. SEO Checker will also look at other SEO-related things like use of keywords in the title or header.

Factor 21: HTML Length

Longer articles tend to rank better than shorter ones. I’m going to lump in Text Character length (factor 22), Word Count (factor 23) here as they’re practically the same correlation and meaning.

Correlation: .14 (Very Weak) How to increase HTML Length

Write longer content. (Seems pretty obvious...)

Modules(s) to help you write longer content
  • Rules or Workbench would allow you to create workflows that require certain body length.

  • Field Validation module could be set to require a certain length. Seems draconian to me but certainly possible.

Factor 24: Site speed

People don’t like to wait so don’t make them!

Correlation: .11 (Very Weak) How to increase your Drupal 7 website speed

Make your pages lean and mean. Use sitespeed testers available online such as in Google Webmaster Tools or (my favorite) in Chrome (hit command-i). Fix any problems or suggestions.

Module(s) that speed up Drupal 7

 

That’s it! Covering those 21 factors (7 major factors with another 14 mixed in for good measure) should be fairly straightforward for any Drupal 7 website owner. There are other factors as well but with correlations weaker than very weak, I’m just not sure they matter that much. Read about correlations here, by the way.

Miscellaneous SEO Factors and the Drupal Modules that affect them

Here’s a quick shotgun list of a lot of the remaining low-correlation factors and modules that might help.

 

Did I miss anything? Let me know in the comments.

Here's the full infographic if you'd like to see for yourself:

We look at the searchmetrics 2014 SEO factors and apply them to Drupal 7.drupal seo, Planet Drupal seo-ranking-factors-2014-big.png
Categories: Software

Drupal Watchdog: Upgrading Your Modules

Drupal Planet - Tue, 2014-09-16 23:03
Feature

Drupal's philosophy regarding backward compatibility is "the Drop is always moving". In order to create a framework that is as performant, scalable, and extensible as possible, each major release of Drupal can and will make changes, often radical changes, to its developer APIs in order to provide optimal solutions for Drupal users and developers.

To this end, Drupal 8, far more-so than any previous release, has undergone extensive refactoring under the hood. It sports an object-oriented architecture powered by Symfony components. In addition, it utilizes modern PHP (5.4 or later) best-practices, a new Plugin API that provides consistency for pluggable pieces such as blocks and image styles, a revamped and complete Entity and Field API, a new Configuration API to provide fully deployable settings, and numerous other great improvements.

The flip-side is that while a data migration path is always provided between major versions of Drupal for a site's content and users (and in Drupal 8's case, from both Drupal 6 and Drupal 7), migrating the code of contributed and custom modules is left for developers to do.

This article will therefore provide some starting points for folks trying to port their modules from Drupal 7 to Drupal 8. (If you still have Drupal 6 modules kicking around, the "Coder Upgrade" sub-module of Coder will get you a fair chunk of the way towards converting them to Drupal 7.)

Note that as of this writing, Drupal 8 is still in active development. While the hope is that by the time this article is published, Drupal 8 will be at least in beta, and the APIs relatively stable (apart from API changes necessary to fix critical issues), information here could still change prior to D8’s final release.

Categories: Software

Pages