The best new year gift

We just received a mail from IIIT-H help desk stating

New year special proxy server has been created for all users as gift from
IIIT Server Room staff. There are no moderations done on that proxy so all
websites are accessible. Even better there is no connection limit per IP
or per user on the new proxy.

Proxy is accessible at IP _SNIP_ on port _SNIP_. Please feel free to
download as much as you want from this new proxy server.

Merry Christmas and Happy New Year!

Regards,
IIIT Systems Help Desk

Probably the best gift I have ever received.

 

Auto Spell Checkers are bad, sometimes

Auto Spell Checkers in Firefox, Thunderbird, Spicebird, Tomboy Notes and whatever else have totally changed the way I write English. Previously (two years ago) I used to make tons of spelling mistakes while writing blogs but these days I hardly make a mistake while blogging, sending mails, taking notes etc. But this enhancement in technology has made me dumber. Previously, I was confident about the spellings I knew but now I am not confident about spellings of anything I spell. Today, I was writing an application (for what?? secret ๐Ÿ˜› ) and got damn confused about spellings of “committee”, “admission” etc. (double m, double tt, double s ?? ๐Ÿ™ ). After two failed attempts, I wrote the application in word processor and took a print out. Damn easy, huh!!!

 

Help Needed: WordPress Module Development

Goal

I am looking forward to develop a wordpress plugin which needs to interact with database extensively and may need additional database.

What I have done

I have read the following howtos word to word including a few linked pages from the howtos.

Confusion

I am still a bit confused about the database interaction part because none of the above howtos explain the database interaction clearly. In case you know of some resource(s) which explains the interaction clearly and can help me get going with the plugin development, please share it.

Thanks in advance ๐Ÿ™‚

PS : I am comfortable with Drupal module development but finding it a difficult to get started with wordpress module development.

 

My first interview for a job!

After failing few (will be disclosed later) written tests in a row, I got a call for an interview. I was pretty surprised as I never expected it to happen. Initially I was nervous because I don’t know c/c++/data structures/algorithms. All I know is Python, Computer Networks, a few Open Source technologies and how to use them to generate cash. Well, after waiting for four hours, I got a chance to meet the interviewers (two). I was nervous as it was my first interview. They asked me for the resume. Below is the conversation.

  1. Interview #1
  2. Interview #2

Note : Almost everything below is true and few sentences have been added to make it humorous.

  1. A : Interviewer 1
  2. B : Interviewer 2
  3. K : Me.

Interview #1

A : Tell us about yourself.

K : (I never expected this as its the most difficult question of all.) I am a simple guy interested in open source (Throwing random sentences). I believe in on the spot implementing/coding my ideas. Whenever I get a new idea I just code it without spending too much time on thinking about it.

A : What if you face some problem with your idea later?

K : (Suddenly Shiben’s this post popped up in my mind.) I try to fix it and if it doesn’t work in few tries, I just throw the code and recode it (Thanks Shiben for writing that wonderful post).

A : So you don’t do any research before implementing the idea. Do you like research?

K : Not really. A bit. (Lying) I don’t like research. It means a lot of time.

A : So, you participated in Google Summer of Code. What is this?

K : Its a Google funded project in which Google invites applications from several open source organizations and select almost 120+ organizations. Then candidates from all over the world proposes their ideas or picks up projects from organizations’ ideas.

B : You proposed your own idea?

K : Yes.

A : What was it?

K : IntelligentMirror. An intelligent caching system which caches RPM/DEB packages from several mirrors on the basis of package name and not the domain name or protocol. Its a squid plugin.

A : Tell us about this Intranet Chat Service (another project).

K : (Told everything I knew about it).

B : Tell us something about squid.

K : Squid is an open source proxy server used to hide thousands of machines behind a single public IP or to control what users browse in a shared network environment.

A : What is public IP?

K : (Answered)

B : What is difference between public and private IP?

K : (WTF?? I am not a kid. Answered.)

A : How do you hide a thousands of machine behind a single public IP?

K : NATing.

B : (Thinking that I just know fancy terms) What is NATing?

K : (Requesting a paper) Explained every single packet level details of NATing by drawing nice diagrams. (Interviewer tried to confuse at several stages but in vain).

