Thursday, December 07, 2006

Techies do suck at marketing...

I had to implement IPSec on Minix 3.1.2 for my Internet Security course this semster. Had it not been for the incident, I will be ranting about later in this entry, this entry would have been a detailed overview of my implementation.

We (grp of 2) were given about 5 weeks to implement the project. We finally nailed it and were very proud of our creation. Adding IPSec on the IP layer of a micro kernel based OS has its own kicks. Everything from designing, programming and debugging were harder than on a monolithic OS(I have done some on FreeBSD and Linux). Severe memory constraints (within Vmware) made the kernel to panic and, everyone with kernel development experience knows how hard it is to trace memory leaks. After painstakingly tracking and squishing the bugs, our product was ready for prime time.

For non CS people, we "Software developers/engineers/scientist" treat the software we create as a work of art... more like our own child. We get so absorbed in the beauty of our creation that we lose sight of the reality, which is what happened to me.

Dr Du has a different way of evaluating projects. He alloted just 15 minutes per group and never touched the keyboard or say anything. He asked us to step into salesman shoes and try selling the product to him. We on the other hand, full of ourselves, raring to show off our product, had 16 test cases (which were necessary to prove that our implementation was correct) and a presentation (of 4 slides.. just explaining the setup and robustness) all squeezed into 15 minutes. We couldn't have been more naive. We took around 8 minutes to explain the setup properly and then tried to show the test cases to him. Running 16 test cases in 5 minutes was clearly impossible...the inevitable happened,...we fumbled and the demonstration went downhill after that. Even though I might have made the best darn project in the class (yes I am egotistic and full of myself... i need to see a psychiatrist )... the world never got to see it.

I went through the three phases of denial, anger and acceptance. We were almost wailing like a kindergarten kid, that 15 minutes was not enough to sell a product we made in 5 weeks.... acceptance came later when we realized what went wrong. How much time would have been enough? 30 minutes? 1 Hr?... for all the 15 groups? Frankly, I could spend hours talking about the project. It is one thing to be enthusiastic about the work you do, but expecting others to show the same level of enthusiasm toward it is stupid and silly.

I guess I should sign up for an entrepreneurship course next semester....

PS: I will be leaving for India on 17th December. My Itenary will be available through Google Calendar. You can subscribe to it by clicking the button on the sidebar....

Saturday, November 25, 2006

Extreme science? Extreme stupidity?...

This story made it to front page on digg.

The post explains ways of ingesting Methylene Blue in order to turn the color of your urine to blue. Apparently would also changes the color of your feces to green.

I know that imagination and human mind go hand in hand, but paying attention to the color of your wastes and consciously doing something to change it, is weirdest waste of time. Since the story received 850+ diggs, I assume that either I am living under the log for too long and changing the color is the new fad or mankind has entered some sort of reverse evolution cycle and are slowly transforming back to monkeys.

Sunday, November 12, 2006

Rise and Fall...

If you have been in an airplane.. did you ever feel its speed? Well for those who haven't, the answer is no. Why? Because at that height, there is no frame/object of reference with which you can compare your speed. You can feel/estimate the speed of a train/automobile you are on by looking at the speed of the trees going by in the opposite direction and believe me you will be more thrilled driving a bike at 200 miles/hour than being in an airplane cruising at 700+ miles/hour. The increase in your speed does not thrill you after a certain point....

