Marc Andreesen refers to the www.softwareinterview.com website

It did not have the slashdot effect but Marc Andreesen linked to the http://www.softwareinterview.com website in his post on recruiting and the traffic jumped a few hundred visitors the next couple of days. I guess the site showed up in some google search he tried (if he uses google).
See the post here: http://blog.pmarca.com/2007/06/how_to_hire_the.html

Posted in Technology | Leave a comment

Ruby on Rails: Confessions of a Closet Coder

I have been dabbling with Ruby on Rails a little more lately. I have hacked around and figured out solutions for issues that stumped me based on posts from others or from experiments. I will try to catalog some of those in my blog so it is useful for others. Pardon me if some of these seem trivial or violate Ruby idioms. I have been learning Ruby as I wrote an internal application in RoR. Recently, I ended up coding and checking in stuff in Verilog, C++, Ruby and Javascript in a single day so I have valid excuses to muck up all of them.

The first one is a hack I figured out to display find_by_sql results that I could not even get answers from rails mailing list. Stay tuned…

Posted in Technology, rails | Leave a comment

Social Bypass: Online Networking

I sometimes feel like I am living in a cave when I keep reading all the magazines and webzines about social networking sites. It is not that I am not online. I have a web presence, developed a website in Ruby on Rails (the current hot thingy) and show in enough Google search pages. But, I seemed to have completely skipped the whole connected on the web generation.

Other than email, the amount of internet connectedness that I do is pretty low. A little bit of rec.music.indian.music (RMIM) in 1996, a little bit of Yahoo chat in 1999, and currently, a little bit of LinkedIn.

I know all the sites that are talked about all the time like here: Slashdot | Friendster\’s Rise and Fall. Not only have I not been active, but I can also count on my fingers the number of times I have been to MySpace and YouTube.

The only time I went to MySpace was when it was linked off this interesting story about a guy who lost his Sidekick and tracked the people who found it but did not return to him. He found they were taking pictures on the phone that were synced to the online site and he tracked down their MySpace profile. I think I did browse around to YouTube for some fun stuff (Darth Vader videos), but it gets pretty boring after about minutes of video.

I do believe in Networking. I once even religiously read the “Dig Your Well Before You Are Thirsty” book and quote from it often. (The frequent one is that the USC Alumni Network is mentioned as the best example of alumni network). I use LinkedIn for my professional and alumni networking and see some useful professional referral traffic flowing around.

Who are all these people who find time to spend time chatting, sending messages, commenting on myspaces and having a “Second Life” ala Linden Labs? Shouldn\’t professionals be working, students be studying and socialites be dancing at the clubs? Are we too busy to live and party live nowadays?

Posted in Technology | 1 Comment

What’s in a Name: What does Saarang mean

Like any new parents (Saarang is past his first birthday so new is a relative concept), we get the standard question: Saarang. Oh such a nice name! What does it mean?

I don’t remember whether it was Srilatha or I who finally decided on the name but at least I must have proposed it since I have multiple memories associated with it. The oldest one is one of my favorite Mukesh songs of all time: Saaranga Teri Yaad Mein from the movie Saaranga. It was from the golden years of Hindi movies. Or maybe THE golden year for film music, 1960. If you see the list of movies and songs from that year (grabbed from an old RMIM posting).

The other area we had looked for names was in the names of raagas and we did not find too many male names (maybe Yaman). Saaranga is actually a carnatic raaga.

Here is the actual song (corrupted at the end) for your listening pleasure:
Mukesh – Saaranga Teri Yaad Mein

Some movies from 1960

1. Music director Ravi had

- Chaudavin Ka Chaand!! (Guru Dutt, Waheeda) with the songs:

`chaudavin kaa chaand ho yaa aaftab ho’ [Rafi]
`mili khaak main mohabbat jala dil ka aashiyaanaa’ [Rafi]
`bedardi mera sainya shabnam toh kabhi shole’ [Asha]
`balam se milan hoga’ [Geeta]
`sharma ke yeh kyon sab parda nashiha tan ko savaraa karte hai’
{qawwali} [Asha, Shamshad Begum]
`dil ki kahaani rang laayi hai’ [Asha]

2. Roshan gave all that he had for his

- Barsaat Ki Raat!! (Bharat Bhushan, Madhubala)

`zindagi bhar nahi bhoolegi woh barsaat ki raat’ [Lata, Rafi]
`na to kaarvaan ki talaash hain na to hamsafar ki talaash hai’
`yeh ishq ishq hai ishq ishq’ {qawwali}
[Rafi, Asha, Manna, Batish, Sudha]
`garjat barsat saawan aayo re.’ [Suman Kalyanpur, Kamal Barot]
`maine shayad tumhen kahin dekhaa hai.’ [Rafi]
`mujhe mil gaya bahana teri deedh ka’ [Lata]
`nigahen naaz ke maro ka haal kya hoga..’ [Asha]
`ji chaahta hain choom loon’ {qawaali} [Asha,Sudha]

