Installation & Configuration of Apache solr server 4.6 on Windows Machine

I was working on one of the projects where the client was not satisfied with the existing drupal search as it was not able to meet their requirements on the site. So they decided to go with Apache Solr.

Those who are not aware of what exactly it is, I would like to give them a very basic introduction or a description of what it does.
  

Apache Solr is an open-source search platform built upon java library. It’s one of the most popular search platform used by most websites so that it can search and index across the site and return related content based on the search query.  

For more detailed information, please visit http://lucene.apache.org/solr/

So let’s begin with solr installation. To install Solr on the windows system, the machine should have [JRE] Java Runtime Environment with the right version. 

Step 1: Go to cmd prompt and check for JRE with correct version.
If JRE is available in your system it will show you the version. If not then you have to install JRE 
 

JRE version

Step 2: Download require solr version from below url 
https://archive.apache.org/dist/lucene/solr/
For this tutorial i have downloaded 4.6.1 from https://archive.apache.org/dist/lucene/solr/4.6.1/  Download solr-4.6.1.zip  File

solr 4.6.1 Download

Step 3:  Extract the Zip folder in your machine.now go to extarcted solr folder. Get inside the example folder and execute the command

java -jar start.jar

Solr Folder structure

As soon as you run the above command solr will start with default port 8983. That can be accessible on localhost:8983/solr/#/

This will install Solr and run in the background. By default it uses the port number 8983.
You can change default port number to one of your choice. 

solr UI

Step 4: To Configure solr with Drupal 7.x Download solr from https://www.drupal.org/project/apachesolr  download the recomended version and install as we do normal module installation.

Step 5:  Go to \apachesolr-7.x-1.8\apachesolr\solr-conf\solr-4.x copy all the files to solr server directory [solr-4.6.1\example\solr\collection1\conf\] and replace them with existing files. 

After replacing your file should look like.
After replacement file structure

Now your solr admin page look like 


Configured solr page

Step 6: So we are almost done with solr server setup. Let’s configure on module level

To do this we need to go to solr setting page /admin/config/search/apachesolr/settings
Fill up mandatory detail like solr server url and  description and hit on Test Connection button.
 

Sol Configuration in Drupal

Step 7: Almost done with solr server setup and configuration, let’s do indexing by visiting default index page admin/config/search/apachesolr. 

Solr default index page

The above steps would cover up solr server installation in your windows machine with configured D7 Apache solr module. 

Conclusion: The main objective of this blog is to let the windows user to install and configured solr server and also allowing them to configure with Drupal 7. In present situation we already have variant of solr server on the web but i have recommended to use 4.6.x for Drupal 7. 
 

How Media Companies Are Balancing Big Data and Operational Efficiencies?

The business environment in publishing and media industry is being disrupted by the digital collision. The explosion of big data along with availability of technology, analytics and social media, are the new facets of customer engagement for the industry. This explosion is not only impacting operations of silos but also other components of the business, as they are involved in generating more data than ever before in structured as well as unstructured forms. Media companies are increasingly using the internet as a means to deliver content, resulting in increased data velocity and aggregated data volumes. This current digital turbulence presents massive opportunities – and big data has now become a foundation of future success.

While going digital, big data and analytics significantly impacts decision-making, as there will always be a need to switch to real time data resulting in increased scope and scale of work. For instance, the company Springer, a leading publisher of scientific journals and books; decided to go digital and provide online offerings, thus; making all content easily searchable and accessible on all devices. They used data tools to provide search results based on geographical locations and also real-time data along with trending topics. Not only they made their journals easily accessible but also gained 95% of their revenue from online business. This wouldn’t have been possible without using big data.

Media companies are now profiling customers using both enriched internal CRM data and public data from online content delivery platforms and social networks. Customer has now taken a center stage in real-time with data-driven reporting. Real-time data mining and analytics are revealing customer needs and this helps the companies to tailor content dynamically, resulting in better decision making and content provisioning.

