Archive

Archive for the ‘selvabalaji’ Category

Back to Yuvan Shankar Raja

August 18, 2016 Leave a comment

Solli Tholaiyen Ma Lyrics From Yakkai

Movie : Yakkai
Song : Solli Tholaiyen Ma Lyrics
Music : Yuvan Shankar Raja
Singer : Dhanush
Lyrics : Vignesh Sivv

Kaana Poona Kadhala
Naana Kenji Kekkuren
Poona Poguthu Kadhala
Solli Tholiyen Ma
Veena Neram Poguthu
En Maanam Kappal Erudhu
Thaana Vandhu Kaadhala
Solli Tholaiyen Ma

Nee Ok Solli Tholanja
Thara Kuthu Poduven
Illa Venam Solla Thuninja
Solo Song ah Paduven

Unakku Wait Panni
En Body Weak Aaguthu
Basement Shake Aguthu
Heart-u Break Aguthu
Loveahh Sollaathathaale
Nenju Lock Aaguthu
Current Illatha
Oor Pola Dark Aguthu

Vaaram Onnula
Kanavula Vandha
Vaaram Rendula
Manasulla Vandha
Moonam Varame
Rathathilayum Neethan
Ada En Maa En Maa

Nalla Pakkura
Koocha Padamanee
Nalla Illikira
Loveh Solla Mattum
Yenma Moraikkura
Sariye Illamaa
Ada Poo Ma Poo Maa

No No Summa Sonnenamma
Unakkaga Poranthavan
Nan Mattum Thanma
Un Kooda Vazhave
Thinam Thorum Saguren
Kaapathu Kadhala
Solli Tholaiyenma

Poona Poguthu Kadhala
Solli Tholiyen Ma

Unakku Wait Panni
Wait Panni
Wait Panni
Unakku Wait Panni
En Body Weak Aaguthu
Basement Shake Aguthu
Heart-u Break Aguthu
Loveahh Sollaathathaale
Nenju Lock Aaguthu
Current Illatha
Oor Pola Dark Aguthu

 

PHP Access Modifiers

PHP access modifiers are used to set access rights with PHP classes and their members that is the functions and variables defined within the class scope. In PHP, there are some keywords representing these access modifiers. These keywords will be added with PHP classes and its members.

PHP keywords as Access Control Modifiers

Now, let us have a look into the following list to know about the possible PHP keywords used as access modifiers.

  1. public – class or its members defined with this access modifier will be publicly accessible from anywhere, even from outside the scope of the class.
  2. private – class members with this keyword will be accessed within the class itself. It protects members from outside class access with the reference of the class instance.
  3. protected – same as private, except by allowing sub classes to access protected super class members.
  4. abstract – This keyword can be used only for PHP classes and its functions. For containing abstract functions, a PHP class should be an abstract class.
  5. final – It prevents sub classes to override super class members defined with final keyword.

Access modifiers Usage with PHP Classes, Class Members

Based on the possibility of applying the above list of PHP access modifiers, we can classify them. The following tabular column specify which keyword could be applied where in classes,functions or methods.

Access modifier classes functions variable
public Not Applicable Applicable Applicable
private Not Applicable Applicable Applicable
protected Not Applicable Applicable Applicable
abstract Applicable Applicable Not Applicable
final Applicable Applicable Not Applicable

public Access Modifier

Before introducing access modifiers in PHP, all classes and its members are treated aspublic by default. Still, for PHP classes without specifying any access modifiers, then it will be treated as public.

If we specify public,private or protected for a PHP class, then it will cause parse error. For example, if we define a class as,

public class  {
...
...
}

Then, the following parse error will be displayed to the browser.

Parse error: syntax error, unexpected 'public' (T_PUBLIC) in ...

Similarly, class functions without any access modifiers, will be treated as public functions. But, it is good programming practice to specify those functions as public for better understanding.

Unlike PHP classes and functions, we need to specify access modifiers for PHP class variables explicitly. For example, the following code is invalid, which will cause PHP parse error.

class Books {
$categories = array("puzzles","pull back","remote","soft");
...
}

And, the valid code for defining classes with public variables are follows.

class Books {
public $categories = array("puzzles","pull back","remote","soft");
...
}

private Access Modifier

We can state this keyword only for class variables and function, but not for class itself, as like as public modifier. PHP class members defined as private cannot be accessed directly by using its instance. For example,

class Books {
private $categories = array("puzzles","pull back","remote","soft");

public function getbooksCategories() {
return $this->categories;
}
}
$objbooks = new Books();
print "<pre>";
print_r($objbooks->categories); // invalid
print_r($objbooks->getbooksCategories());
print "</pre>";

In the above program, Books class contains an private variable and a public function. Accessing this private variable by using Books class instance with the line,

print_r($objbooks->categories); // invalid

will cause PHP fatal error as,

Fatal error:  Cannot access private property Books::$categories in ...

But we can access class private variables via any public function of that class. In the above program we are getting the elements of $categories array variables via getbooksCategories() function defined as public.

Note that, all members of a class can be access within the class scope by using $this variable.

protected Access Modifier

This keyword is used in a PHP program which is using PHP inheritance. And, it is used to prevent access for PHP classes and its members from anywhere, except from inside the class itself or from inside its subclasses.
With this keyword, PHP classes and its members functions cannot be access directly from outside the classes and their subclasses, with the references of their instance.

Consider the following PHP program.

<?php
class Books {
protected $categories = array("puzzles","pull back","remote","soft");
protected $books = array(array("name"=>"Mechanical books","category"=>"pull back"),
array("name"=>"Jigsaw","category"=>"puzzles"),
array("name"=>"HiTech","category"=>"mech"),
array("name"=>"Teddy","category"=>"soft"),
array("name"=>"Baby","category"=>"soft"),
array("name"=>"Chinese","category"=>"puzzles"),
array("name"=>"Electronic","category"=>"remote"));
protected function getBooks() {
for($i=0;$i<count($this->nooks);$i++) {
$books_list[] = $this->books[$i]["name"];
}
return $books_list;
}
protected function getBooksByCategory($category) {
for($i=0;$i<count($this->books);$i++) {
if($this->books[$i]["category"]==$category) 
$books_list[] = $this->books[$i]["name"];
}
return $books_list;
}
}

class SoftBooks extends Books {
protected $category = "soft";
function getBooks() {
return $this->getBooksByCategory($this->category);
}
}

