Monday, December 3, 2018

Learn all about using Rocket fuel with Drupal

The most important technology that is shaping the Media and Publishing Industry is Artificial Intelligence, Geo-targeted customer specific context whether in the physician’s office, the pharmacy, or in a patient’s living room or gym is a proven way to promote business through that drive awareness and growth.

In this blog I am going to introduce about  Rocket Fuel. it a programmatic media buying app that bids on individual ad impressions in real-time to display one specific ad to one customer in one specific context.

Key features of Rocket Fuel are

  • Big Data analysis
  • Unique algorithms
  • Tailored solutions
  • Data scientists for all your questions
  • Timely and contextual retargeting
  • Multi-channel and multi-device
  • Access over 300 exchange sellers
  • Access large premium publishers
  • 2.7 billion proprietary consumer profiles
  • Artificial Intelligence technology
  • Cross-channel synchronization
  • Deep audience insights
  • Identify highly qualified audience
  • Direct response & branding campaigns
  • Ads in 100+ countries
  • Millions of data points
  • Real-time bidding on ad impressions
  • Continually refine customer model
  • Prescriptive targeting
  • Audience Accelerators for publishers and networks

The app starts by creating target segments and then setting up tactics for each segment. It then refines the customer model to meet budget, campaign objective and to scale towards act-alike. Rocket Fuel offers real-time campaign insights, consumer insights and creative insights.

Prerequistes are Drupal website Rocket module -> install and enter the Rocket Fuel credentials like Account ID, Action ID, Domain and other theme related settings.



Sunday, October 7, 2018

Artificial Intelligence (AI) is capable of transforming CMS solutions to be more promising



The evolution of the Artificial Intelligence has undergone phases of topsy-turvies. In its early stages, AI failed to prove its viability in reshaping the world. The so called phase of disappointment was known as AI Winter. In the present era, AI has proved to be the most emerging field with the development of potential systems like Driverless Cars, Intelligent Robots, Smart Bots and many more which have caught the attention of the entire world.  Truly speaking, it is hard to believe as if it were all fiction or fantasy. Machine Learning is one of the scopes or sub-domains of Artificial Intelligence but not limited to, can be depicted as here.


Machine Learning is playing a vital role in meeting critical business requirements by providing business intelligence.  It aptly uses algorithms for making sentiment analysis of posts, comments, feedbacks on social platforms or portals. Such analysis helps in identifying users opinions on the products, services, events or any digital entity. Thus, it has vast potential to uplift social campaigns to a more promising levels in analyzing our digital assets and boosting their performances. Whereas Content Management Systems have been in use to uplift and showcase the Business expertise, services and products to the end customers. 

There are a number of such functional areas in CMS, where Machine Learning can reinforce and bring up fruitful results. Various Open Source CMS systems have very basic search functionality of metadata about digital assets (contents, comments, and etc.) which may not be helpful in this cut throat competition.  Here, Machine Learning can help the CMSs by making search functionality potential enough to search results from all kind of contents (Video, Images, or non-textual search for example video clip, or sample image).  Wherein, Deep Learning algorithms help building such systems that can recognize by images. As the digital assets are increasing by leaps and bounds and such an advanced search would be definitely strengthen CMSs in sorting out contents to the users.
For business with content oriented platforms, it is very important to know the readers sentiment (Positive or Negative) regarding contents and what actually the reader is looking for. With recent technology advancements, Machine Learning can help us in predicting it.  We are aware of Amazon’s Recommendation system for products to consumers such as “Items Frequently bought together” or “People who bought this also bought this”. Content Management Systems can have similar implementation for contents and bring more users to the platform. The system can implement data mining algorithms to fetch relevant data such as:
  •          Referral Portals (Identification of the user source or they visited from)
  •         Users Ratings to the content 
  •         Users most frequently visited pages
  •         Users Engagement to the content
  •         Users Reviews to the content

These all adds up to make inferences for the content to be recommended to users. It is certain that AI will revolutionalise the way CMS functions beyond our imagination, beyond the speed we adopt and react, beyond our requirements.  It is also going to change the way the businesses operate. 
Many more on application of AI in CMSs in my future posts.