When companies are handling so much of data, media asset management becomes important and meta-tagging of media assets becomes necessary. For, instance, British Broadcasting Company(BBC) generated more than two petabytes of data during the 2012 Olympics and the big challenge was to deal with the enormous data that was to be created; which included more than 10,000 individual pages covering over 10.000 athletes, 200 teams and 500 disciplines. It became necessary to incorporate big data in their strategy. As a solution, the BBC opted for generating these pages automatically and enriched it with metadata. This metadata was also used to automatically generate more new pages. This approach worked to handle huge amounts of data with an average of 25.000 transactions per second.

The challenge the media companies face is to access, analyze, and manage vast volumes of data and improve operational efficiency as well as performance. Using big data in an appropriate way can help transforming these challenges into opportunities.

Image Courtesy

 

 

Checklist to hire Drupal Vendor for your next Digital Publishing platform

We help to create solutions for “out of the box” web content management tool which is a  customizable platform -- this helps you find the right tool to serve your content management strategy.

When assessing who to hire for your CMS project especially for your Digital Publishing requirements, use this as you quick use checklist.

  1. They build scalable sites

    Scalable sites are future proof and will be very handy once you decide to expand.
  2. They build mobile first or responsive

    We know that Mobile first or a responsive site is THE basic requirement for Media and Publishing companies. With apps loosing grounds, it will mostly be Mobile first which is optimized and uses less resources and focuses on the user experience your audience needs
  3. They build integrated Digital applications

    Connecting content to Social Media and integration of tools should one of the main things that gives more power to you.
  4. They build easy Content Authoring

    An easy to use content authoring and workflow management means you get to do what you do the best to create great content. No managerial hassles and easy handling for editorial oe admin panels.
  5. They build secure websites

    One of the key points in your project is obviously security, make sure your added team members are in the same page too.

  6. They build multisite

    You may be having one site and expand to more tomorrow or may have multiple platforms which need to be integrated.

  7. They build multilingual

    There are a large number of audience who are non-english and you cater to them which enhances your business opportunities, Multilingual sites go a long way to ensure this.

  8. They build content first

    When you are primarily in the content business it is necessary that your services are more content oriented that target the right market, which is reusable and can be published anywhere, anytime into any channel

Find out, why we are exactly what you are looking for.

Drupal Global Training Day on March 18 at Valuebound

Drupal Global Training Days is an exciting initiative from the Drupal community to introduce new and beginning users to Drupal and we at Valuebound are excited to announce a session on 18th March to welcome newcomers to the Drupal community and empower them to start great work.

This is an initiative coordinated by the Drupal Association as a part of the  Global Training Days to introduce new people to the wonderful world of Drupal.

You will build a live website yourself , be a part of the Drupal community and explore career opportunities in Drupal

Difficulty Level: Introductory

Proposed Session:

Get started with development in Drupal 8. Learn about the main features and concepts of Drupal with live practice sessions. By the end of this training session you will know about the terminologies associated with Drupal and will be able to understand how Drupal sites are constructed. You will be equipped with the knowledge of how to differentiate and choose modules to get the functionality you want.

Duration: 1 day

Why is this workshop free?

Valuebound has been an active contributor to the Drupal Community and has achieved the second position worldwide through the same. This free event is part of our many more efforts to give back to the community.

Valuebound is solely dedicated in helping organizations and individuals to adopt Drupal in their operations in the most effective manner. We believe in giving result oriented training sessions which will equip you to build the perfect websites you visualize.

Who Should Attend?

  • PHP/Web developers: Begin your career with a little more insight about how things work.

  • Students: Give a boost start to your IT career path as Drupal developer. Drupal is widely used by Fortune 500 companies, governments and startups. Explore internship opportunities.

  • Career switchers: Looking for the next opportunity to switch or learn what more  is there for you in Information Technologies? Come explore.

  • Project managers: Do you manage or are you considering Drupal projects? Know what you should know!

  • Decision makers: Evaluating Drupal to build your product on? Know why it’s the perfect fit.

  • Everyone, who is interested in knowing what Drupal is, evaluating or implementing Drupal.

Things you should know:

A little knowledge of what is a Content Management System would be great. Experience in using and creating websites using systems such as Wordpress, Joomla!, or HTML and CSS is a plus but  NOT a mandate. We encourage the newbies and shape up the Ninjas!

