Archive

Archive for the ‘2012’ Category

Facebook introduces video on Instagram

June 22, 2013 5 comments

BaltNEW YORK: Facebook is adding video to its popular photo-sharing app Instagram, following in the heels of Twitter’s growing video-sharing app, Vine.

Instagram co-founder Kevin Systrom said on Thursday that users will be able to record and share 15-second clips by tapping a video icon in the app. They can also apply filters to videos to add contrast, make them black and white or different hues.

“This is the same Instagram we all know and love but it moves,” he said at an event held at Facebook’s Menlo Park, California, headquarters.

Vine, which launched in January, has 13 million users and lets people create and share 6-second video clips. Instagram has 100 million users, up from 20 million when Facebook bought the company more than a year ago. If users like it, Facebook’s move could propel mobile video sharing into the mainstream.

To use the video feature, Instagram users can tap on the same camera icon they use to snap photos. A new video camera icon will appear on the right side. Tap it and a screen with a red video button will let you record clips of sunsets, kids running in parks or co-workers staring at their computer screens.

The app will record as long as your finger is on the red button or for 15 seconds, whichever comes first. Not unlike Vine, taking your finger off the button will stop the recording, allowing you to shoot the scene from a different angle or record something else altogether. Once you have 15 seconds of footage, you can play it from the beginning and post it on Instagram to share with others.

Given Vine’s popularity, “it is perhaps more surprising that Facebook has not introduced video for Instagram sooner. There is no doubt Twitter will move quickly to up the ante on Vine and this could undercut Facebook’s efforts with video on Instagram,” said Eden Zoller, principal consumer analyst at Ovum, a technology research firm.

My Photo

April 24, 2013 Leave a comment

Balt

Happy New Year 2013

December 31, 2012 2 comments

Be the first to wish Myfriends with our  Happy New Year 2013 .

Before the golden sun sets,  old calender is destroyed,  And mobile networks get jammed,  I wish in new year every moment is enjoyed.  

Beauty..  Freshness..  Dreams..  Truth..  Imagination..  Feeling..  Faith..  Trust..  This is begining of a new year!  

Fill ur life with Happiness & Bright Cheer,  Bring to u Joy and Prosperity for the whole Year,  And it’s my New Year wish 4u Dear…  Wish u a VERY HAPPY NEW YEAR..  

New Year begins, let us pray, that it will be a year with new Peace, New Happiness, and abundance of new friends.. God bless you through out the new Year..  

Pal Pal se banata hai Ehasas, Ehsas se banta hai vishvas, Vishvas se bante hai Rishte, Aur rishte se bante hai koi Khas, Jaise Aap… Happy New Year. Beet gaya jo saal, Bhul jayye, Es Nayai Saal ko Gale lagayye, Karte hain duwa hai Rab se sar jhuka kay… Es Saal ka sare Sapne pura ho Aap Kay, Naya Saal Mubarak ho tuje mere Yaar… Pal Pal se banata hai Ehasas, Ehsas se banta hai vishvas, Vishvas se bante hai Rishte, Aur rishte se bante hai koi Khas,Jaise Aap… Happy New Year. 
 
balt_2013 newyear new 20132013 new newyear balt_2013

My Short Summary of 2012 in review

December 31, 2012 Leave a comment

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 27,000 views in 2012. If each view were a film, this blog would power 4 Film Festivals

Click here to see the complete report.

Today – WordPress New Version 3.5 Released

December 12, 2012 1 comment

On December 11, 2012, WordPress Version 3.5, named for jazz drummer Elvin Jones, was released to the public. For more information on this enhancement and bug-fix release, read the WordPress Blog, and see the Changelog for 3.5

 