Our life follows the same rules. Here is how I relate to it..
  • When I was a kid, I didn't study because I wanted to; but because my family wanted me to (come on, none of the kids want to go to school right!!). Although I had developed interest in science and computers at a very young age, yet it was not in competitive sense. I learnt what I loved and crammed what I was told to... life was a lot simpler. I simply judged my performance based on how happy my family was.
  • Then came 11th and 12th standards and the mad race to join IIT, the temple of science and technology. It is considered the only goal in life by some 100,000 Indian students, only 4000 of whom make into the institution. I took part in this race too... Performance here was gauged purely by my relative performance amongst my peers. I was not very good at this game and lost it :( ... nevertheless I got into some college.
  • Undergrad engg was a totally different experience. Since I was away from my family, there was no one to really feel happy for my achievements and feel sad for my failures, I had to do it myself. After a while, when you have your own fair share of successes and failures, you don't feel that adrenaline gush. You don't feel happy when you succeed and sad when you fail... you just feel kindda humble ( I am anything but humble :P) , enlightened and very very numb. I have seen a lot of people in this situation, they all react in strange ways... few of them gauge their performance by their relative success amongst their peers... this is healthy in the beginning until they start believing that the failure of their peers is their success. Most idiots you see in the corporate world believe in this philosophy. Others are not able to handle this and start smoking, taking drugs etc etc. Still others like me, continue working endlessly in search of excitement.
  • Finally came the grad school. Although we all have a moderately socially active life, professionally we all are still loners. Everybody has his own battle to fight. This is where life gets really weird. Not only you can't use any methods that were used in undergrads(sadistic or otherwise) but also you cant make anyone to relate to your problems. Imagine being hurled into space with no heavenly bodies, just you and your peers, all going in different directions, thinking their's is the right one. Nobody really understands the trajectory of other's path (although there is a general idea amongst people going in the same direction)... And then when you are thus enlightened you realize that there is a race that can give you excitement. The race with yourself... and I think that is what keeps me going.
So in retrospect, how can I always succeed if I have race myself. Of course, I cant outdo myself everytime... I am not a superhuman, the key is to occasionally lower your standards so that you can defeat yourself and raise it when the decrease in performance goes down below the limit. The bottom line: sinusoidally change your standards to win everytime. This way life becomes more bearable, your brain is not rusted and you feel less frustrated at your failures. It is really important that you don't find an absolute goal but a relative one on the horizon, something you might never reach, or else your life will lose its meaning after reaching that goal.

Interestingly my finding is similar to that found in religious scriptures.

Friday, October 27, 2006

Ubuntu Edgy Eft and Firefox2

The developer community seem to be on drugs. Last week Ubuntu Edgy Eft, Firefox 2 and Fedora 6 were released. Apple have also given hints of Touch screen iPod and iPhone. Last but not the least Microsoft have released IE7 after 5 years.
Am not an apple user so might not use those products. I am not going to even try getting IE7... i cant browse on anything except firefox. Fedora 6...ummm .. only if I am forced too, not interested, life is too bland without apt-get.

However I did upgrade to Ubuntu Edgy Eft. The user experience in Ubuntu never stops to amaze me. I find it so much easier to use than Windows. If you have ever upgraded Windows, you know the process...
  • Pop in the CD..
  • Navigate through ugly menus, expect the user using Windows to play solitaire to know how to partition, which partition to load on...
  • Take 30-50 minutes to install.
  • Take another 1 hour to install the drivers.
  • Take another few days to get all the applications running.
I was running Ubuntu Dapper before... i just did gksu "update-manager -c" .. This took care of everything. It downloaded all the upgrades, installed it... thats the level of abstraction that creates a cult user following. As an added surprise it upgraded my Firefox (although I was running firefox2 on dapper). The only hitch was the some unwanted services that were running at startup. I killed them using sysv-rc-conf (Fedora users think chkconfig)... I think I am in love with Ubuntu :P

Firefox2 deserves a mention too. It has integrated several function provided earlier by extensions. One of the feature is the snap back tab feature earlier provided by SessionSaver. Just press Ctrl+Shift+T to get back a tab you closed by mistake. I am also a sucker for its inbuilt spell checker. Blogging and writing mails is so much fun now that I don't have to use the bloated spell checking web app.
I know that I am addicted to computers, Linux and internet... but am too smug to care.

Wednesday, October 25, 2006

Practice what you preach...

Today morning I received a mail (via listserv) from Dr Du. He wanted to fix the time slot for a make up class as he was going to attend a conference during the regular class hours. Here is the mail he sent us:
I have proposed the following 3 time slots. Unfortunately, so far, there
is an exactly one conflict for each of them. Since there is a 3-way tie, I
need to pick one randomly.

(1) 11:00 - 12:20
(2) 13:00 - 14:20
(3) 14:00 - 15:20

What makes this thing interesting is that I also have my own preference.
How can I pick one while convincing you that this is picked randomly, not
based on my preference?

To demonstrate an important application of one-way hash function, I would
like to propose a protocol to generate a number S (S will be 1, 2, or 3).
The S-th time slot described above will be picked. There is an important
requirement: S must be random; neither I nor you can control the value of
S. Let's conduct this protocol through emails.

(1) You pick a string M: Whoever reads this email first, please send me
any string you like (please send to this mailing list, so we all know the
string). Let's call this string M.

(2) I also pick a string K: I cannot tell you my string at this moment
(think about why). However, I need to tell you something, so I cannot
change my string after seeing your string M (think about why I want to
change my string). Therefore, I am sending you the md5 hash value of my
string. Here it is: 1c4bfe13bf159f26ddd23926b7376b14

(3) After receiving your string M, I will generate an HMAC_MD5 value on M,
using my K as the key. We will get a 16-byte number.

(4) Let D represent the last byte (the least significant byte) of the
HMAC_MD5 value. I will compute S = (D % 3) + 1. This result S will be our
final decision.

Question: is this protocol fair? Can anybody (you or me) control the
outcome? Please think about this, and we will talk about it in our class.

Now, I am waiting for your string. If you are the first one to read this
email, please send us a string of any length. I assume there is at least
one hard-working student in this class. If nobody sends a string by 8:00am
tomorrow. I will use M = "AAABBBCCCDDD", and generate a decision.

- Kevin
(published with permission)

Is there a better was to teach Internet security?? ... practice what you preach

Thursday, October 12, 2006

Another year gone by...

Another year passed by... Am 24 odd years old now. It wouldn't take a rocket scientist to figure out how I spent my birthday. I had to reply to 150+ emails and orkut scraps who had wished me. All efforts to work today went in vain. So here I am at home.. still checking my mail every ten seconds and pathetically blogging about my birthday. Did not have a party as people had their midterms... generally I gift myself stuffs on such occasions but after searching the web, I couldn't find anything that fits my budget :(

The past year was great... although it could have been better. Since I am expected to be a bit more mature (hehe...lolz), let me plan the next year or set the goals I need to achieve before I turn 25. This is just for me...

  1. Get a Job: I need one... am graduating in May'07
  2. Retain/Increase the level of weirdity in action : I hate mob mentality but I am not a non-conformist. Since my actions are so much different from my peers, some people call me weird... (something like .."He blogged instead of getting wasted" weird).
  3. Shed the movie geek title: I know people who download movies like crazy and I watch movies like crazy. There have been times, when I had seen the same movie thrice... back to back. I know their IMDB rating, RottenTomatoes rating, the wikipedia entry and filmography of the actors. Its an addiction I need to get rid of. I have read less than five novels since I came to the US.
  4. Definitely read more.
  5. Code more.
  6. Maintain my sourceforge projects.
  7. Eat healthy so as to exercise less :P
  8. Get a girlfriend... the possibility is meek, given that I spend 18/24 hours in front of the computer.
  9. Get more gadgets... you can never have enough of those.
  10. Lie without feeling a pang of anger or guilt.
On a totally unrelated note I came third in TopCoder's Collegiate challenge. I got a $50 gift certificate from Best Buy. Unfortunately I did not find anything there that I need for myself or for gifting anyone in India..

Monday, October 09, 2006

Beginner's guide to Stack buffer overflow...

If you are a C/C++ geek with an ounce of interest in system programming, you would have definitely tried stack buffer overflow. Most of the websites out there are either too detailed or too abstract. Some of the popular websites for buffer overflow claim success on age old machines.. of course the techniques listed on these sites don't work and are terribly hard to replicate.

So all you linux newbs, here is a simplistic buffer overflow exploit written in C... Well I wont call it an exploit, more of a way to modify the return address. A little bit of assembly knowledge would help but is not necessary. I did it on Ubuntu Dapper... fasten your seat belts now.

void function(int a, int b, int c)
char ret5[1];

int main()
int x;

x = 0;
x = 1;
*Adapted example from
The above program just prints 1 on the console... what did you think? BTW do keep the debugging option on while compiling the code, i.e your command line should be:
$gcc -o program program.c -g

Now its time to wear that black hat and fire gdb.

(gdb) break 1
Breakpoint 1 at 0x8048360: file temp.c, line 1.
(gdb) r
Starting program: /home/sridhar/bufov/program

Breakpoint 1, function (a=1, b=-1082010236, c=-1082010228) at temp.c:1
1 void function(int a, int b, int c) {
(gdb) s
3 }
(gdb) info registers
eax 0x10 16
ecx 0xbf81d58c -1082010228
edx 0x1 1
ebx 0xb7ef2adc -1209062692
esp 0xbf81d4a8 0xbf81d4a8
ebp 0xbf81d4b8 0xbf81d4b8
esi 0xbf81d584 -1082010236
edi 0xbf81d510 -1082010352
eip 0x8048366 0x8048366
eflags 0x200282 2097794
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb) print &ret
Hmm so what is the address of ret?
$1 = (char (*)[1]) 0xbf81d4b7
(gdb) disassemble main //Lets see the return address in main
Dump of assembler code for function main:
0x08048368 : push %ebp
0x08048369 : mov %esp,%ebp
0x0804836b : sub $0x28,%esp
0x0804836e : and $0xfffffff0,%esp
0x08048371 : mov $0x0,%eax
0x08048376 : add $0xf,%eax
0x08048379 : add $0xf,%eax
0x0804837c : shr $0x4,%eax
0x0804837f : shl $0x4,%eax
0x08048382 : sub %eax,%esp
0x08048384 : movl $0x0,0xfffffffc(%ebp)
0x0804838b : movl $0x3,0x8(%esp)
0x08048393 : movl $0x64,0x4(%esp)
0x0804839b : movl $0x1,(%esp)
0x080483a2 : call 0x8048360

|----this is the return address. How did I know that? well its the statement
after the function call

0x080483a7 : movl $0x1,0xfffffffc(%ebp)
0x080483ae : mov 0xfffffffc(%ebp),%eax
0x080483b1 : mov %eax,0x4(%esp)
0x080483b5 : movl $0x80484b4,(%esp)
0x080483bc : call 0x80482b0
0x080483c1 : leave
0x080483c2 : ret
End of assembler dump.
(gdb) x 0xbf81d4b8 //Go back up and see the value of ebp...
what's it pointing to? Notice its just below ret

0xbf81d4b8: 0xbf81d4f8
(gdb) x 0xbf81d4b9 //hmm the return address should be some where nearby
0xbf81d4b9: 0xa7bf81d4
(gdb) x 0xbf81d4ba // nah.. this is not the one
0xbf81d4ba: 0x83a7bf81
(gdb) x 0xbf81d4bb //still not there
0xbf81d4bb: 0x0483a7bf
(gdb) x 0xbf81d4bc //BINGO!!
0xbf81d4bc: 0x080483a7
(gdb) print &ret[4] //Now lets find out how far is ret away from the return address
$2 = 0xbf81d4bb "��\203\004\b\001"
(gdb) print &ret[5] //GOT IT
$3 = 0xbf81d4bc "�\203\004\b\001"
Now that we know that ret[5] contains the return address, lets go for the kill. A brute force way would have been to just fill ret with long strings so that the buffer overflows. If we know the the position of a code in the memory we can overwrite the return address to branch to that address instead of back to main. For the sake of simplicity, I'll just skip a statement in main(), so that the output is 0 instead of 1 (i.e.the statement x=1 is skipped).

From the disassembly of main() we know that the return address should be 0x080483ae instead of 0x080483a7. Which means i need to increment the return address by 0x080483ae-0x080483a7=7.

Lets take a look at the code now..

void function(int a, int b, int c)
char ret[1];
*(long *) &ret[5] +=7 ;
int main()
int x;
x = 0;
x = 1;

*Adapted example from
Ok WTF is *(long *) &ret[5] +=7 ??
Well it turns out that data is stored on word boundaries for efficiency, and we know that word is of the size of long. Hence the above statement dereferences the long data buffer pointed to by a char pointer. Wait for some time till that concept sinks in...
Feeling better now??good..
Now compile it $gcc -o p2 p2.c
and run it
If you followed everything till this point, you are no longer a newb...

Update: I reffered this article.

Wednesday, October 04, 2006

IP Attacks..

You know that you have taken a great course when you look forward to do each project and the assignments given... Internet Security is one such course. I was supposed to stress test Minix 3 and Linux for vulnerabilies. Specifically I had to attack the ARP, IP and ICMP protocols and find out the vulnerabilities if any. I always thought that this was a waste of time, why on earth will these attacks work?? after all.. these protocols have been there for more than three decades.. how wrong was I!!... This is what I found out :

Attacks Minix 3 Linux
ARP Cache Attack yes yes
IP DoS Attack no no
IP Fragmentation Attack no no
ICMP Attacks

Ping of death no no
Smurf Attack yes yes
Destination Unreachable yes no
Source Quench no somewhat
Redirect yes yes

Out of all the attacks, I find ARP cache poisoning, ICMP redirect and Smurf attacks quite slick. There is no simple method to detect these attacks and anyone can do them (at least you can after reading this blog entry). You don't have to be a cracker with a brain of a rocket scientist to use the publicly available tools.

I used the netwox tool box to conduct the above attacks. Its an amazing collection of 221 tools, each of which can be customized to bring even the most monstrous server to its knees. You can read my documentation of this attack here. This attack reveals some really nasty design flaws in these protocols, sadly changing them means changing the software on a billion computers(i totally made that number up but you get the point right??) on this planet.
Also I must say that out of all the FOSS OSs I have used, I find Minix's source code most well written. If you are a kernel hacker and an object oriented developer at the same time, you will surely appreciate how well written the code is. I find it better than FreeBSD and certainly better than Linux. The Microkernel implementation would also rock your world.
Lastly please don't try these on public networks... your arrest warrant will be stamped before you can reboot your computer. I tried these on my own computers behind a NAT. And BTW.. if you are using Windows, be ready for a bsod.

Wednesday, September 27, 2006

A blog that inspires...

I have been reading/writing blogs for quite sometime now. Never has any blog awed and inspired me like Anoushes Ansari's blog...
All the paleolithic(stone age) people, who have never heard her name before, should definitely read her wikipedia page before reading her blog. For the lazy souls, she wanted to be an astronaut but couldn't get into NASA. She ended up starting her own firm, a bit of this a bit of that, saved around $20 million and went to international space station. She will be returning to earth soon.

Friday, September 22, 2006

Tech update

Here's a list of subtle tech tools and products that have escaped public limelight, that I have grown to appreciate and love:

  1. Ubuntu Bash: The bash is now context sensitive. In layman's language it knows which file you are going to open based on the program you are going to run. Suppose you are using latex. The folder is littered with file.tex, file.aux, file.dvi, and file.pdf. Normally bash auto completion would auto complete till file. and wait for you to type the rest. Now it just completes the command line depending on the program, i.e. if you have $latex, the bash automatically place file.tex in front of it when you type f and press tab.
  2. Vim7 time line: I haven't used this feature much but it looks very promising. If you pass the command :earlier 5m the editor presents you with a 5 minutes earlier screen. Neat damage control mechanism.
  3. Cscope: Something like ctags but more robust and flexible. Better vim integration.
  4. Vim autocmd: Ok.. this is pretty old but I discovered it quite recently in one of the forums. I use it to generate broiler plate for my programs.
  5. Ruby: Well I know its an awesome programming tool. I love it because its a programming language for non-programmers. I taught my flatmate, MS in Biotech, ruby in half an hour, who now uses it for analysing his data (he was using excel to do that before...eech).
  6. Billmonk: Amazing website that makes money transaction between friends less awkward and hassle free.
  7. Prosper in LaTeX: SuperHot package for creating presentations in LateX.
  8. Launchy: Its a windows based program that indexes your start menu and makes them available in a command line like run app. In short, it cuts down the trips to your mouse.
  9. Avast and Zone Alarm: I must say hundred time faster, leaner and better than Norton Antivirus.. what more; its free.
  10. mp3info: Cute little command line tool to dump the ID3 tag information of a MP3 file.
11. Synergy: How can I forget Synergy? Its a cross platform keyboard and mouse sharing software and comes in handy when you are working on multiple computers. The best part is that it also enables clipboard sharing, so you can cut from one computer and paste in another.

Tuesday, September 19, 2006


I had been working on SQL Injection attacks for the past couple of days. I designed a vulnerable website (I wont give the website...because its vulnerable) for the students to crack. The whole concept of introducing an undergrad to real world security threats is really awesome and I wish that I had done my undergrad here. Anyway comming to the point, Dr Du wanted me to give a presentation to the undergrads(he was not in town)... So what better way to impress a bunch of undergrads if not with a *bling* presentation made in LaTeX and shown on an Ubuntu machine with all the eye candies and a shiny ubuntu sticker on the laptop case :D.

The class was at 8:00 am, so I forced myself out of bed at around 6:50, organized my self and headed for my first class ever. There were just 10 students in the class!! as opposed to 30+ students i am used to seeing in a class. I booted my laptop to a shiny ubuntu screen fully loaded with the MacOSX look. I waited for the ooohs... they never came :(. I walked them through the presentation.. i was too enthusiastic about it.. come on.. I was showing them how to break into a website and not a single soul showed any interest. To top it all, the floor was not wired with wireless internet so I was not able to demo the website I had built. I finished the one hour presentation in half an hour... not a single person asked any question. Nobody was even surprised to see powerpoint like effect in the pdf I had prepared. No one had any doubts when i finished the presentation. They were all staring blankly at me, or at time staring trough me at some invisible object... or probably were sleeping open eyed. At the end they silently left the room before I could say anything. I remember someone giving me a presentation when I was a freshman and in my senior years... I and my gang of friends used to flock the speaker and talk at lengths about the machine he was using and the presentation he gave.. What has the world come to?

Saturday, September 16, 2006

Hack your audio collection

DISCLAIMER: The code shown here is purely for educational purposes. The author does not suggest anyone to use this code....he himself hasn't used it. Everything that follows in the next paragraphs is a lie. This is just to demonstrate the versatility of the Perl language. Music piracy is a heinous crime and I urge everyone to pay for all the songs you download. All stunts performed here are done by professionals, please don't try them at home.

Well since this is the first time I am using red fonts on my blog, you would have guessed that I am up to something nasty(keep the disclaimer in mind). Coming right down to business, I wrote a Perl script( with a little BASH littered around) that downloads all the songs of any bollywood movie, fix their weird names and put them nicely in a directory. Also since the id3 tags are intact, they are perfectly well suited to be played from an mp3 player as well as from your computer.

Here's the script. Currently it runs only Linux and needs mp3info and LWP module for Perl installed (which.. if you use Ubuntu/Debian is just an apt-get away). Since they both are there on windoze too, readers are encouraged to go ahead and try it on Windows. Basically what it does is, it just goes to a free mp3 site and downloads all the songs. Later it reads the songs' title on the id3 tag and renames them.
E.g $./ fanaa
this would create a directory called fanaa and download all the songs from the movie fanaa in that folder. I downloaded 1 GB of bollywood songs yesterday...

I would specifically like to draw your attention to three lines of code that can create wonders

$realname=`mp3info -p\"\%t\" \"$filename\"`;
$realname=~ tr/" "/_/;
Now simply putting it, this tiny perl script reads the mp3 title from the ID3 tag of the song. The second line replaces spaces with underscores and the last line renames the file. Imagine having gigabytes of songs with stupid names that your friend though were funny.. now you can name them automatically. You can be as creative as you like.. I had a friend who dumped all his music collection in one folder and soon had an unmanageable mammoth collection of songs, I just modified this script a bit which auto-organized the songs into folders named after the album(again from ID3 tags). Dont you love Perl and Linux after this??


Thursday, September 07, 2006

Piled Higher and Deeper...

All the graduate students (i.e. MS/PhD) would have realised by now that this post is about the famed PhD comics . For those people who claim to be mature/old/wise and think that comics is just for kids... here's a strip for all of you guys.

This is one of the few no nonsense comics that really appeal to grad students. I would count it in the league of Calvin and Hobbes. The author only focuses the content on the graduate students... so even though non-graduate students will find it amusing, they wont relate to its characters. It would be really difficult for them to separate out comedy, sarcasm, irony and truth from the content.

Recently Dr Jorge Cham, the author of PhD comics, paid a visit to SU. The topic of his presentation was: The power of procrastination...
It was incredible.. it still is.. on how someone can give an hour long presentation on something as mundane as that...

His presentation just gave a comical/ironical overview of the problems graduate students face all over the world. It was not just random stuff that he was dishing out... he supported his theories with properly researched data. One of them was a research conducted by UCB. According to the research, 95% of graduate students suffer from extreme anxiety, 65% of them suffer from depression at some point in their academic life, 10% think about committing suicide and .5% actually commit suicide. It was amusing to find how the lives of grad students, all over the world is pathetically the same...(no pun intended)

Although Dr Jorge has a PhD in Mechanical Engineering from Stanford and his research focuses on neural prosthetics (brain-machine interface in a nutshell), he is better known for his comics. He is amazingly jovial and so much unlike the regular PhD guys I have met... who either are serious about everything or pretend to be (as if the world wants the doctors to be dark natured.. immersed in thought... a total bullshit).

The comics are now his full time job... he teaches at Cal tech though(part time i guess). After 24 years of education... pushing, stamping, sweating and getting a PhD from Stanford.. this guy chooses to write comics for a living... I salute him.


Sunday, September 03, 2006

One more toy....

Well since I got an RA, I gifted myself with an mp3 player. The best part of gifting yourself is that you always get what you want :P.

Anyways its a Creative Zen Sleek Photo. All my iPod lover friends found it blasphemous that I wasn't going for an iPod. I personally find the herd mentality quite sickening. I just go to CNet's top 10 list and check out the best stuff available. I then ignore downside listed due to any usability feature... weirder the interface, more comfortable I am with the product. Then I go to Campusi to check the cheapest deal available. It worked for my laptop, for my cell phone and I guess this player is not that bad either.

Frankly speaking, anybody who used iPod would find the interface totally non intuitive. Personally I think the abstraction( both hardware and software) is crappy. You need two wires to charge, It has a proprietary usb interface.... making it work on Linux is a headache (not tried it yet... but read lots of blogs about it). Also its an MTP device and not a universal mass storage device so you cant use it for storing data (well you have to partition it to use a partition as a data drive)... so why did I buy it??
It has a FM player, FM recorder, Audio recorder, FM preset and autoscanner. It also has support for custom equalizers. iPod has none of these features... plus this costed me $185 with tax and shipping. iPod costs around $250... just for their label and brand image. So even though this piece of machine is ugly... its powerful as hell. Something like Linux... I don't care about the GUI.. I just expect it to play songs and am pretty happy with it.


Monday, August 21, 2006

Paid to play...

Love your work and you will never have to work again.
Fortunately I always get to work with what I love...computers/technology. For the past one year, I have been working under Dr Howard, Dept of Psychology. It is really fun working on computational neuroscience. Specifically, I am into cognitive modelling. The work is great and I enjoy the *umph* element that i get from people when I mention Cognitive Science. Currently I am putting together a simulation tester (model fitter for the leets) based on Genetic Algorithm. The only sensible library available for free is GAUL, which is unfortunately in C. Well... its truly a nightmare to develop a high level application on a low level language. Past one year I was almost exclusively using C++, the STL made life a lot easier. After using C++, using C is like using assembly language with just 4 registers to play with. Anyway it took me a damn day to get the C based XML parser (libXML2) to work satisfactorily with the rest of the scratch pad code. Hopefully I will get the thing running pretty soon.

On a related note, Dr Du offered me RA'ship(which I obviously accepted). This fall I am taking Internet Security course under him. I will be paid to discover, exploit and patch vulnerabilities (SQL injection attacks, buffer overflow attacks, integer overflow attacks etc etc)... the stuff i like to do in my free time!! (but grad school never gives much of that) I will be paid for it. Since I cannot accept two employments, I will be doing an independent study under Dr Howard... so I will still be working with him, but as a student not an employee.

So this fall (and hopefully spring), I will be a Research Assistant... working on computer security and doing a study on cognitive science simulacra... and be paid for it.
Can life get any better??


Sunday, August 20, 2006

Small step man, a giant leap for Mankind

I stumbled upon this video through digg. Its a legendary 1984 keynote speech by Steve Jobs when he unveiled the Macintosh for the first time. Without doubt, this is the best keynote I have ever seen... it is so different and was so much ahead of its time. The audience went ecstatic when Steve Jobs let the computer "do the talking"(see the video to believe it). I am certainly not an apple user, but it did make my eyes watery.

Yes... Xerox made it, but it was Apple who gave it to the people, and since Microsoft just made a ripoff and was responsible to mass marketing the product, I think the credit goes to Apple for starting the chain reaction. Here's the video... If you are a technologist, get a tissue.


Thursday, August 03, 2006

Memlab.. in Vancouver

I attended the annual conference of the Society of Mathematical psychology. It was held in Vancouver, Canada. A chance to visit the beautiful city for free was motivating enough to push me to attend it. We chose to fly to Seattle and drive to Vancouver... the drive was supposedly scenic (I would never know as I slept all the way :P)

The meeting was three day long. The talks were short but they really challenged the limits of my mathematical knowledge (which when compared to that of a Cognitive psychologist, is quite low). I totally blacked out in a few talks and some talks were so intriguing that my minds lingered onto them for the rest of the day rendering it useless for other talks. Queuing Network modeling of Behavioral an Psychophysiological measurements in Multitasking by C.Wu and The Neural Basis for categorization Expertise by Ashby were two such talks which piqued my curiosity. There was a symposium on problem solving on Tuesday which was really fun.. mostly because the talks were given by Computer Scientists rather than Cognitive Psychologists, so they seemed more clearer and cleaner.

Leaving academics aside, Vancouver is the most beautiful city I have ever seen. It has mountains, oceans and GREAT food... what more can one ask for. The mountains and the ocean are pretty much free :P and since all expenses were paid by the department.. food was also free. I had Italian, Japanese, Mexican, Greek and Indonesian specialty cuisines during my stay... man !! i was in heaven. But I must say, all cuisines (except Indian) suck when it comes to vegetarian food. I didn't have many choices.
The weather was really pleasant. Being back at Syracuse, with a temperature of 100F sucks... I wanna go back :(
I along with Vijay, Vinayak and Jennifer, took a walk along the coast to an aquarium. It was only a couple of blocks away from the hotel where we were put up. We were relishing the beauty at our own pace. The aquarium was not all that great ( I find seattle's better).. although I did get to see beluga whales, sharks and dolphins.

The return journey was an adventure in its own sense. Vijay was the Navigator Extra Ordinaire and we were supposed to visit Mt Glacier. We got lost and ended up in a rustic city of Sedro Wooly. It seemed to be scrapped straight out of a Clint Eastwood movie.. For a moment I thought that I got zapped in a time warp zone.

Anyway, we ditched the idea and got back to Seattle to catch the flight back.

PS: Click any photograph to check out my entire album of the trip.


Monday, July 24, 2006

Refurbished blog...

Q1)Why the new template?
  1. I had been monitoring the traffic to my blog via and Google Analytics. Both were showing a rapid decline in the number of people visiting my blog. Interestingly the readers with the resolution of 1024x768 were always loyal to the blog. The blog looked really crappy at 800x600 and on resolutions higher than 1024x768. I was kindda procrastinating a revamp as my laptop does not support resolution more than 1024x768. The background image which was perfect for 1024x768 appeared too big for lower resolutions and too small for higher resolutions.
  2. My dad and my friends had been complaining about slow internet speed in India and that it took ages to load the page.
  3. I realized that the background was sort of freakish. It looked more like a punk anarchist's blog.
The background(and along with it the template) had to go.

Q2) How did it all happen?
Ans) Well I was trying to give my blog a crumpled newspaper look, sporting a highly desaturated, washed away picture of mine. I downloaded a few templates and one of them had a snazzy AJAX menu in it. So I ditched the newspaper look built my template around those menus.. Weird?? I know, but I don't know AJAX/CSS (ofcourse I can read them) so I didn't want to meddle with them.

Q3) What about the head bobbing on the heading?
Ans) Oh that... I asked my roomy to click few pictures with a highly contrast background which I later edited in photoshop.