This session would present an outline of concepts of Drupal and not an in-depth course. It is awesome for folks  who are looking to get a head start or the ones looking for an edge in their career or profile.

By the end of the training you will be able to:

  • Build and make a basic Drupal site.

  • Select, install and configure modules and themes from Drupal.org

  • Create content and configure content types, create listings of content.

  • Manage user roles and accounts.

  • Manage aliases and URL paths.

  • Create blocks and place them in the layout

Bring along your laptop to make best use of this workshop.

Its good to have a LAMP(Linux), WAMP(Windows), MAMP(Mac) setup done.

How to register : The event is free but registration is mandatory. RSVP to register.

 

Ultimate guide to Drupal for Beginners

In one of the earlier posts featured  What does a Drupal Developer do? We discussed about the role in general and how Drupal developers fit into different profiles.

We also spoke about the Skills a Drupal developer should have. In this post I will mention some of the things I have missed in the previous articles with the main focus being resources.

Learning to be a Drupal developer

This is not a very difficult task but you should know how. Know that Google is your best friend. I tell this to every newbie I see seeking help from seniors. You know what they do that you don’t? They know how to Google and yep that’s a thing. Of course they know a lot more than you do but there comes a moment even with the best developers when they look outside for answers.

What you should do?

You will need to learn to Google. Use keywords period. You want to know “How to build Drupal theme using Bootstrap” don’t type the whole thing on Google, instead type “build Drupal theme using Bootstrap” cut out those extras and use only the keywords.

Where to look?

Drupal.org is the best place to find a ton of material to begin with and of course there are various other websites, books and podcasts.

Technology

Modern PHP programming

What you should know

  • Programming patterns

  • Factory methods

  • Dependency injection

  • Namespaces & PSR-0

  • Modern Object-Oriented PHP

  • Classes, objects, inheritance

  • Late static binding

Drupal 7 and its predecessors had basic procedural PHP programming mostly except for Drupal core, hook patterns and a few APIs would suffice but with the introduction of modern concepts of PHP in Drupal 8, you are required to work with advanced OOP patterns and syntax.  

Resources

Symfony

What you should know

  • Symfony2 components form the basis for D8

  • Drupal 8 doesn’t work like Symfony2

Drupal 8 and Symfony2 share PHP libraries, knowing Symfony2 will help you learn Drupal8 better, of course these two individually solve different issues but there are a few things knowing which will help you to be a better developer. The Symfony website is the best place to learn about it. You should know about EventDispatcher, HttpKernel and HttpFoundation, ClassLoader, YAML, Routing, DependencyInjection, Twig, Process, Serializer, Validator, Translator.

Resources

New 3rd Party libraries

  • Guzzle – for fetching content from URLs (replaced drupal_http_request)

  • EasyRDF – for parsing RDF into PHP

  • Zend_Feed – for processing Feeds

Composer

What you should know

  • What is Composer and how does it work

  • When do you need to use it

Composer is a dependency management tool for PHP used by Drupal 8 to handle its PHP dependencies, such as Symfony and Twig. composer.json is available at /composer.json, which follows a schema to define the version dependencies for each package.

It helps with handling dependencies and subsidiary dependencies with locating, downloading, validating, and loading said packages, while ensuring that exactly the right versions for each package is use.

Resources

PHPUnit

What you should know

  • Simpletest is replaced with PHPUnit, more or less

  • Learn to use PHPUnit

The testing framework PHPUnit has been added to Drupal 8. Simpletest is still supported but should only be used for web tests and DrupalUnitTest's that require a complete or partial Drupal environment.

PHPUnit is the de-facto standard tool to write (unit) tests in PHP and offers a long list of advantages over Simpletest, such as overall better API's, Mocking, an improved test runner, code coverage report generation and more.

Resources

Drupal

Plugins

What you should know

  • How to find, create, load and work with Plugin’s

Plugins are small pieces of functionality that are swappable. Plugins that perform similar functionality are of the same plugin type. These are useful for extending or modifying both core and contrib behaviour. They offer more flexible architecture and make it easy to customise Drupal in a way that is also flexible.