Highlights

  • New Media Manager
    • Beautiful interface: A streamlined, all-new experience
    • Create galleries faster with drag-and-drop reordering, inline caption editing, and simplified controls
    • Insert multiple images at once with Shift/Ctrl+click
  • New Default Theme – Twenty Twelve
    • Simple, flexible, elegant
    • Mobile-first, responsive design
    • Gorgeous Open Sans typeface
    • Uses the latest Theme Features
  • Admin Enhancements
    • New Welcome Screen
    • Retina-Ready (HiDPI) Admin
    • Hide Link Manager for new installs
    • Better accessibility for screenreaders, touch devices, and keyboard users
    • More polish on admin screens, including a new color picker
  • For Developers
    • WP_Comment_Query and WP_User_Query accept now meta queries just like WP_Query
    • Meta queries now support querying for objects without a particular meta key
    • Post objects are now instances of a WP_Post class, which improves performance and caching
    • Multisite’s switch_to_blog() is now significantly faster and more reliable
    • WordPress has added the Underscore and Backbone JavaScript libraries
    • TinyMCE, jQuery, jQuery UI, and SimplePie have all been updated to the latest versions
    • Image Editing API for cropping, scaling, etc., that uses ImageMagick as well as GD
    • XML-RPC: Now always enabled and supports fetching users, managing post revisions, searching
    • New “show_admin_column” parameter for register_taxonomy() allows automatic creation of taxonomy columns on associated post-types.

What’s New

Dashboard

  • Switch to prompt text in QuickPress to accommodate longer translated input labels
  • Button styles updated throughout Dashboard to more modern, rectangular shape
  • Help Text improvements throughout

Posts

  • Rename the “HTML” editor tab to “Text”
  • Prevent child categories from being visually promoted to the top level after Quick Edit

Media

  • Add oEmbed suport for SoundCloud.com, SlideShare.net, and Instagram.com
  • New Media Manager: Insert multiple galleries per post and independently order images

Accessibility

  • Add visible focus within admin screens for better accessibility.
  • Add “Skip to content” link to all screens in the admin.
  • Add “Skip to toolbar” accessibility shortcut in the admin.
  • Add ability to log out of user account without mouse input.
  • Add “tab out” of the plugins and themes editors textareas.

Links

  • Link Manager is hidden for new installs and for any existing installs that have no links (all sites with existing links are left as is). This can be restored with Link Manager Plugin
  • Display links in widget if no link categories

Appearance

  • Widgets menu is hidden if your theme hasn’t defined any sidebars
  • Improve display of available custom headers with jQuery Masonry

Plugins

Users

  • Display name defaults to first name and last name for new users
  • Force the user to explicitly choose between content deletion and reassignment when deleting users

Settings

Multisite

  • Multisite installs now work with WordPress in a subdirectory
  • Turn off ms-files.php by default
  • File quotas disabled by default on new installs 

 

Today RAJINI’S BIRTHDAY 12-12-12

December 12, 2012 2 comments
English: Rajinikanth at the audio release of E...

English: Rajinikanth at the audio release of Enthiran (Photo credit: Wikipedia)

Superstar Rajinikanth celebrates his 60th birthday today and he will be spending the day with his family. Rajini’s birthday is no less than a festival for his fans the world over.

It is reported that his family and close friends have organized a Shashitabadapoorthi puja (60th birthday celebrations) at the famous Tirukkadiyur temple near Tiruchi. However, it should come to no one’s surprise that Rajini’s fans will be lining up for special poojas and welfare activities for their favourite idol.

Shivaji Rao Gaekwad was on December 12, 1949 and had very humble beginnings. He served as a ticket collector in a local shuttle bus in Bangalore when he was discovered by the legendary K. Balachander who renamed him Rajinikanth.

The year has been exceptional for Rajini. Breaking all box office records Endhiran has emerged as the biggest hit ever. There have also been two new additions to his family. Daughter Aishwarya Rajinikanth, who is married to actor Dhanush gave birth to a baby boy and his other daughter Soundarya Rajinikanth got married to industrialist Ashwin Kumar.

selvabalaji.wordpress.com  wishes Rajinikanth a very happy birthday!

 

Watch Thuppakki Movie Online HQ (youtube)

November 19, 2012 4 comments


Vijay’s Thuppaki Review – First Day First Show Report


One of the key reasons for Thuppaki’s sky high expectations is because the movie marks the beginning of Vijay’s strategy to working with top rung directors (barring Shankar’s Nanban which was a faithful remake of 3 Idiots). This is probably the best line-up of crew members and technicians for a Vijay movie. On the casting side, Kajal Aggarwal, Vidyut, Sathyan, Jayaram have provided the required support for Vijay to showcase his talent.  Does the script keep you engaged throughout the running time of 2 hour 45 minutes? Will Thuppaki uplift the festive mood this Diwali? Definitely, Yes.