Sunday, September 2, 2018

WordPress vs Joomla vs Drupal (Comparison)

Open source content management systems have been a force of change on the web. They have enabled scores of people to build and maintain their own web presences. Over time, WordPress, Joomla and Drupal have emerged as the most popular.
As PHP-based open source projects, these three systems have a lot in common of how they approach building websites. At the same time, there are a lot of differences, making them ideal for different target groups.

To help you make that decision, let’s quickly summarize the above:

WordPress — Beginner friendly and allows you to get started quickly. Even without any coding experience you can still build a highly functional website suitable for large amounts of traffic. The WordPress platform is customizable, secure, SEO and mobile friendly, easy to localize and collaborate on as well as easy to pass on to clients. It also has by far the largest community and ecosystem but can be a challenge to scale.

Joomla — If you are looking for a middle ground between out-of-the-box power and user friendliness or a good option for social networking and e-commerce, Joomla might be the one for you. It has a steeper learning curve, smaller ecosystem and is less SEO friendly, however, it’s still a very solid option used by big brands.

Drupal — Finally, if you are aiming to build huge sites with extensive features and unlimited customizations, Drupal may be the way to go. It offers a lot out of the box and is built for performance, however, at the same time it is absolutely not suitable for beginners. For that reason, you either need the budget to hire a developer or the time to learn the ropes, including coding.

Monday, April 30, 2018

Integration of salesforce in Drupal

In this Blog we are going to see how to integrate Salesforce in Drupal, prerequistes  are Salesforce developer account, Salesforce module installed in Drupal CMS.The integration of Salesforce with your Drupal has so many benefits as it helps sales and marketing to work efficiently, 
below are the integration steps. Step 1 Login your Salesforce account.Step 2 Follow the steps:
           Setup->Apps->App manager->New connected App
Follow the steps as shown in the screenshot:

Step 3 Now you can see connected app form, select required fields.
3.1 Basic information: Provide basic information about your app. 
3.2 API (Enable OAuth setting): OAuth (Open Authorization) gives access to resources without revealing user credentials to apps and end user's account information can be used by third-party services. Select setting checkbox. 


Step 4 Check whether the setting is selected or not as it toggles a form with some other required fields. 

Step 5 Enter the callback URL “https://www.yourdomain.com/salesforce/oauth_callback”.
Step 6 Select other fields as per your requirement and process it. Wait for 2-10 minutes before using your app. Now continue the process. Here you will get the consumer key and secret key (these keys are required to connect Drupal to Salesforce). Now you can use the connected app on your Drupal website.

Salesforce module:

Download Salesforce module and install it on your Drupal website. Also, download and install dependent modules like key & encrypt.
Let’s check out the submodules in Salesforce and what they do: 
  • Salesforce: OAUTH2 authorization, wrapper around REST API.
  • Salesforce Mapping: Maps Drupal entities to Salesforce fields, including field level mapping.
  • Salesforce Push: Pushes Drupal entity updates in to Salesforce.
  • Salesforce Pull: Pulls Salesforce object updates into Drupal on cron run.
  • Salesforce Encrypt: This module is dependent on two other module Encrypt & Key so make sure these are installed. Module required for access and refresh token with security.

Setting up Salesforce on Drupal website: 

Step 1 Go to Configuration->Salesforce->Salesforce Authorization 
Step 2 Add the oAuth configuration setting here


Create Salesforce mapping: 
Before Salesforce mapping, make sure what exactly are you looking for. 
Scenario:
Let’s map out basic information, like first name, last name, email of Drupal users to Salesforce and push them to CRM tool. 
Follow this path (admin/structure/salesforce/mappings) to get a form similar to the shown below.

Now fill the list of values: 
  • Label: Label of the mapping.
  • Drupal Entity: Select users in both of the fields “Drupal Entity Type” and “User Bundle” in order to map out Drupal users. 
  • Salesforce object: Here the selected value should be contacted only.
  • Action Trigger: Ones you create a user on Drupal site, use that as a contact in Salesforce tool. For this, select all the data push actions, like insert, update, delete.
Now select Upsert key and Mapped fields.