Some terms you’ll need to be familiar with:

  • Plugin types

  • Plugin discovery

  • Plugin factory

  • Plugin derivatives

  • Discovery decorators

  • Plugin mappers

Resources

Entity API

What you should know

  • Entities are Classed objects with a defined Interface

  • Fields are bound to entities, and no longer shared across bundles

  • How to access entity properties and fields

  • How to define new Entities

Drupal 8 introduces a more feature rich entity API with full CRUD support in core. Entity forms have also been introduced to simplify the creation and management of entity forms.

  • Entities are now classed objects that implement the Drupal\Core\Entity\EntityInterface.

  • The default implementation is the Drupal\Core\Entity\Entity class.

  • Entity create, update, and delete functionality is now provided via the interface.

  • Users, nodes, comments, files, taxonomy terms and vocabularies have been converted to extend the new base class and interface.

  • entity_uri() and entity_label() have been removed in favor of methods.

The Entity API in Drupal 7 was limited. Drupal 8 expands it heavily in order to provide better tools and flexibility for working with entities.

Resources

Configuration API & Configuration entities

What you should know

  • How to load and save config data

  • Creating and working with Config Entities

  • How config data is managed

  • variable_get() and variable_set() are gone

The configuration API provides a central place for modules to store configuration data. This can be simple static data like your site name, or configuration for more complex business objects like field definitions or image styles. Contrib module developers can commit YAML files in a module/config folder defining the structure of their configuration settings.

In addition, Drupal 8 gets config entities, which are like regular entities only they are used for configuration – not content – and are not fieldable, and use the Config API for storage, not the database.

Resources

Routes

What you should know

  • How to write Symfony2 routes

In Drupal 8 we are using the Symfony2 Routing component, so we are able to split out the route handling aspect, and get a much improved and feature-rich solution. For example, this allows us to have multiple routes based on Accept headers, enabling RESTful web services.

Resources

Services

What you should know

  • Many Drupal functions are now “Services”

  • What are Services and how do they work

  • Accessing and injecting Services

A Service is any PHP object that performs some sort of "global" task. Each service is used throughout your application whenever you need the specific functionality it provides.

A Service Container (or dependency injection container) is just a PHP object that manages the instantiation of services (i.e. objects).

In Drupal 8, we use the Symfony Service Container component, and Services are defined in YAML files. One example is the Drupal::moduleHandler() service, which replaces a lot of functions dealing with module management.

Resources

Object-oriented forms

What you should know

  • Forms are now objects, built from a common interface

  • Extend \Drupal\Core\Form\FormBase for common form functionality

In Drupal 7, forms were built by a procedural function, and validation and submission were provided by magically named functions: the name of your form building function, followed by either _validate or _submit.

In Drupal 8, there is now an interface called FormInterface. It has four methods:

  • getFormID()

  • buildForm()

  • validateForm()

  • submitForm()

The form is called in mostly the same way as before, using drupal_get_form(), or via a route, however now we pass the class name instead.

Resources

Drupal 7 and 8 are different in a lot of ways and while I was writing this article one of my colleagues pointed me to the list about changes in the versions.

I owe it to all these people for this article,

DC Denison

Jhmnieuwenhuis

A lot of people!

Stackoverflow

Inspirations

4 things Publishers should consider during Digital Transformation

The shift in the publishing sector towards digital medium has in itself brought a revolution in a way how content is created and consumed by the audience. Digital is evolving in the publishing sector, thus, a flexible approach is the need of the hour to increase efficiencies and to remain relevant.

The move towards digital form opens the door to a vast range of opportunities for the publishing sector as it gives access to global market, multi-platform distribution and greater consumer engagement but the question still remains how to tap the potential.

Content creation: Traditionally, the content would be created for a single platform, with a specific target audience in mind. When adopting a digital approach, the publisher needs to ensure that the content needs to be created keeping in mind the different audience, across different channels as the content will be distributed across multiple platforms and in multiple formats in different web content management systems.

Thus, publishing content online is almost like creating a separate product altogether. This brings an additional investment, along with operational costs. To be successful and to be sustained in this business, there is a need to train, attract and retain talent with the appropriate skills. A need persists for both digital training and business training; a support much needed to encourage companies to experiment with innovative methods, products and services.