The story opens in Mumbai with a bomb blast in a public bus. Jagdish (Vijay) is on a mission to find the terrorist gang and people behind the blast. There are twists and unexpected turns along the way. The story has enough ammo to fire up Vijay’s fan base.

Thuppakki is Vijay; Vijay is Thuppakki


Vijay has carried the movie from start to finish with his self-assured confidence and trade-mark style. The script makes frequent switch-overs from intense sleeper cell scenes to commercial love/comedy scenes. Vijay was able to make some bumpy transitions look convincing with his acting abilities. As always, Vijay dances effortlessly and comedy comes to him naturally. Vijay’s costumes, pleasant looks and mischievous expressions will surely win him more female fans. Vijay looks fit and younger in his toned muscular physique.

Story, Direction and Screenplay


AR Murugadoss’ engaging story is narrated in gray tones balanced with commercially colourful compromises. The movie may have minor similarities to Ramana which has worked out well again. Murugadoss has done his homework by consulting ex-CBI chief Karthikeyan and the details are blended in nicely while dumbing it down for audience. AR Murugadoss has intentionally slowed down the pacing and narration in critical scenes (e.g., Hospital security chief conversation in the terrace) to get the message across. The dialogues about common people’s (un)willingness to put their life at risk to fight terrorism are well written and delivered by Vijay. Also, the hero putting his sister in a high-risk operation provides the impetus and emotional connect with the audience.

It is interesting to note that the villain (Vidyut) tracks down the hero instead of other way around, which is usually seen. Another aspect which is told subtlely is Vijay’s undercover act passing off as a common man similar to the way terrorist sleeper cells operate. Vijay’s exterminating the sleeper cell operations in Mumbai is not revealed to his lover, family or others (except his cop friend Sathyan). This aspect could have been underlined a bit for additional impact and stronger appreciation for Jagdish’s character.

The love/comedy scenes and songs definitely stick out like sore thumb since they are not integrated well with the story line. It is understandable why AR Murugadoss had to make these compromises. We are pointing this out without really complaining since such intrusions have become essential to satisfy the fan base and common audience with diverse set of expectations.

Highlights 


  • Stylish portrayal of Vijay in anti-terrorism operations have a perfect closure with mass elements. For instance, scenes such as simultaneous execution of 12-for-12 sleeper cell killings at precisely the same minute, sister rescue scenes with sniffer dog, and the final scene where he symbolically blows up the ship with his hand gesture and subsequent punch dialogue before villain killing are sure treats for fans.
  • AR Murugadoss seems to have taken a tip from his association with Aamir Khan in Ghajini Hindi remake. Upon Aamir’s insistence, some emotional scenes involving Asin’s memory were added after climax action sequences in Hindi version. AR Murugadoss has used similar finish in Thuppakki giving a nice emotional touch and meaning to the movie by extolling the virtues of army.
  • Kajal has done her role exceptionally well in perking up the lighter moments with her expressions, dance moves in songs and chirpy love scenes laced with humour. Kajal has good scope in both “Antarctica” song (interesting concept) and “Alaika Laika” (showcasing her dance moves). Kajal’s presence enlivens the scenes and songs for people looking for relief from action scenes.
  • Santhosh Sivan‘s Cinematography and Sreekar Prasad‘s editing keep the narration tight despite relatively long running time. The candid capture of Mumbai adds to the style and character of the city. Santosh’s fast working style is critical to the successful shooting of scenes in real locations in Mumbai. Harris scores big in the final minutes with his song (“Poi Varavaa“) dedicated to army jawans which is sure to leave a lump in your throat. Harris’ BGM keeps up the pace and makes the operations look convincing with his theme track.

What could have been better?


  • Song picturizations look low-budget. Almost 4 out of 5 songs solely rely on Vijay’s dance moves, which gets a bit repetitive for general public. AR Murugadoss and Santhosh Sivan have pulled out some of the old tricks of picturizing the songs in big stadiums, by using bright incandescent lights in the background to make it look richer. Vijay’s introduction song “Kutti Puli Kootam” and opening fight scenes are speed breakers right after the word “go”.
  • Screenplay could have been tighter. Even though the individual scenes were riveting, the bigger purpose required to latch the audience interest lacks full conviction. The objective of killing the head of sleeper-cell (Vidyut) lacks macro-connection resulting in lack of depth for Vijay vs Vidyut’s clash. Some of the lengthy climax fight sequences in the ship could have been trimmed. The final 10+ minutes of man-to-man combat scenes with Vidyut led to some chatter among audience.

