2012 in review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 17,000 views in 2012. If each view were a film, this blog would power 4 Film Festivals

Click here to see the complete report.

The easiest, most effective way to secure WordPress Sites

WordPress Site security : How To Avoid hackers

1. Place the below on functions to hide WordPress version.
function remove_wp_version() {
return ”; //returns nothing, exactly the point.
}
add_filter(‘the_generator’, ‘remove_wp_version’);

2. Activate the plugin Better WP Security and configure it.

3. Change folder permission
For Directories:  755
For Files: 644

4. Protect config file on htaccess
php>
order allow,deny
deny from all
</Files>

5. No directory browsing. Add the below code on htaccess
# directory browsing
Options All -Indexes

6. Prevent Access To wp-content
Order deny,allow
Deny from all
<Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
Allow from all
</Files>

7. Protect .htaccess
Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>

8. Securing wp-includes
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]

# BEGIN WordPress

9. Help Prevent “Content Scrapers”
RewriteEngine On
#Replace ?mysite\.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your “don’t hotlink” image url
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Make sure to replace “mysite” with your website’s URL and “/images/nohotlink.jpg” to the path of your image.

10. Protect Your WordPress Blog from Script Injections
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

11. Things to avoid when choosing a password:

Any permutation of your own real name, username, company name, or name of your website.
A word from a dictionary, in any language.
A short password.
Any numeric-only or alphabetic-only password (a mixture of both is best).

12. Change username of “admin.”  and Admin user id 1 to something else

13. Change the table_prefix: Many published WordPress-specific SOL-injection attacks make the assumption that the table_prefix is wp_, the default.
Changing this can block at least some SQL injection attacks.

14. Remove unused themes and inactive plugins from WP-content folder.

15. FTP : When connecting to your server you should use SFTP encryption if your web host provides it.
If you are unsure if your web host provides SFTP or not, just ask them.
Using SFTP is the same as FTP, except your password and other data is encrypted as it transmitted between your computer and your website.
This means your password is never sent in the clear and cannot be intercepted by an attacker.

16. Scan your site frequently.
http://sitecheck.sucuri.net/scanner/

Automatically Backup Your WordPress Site to Google Drive – Version 2

We have released new version(v2) on wp google drive plugin to make back of your wordpress site files to google drive in efeectivemanner.

http://wordpress.org/extend/plugins/wp-google-drive/

Exclusive tutorial on How to Backup your WordPress blog to Google Drive. It is always recommended to backup your WordPress blog, which includes files (themes, plugins etc) and SQL tables (all your blog posts, comments, drafts etc are stored as tables in database).

Whenever your blog is gone (due to unsecured activities or some other reasons), these backups will help to get back your blog. In some cases, using 3rd party plugins and themes can also lead to malfunction of your blog, here also these backups helps to retain back your blog.

Reasons to Backup WordPress Blog to Google Drive

  • Its a Google Product and is free to use up-to 5GB.
  • Can get access to backups on any of the devices like Smartphones, Tablet PC’s, Laptops etc.
  • Backups will be uploaded in quite less time (sometimes based on internet connection also).
  • Highly Secure and reliable service, so there wont be any loss of data in the process.
  • Backups can be shared with your blog partners (if have any) with a single click of mouse

How to Backup WordPress blog to Google Drive

Download and Install Google Drive for WordPress plugin from official WordPress plugin repository.

Google Drive for WordPress Plugin »

Please see the video for plugin process.

Here is the step-by-step guide that helps to backup your WordPress blog to Google Drive. Brief list of things you have to do in this tutorial:

  1. Login to Google API and create a Client ID in it.
  2. Authorizing the Plugin by using Client ID and Client Secret.
  3. Setting up the plugin frequency to take backups.

google-drive-plugin

  • Go to “API Access” tab and click on “Create an OAuth 2.0 client ID”

backup-wordpress-blog-google-drive-api-access

backup-wordpress-blog-google-drive-api

  • Go to “API Access” tab and click on “Create an OAuth 2.0 client ID”

google-drive-api-access

  • In the pop-up window, give a product name and upload logo before clicking on “Next” button.

google-drive-create-client-id

  • By default “Web Application” will be selected and don’t change it.