Upsert key: By setting Upsert key on Salesforce, you can prevent data duplicacy.Mapped fields: Fill the following columns. Property: Listed Drupal fieldsSalesforce field: Listed Salesforce fieldsDirection: There are three directions on the radio button. Here you can see the mapped data that will be updated on Salesforce or on your Drupal site or will synchronize on both. Your mapped field data depends on this setting. Operations: If you don’t want to map this field then delete it by selecting the ‘delete field option’.I have added Email as an Upsert key and for direction field, select “Drupal to Salesforce”.
Testing Proccess As follows:
Steps 1 Create a user from admin.Note: Salesforce module will automatically push the data on CRM with contacts.  Step 2 Run cron directly to update data with Salesforce contact by using the following path: /admin/config/system/cron 

Wednesday, April 4, 2018

How to choose best content management systems for web development

Indeed, there are great content management systems (CMS) available. The process of selecting an apt CMS that best suits one Business prospective is de facto a tedious task to carry out. Every Business requires a solution that addresses the challenges in present and is better aligned to ever changing dynamic business needs to make it future proof. There are a number of major factors and aspects that equip us with to take an informed decision from the available open source solutions.
The major aspects that are considered and come very frequently de facto are:
Support & Stability
The massive community size of the open source vendor is one of the best factors; we should look forward to before making a decision. There are other factors that add up to the decision making are; how large are their forums, how well are there documentation and what are the support options available.
The proprietary systems are preferred over open source just because of the fact that they offer 24/7 support and thereby is most considerable aspects among the folk. There is another prospect of open source which we are not aware of, that some of them offer similar support as proprietary systems do. There are popular proprietary systems like Jahia, Hippo and Magnolia which offer open source versions of their products as well.
The large community of Open Source and their large forums provides thousands of advanced functionalities, documentation, technical articles and people help us to fix the issues and extending the functionalities.
The large community of open source system and availability of code to outside world; helps developers around the world in extending and improving it. This helps identifying the anomalies and rectifying it for being used by the community. It leads to production of innovative tools, technologies, solutions, infrastructure and benchmarking best practices. Which is not in case of proprietary systems as it is motivated by a single owner.
Flexibility and Customization
Expanding a proprietary system is de facto more difficult due to the unavailability of freely available code. Using an Open Source System one can do Research & Development to produce Products & Services that can facilitate and support mission-critical business functions.
Before making a selection to any open source systems, we should analyze their documentation, best practices and coding standards they follow. What is the release process they follow before publishing any plugins or modules to the community? How frequently the products and services are being updated. Changelogs of the product blogs are another parameter for it as less updated products and services may have potential risk of making the system vulnerable.
Security
Security is the first and foremost factor, which the industry folk emphasize the most. It’s a common perception that Open Source systems have potentially risk to security threats by an adversary.
AugusteKerckhoff’s Principle in late 19th century gave his opinion in context of design principles for cipher, one of the most important was:
The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.
Today, Kerckhoff’s Principle is understood advocating the published designs as it go public scrutiny and are therefore likely to be stronger. Thereby security is much higher after it has been extensively studied and has withstood may attack attempts and known publicly. As it is better that security flaws are revealed by ethical hackers and made public than having the flaws known only to malicious parties.
Public design enables the establishment of standards. It may be dangerous to use a proprietary system as it is designed in secret by some organization. Thus it is easy to find exploits in Open Source and becomes a strong point advocating that it is less likely to be attacked as there are frequent security updates and patches by the community.
Cost
It is one of the most important factors along with security in making a selection. It is also a common misconception while giving preference to Open source over proprietary system that it may cost less. It depends as the cost solely doesn’t depend on mere selection of Open Source system. Cost depends on development, design, management and deployment costs as well.
Open Source system provide a basic infrastructure on top which it requires customization, whereas proprietary system comes up with on the go solution and requires less customization. The major cost associated with Open source system is that having well versed developers and support costs and most of the training activities can be learnt online at reasonable cost or at no cost.
 In Proprietary system the cost lies in licensing, training, development and support. 