Q4) what's with the blue? You have it on your webpage too right...?
Ans) I am obsessed with blue color... cant live without it.

Q5) Roadblocks?
Ans) Hell yeah. The only thing I can edit files in, is VI. The editor made it extremely difficult for me to do anything. It doesn't support even the most basic indentation. Tab key doesn't work. To top it all it has a buggy interface. Half of my code just disappeared once. Had to redo the whole thing twice.

Q6) How long did you take?
Ans) Well 1 long sitting...


Monday, July 17, 2006

Blog ban in India!!

Do you remember your childhood?.. when people used to tell you what to do and what not to do.. You always thought that once you grew up, you wouldn't have to take orders from anyone. After growing up, you realize that you have to take orders from your boss... no matter how high you are, there is always someone higher than you. The mind wants to break free and wants to lead its own life. To stiffle this outrageous mind we have societies, we have government and we have rules. Their sole purpose is to stop the civilization from decaying. They are like the fence on the periphery of a steep cliff. The trouble arises when people start living by the fence, leaning on it and believing that fence is their nirvana.

This is what the current world we are living in is like. People are so scared of their government, yet so dependent on it, it's pathetic. It's like hiring a chef and then believing that you will die of hunger without the chef.

The reason of my rant is the current ban on blogs in India.
The preamble of Indian Constitution reads
We, the people of India, having solemnly resolved to constitute India into a Sovereign, Socialist, Secular, Democratic Republic and to secure to all its citizens:
Justice, social, economic and political; Liberty of thought, expression, belief, faith and worship;
Equality of status and of opportunity; and to promote among them all.
Fraternity assuring the dignity of the individual and the unity and integrity of the Nation; in our constituent assembly this twenty-sixth of November, 1949, do hereby adopt, enact and give to ourselves this Constitution.
India has joined the "blog-blocking" group of China, Pakistan and Saudi-Arabia. The article was a frontpage article on today. BoingBoing reported this article today and provides ways to get around it. In a nutshell, the action was taken because the DoT believed that the terrorists were using blogs to communicate. I am surprised they did not ban telephone, cellular services, postal services, television and radio. I guess the Indian government finds porn sites to be more educative and more helpful to the society than blogs as it decided to ban blogs instead of porn site. By banning blogs, Indian government is not just blocking some websites but nipping the very form of expression, expression of beliefs,faith and liberty. So much for being the biggest democracy in the world. Many people are claiming that this is just a 48 hour operation and not a complete ban. I hope so too....