Content distribution: Multi-format/multi-platform distribution creates opportunities by offering consumers access to content everywhere, this also provides a new monetization model. However, to tap into this opportunity to maximize online revenues is not possible without investing in digital tools such as web content management system, CRM, DRM systems which are required to better manage the processes and accelerate content production.

Engaged community: Feedback plays an import role for publishers and digital medium gives access to this information. This information helps them to understand better and allows more tailored content to be created. Data analytics and insights should be used for a feedback loop and to incorporate those insights into the production of new content and to strategize accordingly. There has to be a  network-based strategy in place in addition to content strategy, to increase reach and network on the digital medium.

Collaboration: Since the new business models are driven by multi-platform distribution and consumer engagement.  Thus, there needs to be an increased collaboration to transfer knowledge and create new innovation communities through the proper implementation of web content management systems.

Online publishing is being disrupted like never before. Companies in these industries need to invest in new digital business opportunities to stay relevant in the changing landscape.

 

Beginner’s guide to Mail System in Drupal 7 and 8

This blog is all about How Drupal handles the Mail system & the stages it has to go through.
In Drupal to sends an email we need to take care of two rules

  1. Declare all the required properties under hook_mail().
  2. Call drupal_mail() with argument for actually sending the email

However in the scenario like bigger & complex site the above steps won’t be enough. But Drupal gives us a Flexibility to customize email sending process, before that it’s necessary to know how stuff works behind the scenes first. In this article I’ll show you how you can customize and extend the Drupal mail system to fulfill your needs.

While sending an email drupal_mail() function uses system class for sending an email. Every mail system needs to implement MailSystemInterface class to declare own sending behaviour.
MailsystemInterface class uses two methods 1) format() and 2) mail() 

As you can get it from name itself the first method format() method is used for formatting an email before it get send. Second method mail() method defines the exact email sending behaviour.

Flow of drupal_mail()

  • Set up default email messages properties. 
  • Build email(subject, body, with other required parameters) by calling hook_mail().
  • Allows module to alter email by calling hook_mail_alter().
  • Check for the responsible mail interface system which will handle the email.
  • Format the email message using format() method of the called mail system class.
  • send email using mail() method of the called mail system class.
  • return the processed email.

So you can  understand better that mailsystem plays an important role while sending email. By default drupal uses DefaultMailSystem class to send email. Will discuss this class in more detail first, let’s check out drupal 7 mail system module.

Mail system module in drupal provides an Administrative UI and Developer API for managing the used email/plugin. Allow to use different backends for formatting and sending e-mails by default, per module and per mail key. Additionally, a theme can be configured that is used for sent mails. In Drupal 7, that must be enabled for each template, in Drupal 8, it works reliably for any template being rendered while building and sending e-mails.
 

Mail system configuration

 

Drupal 7 don’t provide administrative UI to adjust the mail_system variable which defines  “email key” => “mail system class” type key-value pairs which correspond to what mail system class will be used by drupal_mail() at a specific email key. This is the point where the Mail System module comes in. It allows you to adjust the mail_system variable by an administrative UI and it provides some other useful configuration options, too.

The Mail System module related settings can be found under the Configuration > System > Mail System path 
inside your Drupal installation.


Mail System Settings

The default-system “email key” always exists and it determines which mail system class will be used by default for all outgoing emails. As you can see its default value is DefaultMailSystem so this is the reason why this mail system class will be used by drupal_mail() by default. 

The mailsystem_theme key is a little bit different since it defines which theme will be used to render the emails. let's assume that there is a drupal mail system related module which uses a template file to render emails. The mentioned template file obviously belongs to a hook_theme() entry to be able to use it at appropriate theme() calls. 
The Mail System module checks every theme registry entry for a specific “mail theme” key/property and if it exists in a particular entry then the specified mailsystem_theme value will be used to search for more specific template files when the theme registry entry related theme hook will be called.

Site wide mailsystem configuration

New Class