A : (Feeling helpless, whispers to B) Lets ask standard questions ๐Ÿ˜‰

K : (WTF??? Feeling doomed ๐Ÿ˜› )

B : What is polymorphism?

K : (Abusing the interviewer at heart) It is some fu**ed up idea using which we can do few things which often confuse me and sometimes confuse the even compiler.

A : (Passing a sheet of paper to me) Write an example of polymorphism?

K : Wrote a function
int function(float a);
int function(char a);

B : Can I change return type of second declaration?

K : (Feeling awesomely confident ๐Ÿ˜€ ) No.

A : If I change char to double in second function will there be a compiler error?

K : Sorry sir. I am confused.

B : Define a class String and few functions on array of characters?

K : Wrote a class somehow with a few functions.

A : Write the copy constructor?

K : (You are torturing me. Don’t push it too much) Somehow managed to write a fu**ed up copy constructor
String(String & str) {
string = str;
}
(I know its wrong. Don’t point out.)

B : Why did you write this (the C++ this)?

K : To reference the member variable of current instance of the class.

A : You never declared it. How can you use it?

K : Its provided by C++. You know I used char, int also. (Dumb ass!!)

A : Ok. (Looking at my resume) You have interest in blogging.

K : (Feeling a bit relaxed) YES!!! I have three blogs. One technical, one about life and I bought a digikam a few months back and started a photoblog as well.

B : (Laughing) Interesting!!!

A : Why do you have some many blogs?

K : Because I love buying domains. Then I need to put up something on those domains. So, I write blogs ๐Ÿ™‚

B : How many domains do you have?

K : Around 15.

A : Where do you host these??

K : I have my own VPS hosted in US.

B : How much does it cost?

K : $50/month.

A & B : (Looking at me as if I kicked them in balls) WTF!!!! Where do you get all this money???????????

K : [snip] secret ๐Ÿ˜€

A : Thank you. I think we have asked enough questions.

K : Thank you!

I left the room. After that I returned to OBH (Hostel). I was not hoping that they’ll call me again for another interview. But I did wait for the call till 9:30PM. After that I went to bed. I was about to fell asleep that Kapil Bajaj called and asked me to report in Main Building. I was sure that this will be either a light round in case they are sure to count me in or it’ll be a revenge round in which they’ll ask questions about things I don’t know.

Interview #2

I entered the room and the interviewers were different this time. A bit more nervous then the last time.

  1. C : Interviewer 3
  2. D : Interviewer 4

I grabbed the chair. C picked up a sheet of paper and started writing on it as if he is a BIG BOSS.

C : (Writing an expression on the paper) Remove the extra brackets from the expression.

K : (Understanding that its a revenge. You employ people for software development or removing the brackets from an expression????) Having no clue of the solution to the problem tried writing something on the paper. (An image of “Ajay Somani” teaching removing redundant braces from an expression flashes in my mind. And I was like WOW!!). I gave the solution (I know there are two terms infix and postfix, but don’t have a clue about which one is infix :P) that we’ll start putting things in a stack and will throw away the opening and closing braces which doesn’t have a symbol or character in between them. And will pop them out to get an expression without extra braces. (What a guess?? ๐Ÿ˜€ and it worked).

D : Can you optimize it?

K : (baah!! I somehow managed to do it. Now what???) Having no clue about optimizing the above, I started throwing some random ideas. Devised one idea and showed to C but he caught it and proved me wrong. Took some more time and devised one more funny idea.
Expression : (((P+Q))*R)
Solution : We have two variable i and j with I pointing to first element and j pointing to last element. We enter a loop and start decreasing j and increasing i. When we see opening braces at expr[i] and expr[j], we throw them. And when there is no braces at either expr[i] or expr[j] or both we continue and jump over symbol and characters. While I explained the idea, it somehow worked for the expression. I badly confused the interviewer with my invention ๐Ÿ˜› He was like WTF!!! How can this piece of crap work?? I was about to laugh. I enjoyed the moment. It was one of the best moments of the day. He spent almost 2-3 minutes figuring out my newly invented algorithm and finally managed to prove it wrong.

D : See, this doesn’t work.

K : (Thinking, “Why are you telling me?? I know it doesn’t work ๐Ÿ˜› “) I am sorry sir ๐Ÿ™‚ (Controlling my laughter).