$objBooks = new Books();
$objSoftBooks = new Softbooks();
print "<pre>";
/**Invalid
print_r($objBooks->categories);
print_r($objSoftBooks->categories);
print_r($objBooks->getBooks());*/
print_r($objSoftBooks->getBooks());
print "</pre>";
?>
Categories: selvabalaji

Google Introduces Search Engine Apps : Springboard

springerboard

Springboard is designed and marketed towards business and enterprise users of Google’s productivity apps — particularly those that have to regularly sort and search through large numbers of documents and files.

Within the same announcement Google also announce a significant upgrade to Google Sites, which is a tool designed by the company for creating web pages. The update will allow users to easily pull in information from other Google apps, and features all fully responsive designs for all of its layouts.

Both Springboard and the upgrade to Sites are currently being tested amongst a select group of users in Google’s early adopter program. If you’re interested in getting an early look at Springboard you can sign up here. An official public release date was not mentioned in the announcement.

Overview of HADOOP

When we look into the structure of this framework , we find that it is divided into HDFS and MapReduce.
The two hands of Hadoop framework
i.e. HDFS and MapReduce are Hadoop Distributed File System- the storage hand and the processing hand respectively. This skeleton divides the total data into smaller blocks and circulate them in assemblage through the junctions called nodes in the network. The JAR is sent to the nodes where the data needs to be worked on. Here the nodes responsible for those data residing near them work faster in transferring them.

big-data
Hadoop  carries  four programs  of  study.

They  are :
-> Hadoop Common
-> HDFS
-> Hadoop YARN
-> Hadoop MapReduce

1. Hadoop common acts as the information centre that contains the collections of Hadoop libraries.
2. HDFS is the storage part of high band of frequencies.
3.The YARN organizes the properties that line up the user’s function in an assemblage.
4.MapReduce is the processor that processes all sets of data.

Hadoop is such a frame that can store and circulate huge data files without minimum error. Hence it is highly scalable.

1.This software costs very less for storing and performing computations on data in comparison with the traditional databases.
2.Accessing with different kinds of business solution data is done by Hadoop with ultimate comfort. It has been proving to be its best in decision making.
3.It helps in social media, emailing, log processing, data warehousing, error detection etc.
4. Since it maps the data wherever it is placed so Hadoop takes very less time in order to unfold any data. It hardly takes an hour to work on large petabytes of data. Hene, it is super fast.

Hence, the companies using Hadoop are able to gain far better insights. Whenever a data block goes from one node to another in the assemblage of the network, each  block gets copied to each node and even if the data is lost, we will always be having a backup copy of it. Hence, fault occurrence is really very low.

 

Retrieving Google Analytics Data to Build a KPI Dashboard

October 26, 2015 Leave a comment

Introduction

As we all know, many web projects are created in order to solve particular business needs. Any business requires data on how well it is going, how big the traffic of clients is, how many clients register, etc..

Google Analytics is an industry standard service to collect such data. The site webmaster puts a JavaScript tracker script in the pages to allow Google Analytics to collect the data for every time a page is loaded.

Google Analytics Charts

All that is done on front-end site, no PHP code is involved. In this article I cover retrieving access statistics data from Google Analytics using PHP.

Retrieving Google Analytics Data to Build a KPI Dashboard

Project owners and investors might need a dashboard or KPI progress page. Let’s see how to grab statistics from your Google Analytics account to s PHP backend in order to build a dashboard.

There are many statistics that represent the heartbeat of your project: number of visitors, bounce rate, percent of registrations, profit from every user, etc. These are called KPIs: the key performance indicators, each of which is a business metric used to evaluate factors that are crucial to the success of an organization.

KPIs differ from one company to another.  Some of these indicators can be seen in original Google Analytics reports: how many people came and how engaged they are in average. What your customer might want is to combine that data with revenue and profit data from your database and build a solid dashboard.

At this point you will realize that you need to retrieve Google Analytics data from your PHP scripts.
Hold on, Google Analytics is a complex data source, —entries can be queried by date and name.

You will find an couple of classes below that help to automate interaction with this service and return a simple number as result of your query. The code is based on Zend Framework 1, since it helps a lot to automate interaction with Google services (a technology called GData).

First, let’s create an abstract class to help us create classes to work with different Google Services (just replace XXX with your app or library name)

<?php

class XXX_Google_Wrapper_Abstract {

    public $gdClient; 
    
    protected $_listFeedsUrl;
    protected $_dataUrl;
    
    /**
     * Constructor for the class. Takes in user credentials and
     * generates the the authenticated client object.
     *
     * @param  string $email    The user's email address.
     * @param  string $password The user's password.
     * @return void
     */
    public function __construct( $email, $password, $service) {
        $client = Zend_Gdata_ClientLogin :: getHttpClient( $email, $password, $service);
        $this->gdClient = new Zend_Gdata( $client );
    }

    protected function __fetch($url) {
        $query = new Zend_Gdata_Query($url);
        $feed = $this->gdClient->getFeed($query);
        return $feed;
    }
    
    public function listFeeds() {
        return $this->__fetch($this->_listFeedsUrl);
    }
    
    public function fetchItems(array $params) {
        $url = $this->_dataUrl . '?' . http_build_query($params);
        return $this->__fetch($url);
    }
}

Now, we can use this parent class to create a class to work with Google Analytics:

<?php

class XXX_Google_Wrapper_Analytics extends XXX_Google_Wrapper_Abstract {
    protected $_listFeedsUrl = 'https://www.google.com' . '/analytics/feeds' . '/accounts/default';
    protected $_dataUrl = 'https://www.google.com' . '/analytics/feeds/data';
        
    public function __construct( $email, $password) {
        parent::__construct( $email, $password, 'analytics');
    }   
}

Both classes must be placed anywhere where your scripts can automatically load them. Zend Framework provides a simple naming convention to make it work automatically.

Google Analytics data is very flexible — e.g., you can grab total visits count, or visits of a page that contains a particular keyword in its URL. So we need one more abstract class, that we will use our Google Analytics wrapper to access any kind of required data:

<?php
abstract class Stats_Google_Analytics_Abstract {
    protected static
        $_wrapper,
        $_reportID;
    protected $_page;
        
    public function __construct() {
        
        if (!empty(self::$_wrapper)) return true;
        
        $config = Zend_Registry::get( 'config' ) -> toArray();
        $analyticsConfig = &$config[ 'google' ][ 'analytics' ];
        
        $email    = $analyticsConfig['email'];
        $password = $analyticsConfig['password'];
        self::$_reportID = $analyticsConfig['report']['id'];
        
        try {
            self::$_wrapper = new Sunny_Google_Wrapper_Analytics( $email, $password);
        }
        catch(Zend_Gdata_App_AuthException $e) {
            error_log( 'Zend_Gdata_App_AuthException: ' . $e->getMessage() );
            throw $e;
        }
    }
    
    public function fetchValue( $startDate, $endDate = null, array $additionalParams = null) {
        $list = $this->fetchAll( $startDate, $endDate, $additionalParams );
        $sum = array_sum($list);
        return $sum;
    }
    
    public function fetchAll($startDate, $endDate=null, array $additionalParams = null) {
        if (empty( $endDate )) {
            $endDate = $startDate;
        }
        $params = $additionalParams;
        $params['start-date']   = date('Y-m-d', strtotime( $startDate ));
        $params['end-date']     = date('Y-m-d', strtotime( $endDate ));
        $params['ids']          = self::$_reportID;
        
        try {
            $result = self::$_wrapper->fetchItems( $params );
        }
        catch(Exception $e) {
            error_log('Exception: ' . $e->getMessage());
            throw $e;
        }
        $dimensions = array();
        foreach ($result as $entry) {
            $extensions = $entry -> getExtensionElements();
            $attrs = array();
            foreach ($extensions as $extension) {
                $attributes = $extension -> getExtensionAttributes();
                $attrs[ $extension->rootElement ] = $attributes;
                $value  = $attributes[ 'value' ][ 'value' ];
                ${$extension -> rootElement} = $value;
            }
            
            if (empty($dimension)) {
                $dimension = null;
            }
            $dimensions[ $dimension ]  = $metric;
        }
        return $dimensions;
    }
    /**
     * Returns amount of unique visitors in the given time period
     * @param string $fromDate
     * @param string $toDate
     * @return int
     */
    public function count( $fromDate, $toDate = null) {
        $params = array(
            'metrics'       => 'ga:visits',
        );
        
        if (!empty($this->_page)) {
            $params['filters'] = 'ga:pagePath=~/'.$this->_page.'/*';
        }
        
        return $this->fetchValue( $fromDate, $toDate, $params );
    }
}
To make it work, your Zend Framework configuration file must include these settings:
google.analytics.email      = your@email.com
google.analytics.password   = YourPassword
google.analytics.report.id  = ga:12345
OK, all is ready. Let’s create a class to grab statistics about all page views from your account:
<?php

//yes, it's an empty class since everything is defined in the abstract class
class Stats_Google_Analytics_Visit_Total extends Stats_Google_Analytics_Abstract {
}

$startDate = '2014-01-01';
$endDate = '2015-10-15';
$tracker = new Stats_Google_Analytics_Visit_Total;
echo $tracker->count( $startDate, $endDate );
This how to count pages that contain ‘/admin/’ in their URL:
<?php

class Stats_Google_Analytics_Visit_Admin extends Stats_Google_Analytics_Abstract {

    protected $_page = 'admin';
}


$tracker = new Stats_Google_Analytics_Visit_Admin;
echo $tracker->count($startDate, $endDate);
As you can see, it’s that easy!
Categories: selvabalaji

INTERESTING PAGES IN FACEBOOK

March 15, 2014 Leave a comment

We use Facebook to share our toughs(whats on your mind??) , there are many important pages by Facebook to be noted.

# News room home page: link

FB

# KeyFacts: link

The Key factor mentions recent statistics, about the company, no.of employees, Board members and Head quarters for Facebook. It displays all the statistics about the Facebook report and statistical data til last quarter of the year.

# Products of Facebook: link

Th product of Facebook is been listed in product page these ‘n’ number of product is been used by Facebook. The tab is been included with products, timelines, group research, photo , videos and messenger.

#Photos and Broll: link

The Important photos events of particulars is been made album and released in this link.

# Developer Page in Facebook: link

If you are keen interested in developing an apps for Facebook this page is right for you. And get more announcements in this page by the Facebook CEO on the right corner (connected to Facebook blog).

# Carrier @ Facebook: Link

Search job in Facebook based on  countries and job search. This page is really interesting to learn about the responsibilities and requirements on described job position.

# Help @ Facebook: Link 

Bluetooth Paper Airplane Kit Is Ridiculously Cool

January 9, 2014 Leave a comment

Flying paper airplanes has never been this fun. PowerUp Toys’ latest product lets you add a new element of interactivity to the old-fashioned paper airplane by attaching a battery-powered propeller and rudder, which can be controlled using an iPhone app via Bluetooth. The PowerUp 3.0 Smartphone Controlled Paper Airplane Kit, currently being funded via a Kickstarter campaign, is due to hit the market in May for $50.

The PowerUp 3.0 Smartphone Controlled Paper Airplane Kit is the company’s third generation of this device; previous models lacked an accompanying app. The way it works is pretty simple: First, fold a paper airplane using the template provided. Next, attach the PowerUp module to the plane, and pair it with your phone. Then, it’s off into the wild blue yonder!

Kit Adds Propeller Power to Paper Airplane

The battery inside the PowerUp 3.0 will provide about 10 minutes of flying time, and recharges via microUSB in about 15 minutes. The app itself is pretty ingenious. Would-be pilots steer the airplane by tilting the iPhone left or right, and a gimbal shows you how level the plane is relative to the horizon. A throttle in the middle lets you adjust the speed of the propeller, and three gauges show the power output, battery life remaining, and signal strength between the plane and your phone.

In our brief hands-on time, the plane was very zippy; it flew past us in the blink of an eye. PowerUp says you’ll be able to control the plane to a range of about 60 yards. When it’s released in May, we’re certainly looking forward to taking it for a flight or two.

Get more from LAPTOP

Top 10 Tech Trends of 2014
Sony Xperia Z1s Wows with 20-MP Camera
12 Gadgets Ahead of Their Time

This article originally appeared on LAPTOP, a TechMediaNetwork company. Copyright 2014, all rights reserved. This material may not be published, broadcast, rewritten or redistributed.

Categories: selvabalaji

Jilla: Trailer

January 8, 2014 2 comments

In early 2013 when news of Vijay and Mohanlal coming together for the first time in Jilla was announced it created a huge frenzy among fans of both these popular actors. Considering that Vijay is also extremely popular in Kerala this sounded like a total winning combination. The people responsible for making this come true are writer-director R.T.Neason and producer R.B.Choudary. For the veteran R.B.Choudary, Jilla marks his 85th film as producer in 25 years of experience. R.T.Neason who had earlier directed the film Muruga (2007) had assisted Jayam Raja on Velayudham where he got the opportunity to work with Vijay earlier. Jilla is touted as a total mass Madurai based entertainer where apparently Mohanlal features as the father of Vijay. The rest of the star cast includes Kajal Aggarwal, Soori, Mahat Raghavendra, Niveda Thomas, Pradeep Rawat etc. D.Imman‘s music has already become popular and the film has Ganesh Rajavelu as DOP and Don Max as editor.

It is indeed strange that for a film of this magnitude the trailer has just been unveiled 2 days before the release of the film. Jilla is vying for Pongal honours along with Ajith’s Veeram and both these films will release on 10th January. The trailer lives up to the image being projected about the film though why Mohanlal doesn’t get any dialogue in the same is a big mystery. Lets see whether Jilla lives up to its hype. Here’s the trailer of the film

2014 – FIRST PLUGIN ” WP Property Sale/Rent “

January 4, 2014 3 comments

WP Property Sale/Rent for creating and managing real estate agents and people who are willing to list their property. https://selvabalaji.wordpress.com

Great options to list properties on your own WordPress website. WP Property Sale/Rent for creating and managing highly real estate agents and people who are willing to list their property listing on their own WordPress site.

http://wordpress.org/plugins/wp-sale-property/

WP Property Sale/Rent is the WordPress plugin for creating and managing highly customization real estate, property management, and completely custom listings showcase websites. Turn your WordPress powered site into a real estate site. Create listings, upload images, display a dynamic map, slideshow, agent information,Google Maps, Send A Inquiry to agents Directly, Image slide show, and much more.

As always, integration is seamless, the system is expandable and customization, functionality is rich, and we are here to support it.

Capture

If you are looking to build a site where you can list property for sale or rent, this is the plugin you need.

Features

  1. Add Property
  2. Add multiple property photos
  3. Advanced property search
  4. jQuery slider in property detailed view
  5. property options so you can add any type of property listing
  6. multiple categories
  7. Property search widget.
  8. Advanced search widget and custom page.
  9. Custom property listing page
  10. Custom manage-able property types
  11. Manage the number of property listing per page

Advanced property search page

  1. Create a normal page in your wordpress website
  2. Editor of the page, add this short code [PROPERTY_ADVANCED_SEARCH]

screenshot-8

screenshot-9

screenshot-10

screenshot-1

screenshot-2

screenshot-3

screenshot-4

screenshot-5

screenshot-6

screenshot-7

Welcome New Year 2014

December 31, 2013 Leave a comment

Hello Guys,
card

Wishes to everyone who online on this post.
Wish you all the best to you and your family for your bright future.
This year may come the biggest joy and joy so that you can’t explain that.
You all are invited here to wish Happy New Year 2014 each other.
You can easily wish each other just commenting below.

You have a big opportunity to start the new work today, you can enjoy yourself and motivate yourself by opting the following positive lines: –
Say to yourself every morning:
-Today is going to be a great day!
-I can handle more than I think I can!
-Things don’t get better by worrying about them!
-I can be satisfied if I try to do my best!
-There is always something to be happy about!
-I’m going to make someone happy today!
-It’s not good to be down!
-We always have an option!
-Life is great, make the most of it!

BE AN Optimist!

Best Wishes to all
Balt (selvabalaji)

My Team Plugin for WordPress

December 19, 2013 1 comment

We are  happy to release “My Team” a new WordPress to display team/staff members. You can also display a set of pictures and information in different layouts.

Nowadays, WordPress is more than just a blog. And behind such website is a team. The plugin acknowledges those guys, by creating a template which anyone can copy in his theme directory and have a page ready for the people behind it. The plugin provides the administrator with a nice interface to add/edit/delete the team members. The plugin is under active development so keep checking the page. The plugin uses the short-code given at

http://wordpress.org/plugins/wp-my-team/

Features:

You can display the entries in 4 different main ways

  1. Grid view.
  2. Grid view with Information on hover.
  3. Table list view.
  4. Number of Columns.
  5. Image Shapes and effects.
  6. Text Align.
  7. Special Settings.
  8. Image Sizes.
  9. Email Settings.
  10. Single Page Settings.
  11. Auto Generation Shortcode & PHP Function.

screenshot

How to avoid being one of the “73%” of WordPress sites vulnerable to attack

December 18, 2013 3 comments

A recent investigation has concluded that 73% of the 40,000 most popular websites that use WordPress software are vulnerable to attack.

The research, carried out by vulnerability researchers EnableSecurity and reported by WordPress security outfit WP WhiteSecurity, was conducted between Sept 12 and Sept 15 shortly after the release of the WordPress 3.6.1Maintenance and Security Release.

WordPress is the most popular blogging and Content Management System (CMS) in the world and, according to WordPress founder Matt Mullenweg, it powers one in five of all the world’s websites.

As with any research of this kind we should apply a big pinch of salt.

In fact in this case we don’t need to supply our own salt because the research actually comes self-salted thanks to this hilarious rider at the bottom of the article:

The tools used for this research are still being developed therefore some statistics might not be accurate.

You have been warned.

So if the numbers might be wrong why am I bothering to reproduce them here? Because (in my opinion) they are probably true (well true-ish) and even if they aren’t they still highlight an important security issue which isn’t diminished one iota by their sketchiness.

As long as we go into this with our eyes open we’ll be fine.

The research did no more than set out to discover what versions of the popular CMS are in use by the top 1 million websites.

This singular focus is with good reason: the first rule of WordPress security is always run the latest version of WordPress.

If you aren’t running the very latest version of WordPress then the chances are you are running a version with multiple known vulnerabilities – bugs that criminals can use to gain a foothold on your system.

EnableSecurity’s scan of Alexa’s Top 1,000,000 discovered that 41,106 websites were running WordPress, a little over 4%.

They then determined that of those websites at least 30,823 were running versions of WordPress that have known vulnerabilities. From this they concluded that

73.2% of the most popular WordPress installations are vulnerable to vulnerabilities which can be detected using free automated tools.

Add your salt now.

Even if we take it as read that 73% of the sites are running vulnerable versions of WordPress we still can’t conclude that 73% are in fact vulnerable. There are common security strategies that the researchers didn’t test for, not least using a Web Application Firewall (WAF) that can put up a protective shield in front of vulnerable websites.

By the way, the first rule of WordPress security, always run the latest version of WordPress, holds true even for sites running behind a WAF. They are not mutually exclusive and should be considered as separate parts of a strategy of defence in depth.

In addition to skipping over reasons why the 73% might be a little on the high side the study also leaps acrobatically past a totally different set of reasons why it might be a bit on the low side.

The limited scope of the research meant that it didn’t account for other forms of automated attacks against WordPress installs such as targeting weak passwords or flaws in popular plugins.

As diaphanous as the study’s precision might be, the broad thrust is correct and it contains a useful message; users of WordPress need to be diligent about security because they are using software that is popular enough to be of interest to criminals who conduct large-scale automated attacks.

10 ways to keep your WordPress site secure

If you are running a website that uses WordPress here are 10 suggestions to help you avoid ending up in the 70% (or whatever large number it is) of vulnerable sites.

  • Always run the very latest version of WordPress
  • Always run the very latest versions of your plugins and themes
  • Be conservative in your selection of plugins and themes
  • Delete the admin user and remove unused plugins, themes and users
  • Make sure every user has their own strong password
  • Enable two factor authentication for all your users
  • Force both logins and admin access to use HTTPS
  • Generate complex secret keys for your wp-config.php file
  • Consider hosting with a dedicated WordPress hosting company
  • Put a Web Application Firewall in front of your website

For more on the subject of patching WordPress have a listen to Sophos Security Chet Chat 117, the latest 15 minute installment in our regular podcast series.

 

TBS 5th Annual Day Celebration – A walk-through

December 16, 2013 Leave a comment

It all started with a set of big ideas on everyone’s mind. A team was setup to discuss on the activities and arrangements for the celebration. The team members were Kalpana, Diviya, Sharmi, Balaji.

The initial discussion was done few weeks before, but the approval from management was received just 4 days before. We had a very short time to carry out the discussions on arrangements as we were done with our Company outing just a few days before. The team request was

  • Sweet distribution
  • Cultural activities
    • Singing/dancing/skit/mimicry/miming
    • Games
  • Full day celebration
  • Awarding
  • Decorations
    • Photo hanging
    • Logo based gift
    • Decoration craft
      • Individual own décor items
  • Cake cutting
  • Theme based dress code (5th year – Wood based could be brown shades)

And the approval was Now we don’t want to give T-Shirt and also we have very very short time

  • Morning Pooja with directors + all our team.
  • Sweet Distribution
  • Decoration and Cultural
  • Award Giving
  • Lunch.

DAY: 02.12.2013 – The Anniversary Day Eve


It was our tea break in the evening and we requested all our team members to accompany in the decoration task. It started by 4.30 PM in the evening.

Photo1490 DSC02874
Few started pumping the balloons, nearly 250 nos.
DSC02865 DSC02872
Few started sticking papers to make thoranam
DSC02867 DSC02866
While others drawing the number 5 to hangout showing the completion of 5 successful years, few others were slicing the pictures of individuals of the team to show off everyone that they are the backbone of this growth.
DSC02861 DSC02845
Few tied them on the wall. Few tied flowersIt was raining and hot bread bajji were served to enthu the team. The team was working out crossing 9.00 PM and this is how the decorations came out.
DSC02859 DSC02858
DSC03020 DSCF7421
DSCF7424 DSCF7432

DAY: 03.12.2013 – The Anniversary Day


The day started with high level of curiosity. Morning pooja preparations were started. Decorated lamps, flower garlands for company name board, door entrance, rangoli with flowers. The ambience was filled with colorful paper decorations and flower decorations

DSCF7413 DSC02953
DSCF7416
All the directors of the company were assembled. All the staffs of MT and IT were assembled to attend the pooja. Prasadam was served to all
DSCF7418
All Praise To GOD. Let his blessings shower on ALL
DSCF7448 DSCF7446
DSCF7482 DSCF7454
Following a good start pooja, the cake cutting event began. 3KG of white forest cake was bought up and the cake table was accompanied with chewy marshmallows and fresh fruits. All the staffs were assembled and the 2 juniors sliced the cake accompanied by directors
DSC02995 DSCF7460
DSCF7425 DSCF7430
DSC02973 DSC02988
Following the cake distribution, the entire team was enjoying the time. Anthakshari was played among the members with full fun. Next came out the honoring portion. Our chief guest Mr. Chidambaram was honored by a small gift, a T-shirt printed with TBS logo. And four developers were awarded as the best programmer of the month. Followed by the award give away, each one is called out to share their feelings on the special day.
DSCF7494 DSCF7493
DSCF7489 DSCF7497
DSCF7496 DSCF7495
DSCF7544 DSCF7541
DSCF7546 DSCF7529
Everyone expressed their feelings and thoughts on working with TBS, few expressed their suggestions to celebrate the annual day by inviting their own family, many thanked the company for the opportunity given and few made it fun also. After a gallery of words, tasty vegetarian lunch was served to all. The lunch was covered with a full meals of rice, sambar, kozhumbu, rasam, more, porial, kootu, appalam, vadai, payasam and pickle. The complete meals was served in a traditional manner on banana leafs.
DSCF7556 DSCF7558
DSCF7560 DSCF7551
DSCF7549 DSCF7548
After a full meal, the team members prepared for the cultural events. It started with a small contest conducted by Kalaiarasan. The contest started with general knowledge questionnaires, answering them with water in mouth, eating biscuits as much as possible in 1 minute, find and arrange of spelling of question. The contest has eliminations too. The Final winner was Arun and the runner was Chid.
DSCF7565 DSC03023
DSC03028 DSC03030
DSC03040 dance
Followed by the dance, it was musical chair contest done with 2 groups. And the winner was Vijaya Sundar and runner was Kalpana. Followed by that we played the fun game of finding donkey tail. Next was a matchstick lighting contest, whoever lights maximum no. of sticks in given time wins the game. And the winner was Michael.
d_tail music_chair
Next few members sang film songs. Appreciate the effort of boys who were prepared with BGM and Arun who sang in other language.
surya jayaram
sudha
arun_kasi kasi_sathish
DSCF7573 group1
group2 group3
Followed by a masti dance, prize were given away for the winners by the runners
prize DSCF7578
DSCF7579
The annual day celebration ended up happily with a solid hope to continue to celebrate with more members and achievements in the forthcoming years.

The beautiful gifts made by Velmurugan and Kalaiarasan which decorates our office added more beauty

gift3 gift2
gift1 gift5
gift4

How To Show Author Profile Image In Google Search

December 16, 2013 2 comments

Google allows authors to connect their articles to corresponding Google+ profiles. When such articles are shown in Google search results, the author’s profile image is shown along with it.

