Anantha Kumaran random thoughts

Ratings

I have been using Goodreads for about 3 years. Usually, I add a book to Goodreads reading list, once I am sure that I would finish the book. For some books, I can sense it right away. Either the writing would be outright bad, or I might not be interested in the subject, or it might be way over my current knowledge. For some cases, I would read about 30% and then realize it’s not worth to finish it. In cases where I successfully finish the book, I would rate it in Goodreads.

The above process eliminates “Rating book without reading” problem, but it introduces new kind of problems. I don’t rate very bad books, because who has time to finish it. I also abandon most of the mediocre books. The books I finish and rate mostly falls into either good or very good category. If I use 3 stars for good and 4 stars for very good, and 5 stars for outstanding, then I would never use 1 star or 2 stars. So my reading habit systematically prevents me from using lower ratings.

It seems like most of the Goodreads’ users suffer from this problem. Most of the books are rated between 3.5 - 4.25. I rarely see books rated below 3. So basically Goodreads rating is useless in most of the situation.

Death

Human, the only species on the earth which is consciously aware of the fact that death is inevitable. Although everyone is aware of the fact, most of them act in such a way that they are going to live forever. The human race as whole lives, reproduces and goes on. Though it might make sense for the race as a whole — where it is marching towards is out of scope of this discussion — it never makes sense for an individual to take part in this.

It leads to the inevitable question, why does a human choose to live, when he can easily kill himself. Thus liberating himself and the yet to born descendants from the worldly misery. What makes human beings resilient against suicidal thoughts. I am sure everyone — at least those who have crossed their childhood — must have contemplated suicide at some point in their life. But almost all of them try to bury the thought deep inside their mind, afraid of it, even though they know nothing about what lies ahead.

We wouldn’t be here if all our ancestors had decided to kill themselves. But this doesn’t explain the fact nonetheless. What keeps them going forward. What keeps them from exploring the other end of the death.

jQuery documentation inside Emacs

Recently I found myself switching between Emacs and browser to refer the jQuery documentation. So I looked around and found XML dump of the jQuery documentation. Now I have the data and just have to figure out a way to display it inside emacs. Parsing the XML file every time to look-up a method documentation will be very slow. So I wrote a converter which will parse the XML dump and spit out elisp code. The generated elisp code will look as follows.

(push "$.grep" jquery-doc-methods)
(puthash
 "$.grep"
 (quote (("name" . "$.grep")
         ("signatures"
          "$.grep"
          (("array" "The array to search through." nil nil)
           ("function(elementOfArray, index)" "..." nil nil)))
         ("longdesc"
          (text . "The $.grep() method ...")
          (js . "$.grep( [0,1,2], function(n,i){
				             return n > 0;
                                        },true);"))))
 jquery-doc-hash)

Now all I have to do is configure auto complete to use this data and write some code to display the documentation in a buffer.

Emacs Tips

;; usage
;;
;; (add-hook 'ruby-mode-hook
;;          (lambda ()
;;	    (local-set-key (kbd "C-x j") 'jump-to-view)))
;;
;; keep the point anywhere inside a sinatra route and
;; press C-x j to open the haml file

(require 'thingatpt)
(defun jump-to-view ()
  "jumps to haml view"
  (interactive)
  (let ((sentence (thing-at-point 'sentence)))
    (if (string-match ".*haml(?[[:blank:]]*:\\(?:'\\|\"\\)?\\([^\"\', \f\t\n\r\v]+\\).*" sentence)
	(let ((file (match-string-no-properties 1 sentence)))
	  (if (one-window-p)
	      (split-window-vertically))
	  (select-window (next-window))
	  (find-file (concat (project-root) (concat "app/views/" (concat file ".haml"))))))))

My Interview Story

written on 9th June 2010

I think I will never publish this post. Who knows, my mind changes very rapidly than I could imagine. But any how I will just write down my interview experience here.

I think it was February 2010, Infosys came to our campus. They selected around 150 students in our campus. They conducted two rounds. A General Aptitude(I will use GA hereafter) round and a HR round. Most of the people who cleared the first round cleared the HR round as well. I couldn’t clear the GA round. I was rather surprised that they selected many non IT based students. Then TCS came after one month, same thing happened for me, I failed in the GA round.

I guess there are several reasons why I failed, I was not in a great form to solve puzzle. I was little nervous and didn’t concentrate well. But I guess the problems are not so simple. If you are seeing that kind of problem for the first time then it will take some time to solve. If you have already solved many problems of that kind, then you can solve it quickly. I didn’t want to spend my free time by reading RS Agarwal or other puzzle books. So to wrap up, all the problem asked in the GA was new to me. So it took lot of time for me to solve the problem, but there was only thirty minutes. Any how both of the company did a good job, they made me realize that I am not a genius.

There are some common things between this two company. I guess their recruiting the based on the fact that, “ if a student is smart, then we can teach him something and make him write programs “.

One of my friend who got placed in infosys told me “ you should have got placed in infosys, they hired many people who had never done any programming “. Infosys will give a three month or six month training to the student and will put them to write code. Well many people still fail during the training as well. If their recruiting method is good, then no one should fail in the training.

I think no one will hire a juggler without seeing him juggling the balls. But they are hiring people without seeing him writing code. As of today, I have attended six or seven interviews and none of them asked me to write a single line of code. This was rather a surprise for me. I thought people will ask me write code for difficult problems. But no one even bothered about that.

I forgot to write about today’s interview. For your surprise I cleared the first round, but failed in the second round. They told me that I don’t know to speak English. I guess this is my weak point. I am a silent type. I don’t speak very well. Maybe, this has to do something with the way I grew.

I have been saying all the problems without saying any solutions. There is no good solutions available. But I can sure of one thing, if we write a program to print random register numbers, then it will select good candidate than the current system.

They can conduct a technical interview instead of the GA round. Then more people will write book about writing programs to solve technical puzzle and students will read them instead of mugging the RS Agarwal book.

I have been writing programs and reading technical book in all my free time. So this interview procedure will not work for me. One way is to get hired is, I have to put my butt in a chair and solve all the problems in the puzzle book and I need to speak boldly. Then there is a chance to get hired in an interview. Well this is hard to do. I don’t want to spend my time by solving those puzzle. The other way is get a job through a friend or any relatives. I like the second option although it is not fair to do.

Update

Finally I got a job in Artha42. Well they asked me to write code :).

There is something that stops me from publishing this post. I’m afraid that people will think that, I’m against the MNC because I failed in their tests. Well that is somewhat true. I would not written this post if I got placed in Infosys or TCS.