Bottomline


With right promotions and word of mouth reaching out to neutral and family audience, Thuppakki is well positioned to get tagged along with Ghilli and  Pokiri.

Reviewer Rating – 

 

Cyclone Nilam Hits the Southeastern Coast of India

November 1, 2012 1 comment

Cyclone Nilam has struck the southeastern coast of India, bringing with it severe flooding and winds almost as strong as superstorm Sandy.

Nilam, which formed over the Bay of Bengal, looked to be headed straight for the Sri Lankan coast.  Fortunately, Sri Lanka, which is still re-building after a decades-long war, avoided the worst of the storm. Having only closed the massive Menik Farm displacement camp one month ago, the last thing this Southern Asian country needed was another humanitarian disaster.

Read more: http://newsfeed.time.com/2012/10/31/cyclone-nilam-hits-the-south-eastern-coast-of-india/#ixzz2Ax2sPWFo

The force of the cyclone could be seen even before it hit Indian coastlines. Its powerful winds forced an oil tanker to run aground, writes the Times of India, leaving 22 crew members floating in a lifeboat.

The storm then surged towards the Southeastern coast of India, placing the states of Andhra Pradesh and Tamil Nadu on high alert. More than 5,000 people were subsequently evacuated from their homes in Chennai, the capital city of Tamil Nadu. By early evening (IST) Nilam had struck the port of Mahabalipuram and is now expected to spread along the coast through the night.

Cyclone Nilam comes only a year after Cyclone Thane, which last December killed 47 people in India. This massive storm, which hit Tamil Nadu destroying houses and crops, brought gale force winds of up to 135 kmph and tidal surges of nearly 1.5 metres, or about 5 feet. Although the cyclone currently bashing the coastal areas of southern India is not as strong as Thane, it still brings fears of human displacement and infrastructure damage. Extra precautions are being taken this time to ensure people’s safety.

“Tamil Nadu has a long coastline and the state has witnessed many storms over the years,” explained M. Jayaraman, joint commissioner for revenue administration for Tamil Nadu to the New York Times. “We have standard operating procedures already in force to tackle natural calamities and have also taken extra efforts this time.”

(MORE: Cyclone Hits Southern India)

The Indian government has issued a weather bulletin warning coastal areas in the South of the country to prepare themselves for strong winds through the night with extremely heavy rainfall possible in certain areas. A storm surge is expected in the low-lying areas of Chennai. The government is also warning of damage to power and communication lines and to standing crops. Coastal fishermen have been advised not to venture out to sea for the next 24 hours.

Read more: http://newsfeed.time.com/2012/10/31/cyclone-nilam-hits-the-south-eastern-coast-of-india/#ixzz2Ax2vLocK

 

Paradesi First Look – bala ready for next national award!

October 30, 2012 2 comments

 

 

Thupakki Songs

October 30, 2012 Leave a comment

 Thupakki Tamil Movie

01.Kutti Puli Koottam
Artist(s): Hariharan, Tippu, Narayana, Satyan, Ranina Reddy
Lyricist: Viveka

02.Antarctica
Artist(s): Vijay Prakash, Krish, Rajeev, Devan
Lyricist: Karky

03.Poi Varavaa
Artist(s): Karthik, Chinmayee
Lyricist: Pa. Vijay

04.Google Google
Artist(s): Vijay, Andrea Jeremiah, Joe, Krishna Iyer
Lyricist: Karky

05.Vennilave
Artist(s): Hariharan, Bombay Jayashri
Lyricist: Na. Muthukumar

06.Alaikaa Laikaa
Artist(s): Javed Ali, Sayanora Philip, Sharmila
Lyricist: Pa. Vijay

07. jagadish On Mission (Theme)

October 26, 2012 Leave a comment
MySQL

MySQL (Photo credit: Wikipedia)

This article teaches you how to create pagination like twitter using jquery, PHP and MySQL. The content can be loaded at the end of old content when we scroll the page. Your can create your own pagination after completing this article. It is very easy to implement, you can just copy and paste the code. Please follow the steps given below to create your won pagination style.

1. Create table in MySQL using following query statement