Researches suggest that search results with profile images have better Click Through Rates(CTR) than normal ones. Let us see how we can implement this feature in our website.

Step 1: Take the page which you wish to attach your profile image. Add a link to your Google+ page. The link looks like https://plus.google.com/+selvabalaji. Here is general syntax.

<a href=”[profile_url]?rel=author”>Link Text</a>

You have to append ?rel=author to the link. In this page, you can find live demo in the author box below. There I have placed a link like this.

Understanding Regular Expression

October 22, 2013 Leave a comment

Regular expression is the most important part in form validations and it is widely used for search, replace and web crawling systems. If you want to write a selector engine (used to find elements in a DOM), it should be possible with Regular Expressions. In this post we explained few tips that how to understand and write the Regular Expression in simple way.

Will discuss about basic regular expression in three stages.

Stage 1

Symbol             Explanation

^                       Start of string
$                       End of string
.                        Any single character
+                       One or more character
\                        Escape Special characters
?                       Zero or more characters

Input exactly match with “abc”

var A = /^abc$/;

Input start with “abc”

var B = /^abc/;

Input end with “abc”

var C = /abc$/;

Input “abc” and one character allowed Eg. abcx

var D = /^abc.$/;

Input  “abc” and more than one character allowed Eg. abcxy

var E = /^abc.+$/;

Input exactly match with “abc.def”, cause (.) escaped

var F = /^abc\.def$/;

Passes any characters followed or not by “abc” Eg. abcxyz12….

var G = /^abc.+?$/

Stage 2

Char                Group Explanation

[abc]                 Should match any single of character
[^abc]               Should not match any single character
[a-zA-Z0-9]      Characters range lowercase a-z, uppercase A-Z and numbers
[a-z-._]              Match against character range lowercase a-z and ._- special chats
(.*?)                  Capture everything enclosed with brackets
(com|info)         Input should be “com” or “info”
{2}                   Exactly two characters
{2,3}                Minimum 2 characters and Maximum 3 characters
{2,}                  More than 2 characters

Put together all in one URL validation.

var URL = /^(http|https|ftp):\/\/(www+\.)?[a-zA-Z0-9]+\.([a-zA-Z]{2,4})\/?/;

URL.test(“http://selvabalaji.com);                      // pass
URL.test(“http://www.selvabalaji.com”);            // pass
URL.test(“https://selvabalaji.com/”);                   // pass
URL.test(“http://selvabalaji.com/index.php”);    // pass

Stage 3

Short Form     Equivalent              Explanation

\d                      [0-9]                         Any numbers
\D                     [^0-9]                       Any non-digits
\w                     [a-zA-Z0-9_]            Characters,numbers and underscore
\W                    [^a-zA-Z0-9_]          Except any characters, numbers and underscore
\s                       –                                White space character
\S                      –                                Non white space character

 

var number = /^(\+\d{2,4})?\s?(\d{10})$/;  // validating phone number

number.test(1111111111);           //pass
number.test(+111111111111);     //pass
number.test(+11 1111111111);    //pass
number.test(11111111);               //Fail

 

Magento’s Default Files and Folders Structure

October 15, 2013 Leave a comment

This part of the Magento tutorial will provide detailed information regarding the Magento’s default files and folders structure.

You will learn more about the functions of main files and folders included in the Magento package.

The files and folders included in the main directory are as follows:

• .htaccess – contains mod_rewrite rules, which are essential for the Search Engine Friendly URLs. There you can also find standard web server and php directives that can improve your web site performance.

• .htaccess.sample – this is a backup of the .htaccess file. If you modify .htaccess it can be used in order to get the default settings.

• 404 (directory) – The folder stores the default 404 template and skin for Magento.

• app (directory) – This folder contains the modules, themes, configuration and translation files. Also there are the template files for the default administrationtheme and the installation.

• cron.php – a Cron Job should be set for this file. Executing of the file on a defined time period will ensure that the complicated Magento caching system will not affect the web site performance.

• downloader (directory) – This is the storage of the web downloader files. They are used for the installation and upgrade of Magento through your browser.

• favicon.ico – the default favicon for Magento. A small icon that is shown in the browser’s tool bar once your web site is loaded.

• index.php – the main index file for Magento.

• index.php.sample – A backup of the default index file. It can be used to revert the changes in a case of a index.php modification.

• js (directory) – Contains the pre-compiled libraries of the JavaScript code included in Magento.

• lib (directory) – The Magento core code is located in this folder. It contains the software’s PHP libraries.

• LICENSE_AFL.txt – The Academic Free License under which the Magento software is distributed.

• LICENSE.txt – The Open Software License under which the Magento software is distributed.

• media (directory) – This is the storage of the Magento media files – images out of the box, generated thumbnails, uploaded products images. It is also used as a container for importing images through the mass import/export tools.

• mage (in versions older than 1.4.2.0 this tool was called pear)- The file controls the automatic update through the downloader script and SSH. It handles the update of each individual Magento module.

• php.ini.sample – This file contains sample php directives that can be used in order to modify your PHP setup. If you want to alter the default setup edit the file and then rename it to php.ini.

• pkginfo (directory) – Contains files with information regarding the modules upgrades’ changes.

• report (directory) – This folder contains the skin of the Magento errors reports.

• skin (directory) – There are located the themes files – images, JavaScript files, CSS files, Flash files. Also there can be found the skin files for the installation of skins and administration templates.

• var (directory) – Cache, sessions, database backups, data exports and cached error reports can be found in this directory.

If you want to modify an existing template or set a new one you should know that the template files are separated in 3 folders:

• /app/design/frontend/default/YOUR_TEMPLATE_NAME/layout/ – Contains the .xml files that define which modules should be called by the template files and loaded in defined areas on the site.

• /app/design/frontend/default/YOUR_TEMPLATE_NAME/template/ – Contains files and subfolders that structure the final output for the users using the functions located in the layout/ folder.

• /skin/frontend/default/YOUR_TEMPLATE_NAME/ – Contains the CSS, images, JavaScript and Flash files related to the template.

 

20 dead as magnitude-7.1 earthquake hits the Philippines

October 15, 2013 Leave a comment

earth

A magnitude-7.1 earthquake struck central Philippines on Tuesday, leaving at least 20 people dead and rattling many who were celebrating a religious holiday.

The quake, which struck early in the morning, crumbled a number of buildings and sent panicked people streaming into the streets, witnesses said.

At least 15 were killed in the city of Cebu, four were killed in the province of Bohol and one died in the province of Siquijor, said Maj. Reynaldo Balido,a spokesman for the Philippines Office of Civil Defense.

Most of those killed were hit by falling rubble, the Philippines News Agency reported.
7.1 earthquake rocks Philippines

At least 33 people were missing, and authorities were checking into reports of people trapped in collapsed buildings in Cebu and Bohol, the agency reported.

The quake was centered about 385 miles (619 kilometers) south-southeast of Manila, near Catigbian, and its depth was 12 miles (20 kilometers), according to the U.S. Geological Survey said.

Maryann Zamora, a communications specialist with the charity World Vision, reported seeing glass and concrete in the streets of Cebu City, about 37 miles (60 kilometers) north of the epicenter.

“Right now we are in the streets because it is unsafe to be inside,” she said by phone, her voice shaking as one of more than 10 aftershocks hit. “Tell everyone to pray for us.”

Tuesday was a national holiday — the beginning of the Muslim festival of Eid ul Adha.

There was no widespread threat of a tsunami, the Pacific Tsunami Warning Center said, but it warned that earthquakes this large can sometimes cause tsunamis within 61 miles (100 kilometers) of the epicenter.

map

Catigbian, which has a population of 23,000, is in the province of Bohol.

Tourist Robert Michael Poole said he was riding a bike in Bohol when the earthquake struck and cracked the road right in front of him.

“It was very strong,” Poole said. “I live in Tokyo. I am used to earthquakes. But this one was very strong. It shocked a lot of people here.”

Poole said he was able to move around and document some of the destruction, including a giant church that was decimated.

“Lucky thing is that it is a holiday here today and it happened at a time when nobody was in the church,” Poole said

 

Google Web Designer

October 1, 2013 1 comment

What is Google Web Designer?

Google Web Designer is an advanced web application that’s built with HTML5 which lets you design and build HTML5 advertisements and other web content using an integrated visual and code interface. Using Google Web Designer’s design view you can create content using drawing tools, text, and 3D objects, and you can animate objects on a timeline. Once you’re done creating your content, Google Web Designer outputs clean human-readable HTML5, CSS3, and Javascript.

When you create advertising creatives with Google Web Designer, you can use a library of components that lets you add image galleries, videos, ad network tools, and more.

Google Web Designer’s Code view lets you create CSS, JavaScript, and XML files, using syntax highlighting and code autocompletion to make your code easier to write, with fewer errors.

1

System requirements

Minimum Recommended
Operating system Windows® 7/ Windows 8
Mac® OS X 10.7.x or later
Windows® 7/ Windows 8
Mac® OS X 10.7.x or later
Processor Intel Pentium® 4 or AMD Athlon 64 processor Intel Pentium® 4 or AMD Athlon 64 processor
Memory 2 GB RAM 4 GB RAM
Screen resolution 1280×1024 1920×1080
Application window size 1024×768 minimum 1024×768 or larger
Internet connection Required for initial use after download, for updates, and for help access. Required for initial use after download, for updates, and for help access.

The Web Designer interface

Google Web Designer has a large central area for building your projects and editing code. The central area is surrounded by a tool bar, a tool options bar, a timeline, and a set of panels that let you do several things, including modify elements, add components, and add events.2

1. Tool panel  2. Tool options panel  3. Timeline  4. Color, Properties, Components, Events and CSS panels

The workspace

In the center of the Google Web Designer interface is the workspace. In Design mode, the workspace shows your images, text, and other elements visually, just as they will be displayed as they will appear in a browser. In Code view the workspace shows your code with appropriate color coding and formatting.

View bar

The view bar lets you choose between Design and Code mode, lets you preview your HTML and publish your ad, and lets you change the zoom level and which page you’re working on.3

Tools

The tool bar contains tools for creating and manipulating elements on the stage and in the workspace. This includes tools for creating text and simple page elements, color selection tools, and 3D tools.

Tool Description

Selection tool
Select and move objects in the workspace

3D object rotate tool
Rotate objects in three dimensions

3D object translate tool
Move objects in three space

Tag tool
Create HTML tags of any type by clicking and dragging on the stage

Text tool
Add text

Shape tool
Create elementary shapes

Paint bucket tool
Modify the color of elements in your project

Ink bottle tool
Modify the line color and stroke of elements in your project

3D stage rotate tool
Change your 3D view of the project

Hand tool
Change your view of the workarea

Zoom tool
Zoom in and out on your creative

Tool options

The tool options bar shows options for the currently selected tool. For example, when the text tool is selected, the tool options bar shows font and text layout options.

Timeline

Quick mode
Advanced mode

The timeline lets you create animations using keyframes. In Quick mode, the animation is created scene by scene; in Advanced mode you can animate each element separately.

Panels

The panels section of the interface contains the Color, Properties, Components, Events and CSS panels. Panels can be minimized or dragged to a different position in the panels section.

Open source components and licenses

Included Software and Licenses

The following open source software is distributed and is provided under other licenses and/or has source available from other locations.

Package name License
Webfont Apache license 2.0
LESS – Leaner CSS v1.3.3 Apache license 2.0
GL-Matrix The zlib/libpng license
jsbeautify MIT license
uglifyjs BSD license
Codemirror 2 MIT license
Chromium Embedded Framework BSD Simplified license
NSIS (Nullsoft Scriptable Install System) zlib/libpng license, bzip2 license, and Common Public License version 1.0
Zip Utils info-ZIP license, zlib license
JSON CPP MIT license
Google Fonts Open source font licensing

7 Reasons Why WordPress Made PHP Popular, not PHP Frameworks – PHP Classes blog

7 Reasons Why WordPress Made PHP Popular, not PHP Frameworks

1. WordPress is the Most Popular PHP Application

Counting the number of search results on several popular search sites may seem to be a way to measure the relative popularity of a technology, language, application or a product.

However, that way does not seem to be very reliable method. When a search site changes its algorithms, you may see changes in the results that really do not have to do so much changes in the popularity of those technologies.

A more reliable way to measure the relative popularity of a technology is to resort to Google Trends. This is a site that Google provides to show the evolution of the relative number of searches done by given keywords over time.

As you may see in the following Google Trends chart, WordPress is much more popular than other PHP applications like Joomla, Drupal, Magento (which is Zend Framework based).

Google Trends: WordPress, Joomla, Drupal, Magento, Zend Framework

Google Trends - WordPress, Joomla Drupal, Magento, Zend Framework

2. WordPress alone is much more popular than any PHP framework

Using Google Trends you can also compare the popularity of different PHP frameworks. If you compare the popularity of WordPress with Zend Framework, Symfony PHP and CakePHP, as you may see in the chart below, WordPress is much more popular than all these PHP Frameworks together.

Google Trends: WordPress, Zend Framework, Symfony PHP, CakePHP

Google Trends - WordPress, Zend Framework, Symfony PHP, CakePHP

3. WordPress does not use third-party PHP frameworks

WordPress has been using some third-party components but they are not really full-stack frameworks. This implies WordPress never needed a full-stack framework to be built. The use of such frameworks would hardly make a difference to its popularity.

4. Applications make technologies popular, not components

In the chart above you may  notice that Magento is much more popular than Zend Framework. Magento is built on Zend Framework. This seems to imply that what makes applications popular is whether they solve users problems, not the components that they are built on.

WordPress is also popular because it is useful to many users. When users need to host a WordPress installation they need to seek a PHP hosting service. So they know at least superficially what is PHP and that they need PHP hosting.

This means that WordPress helped making PHP even more popular. The more installations there are of WordPress, the more PHP becomes popular.

5. The Extensible WordPress plugin ecosystem

One of the most important reasons that made WordPress popular is the myriad of plugins that were developed to provide additional features.

There are WordPress plugins for practically everything, including those that can turn it into other applications besides being a blog system. There are plugins that can turn it into forums, e-commerce sites, trouble ticket systems, etc., anything.

If WordPress as blog application was already popular, it became even more popular as a platform that can be turned into any type of application.

6. Non-Programmers develop in PHP just because of WordPress

If you need a site that requires certain features that WordPress does not have, you can develop new plugins to extend WordPress further and taylor it to your needs.

Many of the WordPress users were not really programmers. They started programming because they needed to have features in WordPress for which there was no suitable plugin providing them.

This means that many non-programmers had to learn PHP to be able to develop new WordPress plugins. That helped making PHP more popular even among non-programmers.

7. Pragmatism is better than Purism

In sum I could say that WordPress and PHP in general became popular because they can be used to address practical needs of many users.

Neither WordPress nor PHP are examples of software projects that are technically beautiful, are consistent, always follow well-thought project plans and adopt praised design patterns.

But that does not matter. They were created by people with a very pragmatic sense. They were focused on solving real world needs.

As for many of the PHP frameworks, they seem to have been developed in a totally different planet. They are often developed by purist people that seem to be more concerned with the number of design patterns they employ in the framework components than with being pragmatic and solve real PHP application needs.

To make it worse, many PHP frameworks systematically adopt practices of other frameworks developed for other languages. That raises totally unnecessary difficulties for PHP developers that try to use them.

One example of this problem is the configuration formats. In the Java world it is still usual to use XML as format for storing configuration values. XML is a portable format that can be written by humans. It was certainly a progress when compared with binary formats used to serialize data structures by C++ applications in the past.

This was a fine solution in the year 2000 but the fact is that XML is a drag. You need to keep opening and closing tags for every value. Sometimes values are stored as tag attributes, other times as tag values. It is often a pain to use.

Then Ruby On Rails came with the promise to get rid of some of the pains of the Java world habits. Instead of using XML, they decided to use YAML, which is a simplified markup language. It is simpler than XML but it is yet another format that you need to learn.

Several PHP frameworks were built copying Ruby on Rails practices, including the use of YAML as configuration format. Many years have passed and they still used YAML.

If you are a PHP developer, the format you are most familiar with is PHP. Why don’t these PHP frameworks make the lives of PHP developers better and adopt PHP scripts as configuration formats? PHP scripts can even be cached and so be loaded much faster.

In the worst case, if you need to use a more portable format, why these PHP frameworks do not use the JSON format to store configuration values? JSON is JavaScript. Every PHP developer knows JavaScript. It is only natural to adopt JSON nowadays.

Unfortunately many PHP frameworks as still stuck with formats that are not a natural choice for PHP developers, like XML, YAML or even INI (a legacy format of the Windows world).

I always get this feeling that PHP frameworks are not meant to please PHP developers. They seem to have been thought to please Java or Ruby developers. To make it worse, many of the newer PHP frameworks keep copying the same mistakes of older frameworks.

Obviously there are exceptions. There are indeed some PHP frameworks that were developed in a more pragmatic way for PHP developers. You can easily learn them without having to learn about Java or Ruby frameworks first.

Unfortunately those seem to not be the PHP frameworks that get more visibility. Maybe it is time for the PHP framework developers rethink their approach and think more about the PHP developers than about developers of other languages.

Shall I develop My Sites with WordPress or with a PHP Framework?

One frequent dilemma that PHP developers have is whether they should develop sites on top of WordPress or develop them from scratch based on a existing PHP framework?

This is a tough call. If the site is a blog, it may be an obvious choice to create it based on WordPress and save lots of development time. If the site is more than a blog but there are plugins for the functionality you need, WordPress may still be the best option.

Now if your site is very different than a blog, the amount of code that you would reuse from WordPress would be much less when compared to the whole project size. In that case, it may be better to start the development of the site from scratch.

If you still need a blog, you can use WordPress in a separate domain or a separate directory of your site.

For the bulk of the functionality you need to develop, you can use a existing PHP framework to gain some development time, or use your own framework if you have a good capable framework to address your needs.

Personally I tend to go for the last option. I can have more control of my project, but I am well aware that this route can take me more time to develop and fix eventual bugs in the code.

Frameworks are good when they enforce a productive method

Despite of the problems described above that many PHP frameworks have, for some people adopting a framework is probably the best solution, especially if it is what is called a “opinionated framework”.

That is what are called frameworks that impose a certain development methodology. This means that there is only one way to develop applications with those frameworks.

The reason why this is a good solution for some developers is because they do not have a well defined development methodology. This means that they do not know how to start, how to progress and how to deploy an application, unless somebody tells them how to do it.

Since opinionated frameworks impose a certain development method, the developers learn how to develop their applications following the methodology imposed by the framework.

One example of opinionated framework is Ruby on Rails. PHP frameworks that are inspired in Ruby On Rails tend to be also opinionated.

Opinions are not Facts

Well this article is just about my opinion and my experience of as developer that has been creating software for several decades now.

But opinions are just that, points of view of specific people. Expressing an opinion does not mean it is the only way to interpret the facts.

Just like the Tiobe Index people expressed their opinion stating that PHP popularity growth was due to Zend Framework 2 release last year, other people may express a different interpretation of the facts.

What do you think? Do you have a different opinion about what was discussed in this article? Post a comment to tell what you think.