Saturday, July 08, 2006

10 deadly sins a C++ n00b commits...

I am a passive user of a lot of news groups and communities. I rarely reply and seldom do I ask questions, but I keep an eye open. In case I have a better answer to a question I do jump in, but that is rare.

Of all the groups/communities I'm a member of, C++ groups seems to have the maximum number of flame wars. The reason: People think that the code their compiler compiles is great. Lately I have found myself clenching my teeth and counting till ten after reading a post. Here is my compilation of 10 great sins you can commit while coding in C++ and posting related queries in C++ groups.

  1. Use #include < iostream.h > instead of #include < iostream > : People are not aware of the fact that iostream.h does not provide you with the namespace goodness. They completely trash the warnings generated by any modern compiler. The standards were introduced in 1998...its 2006 people, GET A BRAIN.
  2. Use the old Turbo C++ compiler: Almost all the Indians (I don't know of other people) are taught programming on this compiler. This was just a toy compiler...meant to be a toy compiler. It does not complies with the standards and introduces its own header like conio.h which were never a part of standard C++. There are plenty of free C++ compilers on any imaginable platform. E.g g++, Visual C++ Express, dev C++ etc.
  3. Asking stupid questions like "What will be the output of printf("%d%d%d",++i,i++,++i)" : It obviously depends on the way the parameters will be pushed onto the function stack. The output will be different on different machines. It is really irritating when they ask the same question again and again and are stubborn about an answer just because their compiler gave them that output.
  4. Posting job vacancies: I don't know which part of the sentence "C++ users group" they don't understand.
  5. Posting links: More often than not you will see postings like "Hey check out this cool link" or "awesome video"... I would punch their faces if I could.
  6. BGI graphics: This library was developed for MS-DOS ... I don't know why on earth do universities in India still make students do project on it. Another Turbo C++ induced crap.
  7. int86(): Hail Yashwant Kanetkar for this. Without doubt it was one of the best book for introductory C, but its outdated. Modern operating systems DO NOT provide direct access to the hardware (which was not the case with Win98 and MSDOS).. It might be a good learning tool but thats that. No body uses it professionally. Beginners are all excited about controlling the hardware... turning the keyboard lights, tuning the beeper.. all of us know about that silly function as much as you do so don't expect any help... do expect flames. Also C queries on a C++ group!!!
  8. System( ): this function is like the fail safe. Windows people do system("PAUSE")... new linux programmers do system("clear"). Maybe your executable looks pretty, but its not portable and makes you code less elegant.
  9. Using abusive words: Well this is acceptable sometimes but I have seen queries like... " I have a @#$%%% program which uses some @#$$ library and the damned thing crawls" also some replies like " Who the @#2! you think you are?"... come on guys this is a @#$%$ C++ user group.
  10. n00b questions: E.g "What is a class?", "Who wrote C++?".... Google it out buddy. We are not your tutors.


Sunday, July 02, 2006

Another thing to keep me busy..

My life... atleast for the past 5 years seems to be wired with the computer. The first thing I do in the morning is boot my PC and check my mail. Then I check my blogroll (which is really huge.. check out the link on your left). By the time I finish going through all the entries, I become aware of my stale breath and hunger...after freshening up, I dig down to the links and scrap out pieces of useless trivia. Sometimes I ask myself as to how did man survive without computers?... what did he do? If you are reading this blog, then chances are you don't know the answer to that question either. The only topic I can discuss with non-computer people is movies.

To do something besides meddling with computers, I got myself a tin whistle. Now this was not a random foray into the music world. I had learnt tabla for two years and I have vague recollection of learning carnatic music and hindustani music. I like music but don't listen to it often because it stops the number crunching part of my brain (well melodious music does... hard rock and heavy metal turns it on).

To cut the long story short, I have been learning tin whistle (or pennywhistle). I can play few Irish folk tunes. But I must say, its really easy in comparison to other instruments I have tried. It has a really sad sounding melody attached to it that I have grown to appreciate... or maybe its just the notes I am playing.

PS: On a totally unrelated note I got 3.83 GPA this sem. last sem it was 3.4 :( ... so my cumulative GPA is pumped up to 3.667... yay

Thursday, June 15, 2006

The One...

The past few decades saw exponential increase in the usage of computers. This was made possible by two geniuses (evil if you prefer...), Bill Gates and Steve Jobs. If the world was left to the academic world and nothing was done for a profit motive then all the smart people would be writing smart papers and devising smart products, but without the likes of Gates or Jobs widespread adoption of such products is next to impossible. It is due to them that we know and use the "mouse". It is because of them that we have our own personal computers... They were the forerunners of a totally new generation. I would say that they marked the end of industrial age and the starting of an information era because the other computer giants like IBM functioned much like industrial powerhouses.

Gates will be retiring in a few years and market is full with the rumors about Jobs' retirement. You would say that Microsoft and Apple have enough money to sustain themselves... well they do have money but they wont be able to sustain themselves. Apple had to rehire Steve Jobs to make a market standing. The CEO of Pixar was rehired by Disney to stop the plunging stock prices. Even though these firms are outrageously big, it takes only one man to run the show. 96% of the computers have Mac or Windows on them, i.e 2 out of 6 billion people in the world govern how millions of people worldwide use their computers.

With the retirement of these two people I see the death of two powerhouses, I see the opportunity to capture 96% of the market. Of course this will happen in a period of 10-15 years. The powerhouses will collapse, there will be a momentary period of lull and then a new market leader will emerge with a totally new product which will revolutionize the way we live. Considering the explosive growth in the hardware sector, I am thinking that the product will be far beyond anything we can comprehend now. It wont be google,and it wont be yahoo. I don't think that it would be Linux either... something with a totally new cybernetic interface.

This is the time to throw your sleeping bags and think something radically different. We have been given a "once in a lifetime" opportunity. We can make millions doing what we are doing but if we grab that 96% of the market, we would be billionaires and have our names in history books, probably have a Discovery channel episode on us. Lets see who'll be "The One"


Thursday, June 08, 2006

Google Calendar on your phone? Cost analysis

As I had mentioned earlier, I got a Nokia 6682. Its more of a computer to me than a cell phone. I have spend sleepless nights getting accustomed with the set... believe me if you are a geek/power user, this phone is definitely for you.

Coming to the point directly, I am a heavy calendar user... particularly after the much awaited release of google calendar, all my machines run gcal directly or have clients sychronized with gcal. So with the release of GCalcSync, I was enthusiastic about getting the google calendar to work with the smartphone. Now there were two issues:
  1. I do not have wifi... well wifi phones are too clunky to carry around.
  2. I don't have data access enabled on my cell phone... am still a student and every single buck counts.... call me scrooge if you want to.
I couldn't do much about the first issue but I was ready to spend max $2/month on any application that could synchronize my cell phone calendar with gcal. The cheapest data access plan provided by Cingular (my carrier) is $5 for 5MB/month. This was out of question. Next I called the customer care rep and asked about the pay per use scheme and was informed that 1 penny/kb had to be paid. I could actually get away by paying less (as gcalcSync would be my only web app... i think :P) . All i needed now was a way to know the amount of data that would be downloaded.
I downloaded this simulator from one of the nokia forums. Just installed it on my system, started it and was presented with a mobile like UI. Then it was pretty easy to pull the jar files directly from web using the phone simulator's browser. Looks something like this:

Now I had to check the amount of data it would download in 1 synch cycle. I did not find any statistic collector on the simulator..ethreal came to rescue again. I started ethreal without any filters as I din know what to filter out or what to would the packets look like.
Next I started GcalSync, which nicely downloaded entries from gcal and updated the calendar on the simulator:

There is an obvious bug in gCalSync as it gives same the timing to all the entries...(spending even a penny on a buggy software is out of question... but what the heck, lets see what would have happened if it was not buggy).

Stopped the ethereal capture and checked out the expert info (click to enlarge):

As you can see in the figure that entries #52 and #57 is where we GET the data. If you look around, you would find that the whole transaction took place between entries #49 and #73 where the connection was established and disconnected respectively. Now we know that the transaction happened at port 3343 using TCP.... great!!!. I just plugged in the filter "tcp.port == 3343" and and got all the captured packets during the transaction.

Next I opened the statistics window which gave me the following info:

Only 5 entries were updated on the calendar (probably it gets stuff for only the next day each day) and according to the above figure the amount of bytes captured was 35989=35.14 kb. If it is synchronized everyday then I would download 1089.51 kb/month =$10.9/month ... to only synchronize my calendar with gcal!! I don't think so....
US telephony should learn something from TRAI and Indian telephony about cost effectiveness.


Saturday, May 27, 2006

The Cell

After a lot of brainwashing done by my friends, I got a mobile phone. I had one in India and hated my dependence on the hardware. I mean I have enough dependencies... E.g. glasses, computer... and now a cell phone. I felt lost if I didn't feel the weight of cell phone in my pocket... well I was avoiding that but now I got a cell..... finally.

Its a Nokia 6682... one of the latest cellphones in the Nokia S60 series and another gadget in my arsenal :P. It is a powerpacked baby and is only a stylus away from being called a PDA. The usability features are awesome and are totally "Nokia like". Only a software guy can appreciate the effort that would have gone into all the abstraction provided to an innocent looking piece of hardware capable of detonating a WMD.

I did a night out to study its intricate features. Here are the finer points I discovered... you wont find few of them on the features page...
  • Have light sensors that automatically adjust the brightness and contrast of the screen to give you the best display.
  • Need just one hand to operate... This is a big issue. Unlike other flip phones, you don't need both the hands to operate.
  • The strange looking keyboard is totally ergonomical. All the keys are seemingly equidistant from the thumb and can be easily reached without strain (a big relief for SMS junkies like me... I have ended up with swollen thumbs numerous times).
  • Special button for accepting voice command and switching to handsfree mode.
  • 1.3 mp camera with flash.... how kewl is that!!!
Some other power features that I have grown to love:
  • Side slot to put extra memory card... now no more removing the battery and putting the card exercise.
  • Bluetooth rocks... just downloaded a cracked version of Salling Clicker. Trashed the windows bluetooth stack for the Widcomm stack and now the setup kicks ass. I can use it as a remote control to control my computer(Interestingly came across a rant by a Windows developer complaining that Widcomm is not open source :P). Will be experimenting with ubuntu soon.
  • Has an inbuilt modem that I can use to connect to internet ( with the crazy price... i doubt I'll use it in the US... in India it'll save the day).
Just downloaded the Symbian theme studio... hopefully i'll get some time to play with it.


Tuesday, May 23, 2006

Summer .... vacation?

After a lot of wading through the uncharted waters, I gave up all hopes and attempts to get an internship. I had applied to just a handful of companies... mainly the IBMs, MSs, Intels... you get the idea. Something in me hates C#/ Java jobs and I have no idea what, but it costed me $$$$$.

So here I am in Syracuse, without an internship. You would be wondering what would I possibly do in a deserted city for 3 damn months. I asked myself the same question over and over and over... well its technically summer "vacation", what better than lazing around?? This is where my masochistic self kicked in.

In a nutshell I am working more than 40hrs/week on cognitive Science (what I did earlier)... Now technically I am allowed to work only for 40 hrs but my pay will be hiked accordingly to keep the time sheet to a clean 40 hrs whilst \me getting paid for the extra hours.
Secondly I am taking a course (Financial Applications in Neural Network)... well again its illegal to take a course whilst working 40 hrs... so I didn't register for the course. Just sitting through it... probably will take it as an independent study.
Next there was a really interesting project going on under Dr Du where we have to setup a wireless sensor network using crossbow motes. And ofcourse, how could I not do something that kewl.
And wait there is more... I have finally started gymming.

I told you 100 hours/week worth of stuff I'll be doing this summer. And don't worry I will keep on blogging... will just subtract a few hours from my sleeping time.

Some vacation eh!


Friday, May 12, 2006

Google Calculator...

WARNING: For geeks only...

I was toying with the idea of a command line calculator for a long time. Windows does not have one and Linux/*nix has the powerful but ancient bc. So I came up with this nifty perl script which is totally platform agnostic and does command line computations wonderfully... I present you the Gcomp (google computer.. right click and save link).

The kewl thing is that it does all the processing at the google servers and displays you the parsed output. You cant search using it but you can give it any query that google calculater can take (such as 12 cm in feet or 1 USD in INR, sqrt(-4) etc)... the possibilities are endless. Now since this is my first perl program (apart from the other 5 liners I cut paste from the websites)... please dont flame me, any suggestions would highly be appreciated.

I am planning to write a yahoo widget on top of it, but I am not sure when.

It is a pretty simple program. Google has blocked anonymous requests so I masqueraded as a mozilla browser and got the requested queries answered. Next I just parsed the data recieved and displayed it... simple enough. Type $gcomp usage for input formats. And yeah, it is GPLed.


Saturday, May 06, 2006


Am back after 20 days of hiatus... My exams got over finally. I was just musing over the change in my viewpoint towards the exams.
I was a nerd and a book worm in school. I was not the topper but used to stay in the top 10s. Being born in a family of teachers has its own perks and pitfalls. You begin to believe that reading makes you smart, and that it helps you succeed in life. So you read and read, any failure to succeed is purely seen as the insincerity on the your part to cram useless pieces of information.

After being exposed to many cultures, namely south Indian, north Indian, Chinese, American and European, I have the luxury to evaluate the different education systems. They are both very similar and very different in their own idiosyncratic way.

Let me describe education (as I received in India):
I did my schooling (kindergarten to standard 12... CBSE board for the curious ones) in a reputed school from Kanpur. I had around 8 subjects each year. The purpose of the classes were to enable us to score maximum marks in the exams. We slogged and slogged till our strength drained out. We studied everything from American history, European history, Indian ofcourse and others too. I still see no reason why we did that, Americans don't study Indian history, Europeans or the Chinese don't study Indian history, then why do we do it??? Most importantly our education system impose English as a superior language over other Indian languages... The effect: 75% of Indian population speaks English... That's more than America.

Then came engineering. Like all other science nerds I aspired to get into IIT, India's most prestigious technical institute. Unfortunately my rank was 4387/1600000 people... number of seats being only 3500, I did not get in. Since I was kindda arrogant back then, I crapped other exams and ended up in a not so good college near Bangalore. This was where my real education started. I still had 8 subjects, not in 1 year, but cramped into one semester of 4 months. The concept of elective is non existent in India and everyone has to take courses in chemistry, mechanical engineering etc during the first year of engineering. The study was once again focused on scoring well in exams and not increasing your understanding of the subject. I got exasperated and since there was no one to check me, I decided to game the system. Education whether in India or America, judges you on how well you do on the exams. Exams don't prove how well you understand the subject, it just proves that you were able to solve the questions on the exams.

A quick lookup told me that the college highest was 82% for computer science. I decided to learn and score well at the same time. I knew I was good at maths and all the labs (chemistry, mechanical foundry, computers ofcourse) so I leveraged all my effort onto these subjects. My average on these subjects was around 95% and other theory subjects which I considered useless for my career path was 60%. I ended up scoring 79.6% overall, topping the college and earning a gold medal in academics... whilst doing some real learning. People stopped calling me nerd and started calling me geek :P.... The trick had worked.

The world see Indians as scholars... and rightly so, which other country feeds more information to the students than to a computer. Well that makes us knowledgeable in many fields. We are multilingual, have currency rate way lower than America, and have ingrained inferiority complex (people in India consider imported goods better than indigenous products and all the foreigners as Bill Gates with plenty of cash to give away)... What better could an outsourcing company ask for??

Then came MS in America:
Remember that popular belief that there is a pot of gold under the place where the rainbow meets the ground? Average Indian sees USA as that place, only to discover that it is not true. The same thing happened with me. I came here, along with 65000 other students, with a dream in my eyes, that I will change the world( I probably will). The education system here is nothing less than a fairy tale to a person in India. I thought that its always the knowledge that matters, not the grades. There is no use of a guy with a 4.0 GPA who doesn't know which way the earth rotates. But I was wrong again. I scored a 3.44/4 last fall and was automatically filtered out of the recruiting processes of companies like TI, a fact which I discovered later. Not to mention being left out of phi beta delta .... Now am back in the game. I did well in exams this semester, I am hoping for a better result.

So my advice to all the students... If you think that reading your course book over and over will make you succeed in life; you are wrong. If you cannot change the system, use it to your advantage. Do well in exams, but don't let exams or schooling ruin your education. The sooner you start this practice, the sooner you will taste success. And always remember, schooling is there to help you control your life, not control your life for you.

"I have never let my schooling interfere with my education."
-- Mark Twain

PS: I am really sleepy, so please no flames for grammatical errors (if there are any, mail me)


Saturday, April 15, 2006


I have been thinking about my future for the past few weeks and where I would see myself in the next 10 years. Almost every turn I took(in my imaginary future) seemed to end as a coder...system architect at most...

Its the choices we make that governs our life. If I would have been selected in MS, I would have ,without any doubt or pretension, sunk into an instant comfort zone and disappeared as yet another MS slave. The same holds for any other company.

If I do not take that path and choose to be an academician, do a PhD, then all I'll be is a bald Dr Iyer, trying 10 years to prove an arcane point and screw my life. Einstein may be intelligent, but he was not rich nor had a good family life, I want both.

So I have 3 paths to take:

1)Work for a company that pays me shit load of money and work on technologies I don't like and feign happiness for the rest of life, get married and just get sucked up in family chores. It will be a slow poison I might enjoy after sometime, but a part of me will always militate against it. Being rich but unhappy, not my definition of successful.

2)Work on system software, probably get a PhD and get into a research lab and the world will only know me through a few references in scientific papers. and when I get married and have kids.... there will be perennial complains about me not spending enough time with them. I will be blinded by all the technology that would surround me and play a deaf ear to them. Being respected and admired, probably rich but still unhappy.... again not successful.

3)Take the path of Bill Gates, Larry Page, Sabeer Bhatia.... etc. The success rate is infinitesimally small. The end is glorious but the risk factor is too high. A scary path for a guy with no experience like me. This path excites me the most though.

The fourth point, which most of the people believe in, is destiny, give the best to the present and hope for a better future... I am not one of them, I am in charge of life, I am solely responsible for my failures and successes.

Its the choice I have to make between these three paths.

The Oracle(Matrix Rev): You and I may not be able to see beyond our own choices

Maybe there is a path and maybe in due time I am able to see the bigger picture and this cloud clears. Till then I have two points and I need to choose one path amongst three.... the easy path is not necessarily the right path (Prof Dumbledore, HP)


Wednesday, April 12, 2006

Trip to seattle- Epilogue

So the results are out... MS rejected me, hence I wont be writing about the interview as I had told earlier in the comments.
Just called the HR today who put a gracious smile and friendly voice to tell me that I was rejected by both the teams. I asked the reason. Her reply : " I cant legally tell you about it but you need to work on your technical skills"

The answer was obviously not satisfactory as there was not a single question I did not answer in the most elegant manner and i certainly did not dress like a hippie... and i guess I have good verbal skills. My best guess is that they did a background check on me and came to know that I was a serial killer and used to eat my victims alive :P

All said and done, atleast I got a paid trip to seattle. Here are the pics...
just the link (wanna make this post look gloomy :): Seattle pics


Friday, April 07, 2006

Trip to Seattle- The journey

The trip to seattle was quite eventful.
I felt at home when the flight from syracuse to philly got 1 HR late. The airport was no better than a typical railway station in India. I was supposed to arrive at 7:00 pm in philly and leave for seatlle at about 8:30 pm. But bless those guys, I reached the airport at 8:20 and the other terminal was a mile away.

Just made it to the plane to seatlle and discovered that they were waiting for us... how sweet of them. The captain announced that he was waiting for one more flight to arrive. The people in the plane looked strangely familiar... not to mention that most of them were Indians. To my surprise, Kumar Sanu and Bali Brahmbhatt walked in!! they were with their families and looked in a total mood of vacationing... Ofcourse I did not want to ruin their vacation by asking for autograph and blowing off their cover. They looked more like gunda's (dons...:P) than singers. Glamour has its own pitfalls... phew.

Made it to Seattle and discovered that my luggage was missing. So its 2 am in the morning, I have an interview at 11:30 am and the only thing I have is my laptop. Poked my cab driver to stop on the way to get some formals for the interviews hoping that some nocturnal creature might open the mall in that ungodly hour. Reached the hotel, decided to go shopping in the morning and crashed in the bed. Managed to get a decent set of formals from one of my cousin's friends... thats pure luck. Attended the 7 hour long interview and went straight to the mall to buy some socks, Pjs and undies :P.
3 socks=$8
6 undies= $6
1 Pj=$12
you come back and discover that the luggage has been delivered... priceless. There are something money cant buy...


Friday, March 31, 2006

Blog Tech...

I was fairly amused by the amount of technology that has gone into my I thought it would be a good time to discuss them with you... And no, this is not about CSS/HTML.

Lot of my friends have asked me to put my blogroll on my blog, and quite clearly I have not. The answer is simple: I read around 50 feeds regularly (and some notorious feeds like that of churns out 50 entries per day) so putting them on my blog will simply consume a lot of space.
Any serious blogger worth his salt uses some form of feed reader to keep track of blogs, I use bloglines for its web interface goodness. The link on the right hand side labelled Frequent Reads links to my separate blogroll.

The other awsome feature of bloglines is that it allows you to create email subscriptions. It is a really cool concept. It generates unique email IDs for you which are shown as feeds on the bloglines feed reader. Now how is this useful???? You would have subscribed to some emails( or would have given your email ID for registering to some service) and dont want it to hog you inbox space... simply give the bloglines email address and all the emails to that address will appear as feeds. Also its amazing if you use it with This site generates emails for you everytime some site you are monitoring(which does not expose RSS feeds) changes. Almost none of the University professors have RSS enabled web pages (or your college job employment site)... and since you have to keep an eye on them for any new entry, just generate a new bloglines email address and use it as your default email account in ChangeNotes. Now you have a RSS feed for your feed reader for a site that does not have a RSS feed exposed. How cool is that!!!

Another tech feature that I love is the performancing metrics provided by Notice the performancing label end of the sidebar (under the heading blogmates)... It is on the lines of google analytics, but unlike its google counterpart is completely *free*. It generates feeds too... Here's an example of what I get daily in my feeds (by performancing ofcourse)

And these are just the tip of the iceberg. I get information I never dreamt would be possible for me to get without considerable work. I get the demographics of people visiting the blog, browsers they are using, platforms they are using, screen resolutions, Outbound links etc etc... the list is endless. I was fairly amused when I saw that there were considerable amount of users using Linux and FreeBSD to access my blog. Also I came to know the different screen resolutions people were using and a decline in the number of visitors using higher screen resolutions... Only 65% of the users had 1024x768, 4% had 800x600 and rest had higher resolution (as high as 1536x960). I got hold of a bigger monitor and opened my blog... and man ..those people had a reason not to visit my blog again. The whole template looks weird on higher screen resolutions. Many blogs, with customized templates, had the same problem. Performancing helped me find a problem which I never knew existed... Thanks a lot Performancing... great job.

I was trying to integrate LighBox JS and flickr into my blog but that would have effectively killed my low bandwidth readers.

Do you guys have any other kewl stuff that I can integrate into my blog? and which does not hog any space? (the two stuffs I explained above are just two links... so I would like stuff more in those lines). Also I am searching for an optimized tagging service. Technorati is good but I have'nt seen many blogger sites with visible tags or tag enabled services (i.e you can subscribe to feed labelled as... say "life" and ignore the rest). Google.... are you listening??

PS: I have decided to give technorati a try... hence the search box. Now I will be tagging my enteries too. Lets see how it works.... and yeah my performancing account crashed :(( and I lost all my metrics.


Sunday, March 26, 2006

Why do we live???

"Who? Who is but the form following the function of what. And what I am is a man in a mask."
- Hugo Weaving in V for Vendetta
The question was asked in a community on orkut: Why do we live?
This question is troubling me ever since. I scrambled to find the answer everywhere. Ofcourse there were canned answers like "to explore the horizons of living... loving"..blah but why do we have to do those ? Why do I have to fall in love? Why should I respect elders? Why should I breathe? Why should I stay Alive??? The question reverberated through my mind... after all if you lose all the pretense of being a human and see the humans as a third entity, say in the manner humans see lab rats... these emotions are just neurological signals to the brain.

Quoting Agent Smith from the movie matrix:
"Do you believe you're fighting for something, for more than your survival? Can you tell me what it is, do you even know? Is it freedom, or truth, perhaps peace, could it be for love? Illusions, Mr. Anderson, vagaries of perception. Temporary constructs of a feeble human intellect trying desperately to justify an existence that is without meaning or purpose! And all of them as artificial as the matrix itself, although only a human mind could invent something as insipid as love. You must be able to see it Mr. Anderson, you must know it by now. You can't win, it's pointless to keep fighting! Why, Mr. Anderson, why? Why do you persist?"

Those emotions of love, hatred are just special neurological pattern in our brains.. what is the bigger picture? How different are we from a single cell amoeba who even though have no emotions, live... They can only move/exixt and reproduce... i.e unlike humans' that is definitely a simple cause (though there are more reasons than the cell it has).. If it is then why does it exist. If there is a reason say A for amoeba to exist.
Now for humans, even though there are many reasons to live, everything boils down to A.
So everything is what it is because of A. I guess we also know A as God (or whoever we believe in).

But then the question redirects itself to A... why does A exist?
Just for argument sake lets say that A exist because of B, B due to C and so on... This results in an infinite series. Since this is an infinite series there is no end to it.
The following proof is involves order theory so you may stop reading:
Now we have the set $={We Humans, A, B, C, .... } which is infinite. This set has no upper bound but it is directed, we being the lower bound of $. Since $ is not an element of $ so we can make a new set $$=$U{$}, which contains {$} as its topmost element but is still infinite.

Now I am not relegious or anything but lets take a closer look at {$}. {$} is the topmost element in $$ and contains everything present in/out of the universe... hence {$} is omnipresent and we all are a part of {$}. Next {$} is the topmost element in the chain of this directed-complete poset so clearly {$} is above all of us. {$} is an infinite elements away from us. Infinty is incomprehensible to humans... something which we cant know. Hence there is no way of knowing what {$} is.

If I say that {$} is God then the whole equation actually makes sense. We are all part of him. He is omnipresent. He is above us. And there is no way of knowing him exactly hence knowing the exact purpose of our living... so live in the moment and plan for the future... you may only predict the future and the nature of {$}.

PS: Tell me if you find any flaws in this proof

Friday, March 17, 2006

V for Vendetta

Nah not the movie... the torrents aren't out yet :P. Am talking about the comic series. There is a popular quote:
Never Judge a novel by its movie.

So I decided to read the novel before the watching the movie. Normally anything related to movie/novel goes on my movie blog but since it was a comic and was kindda special to me, it made it to my regular blog.

Whoever said that comics were for kids cannot be more wrong. It is an adult comic book. If you have seen the movie or read the reviews, you would be knowing the basic story behind the comic. The strip was originally published between 1982-1985. The book was sorta futuristic for its time as it is based in the late 1990's. The movie shifted it to the late 2020's to retain the futuristic effect.

Few weeks back I was told about the movie. I was blissfully ignorant about its release date, so when a V for Vendetta torrent caught my eye, I immediately downloaded it. Much to my dismay, it turned out to be the original classic 10 issue comic book series. Not wanting to waste all the bandwidth, I started to read the comics and believe me its the best comic I have ever read, and I have read about millions of them.

Today I finished the last issue, and the end makes you to rethink your priorities in life. You feel good about yourself in a funny way and bad in other weird ways. Unlike movies like Swades or Rang De Basanti which make you feel patriotic or thereof lack of it, this comic book splits open all your self doubts and makes you feel miserable. The ending, however makes you feel good and surreal.

Update: saw the movie... a class in itself. Hugo Weaving has yet again given a classy performance, as V. Although the mask hides his face, the dialogue delivery makes up for it. The slight deviation from the original comic series has a big difference on the story. They both are parallel stories with different endings and are awesome in their own respect. A MUST WATCH

Wednesday, March 15, 2006

XGL+Compiz+Ubuntu = Nirvana

I have been trying out desktops for a while now, and just so you know, my idea of a perfect GUI is that of a macintosh. After having my windows transformed into a MAC look pony I was itching to give my ubuntu a mac look too, but there was nothing available. Gdesklets sucked and did not come any closer, so I ended up running an OSX theme on Gnome which was not all that great.
For the zen types, yeah I know simplicity is great, I tried using fluxbox and simple window manager for sometime. The problem is that they are too stable to be interesting :P and I dont like it when the sea gets too calm. Also lemme use my 1 GB ram will you..?? :D

So I got a link to a great article which just gave a few steps to install XGL+compiz on ubuntu. There's a lot of buzz going on about XGL in comp Sci community so I decided to give it a try. And believe me the screenshots dont do justice to it. You gotta see it in action. The best part is that it uses full hardware acceleration and does not run like other graphic intensive pigs.
If you have ubuntu installed, definitely check the article above. Check out this video too. Well I took it on my cam and the quality sucks but hey...who cares!! I have a desktop rivallling mac :)