CREATE TABLE IF NOT EXISTS `job`  (  `job_id` INT(11) NOT 
 NULL AUTO_INCREMENT,    `job_name` INT(11) NOT NULL, 
 PRIMARY KEY (`job_id`)  )
 ENGINE=MYISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

2. Create database connection file ie connection.php

$DB_Username = "root";
  $DB_Password = "";
 $DB_DATABASE = "database_name";
 $DB_HOST     = "localhost";
  $Connect = @mysql_connect($DB_HOST, $DB_Username, $DB_Password)
 or die("Couldn't connect to MySQL:
" . mysql_error() . "
" . mysql_errno());
//select database 
$Db = @mysql_select_db($DB_DATABASE, $Connect)
 or die("Couldn't select database:
" . mysql_error(). "
" . mysql_errno());

3. Create index.php where you can write following codes

<?php
/*
Author: selvaBalaji
Email:selvabalaji@gmail.com
Date: oct 26 2012
*/
include(“connection.php”);
if(isset($_GET[‘lastID’]) && is_numeric($_GET[‘lastID’]))
$lastID =intval($_GET[‘lastID’]);
if(!isset($_GET[‘lastID’]))
{
?>
<!DOCTYPE html>
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<script type=”text/javascript”
src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js”&gt;
</script>
<style>
#loader {
border:1px solid #ccc;
padding:10px;
margin:10px 0 0 0;
text-align:center;
}
.contentpane{}
.rowHolder{
border:1px solid #ccc;
padding:10px;
margin:10px 0 0 0;
}
</style>
<script type=”text/javascript”>
$(document).ready(function(){
function lastRecord()
{
$(‘div#loader’).html(‘<img src=”loader.gif” alt=”Loading…”>’);
$.post(“index.php?lastID=”+$(“.contentpane table tr:last”).attr(“id”),
function(data){
if (data != “”) {
$(“.contentpane table tr:last”).after(data);
}
$(‘div#loader’).empty();
});
};
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() – $(window).height()){
lastRecord();
}
});

});
</script>
</head>
<body>
<h1>Pagination </h1>
<p class=”hr” style=”padding:2px 0 2px 0;”></p>
<div class=”contentpane”>
<table width=”100%” border=”0″ cellpadding=”0″ cellspacing=”0″>
<?php
$sql=”SELECT * FROM job ORDER BY job_id DESC limit 30″;
$result = mysql_query($sql);
while($record = mysql_fetch_array($result))
{
$lastID = $record[‘job_id’];
?>
<tr id=”<?php echo $record[‘job_id’];?>”>
<td><div class=”rowHolder”><?php echo $record[‘job_name’];?></div></td>
</tr>
<?php
}
?>
</table>
</div>
<div id=”loader”></div>
</body>
</html>
<?php
}
else
{
$sql=”SELECT * FROM job WHERE job_id < $lastID
ORDER BY job_id DESC LIMIT 3″;
$result = mysql_query($sql);
while($record = mysql_fetch_array($result))
{
?>
<tr id=”<?php echo $record[‘job_id’];?>”>
<td><div class=”rowHolder”><?php echo $record[‘job_name’];?></div></td>
</tr>
<?php
}
}
?>

 

Unzip a Zip File in php

<!--?php

    function unzip($location,$newLocation){
        if(exec("unzip $location",$arr)){
            mkdir($newLocation);
            for($i = 1;$icount($arr);$i++){
                $file = trim(preg_replace("~inflating: ~","",$arr[$i]));
                copy($location.'/'.$file,$newLocation.'/'.$file);
                unlink($location.'/'.$file);
            }
            return TRUE;
        }else{
            return FALSE;
        }
    }
?>
//Use the code as following:
<!--?php
include 'functions.php';
if(unzip('zipedfiles/selvabalaji.zip','unziped/myNewZip'))
    echo 'Success!';
else
    echo 'Error';
?>

10 More Useful WordPress Code Snippets For Your Blog

July 6, 2012 1 comment

WordPress is the best open source sofware which is completely free to use.The advantage of being open source for a software is that developers can see its codes an write plugins to make it more functional.And also developers add or change small piece of codes especially in functions.php file to unleash the power of your favorite blogging engine.

In today’s post we are again sharing wordpress code snippets.I think you will find a useful wordpress code snippet for your wordpress blog.

You may also take a look at our past wordpress theme collections;

htaccess Gzip Compression