C : (Writing two numbers on the paper) This number ( character array 4568123) is rotated around some number and the original number is (character array 1234568). How would you get the original number from the rotated one?

K : (Having no clue about the domain of the problem) Thinking of swapping numbers here and there. Tried every possible combination but nothing seemed to work. What happened to my pool of ideas ๐Ÿ˜› (An image of “Kapil Bajaj” teaching inorder, preorder, postorder traversal flashes in my mind. Kewl!! I don’t have a clue about trees and whatsoever things related to those creatures). Now the big task is to make a tree out of the character array. (While I was telling these to Sachin Goyal. He suggested that plant the first character and water it until it becomes a tree ๐Ÿ˜€ ) I drew the array in some random orders on the paper and made a tree of some sort with 4 as root and 568 on the left subtree and 123 on the right subtree. (Now, all those organic structures like methane, ethane started crawling in my mind. I somehow remembered the rotation thingy). I rotated the fu**ing thing around 4 and it worked. I felt like the luckiest guy in the world. What a confidence I had at that time. I described the process to the interviewer as if solving tree problems is the easiest of all the problems.

C : What is order of problem?

K : (No clue about the problem itself. How do I know its order? ) Kept quite for sometime and kept myself busy with the problem itself ( I was so happy that I couldn’t get my eyes off the tree structure).

C : (Asking again) What is order of the problem?

K : (Thought about it for sometime) log(n). As the integers are in sorted order. Interviewer looked a bit convinced.

C : (Traping me) How will you make a tree out of that character array?

K : (OMG!! Not again! Tried to explain the impossible.) We’ll take the first character as root. Now we’ll build left subtree. We’ll go on putting the integers in the left subtree as long as they are in same order. In that way the order will break at 8 and after that we’ll start building right subtree (This somehow seemed to work).

C : (Totally frustrated by my guesses which were eventually working) Is this a BST?

K : (The only thing I know about a BST is that it is Binary Search Tree) Yes. (Confident as if I am the one who invented BST ๐Ÿ˜› )

C : (Trying to trap me further) Wrote two string “ABCDE” and “CDEAB” and asked to write a function to detect if they are rotated version of each other or not?

K : (Thinking that these are not integers and my awesome ideas are not going to work here ๐Ÿ˜€ ) We’ll somehow make a tree of a string, then traverse it (Leaving the traversal type for interviewer. I said only traverse it, because I don’t have any idea about how do we traverse a tree in inorder, preorder or postorder. So didn’t want to invite more problems). And then we’ll compare the result.

C : Ok. Thank you. Lets go.

And that was it. My adventurous innovations about trees stopped there ๐Ÿ˜€

All in all it was total fun being interviewed. I enjoyed every single moment of both the interviews.

PS : I am not correcting any grammatical, spelling mistakes.

 

Economic Crisis

It seems nobody is left untouched from the recent Economic slowdown or crisis in western world. Not even the people serving uploaded pirated content ๐Ÿ˜€

Economic Slowdown

Economic Slowdown

 

Back Links to VideoCache

This post’s aim is to boast a bit about my plugin videocache and generating some more backlinks for the website ๐Ÿ˜› Recently videocache was discussed on a lot of Thai tech forums. They helped me a get a lot of traffic and exposure for the plugin.

Tutorials in English and Other languages

  1. Youtube Cache with Squid + Lighttpd on Ubuntu
  2. caching youtube squid 2.6.STABLE14 di easyhotspot (xubuntuย 7.10)
  3. Caching Youtube dengan Squid di Debian
  4. Youtube Caching using Squid
  5. VideoCache: Plugin para Squid que cachea videos
  6. Squid, SquidGuard, YouTube Cache i AdZapper
  7. ใ€ๅŽŸๅˆ›ใ€‘็ปˆไบŽๆžๅฎšlinuxไธ‹็š„squidๅšyoutube็š„cache
  8. Mambang Newsย :ย Squid youtube caching

Other Backlinks from forums

  1. squid youtube cache
  2. ITP: videocache — cache audio and video files from websites
  3. Python on PFsense
  4. Setting cara menggabungkan 2 line speedy gimana ya..??
  5. only youtube taken from squid 2
  6. Squid zph and Mikrotik
  7. VC5 with webproxy – Caching youtube?
  8. Squid Wiki Pages

