In two days from now, I'll be on a train to Jaipur after long last. While anyone else would be sad that they could spend only twenty days at home, I beg to differ. I for one, am a person who doesn't like to remain 'idle'. I was advised time and again to just sit back and relax through whatever little is left of my vacation. Time not only flies when you're having fun, it also soars when you're busy with something or the other. In all other cases, it's just as fast as a cheetah who's been run over by an 18 wheeler and then eaten up by a pack of vultures. Anyway, the point is, I've never experienced boredom of this order before. Barring a day or two, my friends were never around and neither were my cousins. My mom insisted I go visit all those old people (her uncles and aunts) who live in remote corners of the planet. But visiting old people ain't exactly my idea of a fun filled rollercoaster ride of a vacation you know? Yeah, call me a brat. See if I care...

To add enriched nuclear fuel to the fire, I couldn't work on my laptop. Why? Because of all the things I'd forgotten to do back from college, I forgot to configure my Debian for using the dial-up connection I have at home. And since I didn't have a pen drive to transfer content between my PC and my laptop, I was pretty much stuck. And if you didn't know, trying to work/hack on Windows is as good as trying to dance without feet. When the Google Code Jam happened yesterday, I couldn't submit my code because of this. I'd successfully solved one of the problems which was enough for me to qualify but darn.

On the bright side, I learnt python through that problem. I ain't that good a programmer and I'm still learning. As of now, I'm pretty much in love with python and this could be the one language I've been looking for since quite a while. An elegant combination of simplicity (near english like syntax) and power (very good built in datatypes and methods) is exactly what the doctor ordered in my case because I'm someone who wants to easily implement an algorithm without having to work out low level details. Haskell is the God of languages in this case which I'll come to shortly. And yes, I'm a lazy sloth.

During these three weeks, I tried my hand out in a lot of other things as well such as Perl, linux socket programming, linux driver coding, trivial kernel hacking and lastly, Haskell. Haskell is one thing that's impressed me a lot. Thanks Vivi for introducing me to it. Haskell is a purely functional programming language. To learn Haskell, you basically have to unlearn whatever programming you already know, and then learn it again from scratch. But learning Haskell makes you re-think and improve your programming methodology it seems. I didn't read too much on it because I couldn't download the Hugs compiler till I get back to college. No point learning if you can't try out code yourself, is there? Some ten/nine pointers I know would disagree :D . Anyways, Haskell works at a very high level compared to languages like C. Hence, you can do a quicksort in just one line! Yes, one line and thats it. Brilliant eh? Here's how it looks like...

qsort [] = []

qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

The first line means, "qsort on an empty list returns an empty list". The second line is read as follows, "qsort is a function operated on a list where the first element is x and the rest is tagged xs, such that the element x lies between two elements such that the ones on the right are greater than or equal to it and the ones on the left are less than or equal to it". ++ is the concatenation symbol. And yes, Haskell thrives on recursions.

I can't wait to get back to college and get into the hustle and bustle of life all over again. I'm also looking forward to attending the induction training programme for the Sun Campus Ambassadors in Bangalore between the 27th and 29th of this month. My CA work officially starts from the 1st of August. Anyways, I've laid down a set of goals for myself for the coming semester which according to Suvha, might lead to me ending up in an asylum. Maybe, I am overloading myself again. Maybe I'm not. Whatever the case, I guess I'm all for it now. I think I'm rejuvenated and wiser (laugh you morons...laugh) after a couple of lessons life thought me in the past few months. Let's see how things change now...

Cheers!