google-drive-client-settings

  • In “Your site or hostname” section, click on “More Options” to expand link sections.

google-drive-client-id

  • Now, paste the link in the “Backup Settings” page here. Enter domain name in “JavaScripts” origin field.

google-drive-insert-url

  • Click on “Create Client ID” and you have successfully created a Client ID using Google API Console.

google-drive-dashboard

  • Copy the Client ID and Client Secret from API dashboard and paste them in “Configure Google” page.

  • You have to authorize the plugin by clicking on “Allow Access” button.

google-drive-permissions

  • Allow Access to the Plugin and the entire setup has been successfully installed.

Check Out : WordPress Plugin

How to automatically Backup WordPress blog to Google Drive

  • Now, you can configure this plugin further by entering the custom folder ID of your Google Drive.
  • Also define the maximum number of backups (use any positive integer in that field).
  • Set the frequency of backup and everything will be automatically stored in your Google Drive.

    Backup Settings:

    1. You can name your backup directory, any name you like just enter it on text box.
    2. Mail Options : Enable this option to receive mail notification after successful backup on google drive.
    3. Schedule Backup:You can schedule a backup duration here. Based upon the Scheduled time, it will automatically perform schedule backup to google drive.
    4. Manage database :
    –Check yes, if you want to keep Database backup
    –Check the option if you want to exclude particular tables from backup
    –Always keep a recent backup of your site.Here you have option to keep most recent backups.
    Select how many you want to maintain on your server.
    –If you want, you can move particular backup folder to google drive.
    5. Manage Files:
    –Check option to exclude files from backup
    –Select how many backups you would like to maintain on your server.
    –If you want, you can move particular backup folder to Google drive.
    6. On-time backup: For immediate backup.

    FYI:

    Both schedule backup and Ontime backup will works based upon your files selection on Manage database and Manage Files section.

WP Google Drive Plugin

We are Released New wp google drive plugin to make back of your wordpress site files to google drive.

http://wordpress.org/extend/plugins/wp-google-drive/

Exclusive tutorial on How to Backup your WordPress blog to Google Drive. It is always recommended to backup your WordPress blog, which includes files (themes, plugins etc) and SQL tables (all your blog posts, comments, drafts etc are stored as tables in database).

Whenever your blog is gone (due to unsecured activities or some other reasons), these backups will help to get back your blog. In some cases, using 3rd party plugins and themes can also lead to malfunction of your blog, here also these backups helps to retain back your blog.

Reasons to Backup WordPress Blog to Google Drive

  • Its a Google Product and is free to use up-to 5GB.
  • Can get access to backups on any of the devices like Smartphones, Tablet PC’s, Laptops etc.
  • Backups will be uploaded in quite less time (sometimes based on internet connection also).
  • Highly Secure and reliable service, so there wont be any loss of data in the process.
  • Backups can be shared with your blog partners (if have any) with a single click of mouse

How to Backup WordPress blog to Google Drive

Download and Install Google Drive for WordPress plugin from official WordPress plugin repository.

Google Drive for WordPress Plugin »

Here is the step-by-step guide that helps to backup your WordPress blog to Google Drive. Brief list of things you have to do in this tutorial:

  1. Login to Google API and create a Client ID in it.
  2. Authorizing the Plugin by using Client ID and Client Secret.
  3. Setting up the plugin frequency to take backups.

google-drive-plugin

  • Go to “API Access” tab and click on “Create an OAuth 2.0 client ID”

backup-wordpress-blog-google-drive-api-access

backup-wordpress-blog-google-drive-api

  • Go to “API Access” tab and click on “Create an OAuth 2.0 client ID”

google-drive-api-access

  • In the pop-up window, give a product name and upload logo before clicking on “Next” button.

google-drive-create-client-id

  • By default “Web Application” will be selected and don’t change it.

google-drive-client-settings

  • In “Your site or hostname” section, click on “More Options” to expand link sections.

google-drive-client-id

  • Now, paste the link in the “Backup Settings” page here. Enter domain name in “JavaScripts” origin field.

google-drive-insert-url

  • Click on “Create Client ID” and you have successfully created a Client ID using Google API Console.