3. Naushad had two movies that year, both with Dilip Kumar.

- Kohinoor! (Dilip Kumar, Meena Kumari)

`madhuban mein raadhikaa naachche re’ [Rafi]
`do sitaaron ka zameen par hain milan aaj ki raat’ [Rafi, Lata]
`dil mein bhaji pyar ki shahnayiaan’ [Lata]
`tan rang lo ji’ [Rafi, Lata]
`jaadugar qaatil haazir hain mera dil’ [Asha]
`zara man ki kewadiya khol’ [Rafi]
`chalengey teer jab dil par’ [Rafi Lata]
`yeh kya zindagi hain’ [Lata]

- Mughal-E-Azam!! (Dilip Kumar, Madhubala)

`pyar kiya toh darnaa kya’ [Lata]
`mohe panghat pe nandlaal chheD gayo re’ [Lata] {raag gaara}
`mohabbat ke jhooTi kahaani pe roye’[Lata]{raga darbari kanada}
`bekas pe karam keejiye sarkare madina’ [Lata] {raag kedar}
`khuda nigehban ho tumhara’ [Lata] {raga yaman}
`jab raat hai aisi matwaali’ [Lata] {raga jaijaiwanti}
`teri mehfil mein qismat aazmaakar ham bhi dekhenge’
{qawwali} [Lata, Shamshad]

4. S.D.Burman and Dev Anand had three block-busters that year.

- Bambai Ka Babu (Dev Anand, Suchitra Sen)
`deewaanaa mastaanaa hua dil’ [Asha, Rafi]
`dekhne mein bhola hai’ [Asha]
`saathi na koi manzil’ [Rafi]

- Kaala Bazaar (Dev Anand,Waheeda)
`khoya khoya chaand’ [Rafi]
`apni toh har aah ek toofan hai’ [Rafi]
`rim jhim ke taraane leke aayi barsaat’ [Rafi,Geeta]
`such huve sapne tere’ [Asha]
`jo maiN hoti raaja.’ [Asha]
`na maiN dhan chaahoon, na watan chahoon’ [Geeta Asha]

- Manzil (Dev Anand, Nutan)
`na banao batiyaan haTo kaahe ko jhooTi’ [Manna]
`chupke se mile pyaase pyaase kuch hum kuch tum’[Rafi, Geeta]
`yaad aa gayi woh nashile nigahen’ [Hemant Kumar]
`hum dum se gaye humdum ke liye humdum ki’ [Manna]
`chaand aur main aur tu’ [Manna, Asha]

5. Salil Choudhry had

- Parakh! (Sandhya)
`ooo sajnaa barkhaa bahaar aayi ras ki puhaar layi’ [Lata]

- Usne Kaha Tha (Nanda, Sunil Dutt)
`aha rim jhim ke ye pyaare pyaare geet liye’ [Lata, Talat]
`machalthi aarzoo’ [Talat?]

6. Shankar Jaikisan had two hits

- Dil Apna aur Preet Parai (Meena Kumari, Raj Kumar)
`ajib daastaan hai ye kahan shuru kahan khatam’ [Lata]
`dil apna aur preet parai.’ [Lata]
`andaz mera mastana.’ [Asha]
`mera dil ab tera o sajana’
[some more?]

- Jis Desh Mein Ganga Behti Hai (Raj Kapoor, Padmini)
`aa ab lout chaley.’ [Mukesh,Lata]
`o basanti, pawan paagal’ [Lata]
`honthon pe sacchai rehetee hai’ [Mukesh]
`mera naam raju’ [Mukesh]
`hai aag hamare seene mein’
`begani shadi mein..’ [Lata]

7. Sardar Mallik gave his masterpiece:

- Saaranga!!
`haan deewaanaa hoon main’ [Mukesh]
`saaranga tere yaad mein’ [Rafi/Mukesh]
`chali re chali main toh’ [Asha]

8. Madan Mohan had

- Bahanaa
`ja re badra bairi ja ja ja re’ [Lata]
`teri nigahon mein’ [Asha, Talat]

9. S.N.Tripathi had

- Lal Qilla
`na kisi ki aankh ka noor hoon’ [Rafi]

10. Kalyanji-Anandji