Imagine you have two or more different mail system classes available in your system provided by different modules. Each one has a format() and a mail() method. Now you need a custom mail system class which would use the format() method from one mail system class and it would use the mail() method from another class. This is the point where the Mail System module’s  “New Class” tool comes in, since it allows you to easily combine the behavior of two mail system classes by selecting their format() and mail() method for the new class.

New class configuration

New Setting

As we have seen, the mail_system variable’s default-system email key defines the site-wide mail system class which will be used for all emails. However there could be a situation when mail system class is not enough. In a situation like these the Mail System module allows you to easily add new email keys to the mail_system variable by selecting a module and a specific email key from its hook_mail() implementation.

New mail system setting

Mostly use mail system classes
My suggestion to all the learners is, before you start writing your own mail system class it is a good idea to study the most commonly used ones, because there are already some of them that will complete your needs and save lot of time. 

DefaultMailSystem
Drupal's built-in default mail system class. If you don’t modify the site-wide mail system class then this one will be used by drupal_mail() by default.

DefaultMailSystem’s format() method enforces the emails' output as plain text, therefore it doesn't matter how your messages are formatted — the result will always be plain text. The mail() method of the class sends the emails via PHP's mail() function, so a correctly set up and working email sending service is required for it.


Conclusion:
Email sending is an important task that affects most of your projects, therefore it is always good to know how to get the most out of the system. I hope this overview of the options help you to customizing and extending Drupal’s mail system helps you choose the best solution for your needs.

What skills should a Drupal Developer have?

With the ever growing Drupal Community, a beginner is many a times lost in the vast number of resources, with increasing number of developers in Valuebound, I spoke to some of the seasoned developers on their opinion about the skills that a Drupal developer should have and also sifted through tons of materials from Stackoverflow and some more places.
The skillset that we are discussing here will give a clear idea about where you stand, what you know, what you do not know and of course fill me up with what I have missed, and I will quickly add up the suggestions. Before this I have 6 things that drupal developer should know.

Technology Stack

From what I have understood, the very basic things  Drupal Developer would be expected to know in terms of languages are much similar to web development in general, since Drupal is built with PHP it is good to have a grip to begin with Drupal. And SQL well, a database to handle the rest.

  • PHP
  • MYSQL
  • JQuery

Version control — Git

To collaborate in a project, Drupal developers use the Git version control software . Learning the Git basics will help to stay organized and enable with essential skills for working with a team. Even if you're the only person on the project, there are still lots of advantages to using a version control system as part of your daily workflow.

  • A Vision for Version Control — What is version control, and why should you be using it for all of your projects?

  • Git for beginners — Everything you need to know to get started using Git.

  • Apply and Create Patches — How to apply a patch to a module provided by another developer, and how to create your own so you can contribute your fixes back to the community.

Drupal Skills

  • Research and install modules according to project requirements

  • Configure basic modules and core settings to get a site running

  • Drush command line tool

  • Make a custom Theme from zero which validates with good HTML/CSS.

  • Able to customize and tweak  forms, core, themes without altering core files but by using template.php or custom modules.

  • Can make forms from scratch using the API - with validation and posting back to the DB/email

  • Knowledge of key Drupal APIs like Queue API, Node API, Entity API,APIs of Drupal.

The Form API is not the only one. You should understand the Menu system (page, access, title and delivery callbacks, how to pass parameters to them, etc.), the Queue API for asynchronous operations, Batch API for long running operations, Entities and Field APIs for user editable structured data, Theme API and Render Arrays for anything presentation, Cache API, Schema and Database APIs, File API, Cache API and the Localization API.

  • Can create custom modules from scratch utilising core hooks and module hooks.

  • PHP, it's a PHP framework, so to really understand and use it, you need to understand PHP.

  • SQL, the list of SQL serves that Drupal can use is growing, but you will need to understand * SQL, relational database and how to setup some basic architecture.

  • Javascript (and jQuery). Drupal uses the jQuery js library, so it will be a lot easier if you not only, know how yo use javascript, but also understand how to use jQuery and some of it concepts.

  • OOPs - OOPs - OOPs

  • Web Services : The RESTful Web Services API is new in Drupal 8.  

Modules There is no must know module list, since it will all depend on the site and how you use them, but the following are widely used:

Views

  • Know how to make basic views and blocks.

  • Know how to make more complex views with relationships and terms.

  • Know how to use hook_views_query_alter, to make complex queries.

  • Know how to use hook_views_default_views, to create specific views.

Panels

The Panels module allows a site administrator to create customized layouts for multiple uses.

At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.

Other Skills

  • Be involved with the community and contributions, understand the naming conventions, CVS system and ideally have submitted some code or revisions, a module to Drupal.org (however simple) or submitted a patch (the process of getting a CVS account and getting your first code in is instructive to the community and to standards

  • Ability to use Drush to update or setup a site

  • Being able to edit existing functionality (core or module) without touching the core or module and knowing whether to put it in template or a custom module.

  • good understanding of client-server architecture, how servers and browsers works. And knowledge of php and mysql, templates engines. And of course, you should also read Drupal documentations.

For any kind of a development setup, even in Drupal there is a range of roles which cluster up together to build and support Drupal Applications which includes :

System Admin or Devops who run the live stack and work in the process of deployment of Drupal sites from dev to live, they deal with performance issues, set up a Content Delivery Network, Varnish, Memcache - basically everything related to things after and during Deployment. These facilitators also help to run Drills to avoid issues like the one that happened with Gitlab recently.

QA - Test to ensure Quality adherence and matching requirements. Set up automated testing environments, auto schedule and run tests.

Project Manager / Scrum Master - run the team, remove obstacles to progress, ensure on time delivery of the project within budget.

Product owner - Facilitates with the requirements working closely with the project manager to prioritize the backlog. Normally has final sign off of all changes.

Design / UX - Creates up with the design and user experience. They help build prototypes that can then be converted into a Drupal theme.

A complete team consist of all the things above and you can eventually choose to select a profile to evolve into.

In some of the upcoming posts we will discuss about the things you should know that will give you an edge as a Drupal Developer.

Inspirations

Courtesy
 

6 More things to know if you are a Drupal Developer

The new year started with 6 things to read if you are a Drupal Developer and today we discuss 6 more things that should be handy for you to move up the scales with Drupal.

Command Line Interface:

Having an in-depth knowledge of Command Line Interface (CLI) brings more productivity to the developer. The one who is a CLI Ninja quickly automates repetitive tasks and also enhances the ability to use tools like Drush that perform tasks quickly without requiring a developer to navigate more than 3 mouse clicks to complete the overall process.

The CLI for Drupal is Drush - Dru for Drupal and sh for Shell.

Drush is a command line shell and Unix scripting interface for Drupal. Drush core ships with lots of useful commands for interacting with code like modules/themes/profiles. Similarly, it runs update.php, executes sql queries and DB migrations, and misc utilities like run cron or clear cache. Drush can be extended by 3rd party commandfiles.

The CLI provided by Drupal, Drush has been highly valuable and widely used feature, with the introduction of Drupal 8, Drupal console has come to light. Drupal Console gives an object-oriented interface and a myriad of utility functions provided by the Symfony Console libraries. The Drupal Console APIs are great, but presence of of two standards has lead to some duplication of functionality, which increases maintenance costs. This is mainly for features such as site install and configuration import / export, which to be adjusted occasionally to keep pace with changes made in Drupal core. This situation also creates confusion for module developers, who must decide which API will be best for their project.

Theming:

If you have been learning Drupal you would know that the changes from Drupal 7 to 8 has seen major changes, and it is a very important part of development, Drupal 8 does replaced template.php with Twig. To learn and use these, it is very important for a skilled Drupal developer to understand and work on the principles of theming.

A Drupal developer should have their own base theme, and not always rely on something pre built, it helps to improve Drupal theming skill and the most effective way to learn is to practice, and make one for yourself from the scratch. D8 and D7 theming are completely different and one must know the differences

Package Managers:

Package Managers help in installing, upgrading, configuring, and removing software, developers use package managers as an easy way of distributing reusable libraries and plugins it saves time spent to setup, upgrades or pushing to production servers. A good package manager works to be a life saver!

Composer is a dependency manager for PHP. Drupal core uses Composer to manage core dependencies like Symfony components and Guzzle.

It can be about installing Bootstrap and Sass from Node or Drush from Composer, it is necessary to know exactly what you are doing before running commands on your system.

CSS Preprocessors:

CSS, as a language has its own set of features, but that might not always be enough to create codes which are clean and reusable. CSS Preprocessors comes handy here, it reduces a lot of css work, write once like functions and use it in many places. It is used to add new modules minify css and js files and other stuff.

CSS Preprocessors offers an advanced way of creating CSS, extending the basic functionalities. But the decision to use it should depend on your expertise level, project requirement and of the team as a whole. But you should have the knowledge where you can take the call to use it or not.

Knowledge of the CMS:

Drupal is one of the niche things publishers use that gives a good ROI from both the developer’s and Content Manager’s side, a smart developer should know the way to relate between them both. How a platform helps the author, the manager and other stakeholders and users at various stages of the product will be having a great impact on the development of the product.

Hence it is imperative for you to understand not only the development and other technicalities of Drupal but also as a CMS so that you work for the underlying business objective of the platform.

Basics of Debugging:

They say that the more experience you have building stuff in Drupal the more time you will save by Debugging. Sometimes error messages are not enough to drill down into the details of a fault and there is where experience comes handy. Delve into Devel or XDebug to find errors.

Legends say, these 6 above will be a great addition to extensive Drupal Development! ;)