google-drive-dashboard

  • Copy the Client ID and Client Secret from API dashboard and paste them in “Configure Google” page.

google-drive-plugin

  • You have to authorize the plugin by clicking on “Allow Access” button.

google-drive-permissions

  • Allow Access to the Plugin and the entire setup has been successfully installed.

Check Out : WordPress Plugin

How to automatically Backup WordPress blog to Google Drive

  • Now, you can configure this plugin further by entering the custom folder ID of your Google Drive.
  • Also define the maximum number of backups (use any positive integer in that field).
  • Set the frequency of backup and everything will be automatically stored in your Google Drive.

 

google-drive-plugin

google-drive-plugin

Import Yahoo contact to website / download CSV

Image representing OAuth as depicted in CrunchBase

Written in PHP and using cURL, this script imports the names and email addresses from your yahoo account (yahoo id and password needed to login to yahoo from the script and retreive the address book).

<!–?php–>

ob_start();

session_start();

require ‘globals.php’;

require ‘oauth_helper.php’;

require ‘yahoo_function.php’;

// Callback can either be ‘oob’ or a url whose domain must match

// the domain that you entered when registering your application

$callback=’<your call back URL>’;

if($_REQUEST['oauth_verifier'] != ”) {

$request_token = $_REQUEST['oauth_token'];

$oauth_verifier = $_REQUEST['oauth_verifier'];

$request_token_secret = $_SESSION['request_token_secret'];

$accessToken = get_access_token(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET,$request_token, $request_token_secret,$oauth_verifier, false, true, true);

$access_token = urldecode($accessToken[3]['oauth_token']);

$access_token_secret = urldecode($accessToken[3]['oauth_token_secret']);

$guid = $accessToken[3]['xoauth_yahoo_guid'];

$callcont = callcontact(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, $guid, $access_token, $access_token_secret, false, true);

print ‘Total Email COntact :’ .$callcont['contacts']['total'];

print ‘<br/><br/>’;

print ‘asda’.($callcont['contacts']['total']);

for($i=0; $i<=$callcont['contacts']['total'];$i++) {

print ‘<br/><br/>’;

print $callcont['contacts']['contact'][$i]['fields'][0]['value'];

print ‘<br/><br/>’;

}

}else{

$retarr = get_request_token(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET,$callback, false, true, true);

if (! empty($retarr)){

$request_token = $retarr[3]['oauth_token'];

$request_token_secret = $retarr[3]['oauth_token_secret'];

$request_url = urldecode($retarr[3]['xoauth_request_auth_url']);

$_SESSION['request_token_secret'] = $request_token_secret;

header(“location:https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=”.$request_token);

}

exit(0);

}

?>

Yahoo_function.php

<?php

function get_request_token($consumer_key, $consumer_secret, $callback, $usePost=false, $useHmacSha1Sig=true, $passOAuthInHeader=false)

{

$retarr = array(); // return value

$response = array();

$url = ‘https://api.login.yahoo.com/oauth/v2/get_request_token’;

$params['oauth_version'] = ’1.0′;

$params['oauth_nonce'] = mt_rand();

$params['oauth_timestamp'] = time();

$params['oauth_consumer_key'] = $consumer_key;

$params['oauth_callback'] = $callback;

// compute signature and add it to the params list

if ($useHmacSha1Sig) {

$params['oauth_signature_method'] = ‘HMAC-SHA1‘;

$params['oauth_signature'] =

oauth_compute_hmac_sig($usePost? ‘POST‘ : ‘GET’, $url, $params,

$consumer_secret, null);

} else {

$params['oauth_signature_method'] = ‘PLAINTEXT‘;

$params['oauth_signature'] =

oauth_compute_plaintext_sig($consumer_secret, null);

}

// Pass OAuth credentials in a separate header or in the query string

if ($passOAuthInHeader) {

$query_parameter_string = oauth_http_build_query($params, FALSE);

$header = build_oauth_header($params, “yahooapis.com”);

$headers[] = $header;

} else {

$query_parameter_string = oauth_http_build_query($params);

}

// POST or GET the request

if ($usePost) {

$request_url = $url;

logit(“getreqtok:INFO:request_url:$request_url”);

logit(“getreqtok:INFO:post_body:$query_parameter_string”);

$headers[] = ‘Content-Type: application/x-www-form-urlencoded‘;

$response = do_post($request_url, $query_parameter_string, 443, $headers);

} else {

$request_url = $url . ($query_parameter_string ?

(‘?’ . $query_parameter_string) : ” );

logit(“getreqtok:INFO:request_url:$request_url”);

$response = do_get($request_url, 443, $headers);

}

// extract successful response

if (! empty($response)) {

list($info, $header, $body) = $response;

$body_parsed = oauth_parse_str($body);

if (! empty($body_parsed)) {

logit(“getreqtok:INFO:response_body_parsed:”);

}

$retarr = $response;

$retarr[] = $body_parsed;

}

return $retarr;

}