Not only Proprietary systems should be given preference but also Open Source systems may fit the business needs and will remain an apt alternative to it.


Why use Drupal over Wordpress?


  • Wordpress was designed only to be a blog with some easy add-ons.
  • Drupal was designed to be more of a generalist: it’s for making ‘anything’ and is far more robust.
  • Wordpress could be the better choice for blogs since it is better at being a blog than Drupal.  This is something of debate.
  • Wordpress is still a sound choice of CMS for SEO and security; so if wordpress satisfies a simpler project’s requirements then by all means use it- it is easier and faster to set up than Drupal.
  • Wordpress is not designed to be highly scalable to many simultaneous users, nor does it have flexible roles, permissions, extensible content types, nor does it have plentiful well-tested, quality add-ons.  It has a few and a lot of really poor plugins.
  • Caveat: Trying to force Wordpress to do something it cannot do easily with very popular plug-ins can be worse than suffering the learning curve of Drupal.
  • It has superior session handling for a CMS.
  • It has superior security.
  • It is a more consistent, reliable and flexible framework for development.
  • It is considered better for SEO from our research.
  • It uses a ‘separation of concerns’ architecture to cleanly and consistently separate structure, function, form, and presentation in layers (ie: php from data as db/xml, layout and presentation as html and css).  
  • It heavily uses ‘defaults overrides’ in code in the form of hooks and in themes in the form of templates.  This makes it extremely flexible.
  • Other CMS’es do a very very bad job of at least one of the above.
  • Drupal has a steeper learning curve than wordpress or Joomla.
  • Drupal and it’s developers make no excuse for this fact- it is a robust, flexible tool
  • That said, the drupal community is constantly addressing usability and user-experience issues because they want the industry market share.

Friday, March 30, 2018

Regular Expressions in Python

Regular Expressions in Python are very important in programming, Python "re" module provides regular expression support.

The re.search() method takes a regular expression pattern and a string and searches for that pattern within the string. If the search is successful, search() returns a match object or None otherwise. Therefore, the search is usually immediately followed by an if-statement to test if the search succeeded, as shown in the following example which searches for the pattern 'word:' followed by a 3 letter word (details below):

str = 'an example word:cat!!'
match = re.search(r'word:\w\w\w', str)
# If-statement after search() tests if it succeeded
  if match:                      
    print 'found', match.group() ## 'found word:cat'
  else:

    print 'did not find'

The code match = re.search(pat, str) stores the search result in a variable named "match". Then the if-statement tests the match -- if true the search succeeded and match.group() is the matching text (e.g. 'word:cat'). Otherwise if the match is false (None to be more specific), then the search did not succeed, and there is no matching text.


The 'r' at the start of the pattern string designates a python "raw" string which passes through backslashes without change which is very handy for regular expressions (Java needs this feature badly!). I recommend that you always write pattern strings with the 'r' just as a habit.

str = 'an example word:cat!!' match = re.search(r'word:\w\w\w', str) # If-statement after search() tests if it succeeded   if match:                           print 'found', match.group() ## 'found word:cat'   else:     print 'did not find'
str = 'an example word:cat!!' match = re.search(r'word:\w\w\w', str) # If-statement after search() tests if it succeeded   if match:                           print 'found', match.group() ## 'found word:cat'   else:     print 'did not find'
str = 'an example word:cat!!' match = re.search(r'word:\w\w\w', str) # If-statement after search() tests if it succeeded   if match:                           print 'found', match.group() ## 'found word:cat'   else:     print 'did not find'
str = 'an example word:cat!!' match = re.search(r'word:\w\w\w', str) # If-statement after search() tests if it succeeded   if match:                           print 'found', match.group() ## 'found word:cat'   else:     print 'did not find'


Thursday, March 29, 2018

Artificial Intelligence

AI (artificial intelligence) is the simulation of human intelligence processes by machines, especially computer systems. These processes include learning, reasoning  and self-correction.

Particular applications of AI include expert systems, speech recognition and machine vision.

Artificial intelligence can be implemented in the doamins like,

Healthcare:
The biggest bets are on improving patient outcomes and reducing costs. we can apply machine learning to make better and faster diagnoses than humans. AI applications may include chatbots, a computer program used online to answer questions and assist customers, to help schedule follow-up appointments or aiding patients through the billing process, and virtual health assistants that provide basic medical feedback.

Busines:
Robotic process automation is being applied to highly repetitive tasks normally performed by humans. Machine learning algorithms are being integrated into analytics and CRM platforms to uncover information on how to better serve customers.

Education:
AI can automate grading, giving educators more time. AI can assess students and adapt to their needs, helping them work at their own pace. AI tutors can provide additional support to students, ensuring they stay on track. AI could change where and how students learn, perhaps even replacing some teachers.

Finance:
AI applied to personal finance applications, such as Mint or Turbo Tax, is upending financial institutions. Applications such as these could collect personal data and provide financial advice. Other programs, IBM Watson being one, have been applied to the process of buying a home. Today, software performs much of the trading on Wall Street.

Law:
The discovery process, sifting through of documents, in law is often overwhelming for humans. Automating this process is a better use of time and a more efficient process. Startups are also building question-and-answer computer assistants that can sift programmed-to-answer questions by examining the taxonomy and ontology associated with a database.

Manufacturing: This is an area that has been at the forefront of incorporating robots into the workflow. Industrial robots used to perform single tasks and were separated from human workers, but as the technology advanced that changed.

Setting up local developement instance for Drupal 8

This blog is about set up a local developement instance for Drupal 8 on Pantheon server and the best use of drush.


Let’s follow the step-by-step process  to set up our own local developement instance:

I)

To set up local developement instancefor Drupal 8 ,  Click on git and copy below command
git clone ssh://devserver.dev.463157b8-419d-482f-b571-xxxxxxxxx@deveserver.dev.463157b8-419d-482f-b571-3504bb893903.drush.in:2222/~/repository.git mkrishnapriya-drupal

II)
Then go to your web root i.e. /var/www/html/ and paste the copied command
git clone ssh://devserver.dev.463157b8-419d-482f-b571-xxxxxxxxx@devserver.dev.463157b8-419d-482f-b571-3504bb893903.drush.in:2222/~/repository.mkrishnapriya-drupal
III)

Meanwhile, create a database for the site in local
mysql -u root -p Enter the username and administrator password you set-up during installation

CREATE DATABASE drupal8;
IV)
Download the Pantheon Drush alias from Pantheon Dashboard (https://dashboard.pantheon.io) and place that file to .drush folder
i.e. /home//.drush/

Place below code in .drush folder file name as local.aliases.drushrc.php
--------------------------------------------------------------------------

$local_sites = '/var/www/html/';
$scan = scandir($local_sites);
unset($scan[0]);
unset($scan[1]);
foreach($scan as $projects){
 $aliases[$projects] = array(
 'root' => $local_sites . $projects,
 'path-aliases' => array(
   '%dump-dir' => $local_sites . 'drush.dbdumps',
   '%files' => $local_sites . $projects . '/sites/default/files'
   )
 );
}
?>

V)
After clone is done, go to /var/www/html/drupal8/sites/default/
Create new settings.local.php should be an settings.local.php of Drupal 8 Note: Add below code snippet

/**
* @file
* settings.local.php.
*/
// Local development configuration.
if (!defined('PANTHEON_ENVIRONMENT')) {
 // Database.
 $databases['default']['default'] = array (
   'database' => Drupal8,
   'username' => '*****',
   'password' => '****',
   'prefix' => '',
   'host' => '******',
   'port' => '3306',
   'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
   'driver' => 'mysql',
 );
 $config_directories['sync'] = 'sites/default/config';
 $settings['hash_salt'] = '$HASH_SALT';
}
ini_set('max_execution_time', -1); // add if required
ini_set('memory_limit', '512M'); // add if required
ini_set('upload_max_filesize , 1024M'); // add if required
ini_set('post_max_size , 1024M'); // add if required

Step 6

Create files folder in sites/all/default/
Give permission to file folder Chmod 777 -R files/
Go to ./drush folder through terminal and type drush cc drush
Now on terminal, type drush sa
You will get all local aliases, dev aliases, test aliases and live aliases