- Dil Bhi Tera Hum Bhi Tere
`mujhko is raat ki ranhaayi mein awaaz na do’ [Mukesh]

Posted in Parenting | Leave a comment

Ruby on Greased Rails: Adventures in Rapid Application Development

Even though I work in a chip company, I believe in tools that work on the web so creating, updating and maintaining data is a collaborative process (and less personal overhead :) ). Having a spouse who works in web tech is of extra help. I was one of the early adopters of the Twiki at my company (Andy was the initiator). One of the earliest tools that was born out of my pain of having to create work plans, track them and collect status info was the Project Planner Plugin for Twiki (which I also released to the public domain).

I have done a few other CGI scripts to interface databases to the web along the way. But, cgi scripting in perl is not my idea of writing software. It keeps getting in the way more often than letting me do what I want to. Of course, I am not a master of the language. People actually commented on the Project Planner plugin that the code was easy to understand since it was perl written in C style!

So I stumbled upon Ruby on Rails accidentally and that led to making the softwareinterview.com website. I really did it like the 15 minute video on the RoR website and it works! We spent more time on the template and CSS for the view. Yeah, and it is true that getting the first few things up is as quick as 15 minutes but you really do need to understand framework, Ruby, ERb and a few other things to be really up and running. Pickaxe and DHH to the rescue. It helps to read and do some development as opposed to getting dazed with just hacking away and getting stuck on how to take it to the next level.

It also led to me adopting Rails for a cgi script I was maintaining at work. It was a small perl cgi script and was moderately well architected (YAML for config files, serializing and deserializing objects, etc.). However, it was getting a pain to maintain and add any features. I did keep finding myself repeating the same code, trying to abstract it away, refactor it, etc.

I re-implemented the whole thing in RoR and it did make development faster. Since I was not a perl-cgi wiz, getting stuck at RoR and perl-cgi was pretty much similar overhead in trying to search for an answer. It was easier in RoR once I found the answer since it was so much more succint in RoR as opposed to perl-cgi. The application though small does use many features:

  • multiple tables
  • foreign keys
  • ActionMailer
  • acts_as_versioned
  • observe_form AJAX for searches

And as you can guess I did run into several itty-bitty problems throughout (especially since I was a Ruby Nooby too). Surprisingly, web search seems to provide many answers since there are many new rails pages and not too much noise. I find that searching for many topics on the web finds more noise than answers.

About that list of small issues:

  • collections in forms
  • AJAX for form vs fields
  • choicebox selection list and selected value

Oh! As a side effect to the whole thing, I love Ruby! A fortune sample reads, “Computers do what you tell them to do, not what you want them to do.” The way I see it, I have always had a language that let me tell the computer what to do – C. It is pretty close to really thinking in terms of a processor chip.

add 1 to i, mov i to memory at location m

I have never really found a language that really lets me write software that I want to do. Ruby seems to come pretty close to writing code the way we write pseudo-code when writing algorithms.

for each of the elements in the array, slice ‘em, dice ‘em and cook ‘em.

Really! That is how I feel writing in Ruby. I am neither a master of languages nor a novice. I have written and graded a few programs in LISP, COBOL, Perl, Prolog, etc. to understand concepts behind computer languages (PCP did teach us the wonderful lambda calculus in undergrad). Perl seems like sed+awk and I haven’t written anything in python but I do not like white spaces dancing around me in my nightmares. I had enough of those with COBOL (spaces and nightmares while sleeping in the undergrad computer lab).

I design processors (albeit writing a lot of software) and not web sites. Even if I do not use RoR a lot, at the least RoR gets credit for my stumbling onto Ruby! When I have a choice, I will be scripting mostly in Ruby.

Posted in Technology, rails | Leave a comment

Comparison Shopping: Research on the Internet

so much information, so many reviews, so many forums, so little time…

Have any of you recently checked how much time you spend on the web doing research about things you are going to do or spend on? Here is how I am trying to simplify my shopping.

Let me think of the the last few things I did research on:

  • Vacation Trip – Where to go, stay and eat
  • Cellular service and phone
  • PC
  • Digital Camera
  • Web hosting service
  • Baby Stuff
  • Books
  • Car
  • Home

Of course, after making the choice, the research moves into finding the best place to snag the best deal. However, it seems like I wasted more time than the knowledge I gained to make a better decision or the money I saved. Recently, I have started going back to a more basic set of principles to simplify shopping and save time:

  • Repeat Your History: If you liked a place, brand, store, or a website just go with it the next time for the next thing.
  • Forget The Features: Look for the basic features you need. Quit worrying about future proofing your purchase. Either you do not need the features anyway or you will buy a new one in the future.
  • Buy When You Need: Skip the “mega sale now” and the Black Friday sales. I have not so suprisingly found I still get good deals just by spending a few minutes on research and picking a place rather than waiting for the right moment.
  • Go With Your Gut: All else being equal, just pick what “feels” right

I remember the time when I did do as much research but found more quality information at a higher Signal To Noise ratio. When I bought my Canon Elan IIe 8 years ago, I searched photo.net, rec.photo newsgroups and archives and a few other websites. When I bought a Onkyo component system, I got quality information from rec.audio archives. Now it seems as if google can serve information on anything you are looking for but with a million voices on the net spewing their opinion it is pretty difficult to figure out where the best information source is.

I am not advocating that web is bad. My last car buying experience was a pleasantly painless one. Pick the car you want. Submit request for internet quotes. Keep forwarding the offer emails back and forth to the different dealers internet managers till an equilibrium in price is achieved and just go buy it. It took all of few hours each day in one weekend to finish the whole thing. Of course, picking which car to buy and convincing the mother of my child that it was the right choice took a lot longer :)

Go ahead! Confess how much time you waste on research or tell me how much I am losing by skipping the research. If you have simplified your life then tell me your rules.

Posted in Technology | 1 Comment

It is Alive: Microsoft Interview Questions Site Ported

The original reason I started looking around for a web hosting company actually came online now. Head on over to http://www.softwareinterview.com to check out the new version of the really old questions page which still generates many emails in my very rarely monitored inbox at USC.

This is a good place to tell at least the story of how that page came about. When I was doing my graduate school in Ohio State, I had a few roommates who were going for interviews in Mircosoft. (Yours truly was into research, see…). They were poring over a bunch of questions collected from other people from Ohio State who had interviewed at Microsoft. I took that and added the questions that my roommates were asked and it has been growing since then. For the record, I never interviewed at Microsoft but too many of my friends have. And four of my roomates from Ohio State and USC worked at Microsoft.

Of course, if you read “How do you move Mount Fuji” you will see my name mentioned in the book. The author William Poundstone did actually call me and talk to me about what sort of reaction I get for the website. What you read in the book is true. I think I maintained the site more out of academic interest than anything else. Intellectual pursuits are what separates human from the animal :)

The new site runs on spanking new technology (okay! okay! new for me) of Ruby on Rails. I will write more about in another post.

It also provides an option to add questions instead of the emails people used to send me so do go ahead and fill in all those esoteric and arcane interview questions that you get asked in your interviews. Go ahead. Do it!

Posted in Technology | 1 Comment

C is for Cat: Vagaries of English Pronunciation

Saarang said his first aspirative syllable. We have been repeating A, B and C to him just to engage him for many days and this sunday he started saying sssaah. You know … the way babies go around repeating the same syllable over and over again! We had actually been telling him A is for Apple, B is for Baby and C is for Cat. Then I realized how silly it would sound if I was told see(C) is for kat(Cat) when I start learning syllables. I haven’t got that look from Saarang yet! Maybe all kids should be taught using phonetic alphabet or something similar.

I remember some parent mentioning that in schools here kids are not taught numbers and letters in their correct order but in order of how easy they are to learn. So the numbers with straight lines go first (1, 4, 7) before the curved lines. The alphabets that are easy to voice (maybe the fricatives) go first and as a sound rather than a letter (mmm, da, ta, just like babies make ‘em).

I am just worried that in a few years I will have to sit with Saarang and explain see is for kat and not see is for sat.

Posted in Parenting | 1 Comment

An Experiment goes Boink: Dreamhost Review

A personal homepage I had started long ago and had been meaning to long overhaul is the Microsoft like Interview Questions database. Last month, I was surprised to hear an intern at my company and an old friend I met after a few years mention that they had gone through my page for even hardware interviews. Hmm, it would be worth the time finding a permanent home for the questions if they were really that useful.

The timing was right. I bumped into this web hosting deal with Dreamhost which for the price of a loaded latte would give me the web hosting for an year and then need a latte a month after that. Rules say I had to do some research before signing up (topic for whole another post). It took me longer to search for a domain name than it took for me to signup and have the website up and running!

If you want to check DreamHost out, do use my reference. If you use the promo code BOND I even share my referral bonus as your discount!

Of course, I do have to review Dreamhost, right? If you read reviews around the web about various hosting sites and compare reviews (like I did) you will find positive and negative reviews for every hosting company. The interesting thing about dreamhost is how much I like it and at the same time I can believe people hating it. It is it not a very layman friendly setup. If you are trying to write some HTML and make you webpage then there might be better hosting elsewhere. Of course, this is my first and only hosting experience so YMMV.

I picked the unix hosting plan and you have to know what telnet, ftp and webmail are to create the basic website. If you do not know what PuTTY is then geocities might be a better option. However, for the more powerful users who know a database from a platypus, dreamhost offers a lot of features and tools including great one click install of tools like photo Gallery, WordPress blog, among others. It took me 5 minutes to install WordPress which motivated me to start the blog in the first place.

Oh yeah! I do need to get to those interview questions sometime :)

Posted in Technology | Leave a comment