Sunday, December 13, 2009

Photo got published in Puthiyathalaimurai magazine

The photo once I collected from late Sujatha Rangarajan, which is a class/college photo of Sujatha and Abdul Kalam was featured in the center page of Puthiyathalaimurai magazine

Humble Award - RJ Yazh Sudhakar

Yazh Sudhakar, of Suryan FM is the best radio jockey for Tamil. His modulation and pronunciation are brilliant. His voice is really superb amongst other crappy "fast forward voices".

Links: யாழ் சுதாகர் கவிதைகள்

Monday, December 07, 2009

Humbe Award - RJ Joshua

Recently, I don't listen to RJ Joshua of AIR FM, Chennai (I'm not even sure if the program still exists). As the way he conducts the program especially for his positive words, he's the best RJ I have ever tuned to. I wish him to be more famous.

Monday, November 23, 2009

Humble Award - OptiPerl

OptiPerl, the best IDE for Perl and best of any IDE I have ever seen. I quite often praise it for it's "Box & Line coding" which I haven't yet to see in any editor--even in Delphi

Humble Award - Dr. A.N. Sreevatsan

Dr. A.N. Sreevatsan, ENT specialist located in Adyar, Chennai is one of the gems available in medicines. No assistants in his consulting room and he'd take at least 15mins for every patients. So far I have referred many and all are happy with his approach. Every wannabe doctor should visit him personally to understand his approach. I wish him to be more famous than now.

[Image: Dr.A.N.Sreevatsan Hospital Map]

Update (2010-11-21): Added link to Google Map

Keywords: Sreevatsan, Srivatsan, ENT, Adyar, Chennai, Hospital, Doctor

Humble Awards

When I was studying 10th standard, I had a bet with my friend Nalin that A.R.Rahman will become very famous (He was telling me that no one can beat Ilaiyaraaja) Since then I thought about appreciating the people that I think are the best and finally here is the effort. Some people are yet to become famous--but I strongly believe and wish that they'll become famous sooner!

  1. Gaana Rahman - Gaana singer

  2. Dr. A.N. Sreevatsan, ENT specialist

  3. OptiPerl, Windows based IDE

  4. RJ Joshua , Radio Jockey of AIR FM, Chennai

  5. RJ Yazh Sudhakar, Radio Jockey of Suryan FM, Chennai

  6. Discovery Channel's Tamil Interpreters, for the superb Tamil voices & modulations

  7. Savukku, WikiLeaks of India, for the brave news coverage on hidden politics of India, especially Tamil Nadu state

Humble Award - Gaana Rahman

Gaana Rahman (I also think, his name is Rahmankhan or so) was a participant of "Gaana Kyuil Pattu" program on Kalaignar TV. The judges didn't select him mentioning that he didn't maintain his pitch. But, I like(d) voice very much and even sent a recommendation email to Mr.James Vasanthan. Hopefully he'll become famous sooner.

Sunday, August 16, 2009

Ohm Kumar, a motivational leader

I always stress the need for typing and technical skill for our team. But, I turned out to be less successful in motivating the team to improve those skills. Ohm Kumar, who lately took up the challenge of motivating the team, turned many teammates technically certified. I'm yet to learn such motivating skill from him:-(

God should repent

For the sake of record, these days when I find inequalities among the society, I say it to myself "God should repent"

Wednesday, July 01, 2009

Photo got published in Kumudam magazine

I'm extremely surprised to find that the photo I took in Dakshina Chitra and later uploaded to Wikipedia got published in Kumudam magazine (dated July 1, 2009).

Monday, March 30, 2009

How to interview a candidate?

How to interview a candidate/programmer -- Version 0.0.1

Note: It's based on my process of short-listing candidates/programmers and experiences so far in selecting and building my great team. I'll expand it whenever I get time and will amend versions.

Not many of you were wise in the way the world judges wisdom. Not many of you had great influence. Not many of you came from important families. But God chose the foolish things of the world to shame the wise, and he chose the weak things of the world to shame the strong. - St. Paul