Add the following code in your .htaccess file.Gzip will drastically reduce HTTP response time.

# BEGIN GZIP

AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript

# END GZIP

Instructions:
Just add this to your .htaccess file. Gzip will drastically reduce HTTP response time.

How to Remove the Width and Height Attributes From WP Image Uploader

add_filter( ‘post_thumbnail_html’, ‘remove_width_attribute’, 10 );
add_filter( ‘image_send_to_editor’, ‘remove_width_attribute’, 10 );

function remove_width_attribute( $html ) {
$html = preg_replace( ‘/(width|height)=\”\d*\”\s/’, “”, $html );
return $html;
}

If you upload images via the WordPress image uploader and insert it into your post, it will include the image width and height attribute in the html tag. Here’s what it will look like.

In most cases, this is absolutely alright. However, if you are using a responsive theme or are dealing with responsive web design, the “width” and “height” attribute will be a major roadblock that you need to get rid of.

Here’s how you can do it.

1. Open your theme’s functions.php file.

2. Copy and paste the following code:
add_filter( ‘post_thumbnail_html’, ‘remove_width_attribute’, 10 );
add_filter( ‘image_send_to_editor’, ‘remove_width_attribute’, 10 );

function remove_width_attribute( $html ) {
$html = preg_replace( ‘/(width|height)=\”\d*\”\s/’, “”, $html );
return $html;
}

3. Save the changes.

That’s it. Next time when you insert image into the post via the WP image uploader, the width and height attribute will no longer be there.

How to Change the Font in HTML Editor In WordPress 3.3

add_action( ‘admin_head-post.php’, ‘wpdb_fix_html_editor_font’ );
add_action( ‘admin_head-post-new.php’, ‘wpdb_fix_html_editor_font’ );

function wpdb_fix_html_editor_font() { ?>

<!–?php }

Add/remove Contact Info Fields

To add or remove fields from this section, just add the following to your functions.php.

Login with Username or Email Address

Adding this snippet to the functions.php of your wordpress theme will let users login using an email address or a username. The second snippet will change the text on the login page from “username” to “username / email” but feel free to change the login text to anything you would like.

function login_with_email_address($username) {
$user = get_user_by(’email’,$username);
if(!empty($user->user_login))
$username = $user->user_login;
return $username;
}
add_action(‘wp_authenticate’,’login_with_email_address’);
function change_username_wps_text($text){
if(in_array($GLOBALS[‘pagenow’], array(‘wp-login.php’))){
if ($text == ‘Username’){$text = ‘Username / Email’;}
}
return $text;
}
add_filter( ‘gettext’, ‘change_username_wps_text’ );

Add PayPal Donate Button

Add this snippet to the functions.php to add ‘Donate’ Button on your WordPress Website

// paypal donate button
function cwc_donate_shortcode( $atts ) {
extract(shortcode_atts(array(
‘text’ => ‘Make a donation’,
‘account’ => ‘REPLACE ME’,
‘for’ => ”,
), $atts));
global $post;
if (!$for) $for = str_replace(” “,”+”,$post->post_title);
return ‘‘.$text.’‘;
}
add_shortcode(‘donate’, ‘cwc_donate_shortcode’);

India soon to be the biggest source of PHP developers?

English: India. Area controlled by India in da...

The number of Indian PHP developers has been growing at a large pace in the last few years, when compared to other countries. A few years ago, India was just one of the top ten countries with more PHP developers. Now India is number 2 and is almost surpassing United States, which is still number 1.

While it is difficult to take such broad conclusions seriously based on member statistics of a single community, PHPClasses does have a large user base and can arguably be considered representative. Any article tagged India and software these days attract the usual crap about how Indian developers are the worst and how everybody who outsources to India never does it again. So I was surprised when some of the usually ‘silent’ majority of the client base who continue outsourcing development to India came out to defend their decision.

I did come away with a very interesting statistic; Indian developers have won most awards this year for their contribution against sizable competition. Most Indian developers I meet have difficulty understanding the concept of giving back to the community, so it’s always refreshing to see a number of people doing exactly that.

Import Yahoo contact to website / download CSV

June 28, 2012 1 comment

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=&#8221;.$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&#8217;;
$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&#8217;;
$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/&#8217; . $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;
}
?>

Facebook buys facial-recognition startup

Image representing Facebook as depicted in Cru...