In Continuation to the post we will "Meet some Drupal Developers"

What makes up “Digital Experience”?

Digital Experience platform is a software to manage, deliver, and optimize experiences consistently across every digital touchpoint, as described by Forrester. A successful integration of all technologies to create a complete platform which bridges the gap between social and content, business and support.

In our previous article we discussed that more often than you realise Digital Experience delivery becomes a less important “thing” than other preferred things that gets decided during procurement like pricing and revenue optimization. Because Digital experience is fundamental to everyone’s everyday life, we talk about What makes up “Digital Experience”?

For websites with huge publishing needs coordination with various tools saves a lot of time. CRMs, social sharing play a big part to stay connected with the readers and help increase engagement and conversion.

Question on the strategies that will implement flexible integration and execution plan ought to be asked. Integration might not be a term too familiar with the business team but sure does hold importance with the in-house staff looking at the tech side of your project and decision makers. These stakeholders are familiar with the pain points that prevent an easy workflow for a digital transfromation.

Integration is the key. Flexibility of integration and going hand-in-hand with architectural strategy should be pivotal selection factors while choosing the technology components and procuring support vendors for your digital experience platform.

For a digital publishing platform for large media houses like the NYTimes, the need to ensure the making of Digital transformation is a focal point of integration between Technology and Business decisions.

What constitutes Digital Experience?

  • Collaborate content, customer details and core functionalities.

  • Combine marketing and monetization drives, implement analytics and improve workflow and add actions

  • Designate the rule of implementing platform uniformity across multiple channels

  • Manage a single user experience design for various touch points

  • Manage code reuse and avoid over customization

While there might be identifiable vendors offer “digital experience platforms,” it is in our best interest to accept and understand that a company of the size of NY times and alike need enterprise software and that my friend does not come as a free size for all.

There are questions a decision maker often asks

  1. Whether the CMS system breakable into pieces and extensible? Or do they come as packaged entities that might be core to the product?

  2. Can the legacy system be extended through reusable services and APIs? Or would be a complete overhaul and replace the old system? am I looking at a total rip and replace?

  3. Is this solution best for my system or is it a one-size fits all kind of?

  4. Can the deployment be done alongside the current system, will migration affect the business workflow? Or can this be seamlessly delivered across the organization as digital experience platforms?

  5. How much time and effort does it take on the whole? Is the ROI worth it?

  6. Does the solution integration vendor have a solid track record with verifiable references? Do they showcase best practices?

The end result is to get done and delivered a deliver a platform that is tailored to work for the organization taking into consideration all components that make the system into a wholesome digital experience platform. Developing and maintaining broader levels of software solutions and bridging the gaps between business, marketing, customer experience, in-house content authorship and data management.

Image Courtesy

Download the Drupal Guide
Enter your email address to receive the guide.
get in touch