Core facts

  • Interviewing is a serious effort and interviewing has great career prospects. Take it as a serious profession.

  • Interviewer/interviewee – no one is genius.

  • You cannot find a person who knows everything.

  • You're not a foreteller and so you cannot identify people by appearance. That's the need for the interview.

  • No interview question is right or wrong. You need to take good decision based on many factors—not just by the answers of the candidates

  • In most of the ideal cases, the interviewer and interviewee will share only a part of the knowledge (see the Venn diagrams below)

    • Interviewer-Interviewee1

    • Interviewer-Interviewee3

    • Interviewer-Interviewee4

    • Interviewer-Interviewee2


  • Interviewing—face-to-face interviewing needs at least 1 hour

  • Big job – think of career

  • Projecting company and our name – marketing ourselves

  • Serious and selfless process

  • Identifying potential is plus and a good for everyone. If you identify and appreciate a potential, they'll remember you for their lifetime


  • Interviewing needs tough preparation.

  • Learn what is interview and why interview is important and how to interview

  • Read at least 3 books and articles on interviewing. Remember again that there is no correct approach; every author may have his own opinion. Take opinions or ideas that are very rational to you.

  • Technical questions preparation

    • We're looking for programmers. So, technical is very important and needs great amount of preparation.

    • Prepare as many questions possible in DB, PHP, General, Programming, etc

    • OOP – Prepare as many as questions on writing OOP code. Many people ask theoretical definitions; but that many not help to identify the real programmers. Give suitable problems that can be approached by OOP. Give suitable problems to use reuse OOP code or write OOP based library.

    • Have at least 3 form of questions prepared for a single answer. That would help avoid the question is been leaked over Internet

  • Communication preparation

    • Prepare well on how to ask questions, how to open questions, how audible you should be, and the modulation needed.

    • As English is the formal language for interviewing in India, understand proper pronunciation for the words you may have to use while interviewing

  • Prepare lot of bogus and or tough questions

    • This is merely to project the name of the company—something like Microsoft interview. If the questions are too easy, the candidates may feel bad about the company and current employees' potential. But, these questions are not deciding factors. These answers shouldn't be accounted.

  • Prepare lot of "deciding" questions

    • Question such as "find whether the given integer is odd" is deciding type of questions. If the candidate doesn't answer such questions, he is most likely not a good programmer.

    • For PHP OOP, this question may be considered "deciding" question: using the following class, how will you find the area and perimeter of a ground that is 1250meters X 5290meters in dimension?

    class Rectangle{
        public $width = 5;
        public $length = 10;
        public function getArea(){
            return $this->width * $this->length;
        protected function __getPerimeter(){
            return 2 * ($this->width + $this->length);

Facing interview

  • Dress

    • Should be decent, no vulgar, not disturbing – so that the interviewee will not feel uncomfortable facing the interviewer

  • Punctuality

  • Policies – no mobile phone, etc

Basic objectives

  • Smart candidate (with reading, writing/typing, programming skill, attitude, aptitude)

  • Candidates for getting thing done—our current job

  • Growth for both interviewer and interviewee

    • No growth for the interviewer, if interviewee has lesser knowledge than the interviewer (refer the Venn diagram above)


  • Insult

    • Even if you reject the candidate, there is 99% chance that the candidate can still become a CEO of other company, president or prime minister of the country. Always be kind to the candidates.

  • Interviewing is not choosing life partner

    • The jollu nature of the interviewers is wasting majority of the interviewing process in India. ("jollu party: [Tamil Slang] Jollu refers to spittle. Party refers to a person. A jollu party is someone salivates at the sight of the opposite sex." -- )

  • Judge over appearance

  • Judge over dresses or dress codes

    • If the dress code is too informal, ask for the reasons. If the candidate has no answers, then the candidate may not be serious about the career in the company. But, if his answer is something like "I thought that you'd look at my stuffs—not at my dresses", then it shows his confidence.

  • Judge over answer

    • This is very important: do not ever judge the person by merely looking at the answers. If you think the answer is wrong, ask for the reasons. The guy may be next Newton or Einstein to disprove the theory that you've believed to be the answer of the question.

  • Stop asking after few questions by judging the person by previous answers (see above) or judging the person with set of prepared questions. If the candidate is not answering anything, it's better to ask for the reasons and his knowledge domain.

  • Speak in other language that the candidate is not comfortable with. It's not the right time to showoff your linguistic skills.

  • Look at salary

  • Look at disability

  • Face the candidate without question sheet.

    • Many think that interviewer should showoff and so having question sheet is shame. In fact, having the well-prepared question sheet will focus the interview in right direction and will save lot of time.

  • Blinking with each other

    • If the interviewing is done by more than one interviewer, don't ever blink at each others.

  • Think for question–blinking

  • Underestimate & overestimate

  • Showoff your skills

    • It's not a time to showoff your skills

    • It's not a time to prove that you're smarter than the candidate.

    • Avoid prejudices such as poor reasoning for rejection of candiates such as the one mentioned in The nightmare interview: "Data Modeling" (it shows showoff by the interviewer)


  • Listen

  • If the answer is unexpected, check practically or ask for the reasons

  • Identify real interest & experience

  • Read resume & check projects (links, etc)

Common steps

  • Start with ice-breaking type of questions

  • Understand about the nature of work and project

  • Understand about domain

  • Understand about involvement and percentage of contribution

  • Start with medium level question

  • Go up to the level of the candidate

  • Fix the weightage of the candidate – ranking

  • Close with ice-breaking type of questions

  • If the candidate isn't doing well, ask for reasons

  • If you think that the candidate has some other potential—other than what you’re looking for the current job, politely inform him that he may focus on that area. Also, if there is a scope for that potential in the company, suggest and refer him for that position. For example, the person may have good designing skills, but he may have applied for programming positions for "survival reasons"

Interview framework

  • Prepare set of questionnaires – software based questionnaires (possible with LimeSurvey)

    • Ask for personal details (Educations, Experience, Project Details or domain)

    • Provide them with collection of tougher and "deciding" type of questions—both in analytical and programming

  • Evaluate the candidate's performance by "deciding" type of questions

  • Even if the candidate isn't performing well, conduct face-to-face interview. You'll have the opportunity to ask for reasons for not performing well or can able to find if the candidate's interest lies in other domain or if the candidate isn't feeling well or if the computer/keyboard/mouse that the candidate used for filling the answers isn't perfect.

  • Shortlist the candidates based on the performance in questionnaires and face-to-face interview, for the next real time round.

  • In the real time round, give the candidate computer with Internet access and possible problem from current projects.

  • Take final decision based on all the rounds.

Thursday, March 26, 2009

jQuery.favicon - jQuery plugin for adding favicons next to the links

It's easy to add little favicons next to all or external links using CSS's background properties:

a[href ^=""] {
background: url( center right no-repeat;
padding-right: 16px;

But, to automate that for all links in a page, I wrote a nifty jQuery plugin--favicon (posted to jQuery group).

Side note

I don't know of anyway to parse the domain name of a link using JavaScript and so thought of using RFC compliant regexp and had to write a PHP helper to import regexp in JavaScript:

// Generate JavaScript regexp for matching URL for getting host part
// set user agent; otherwise getting 403
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT5.1; en-US; rv: Gecko/20071127 Firefox/');
echo str_replace(array(
"\n", // remove newline
'/', // escape / to \/
'?:' // remove--we really need mach
) , array(
) , file_get_contents(''));

Monday, March 23, 2009

Sad demise of Suresh Kumar

When my spirit was high in pain, I wrote "If there is a God, he must be a sadist!" and also added that in my Usenet sig-block. God proved to be cruel again, by taking Suresh Kumar, a great hacker, a good human being, an inspiring Team Leader who worked with me on February 25, 2009.

Suresh joined my team in October 2008 and have shown his leadership skills immediately around November 2008 and started building his own team. His knowledge and involvement in, an online PSD to XHTML conversion website that we're developing was a great asset.

It's a great shock that a low BP or any unknown disease can kill him at the very young age. We have had a discussion on February 24th but a bad news came the next day--all to prove absolute vanity in life--and to prove "We live to die; we die to live"

May his soul rest in peace.

Sunday, February 15, 2009 as killer?

I have been thinking this for a while... why can't we kill with social bookmarking websites like (aka,

My suggestion is to tag the usernames and passwords with "oAccounts"

Copy-Paste Blogging?

For the sake of record... of late, I have noted that quite lot of bloggers from India are just copy-pasting news/articles in their blogs--without acknowledging the source of the contents.

Thursday, January 15, 2009

Detect identical & black frame in video with ffmpeg?

Thumbnail creation is a very needed feature for any social networking site. Obviously, ffmpeg is the ideal solution for generating thumbnail.

Problem-1: Detecting identical thumbnails

Fortunately, we have a good solution--libpuzzle. It would be ideal to have a filter in ffmpeg for that.

Problem-2: Detecting black/dark frames

I'm still keenly looking for a solution tied up with ffmpeg. When Google turned no help, Heleena (my wife) solved it by calculating average luminance value of the frame and ignoring the frames based on certain preset threshold value--which worked better at that time.

Friday, January 02, 2009

Converting PSD with PHP/ImageMagick

After seeing feature rich options in Imagick PECL extension at Mikko Koppanen's (the author) website and also impressed with ImageMagick's features, I have decided to use it for the PSD to XHTML conversion website that I'm architecting and managing.

Since, the team wants programming help for converting PSD images, I have tried it (documentation is sparse on PSD handling)

Converting PSD to PNG/JPEG/etc

Note that, flattenImages() is needed for layered/multi-page PSD file.

$im = new Imagick('test.psd');

Extracting PSD layers

One by one

$im = new Imagick('test.psd');
for ($i = 0, $num_layers = $im->getNumberImages(); $i < $num_layers; ++$i) {
$im->writeImage('layer' . $i . '.png');

Note that, there is a better version below

In a single call with writeImages()

$im = new Imagick('test.psd');
$im->writeImages('layer%d.png', true);

Note: Second parameter of writeImages() is for adjoin


While doing so and comparing with the results of XnView, I have noted a same problem/issue as mentioned here in the forum--that is, most of the extracted layers/images are distorted. By the way, I have tried in WAMP and yet to try it in LAMP