Image via CrunchBase

Image representing Face.com as depicted in Cru...

Image via CrunchBase

Facebook Inc (FB.O) is paying $55 million to $60 million to buy Face.com, according to people familiar with the matter, acquiring the company that provides the facial-recognition technology used by the world’s largest social network to help users identify and tag photos.

The deal bolsters one of Facebook’s most popular features — the sharing and handling of photos — but the use of the startup’s

has spurred concerns about user privacy.

The No. 1 social network will pay cash and stock for Face.com, potentially paying as much as $60 million, two sources with knowledge of the deal said. Media reports in past weeks have pegged the transaction at $80 million to $100 million.

Neither Facebook nor Face.com disclosed terms of the deal, which is expected to close in coming weeks.

Facebook, which will acquire the technology and the employees of the 11-person Israeli company, said in a statement that the deal allows the company to bring a “long-time technology vendor in house.”

Face.com, which has raised nearly $5 million from investors including Russian Web search site Yandex (YNDX.O), launched its first product in 2009. The company makes standalone applications that consumers can use to help them identify photos of themselves and of their friends on Facebook, as well as providing the technology that Facebook has integrated into its service.

Facebook uses the technology to scan a user’s newly uploaded photos, compares faces in the snapshots with previous pictures, then tries to match faces and suggest name tags. When a match is found, Facebook alerts the person uploading the photos and invites them to “tag,” or identify, the person in the photo.

Responding to inquiries from U.S. and European privacy advocates, Facebook last year made it easier for users to opt out of its controversial facial-recognition technology for photographs posted on the website, an effort to address concerns that it had violated consumers’ privacy.

The deal is the latest in a string of acquisitions by Facebook in recent months, including the $1 billion acquisition of mobile photo-sharing service Instagram. U.S. antitrust regulators are undertaking an extended review of the Instagram deal, which Facebook expects to close by the end of the year.

Shares of Facebook, which continue to trade below the price at which they were offered during the initial public offering in May, closed Monday’s regular session up 4.7 percent at $31.41.

Microsoft‘s tablet no threat to iPad: analysts

Image representing iPad as depicted in CrunchBase

Image via CrunchBase

Microsoft Corp‘s new tablet computers are no threat to Apple Inc‘s iPad, given the lack of enthusiasm among developers to create applications that run on the new Windows operating system, analysts said.

Microsoft introduced its own “Surface” line of tablets on Monday, taking on Apple as well as its own hardware partners including Samsung Electronics Co Ltd and Hewlett-Packard Co.

“Though pricing details are unclear … Microsoft will need to significantly undercut the iPad to be competitive,” Jefferies analyst Peter Misek said.

The Surface tablet will come in two versions, one running Windows RT, based on the same chip designs that power most tablets, and a higher-performance version running Windows 8 Pro.

“The most important factor in the success of a tablet is its ecosystem. Based on our discussions with developers, we find the lack of enthusiasm concerning,” Misek said.

Misek said he expects Windows 8 tablets to struggle to compete with the iPad, which offers over 225,000 apps, and to a lesser extent with Google Inc‘s Android-based tablets, such as the Galaxy Tab.

Microsoft’s lighter, thinner version of the Surface tablet would compete directly with the iPad, while the second, heavier tablet, aimed at the new generation of lightweight laptops, would compete with larger PC makers.

But selling two versions of the tablet in the same retail channels will confuse consumers, said analysts at Jefferies, Forrester Research and ThinkEquity.

“Choice is a key tenet of Windows, but too much choice is overwhelming for consumers,” Forrester Research said. “Apple gets this, and limits iPad options to connectivity, storage, and black … or white.”

However, a keyboard that doubles up as the tablet cover and aggressive pricing could help Microsoft gain market share, some analysts said.

“The keyboard, a simple accessory, is what makes the device most compelling, as it preserves traditional interface that we believe many users appreciate (and will demand) with the subtlety of a cover, something most users will want anyway,” said Citi analyst Walter Pritchard.

Morgan Stanley’s Adam Holt said the cover keyboard, compatibility with Microsoft Office, integrated USB ports and features optimized for Skype would help Microsoft differentiate itself from other tablet makers.

Microsoft shares edged up 19 cents to $30.03 on Tuesday before the bell. They closed at $29.84 on Monday on the Nasdaq.