function get_access_token($consumer_key, $consumer_secret, $request_token, $request_token_secret, $oauth_verifier, $usePost=false, $useHmacSha1Sig=true, $passOAuthInHeader=true)

{

$retarr = array(); // return value

$response = array();

$url = ‘https://api.login.yahoo.com/oauth/v2/get_token’;

$params['oauth_version'] = ’1.0′;

$params['oauth_nonce'] = mt_rand();

$params['oauth_timestamp'] = time();

$params['oauth_consumer_key'] = $consumer_key;

$params['oauth_token']= $request_token;

$params['oauth_verifier'] = $oauth_verifier;

// compute signature and add it to the params list

if ($useHmacSha1Sig) {

$params['oauth_signature_method'] = ‘HMAC-SHA1′;

$params['oauth_signature'] =

oauth_compute_hmac_sig($usePost? ‘POST’ : ‘GET’, $url, $params,

$consumer_secret, $request_token_secret);

} else {

$params['oauth_signature_method'] = ‘PLAINTEXT’;

$params['oauth_signature'] =

oauth_compute_plaintext_sig($consumer_secret, $request_token_secret);

}

// Pass OAuth credentials in a separate header or in the query string

if ($passOAuthInHeader) {

$query_parameter_string = oauth_http_build_query($params, false);

$header = build_oauth_header($params, “yahooapis.com”);

$headers[] = $header;

} else {

$query_parameter_string = oauth_http_build_query($params);

}

// POST or GET the request

if ($usePost) {

$request_url = $url;

logit(“getacctok:INFO:request_url:$request_url”);

logit(“getacctok:INFO:post_body:$query_parameter_string”);

$headers[] = ‘Content-Type: application/x-www-form-urlencoded’;

$response = do_post($request_url, $query_parameter_string, 443, $headers);

} else {

$request_url = $url . ($query_parameter_string ?

(‘?’ . $query_parameter_string) : ” );

logit(“getacctok:INFO:request_url:$request_url”);

$response = do_get($request_url, 443, $headers);

}

// extract successful response

if (! empty($response)) {

list($info, $header, $body) = $response;

$body_parsed = oauth_parse_str($body);

if (! empty($body_parsed)) {

logit(“getacctok:INFO:response_body_parsed:”);

//print_r($body_parsed);

}

$retarr = $response;

$retarr[] = $body_parsed;

}

return $retarr;

}

function callcontact($consumer_key, $consumer_secret, $guid, $access_token, $access_token_secret, $usePost=false, $passOAuthInHeader=true)