And a lot of other backlinks from other Thai forums but they need you to login to view forum posts, so not posting them.

PS : Everybody is in their true colors these days ๐Ÿ™‚

PPS : Work is going on for a third squid plugin ๐Ÿ™‚

 

My first written test for a job!

Well, the big day has come for everyone. Its morning 6:30AM and hundreds of people in almost the same dress walking down the road towards the same goal! Everyone thinking as high of himself as possible. The scenario on IIIT Roads these days is same as in front the newly build DLF building. Hundreds of people in white shirt and black pants. The dresses successfully hiding the actual personals, makes me feel very high of everyone I meet.

Coming to the test part, I was totally (+vely) surprised to see the techie questions in the written tests. I loved almost every moment of the test. I never felt like this during any of the exams before. It was a unique experience. I sat through the tests without feeling bored even for a single minute. Finally congrats to all who got selected for interview and good luck to everyone else ๐Ÿ™‚

Rest is secret ๐Ÿ˜›

Cheers !!!!

 

The ultimate feel of freedom

I feel really bad when I have a look at blogroll and there are no new posts. What has happened to the so called blogger batch? Well, after a bit of inspection, I discovered that *they* (including me) have placements. But should you really give up what you like just because right now there is something else which is driving you nuts? These days, I see a lot of people (who were cool till a month ago) under serious stress. People like KBC, Ganja who are talented in every possible way from watching the stuff of the other type ( ๐Ÿ˜› ) to studies. But its a matter of one or two sentence(s) to completely break them down. May god help them in interview.

What happened to the senior bloggers? Well, it seems few of them are angry at terrorists and want to refrain from blogging and few others think that writing four lines after forty days is blogging. And few others think that they are not kids anymore. The grown up MS guyz now refuse to blog. And few others are now aliens. Don’t expect to hear from them. Thats all! So no bloggers and hence no posts.

And I feel bad when I say that there are countable people in junior batches who actually blog ๐Ÿ™ There used to be a fight for being in the top 10 in IIIT Blogroll. But now even if I don’t post for a week, my posts will still be in top 10 ๐Ÿ™ Come on people!! What happened to you all???

You might be wondering about the title of the post. The actual post starts here ๐Ÿ˜› I feel this (pre-placement time) is the most awesome time of my stay at IIIT-H. I don’t know why but I am experiencing a feel good factor ๐Ÿ˜‰ No tension, no pressure and then these economic crisis boosting the dollar ๐Ÿ˜› Taking everything lighter than I can afford. Suddenly everything looks hollow. The studies, exams, placements everything. But still this is THE busiest time of my stay here. Spending all my time on videocache, intelligentmirror, blogging. More than 25 downloads per day of videocache are pushing me to work on it ๐Ÿ™‚ And in this crucial time, all I care about is how fast my Fedora boots ๐Ÿ˜›

Good luck everyone for the placements. And have fun ๐Ÿ™‚

 

Quick updates

    1. Super busy with my VPS adventures. Updated VPS to 512MB RAM and 20GB HDD. Its super fast now at a cost of $50/month ๐Ÿ˜€ Learnt a heck of technology in past week.
    2. 76 downloads of my software videocache in last two days ๐Ÿ˜€
    3. Thinking thinking thinking and so on.
    4. Future still uncertain.
    5. Had a real tough time making the resume. Wasted others’ time as well while building it.
    6. Fooling Google is on my hobbies list now ๐Ÿ˜›
    7. Exams have started yet another time.
    8. Feeling discontent with whatever I know.
    9. Watched Dasvidaniya, Oye Lucky Luck Oye and Sorry Bhai. Watched sorry bhai thrice in three days. Something driving me nuts for the second time in life [snip..].
    10. Rest laterz.
       

      How to make a fool of yourself?

      1. Configure your firefox to cache 1GB of data.
      2. Run squid proxy server on your machine in aggressive caching mode by f**cking up with refresh patterns.
      3. Then actually use the above proxy server to browse.

      Wasted two hours (5AM – 7AM) in debugging a clean and flawless php script on a remote server with pathetic response time because my firefox+squid messed things up and never requested the actually script from server :((

      Still I love caching ๐Ÿ˜›