{

$retarr = array(); // return value

$response = array();

$url = ‘http://social.yahooapis.com/v1/user/’ . $guid . ‘/contacts’;

$params['format'] = ‘json’;

$params['view'] = ‘compact’;

$params['oauth_version'] = ’1.0′;

$params['oauth_nonce'] = mt_rand();

$params['oauth_timestamp'] = time();

$params['oauth_consumer_key'] = $consumer_key;

$params['oauth_token'] = $access_token;

// compute hmac-sha1 signature and add it to the params list

$params['oauth_signature_method'] = ‘HMAC-SHA1′;

$params['oauth_signature'] =

oauth_compute_hmac_sig($usePost? ‘POST’ : ‘GET’, $url, $params,

$consumer_secret, $access_token_secret);

// Pass OAuth credentials in a separate header or in the query string

if ($passOAuthInHeader) {

$query_parameter_string = oauth_http_build_query($params, true);

$header = build_oauth_header($params, “yahooapis.com”);

$headers[] = $header;

} else {

$query_parameter_string = oauth_http_build_query($params);

}

// POST or GET the request

if ($usePost) {

$request_url = $url;

logit(“callcontact:INFO:request_url:$request_url”);

logit(“callcontact:INFO:post_body:$query_parameter_string”);

$headers[] = ‘Content-Type: application/x-www-form-urlencoded’;

$response = do_post($request_url, $query_parameter_string, 80, $headers);

} else {

$request_url = $url . ($query_parameter_string ?

(‘?’ . $query_parameter_string) : ” );

logit(“callcontact:INFO:request_url:$request_url”);

$response = do_get($request_url, 80, $headers);

}

// extract successful response

if (! empty($response)) {

list($info, $header, $body) = $response;

if ($body) {

logit(“callcontact:INFO:response:”);

json_pretty_print($body);

}

$retarr = $response;

}

$contactsRes = json_decode($retarr[2],true);

return $contactsRes;

}

?>

GOOGLE DRIVE

A few years ago, many storage online appeared on the web. The first one, in 2005, was Box.net, followed in 2008 by Dropbox.net, including the multi-platform synchronization.

In parallel, we also saw huge OS editors, like Apple, Microsoft, … providing their own solution as SkyDrive, iCloud, Ubuntu One.

Today, after so many years of rumors, GOOGLE DRIVE is born. It is presented basically as an upgrade of Google documents, and allows user to get, for free, up to 5Go of online disc space. User can also choose another month to month plan between those proposed: 25 Go for $ 2,49 per month, 100 Go for $4,99 per month, and up to 1To for $49.99 dollars per month.

But what distinguish this plateforme from others?

Google includes a lot of search tools, character recognition system, and a tools able to analyse the photos stored on its servers. More over, when Google Documents proposed to virtualize about 15 files directly on your browser, Google drive will allow you to open more than 30 files,also Illustrator, Photoshop, or HD video, even if you don’t have the adequat softwares on your computer.

Google Drive will also includes a lot of differents tools and useful applications: you will ba ble to synchronize your documents in order to find them really easily on your computer. If you have an Android phone, just download a small application, and all your files will be available on your phone. You will also be able to share photos made with your phone with all your contact through your personal space.

https://developers.google.com/drive/examples/php

https://developers.google.com/drive/

https://developers.google.com/drive/get_started

தடையில்லா நிரந்தர இலவச மின்சாரம்!

தடையில்லா நிரந்தர இலவச மின்சாரம்!

அணுமின்சாரம் வேண்டுமா? வேண்டாமா? என காரசாரமாக விவாதித்து வரும் இவ்வேளையில் இந்த தடையில்லா நிரந்தர இலவச மின்சாரத்தை பற்றிய பதிவு விழிப்புணர்வை ஏற்படுத்தும் என நம்புகிறேன்.

இன்று வருடத்தின் பெரும்பாலான நாட்கள் சூரிய ஒளியையே காண முடியாத ஐரோப்பிய நாடுகளில், சூரிய கதிர்களால் செயல்படும் மின்சார சக்தியை வெற்றிகரமாக செயல்படுத்தி வருகிறார்கள். இங்கு இங்கிலாந்தில் இது பிரபலமாகிக் கொண்டிருக்கிறது. தமிழகமோ அனல் பறக்கும் சூரிய ஒளிக்கதிர்களை கொண்டிருந்தும் இந்த சூரிய ஒளிக்கதிர்களால் இயங்கும் மின்சாரத்தை அமல்படுத்தவில்லை. ஒரு சதுர மீட்டர் கொள்ளளவில் படுகின்ற சூரிய ஒளிக்கதிரால் ஒரு நாளைக்கு 1௦௦௦ வாட்ஸ் மின்சாரத்தை பெற முடியும். இதற்கு நாம் சோலார் பனல் எனப்படும் தகடுகளை நம் வீட்டின் கூரையிலோ அல்லது நன்கு சூரிய ஒளிக்கதிர்கள் படும் இடத்திலோ பொருத்தினால் போதும்.

இதனால் சாதாரணமாக ஒரு வீட்டிற்கு தேவைப்படும் மின்சாரத்தை பெற முடியும். ஆனால் Air conditioner போன்ற அதிக மின்சாரம் தேவைப்படும் இடங்களுக்கு இவையால் முழு மின்சாரத்தையும் வழங்க முடியாது. இங்கிலாந்தில் நம் வீட்டில் நாம் உற்பத்தி செய்யும் மின்சாரத்திற்கு அரசே பணம் தருகிறது. அதாவது நாம் பயன்படுத்தும் மின்சாரத்திற்கும் சேர்த்து.

இங்கிலாந்தில் இதன் வருமானத்தை கருத்தில் கொண்டு, பெரிய நிறுவனங்கள் வீட்டின் கூரைகளை ஒப்பந்த்தபடி பெற்று அதில் இந்த சோலார் பனல்களை நிறுவி, அதிலிருந்து வரும் வருமானத்தை பெற்றுக் கொள்கிறார்கள். வீட்டின் உரிமையாளர் தேவையான மின்சாரத்தை பயன்படுத்திக்கொள்ளலாம்.

நாமும் இத்திட்டத்தை அமல் படுத்தினால் அரசின் மின்சாரத்தையே சார்ந்திருக்க வேண்டிய அவசியமில்லை. காற்றாலை மூலம் தயாரிக்கப்படும் மின்சாரம் நன்கு காற்று வீசினால்தான் நிறைய உற்பத்தியாகும். ஆனால் சூரிய ஒளிக்கதிர்கள் என்றுமே அடிப்பதால் தினமும் இது மின்சாரத்தை உற்பத்தி செய்யும். இதன் ஒரே பிரச்சினை என்னவென்றால், இதன் ஆரம்ப கட்ட முதலீடு அதிகமாக இருக்கும். இதற்கு இந்தியாவில் எவ்வளவு பணம் ஆகும் என தெரியவில்லை. இங்கிலாந்தில் சுமார் பத்து லட்சம் ரூபாயாகிறது.

இனி இது செயல்படும் விதத்தை பார்ப்போம்:

இந்த சோலார் தகடுகள் சூரிய ஒளியை DC கரண்ட்டாக மாற்றி விடும். பின்னர் இது நம் உபயோகத்திற்கு தேவையான AC கரண்ட்டாக மாற்றப்பட்டு நம் வீட்டில் ஏற்கனவே இருக்கிற Switch board இல் இணைக்கப்படும். இது உற்பத்தி செய்கின்றதைவிட அதிக மின்சாரம் தேவைப்பட்டால், அது அரசின் மின்சாரத்தை எடுத்துக்கொள்ளும். அதே சமயம் நம் தேவையைவிட அதிகமாக வரும் மின்சாரம், அரசின் மின் கம்பத்திற்கு மீட்டரின் வழியே சென்று விடும். இதனால் நாம் அரசிற்கு எவ்வளவு மின்சாரம் வழங்கியுள்ளோம் என தெரிந்து கொள்ளலாம். அதற்கான பணத்தை அரசு வழங்கிவிடும்.

தமிழகத்தில் எதையெல்லாமோ இலவசமாக வழங்குகிறார்கள். இப்படிஉருப்படியானவற்றை இலவசமாக வழங்கலாம்! அல்லது மானியங்கள் கொடுக்கலாம். மிச்சி, கிரைண்டர் என கொடுத்து விட்டு மின்சாரத்தை சரியாக வழங்கமாட்டார்கள்! தமிழக முதல்வர் ஜெயலலிதா, என்ன புரட்சியை செய்து புரட்சி தலைவி என்ற பட்டத்தை பெற்றாரோ தெரியவில்லை. இந்த மின் திட்டத்தை அமல் படுத்தி உண்மையிலேயே புரட்சி தலைவி ஆவாரா?

பின்குறிப்பு: இந்த பதிவை யார் வேண்டுமானாலும் தங்கள் வலைத்தளத்தில் வெளியிடலாம். இது பலரையும் சென்றடையவேண்டும் என்பதே என் நோக்கம்.

Source

Follow

Get every new post delivered to your Inbox.

Join 207 other followers

%d bloggers like this: