Thursday, May 26, 2005

Blogging with a vengeance...

I have a feeling this is going to be one of the biggest posts I've ever written. Basically it's just a summary of stuff that's been going through my head lately. Living up to my reputation as a master of digression, I've thrown in topics ranging from music to language to Firefox extensions to geekdom in general...Hopefully I'll be able to organize things so people will be able to make some sense of it - if I talk about it the way I thought about it, it'll look like a bunch of disconnected ramblings with random jumps from one topic to another(Though my usual rantings probably look like that anyway...). We really need something like hyperlinks in normal conversation - at least more people would be able to make sense of me...Then again, maybe something along the lines of the Semantic Web would be a better idea...

Here goes...

Chapter 1: Firefox and assorted extensions...

Recently I picked up a couple of cool extensions for Firefox, the browser that I, at any rate, can no longer live without. The coolest one of these is called Greasemonkey(man, I love these names...). Rather than toss out some half-assed description, I'll just quote the website:

Greasemonkey is a Firefox extension which lets you to add bits of DHTML ("user scripts") to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page's style, user scripts let you easily control any aspect of a web page's design or interaction.
The practical upshot of this is that I can rectify all the little shortcomings that website authors haven't got around to fixing, haven't recognized as problems, or which just happen to get on my nerves. Actually, I *personally* haven't learned how to hack Greasemonkey yet, so I have to depend on the web for all the user scripts I'm using so far...that's something I intend to take care of once the exams end - all the scripts I've seen so far look like variants of JavaScript, so it shouldn't be too difficult to learn. The legendary Mark Pilgrim has already provided the perfect resource with this neat online book. So that's one interesting thing to do in these holidays...

For those who still haven't got it yet, I cite the example of Linkify - the first script I downloaded. You know how you often run across a web page or a forum posting where some guy has typed in a link, but lack of HTML support relegates it to the status of plain old text. This means you have to go through the drudgery of copying and pasting it into the address bar...gets a little tedious after a while. The TopCoder forums suffer from this very problem, so this problem hits even closer to home...Anyway, what Linkify does is turn any piece of text that contains a web address into a clickable link. What this boils down to is that I can click on plain text links, even if they are in .txt files, as long as I open them in Firefox. Brilliant!

A relatively minor one is URL Alias, which allows you to bind a few words to a URL, so all I need to do is type 'matches' and hit Enter - and voila, the TopCoder match editorial index is displayed, saving me three clicks and a few seconds of navigation...

The newest one goes by the name of StumbleUpon and has a really cool premise. Most people who come upon a really great site tell all their friends. This takes that concept to the next level by building a network of people united by similar interests, and allowing them to stumble upon each other's discoveries...If I'm in the mood for a little surfing, I hit the Stumble! button in a little toolbar at the top of my screen, and I'm instantly relocated to some website a similarly minded chap found a while ago...

Seriously, I've never felt so much power since I first learnt how to program...long live Firefox! Maybe one day I'll try writing an extension myself - might be educational...

Right, on to other things...

Chapter 2: Music and how linguistic differences manifest

Just downloaded a nice new Persian song by Arash called Boro Boro...it's not exactly great on content, and happens to be heavily repetitive, but it's hugely catchy and fantastic to listen to if you're coding...It also has a lot of beautifully synthesized and mixed music - my compliments to the sound engineer for doing such a terrific job...

Now, my sister and I first ran into this song on the radio, and after a little deliberation, we both reached the conclusion that the language used must be Arabic. My sister, who isn't exactly a deep thinker(at least not on these subjects...) let it go at that, but I was a little doubtful. Though I don't speak or understand Arabic, I can read it perfectly(well, if you throw the vowels in, as is compulsory with Quranic text) and after having read all 114 chapters of the Quran twice, I have some idea of how it sounds. (BTW, this was one of those dumb religious rite-of-passage type rituals - I always figured it would make far more sense to read it in a language I understood rather than just making weird sounds, but I was young and insufficiently stubborn, or rather, insufficiently logical...) The point hidden behind all this rambling is that the stuff the guy was saying didn't sound much like arabic to me, except for one tiny feature, which we'll come to presently...

Anyway, I eventually looked up the lyrics, and sure enough, in less than 30 seconds it was obvious to me that this definitely wasn't Arabic. If you listen to the song, you can tell from the lack of throaty sounds(don't laugh, it's true) that Arabic is definitely not a plausible option...

So what was it that sent me and my female sibling down the wrong track? One simple sound, that's what. I'm not exactly sure how to represent it here - the concerned Arabic and Urdu letter is usually transcribed(not sure if this is the right term) as Qaf. Pronouncing it is fairly subtle - 99.9% of my friends can't do it, and a large proportion of those can't even hear it - all they seem to get is a 'kh' sound, which happens to exist in all North Indian languages. I haven't really tried it on any South Indians, but I don't think they have the sound either. The usual example given to speakers of European languages is that of the French 'r', but that hardly seems right to me...

Anyway, the point is that this sound turns up in Arabic, Persian and Urdu(which evolved from a mix of royal court Persian and old fashioned Hindi). Since we'd never heard spoken Persian before(much less a Persian song), we didn't consider it. I actually thought for a moment that it might be Spanish - the Spanish 'j' is practically the same as the aforementioned 'Qaf' sound. Still, the fact that I couldn't make sense of anything else eliminated that - if I'd been smarter, I would have thrown out Arabic as well...

What strikes me as really interesting is the way that mature human ears seem to glide over the sounds that they are unfamiliar with, as in the case of my friends who can't tell the difference between the 'qaf' and 'kh' sounds, or the famed East Asian confusion of 'r' and 'l'. Since people are usually more concerned about their differences than their similarities, my 14 year old self found this *special ability* of mine an endless source of fascination. I once spent an hour and a half teaching a determined Punjabi friend of mine to pronounce 'qaf', and when he was done, I gleefully informed him that there was another Urdu/Arabic/Persian sound beyond his vocal capabilities - it's a sort of 'qaf' with a hard 'g' rather than 'k', if that makes any sense. Needless to say, he gave up and acknowledged my vocal superiority, inflating my already enormous teenage ego...

Right, moving right along...

Chapter 3: Geeks, nerds and Prometheans in general...

Nowadays I've begun to feel rather proud of my geekdom. Let's face it, we've been playing bigger and bigger parts in history ever since the Industrial Revolution. At this very moment, I'm sitting in a house over 50 feet above the ground(and unlike Tarzan's, it's not in a tree), surrounded by little marvels that amplify my body and mind to an unbelievable extent. By hitting a bunch of keys in India, I'm transmitting my thoughts over to a server somewhere on the other side of the world, where millions can potentially see them. These millions could be anywhere - from Toronto to Timbuktu - but they can all see the same thing without stirring from their rooms. How? The power of the geek, that's how!

The crystallized thoughts and vision of some guy, who was probably socially inept and more often than not deemed *weird* by his peers, now sit in the palm of your hand, or on your desktop, or in your kitchen. The fact that you don't live in a dingy, smelly old cave is because some protogeek millenia ago decided that he wasn't going to put up the substandard goods that nature had provided. This Promethean chap looked around and realized that what he needed was right there for the taking - all he needed to do was rearrange it into the form he wished. And from that realization came mud huts, and hovels, and cottages, eventually giving rise to Rennaissance villas and culminating in the skyscraper. And let's not forget the witch doctor yelling in the background, screaming at the creative geek that he would incur the wrath of the gods for the sin of achieving power over nature, gloating over his every setback and rousing the masses against the geeks(yes, they were beginning to band together now) whenever he could.

Time now to say something highly controversial - this is probably going to annoy quite a few religious people, including some family members, but it's my opinion and my blog, and quite frankly, no power in this universe(or any other, for that matter) has the right to tell me to shut up. As long as I don't go shouting my views into everyone's faces(for a classic example of how this is done, just check out any religious evangelist), it's perfectly fine. So if the following stuff offends you, I don't really give a damn...go read something else if you don't like it.

One of the most annoying things that religious people do is trivialize any achievement by dragging one or more gods into the fray. Apparently, God gets credit for anything great you happen to do. What does this translate into? A bunch of ingrates who scoff at the greatest products of the human mind, since God could obviously do a bazillion times better if he could only be bothered to stoop so low, and he was responsible for it all anyway..."Oh, you built a spacecraft that went to the moon? How interesting...you should thank God for everything..."

Gimme a break. I don't mean to make fun of anyone's beliefs here, but I think people ought to be more fair to the guys who did it all. To pull God into the picture in the way that such people often do, is to trivialize the huge effort, both physical and mental, that these guys have put in. Let's face it folks, God is not a fit standard to measure human achievement against. Human perfection is the true standard - not divine perfection, which, by definition, we can never hope to reach. (Though you can see that the fundies are really afraid of just that - witness the huge outcry against cloning with shouts of "Playing God!"...)

Looks like I've been digressing heavily again...this wasn't even on the original plans for this post. Still, it crops up often enough that I should give it some time somewhere. The point obscured by all my rambling is that true thanks ought to be given to the geeks who made human civilization possible. Dedicate your new achievements to them and give their achievements the reverence they deserve - the same reverence you reserve for your moments in churches or temples or mosques, or wherever. The gods definitely have no need of anything from an insignificant mortal. Give your moral sanction to those who really sustain the human race.

And before I forget - don't neglect the contribution of those who sustain the sustainers - the ones who create art and literature that shows us just how great we can truly become, and what godlike heights we could reach if we only dared.

Looks like I've really gone overboard this time...still, it was kinda therapeutic sitting up late and writing all this...leaves you with a nice, unburdened feeling...

This will probably be the last blog in a while, until the exams end. I might blog a bit in the middle of those, but it doesn't seem very likely. And now, it's off to bed for me....

Tuesday, May 24, 2005

Gearing up for exams

Looks like it's that time of year again. Exams start up this Saturday, and are scheduled to go on until June 9th. Huge waste of a couple of weeks if you ask me - I could be wasting them so much more profitably...

For the next two weeks, therefore, things are going to get rather painful, with non stop studying day and night. More than any of our previous exams actually - this semester's syllabus seems to have that quality that dreams often have - you wake up and remember them perfectly, but by the end of the day the memories have faded away into nothingness...

Here's the usual TopCoder update: too much studying made Nadeem a dull boy at the last match. Though I cracked my usual quota of the first two problems, I might have taken the last one too, if I hadn't been so bugged...as usual, the solution was so damn simple I felt like kicking myself once it was done. Anyway, there'll be plenty of time to improve after the exams are over. These vacations are gonna rock!

On a more (ahem) *academic* note - I've been studying computer graphics today, and was once again amazed by the way a bad system and indifferent teachers(who are first class products of the system, and so by definition powerless to change it) can turn a fascinating subject into something inhumanly boring. Still, we can always have some fun learning it, but watching something wonderful perverted like this is more than my delicate sensitivities(yeah right...) can stand...

Lately I've begun wondering if the problem is me - every so often I turn up and rant about our bogus system, trashing it mercilessly every single time. Do I just have unreasonable expectations? Presumably that's the answer the *intelligent* people in charge would give me, muttering something about idealists who don't understand the problems of the real world. Gimme a break - there's nothing unreasonable about demanding competence from the people who teach you, and some understanding of the things that really matter from the people in charge.

What we really need is a filter - something that gets rid of those who don't give a damn or can't be bothered. That's why I really love competing at TopCoder - because unlike most of my classmates, everyone there really cares about coding. Of course, it's also true that there are things that I couldn't be bothered about, but I'm fully prepared to be filtered away in those cases. Paul Graham, in one of his fantastic essays about us nerds, happened to mention that American schools were something that most nerds hated - but college was something they loved, since the ones who didn't care weren't there(or at least, weren't doing computers or mathematics or whatever subject a nerd might be doing). Sadly, since our colleges are just glorified schools teaching more complex stuff, we still end up surrounded by people who don't love what they're doing. Worse still, they're in the majority, so once again being a nerd is something odd. Sigh...

This phenomenon isn't really restricted to India - after my last TopCoder match I was chatting with a fellow coder from Croatia who said things were the same there...

Hmmm...the filter suggests an interesting experiment - after the exams end, I'll send a little email to our class mailing list and ask everyone to join up at TopCoder(God knows Mumbai University needs a rating boost, and the same could be said for the country). If even 10 people start competing regularly, I'll...uh, decide at that time.

Looks like it's back to visible surface detection methods for me. To all Mumbai University engineering students out there, all the best for the exams - may your minds survive the experience...unless they've already succumbed to the numbing drudgery.

Thursday, May 19, 2005

Life goes on...

Despite the title, life isn't exactly the same...the thought of exams in a week is always guaranteed to cause low spirits. Still have lots of work to do - most notably Systems Programming and Operating Systems. The rest of them are seemingly OK, but I don't know...Advanced Databases is easy and fun - no problems there. Computer Graphics is fun because of the algorithms, and is pretty ok otherwise - just the usual cartload of useless details that I've never quite gotten used to...Web Technologies is pretty ok, and so is Object Oriented Application Development(OOAD for short - that's quite a mouthful) - though they produce some strange questions there at times...

As predicted, I've lost my TopCoder blue rating - back down to green. Will have to work on that after the exams...

The interesting thing to note is how much easier it is to work at the TopCoder stuff in comparison to studying for the exams - despite the fact that it takes all your brains to handle algorithmic problem solving, and only a few boring functions to remember the stuff we have to regurgitate during exams...Maybe that is the problem - not enough room for intellectual stimulation in our syllabus. The very idea of having fun at it seems to be anathema to most engineering teachers...of course, they didn't enjoy it either, but why should suffering have to be such a fundamental part of engineering? Is it some kind of weird sadism in the guys who set things up or what? Nah...more likely they weren't very imaginative, and applied ancient educational models to modern subjects. This of course leaves us with teachers who have no enthusiasm for the subjects they teach, which leads to students with the same problem, who eventually become bored teachers, and so on. The classic vicious circle...

And that, ladies and gentlemen, concludes my blog for the day...Thank you and good night.

Monday, May 16, 2005

I'm blue!

Lest my readers think that I have finally slipped over the edge and have begun to take masochistic pleasure in my own melancholia - the 'blue' in the title does not refer to my mood. Saturday night was my 3rd TopCoder match, and I've finally made the jump to division 1! For the uninitiated, this means I'm now officially a blue coder, as opposed to my division 2 green color....

Downsides:
  1. I'm not that good at algorithms yet - I'll need a couple of weeks of intensive work before I can truly call myself blue(and someday yellow...and who knows, one day I might even reach red!).
  2. Time is something I won't have for about 3-4 weeks - what with studying for exams right now, and the actual exams at the end of the month - I've got my hands full.
  3. This means I'll end up being bounced back to division 2, where I can handle things....eventually I'll go blue again, and then green, and then blue...until I can give it the time it needs and go blue permanently.
Of course, I won't be competing in SRM's during the exams, so my rating will remain constant during that period. Still, there's an SRM coming up on Wednesday morning - not sure I can resist the temptation...

Oh yes, almost forgot to blow my own trumpet about the last match - I managed to give it my best performance yet, coming in second in my room(damn that C# coder!) and 37th in division 2. That's 37th out of about 550 people, so I'm pretty happy about that...Currently ranked 897 among all of TopCoder's rated members...

Noticed a weird thing though - there was not a single successful challenge in the entire room. The reason was pretty obvious though...the 250 was too simple, and the 500, while not difficult, was complex to code, making challengers a little wary of risking their own points on code they didn't understand. System tests still claimed quite a few though...surprisingly one chap even lost his 250. I'm amazed that no one caught it and challenged...

On a related but slightly different track, I sent in a solution to this Sunday's Mindsport endgame. For those who don't know, Mindsport is this weekly puzzle column in the Times of India. The final problem is called the endgame, and is supposed to be difficult...

Anyway - I opened up the paper this Sunday, and took a look at this week's endgame, and was mildly astonished to see that the endgame was a truly pathetic problem that barely deserved five minutes of thought. Since I wanted a little fun, I wrote a little code to simulate the conditions of the problem. TopCoder hardened mental muscles parsed the question as a simple O(1) algorithm(For non CS people, this boils down to him wanting a fancy formula to solve it in one go. Not exactly the textbook definition of O(1), but definitely worth inclusion in that class...)

Two minutes and a pageful of scribbles later, I had the formula needed, and proceeded to write a little code to test it out with random inputs(comparing with the simulation). It worked like a charm. The formula itself was so simple that I could scarcely believe it was correct - only testing convinced me otherwise. Interested parties, contact me for the solution...

Time now to study Computer Graphics - thankfully my hugely exercised coding and problem solving skills(yes, modesty is a terrible crime...) will have some use there...

Friday, May 13, 2005

The Office - Funnyfox

If you haven't already seen it, make your way over to the Firefox promo videos at Funnyfox. They're fairly funny, though a little extreme...of course, if you've been using IE for a while, then Firefox probably would be a revelation...

And incidentally, as promised in my previous post, this one comes to you courtesy of Firefox's BlogThis! extension...

Three digits!

Whoopee! Looks like my site counter finally moved over to three digits...absolutely astonishing, but it just goes to show - people will read any trash they find on the net...

Many thanks to my friends Sagar and Thite, who together account for about eighty percent of my traffic - looks like they don't mind reading the bilge I produce any more than I mind producing it...

In other news, I've just finished upgrading Firefox to 1.0.4...also downloaded a bunch of extensions to make life online even smoother, especially the BlogThis extension. If I find something interesting enough, the next post will be brought to you courtesy of BlogThis.

That's all for now...cheerio!(Man, does that sound dated...)

Thursday, May 12, 2005

Digicam specs...

This is something I've been meaning to post about for a while now - the tech specs for the digital camera my dad picked up in Malaysia. I was all set to give a huge list of details, but it turns out the Olympus website has done the donkey work for me already...without further ado, here's the link.

Minor addition - we've upgraded the 16MB memory card to 256MB...other than that, it's pretty standard.

Wednesday, May 11, 2005

Ho hum...

Looks like I haven't posted for quite a while. Excuses - been busy studying for exams(a little over 2 weeks away), messing around at TopCoder, and of course, the really rocking Python Challenge. Since all I really do is hang around at home these days, I'm facing a serious dearth of interesting subject matter. Looks like I'll have to make good on my earlier threat to talk about the weather...

First things first. I'm currently at level 7 of the Python Challenge. This one involves image processing, so I've had to grab hold of the Python Imaging Library. Once I'm familiar with that, I'll be in a position to attack the weird gray bar running across the picture...One great benefit of taking part is that it's a great way to learn about useful Python modules (standard or otherwise). Nothing like the nagging feeling of an unsolved puzzle at the back of your mind to motivate you to learn something.

Next off, I've finally finished reading the BOFH chronicles from beginning to end. Looks like the only thing to do is to start over...not that I'm complaining - you often find stuff on the second read that you missed the first time through - and in this case, that means a few more laughs...

On a more technical note, I've been studying Operating Systems for the upcoming semester exams, so my attention was caught by this article: Desktop Virtualization - End of the Traditional Operating System?

Looks like our syllabus is going to need a major overhaul in a few years...then again, doesn't it always?

That's about it for now. The weather report I mentioned earlier is as follows: conditions are too bloody humid, hot and not worth getting out of the house for.

PS: Apologies for my disconnected, incoherent, and frequently incomprehensible ramblings. Bear in mind that stuff like this runs through my mind every day - and it's even more disorganized...

Monday, May 09, 2005

Malaysia pictures...

Just posted a few of the fantastic pictures of Malaysia taken on my family's recent trip, as well as my dad's earlier trip in November last year, around Eid. The country is unbelievable - no wonder it's such a hot tourist destination. There's more architectural diversity in 3 or 4 streets than there is in entire countries! The only sad part of it is, I've never been on any of these trips...ah well, the blame falls squarely on Mumbai University(as well as tons of blame for millions of other things...). In any event, take a look at the pics and feel free to post comments if you like them!

Absolutely fantastic photo of the Prime Minister's residence at Putrajaya. Another of the pics from dad's November trip. Check out the way the clouds frame the building - incredible. Posted by Hello

Speeding down the highway towards the city of Putrajaya. Taken on my dad's trip to Malaysia in November. Posted by Hello

Fantastic example of the kind of architecture that you routinely see in Malaysia. Sadly I don't know where this was... Posted by Hello

Kuala Lumpur's Butterfly Park


Butterfly poised to take off. Taken with our new digital camera at Kuala Lumpur's Butterfly Park. Definitely worthy of National Geographic. Posted by Hello

Saturday, May 07, 2005

The Python Challenge

Here's a very interesting website I ran into by accident - The Python Challenge. Basically they give you a rather cryptic looking riddle to start off. The solution to each riddle gives you the URL for the next page, where you find yet another riddle, and so on...Puzzle lovers be warned, this requires some knowledge of a programming or scripting language(Python is the obvious favourite, though Perl is also pretty useful). Apparently the whole thing is divided into several levels of increasing difficulty- with 19 levels put up so far. I've demolished the first 4 levels, and enjoyed it hugely! Haven't had so much fun in years, and it gives me a chance to get back to Python after several months.

For those who've been there - my personal fave was level 4 - 'follow the chain.' Currently stuck at level 5. I've cracked the clue, but the output from my code leaves me no wiser than before. Anyone with an idea, let me know...

Wednesday, May 04, 2005

Still in the frying pan...

Just finished checking out my updated competition stats. Thankfully I'm still in division 2(what the hell am I saying?) though on the borderline. Still, I seem to have underestimated the difficulty of increasing ratings. Plus things should be more difficult on the border between division 1 and 2 - there are probably hundreds struggling to get across. Extra energy needed for phase transitions and all that...

And interestingly enough, I am ranked 4th in the room - that wasn't a system test glitch. And here I was thinking that I was stuck in the middle...

For those who want to keep checking out my progress, here's the link.

Next match in ten days. Expect a blog posting then...

Volatility

Just finished off a TopCoder match(SRM 241, to be precise) and decided to give the experience some blog time. This is only my second SRM, so all you seasoned TopCoders out there - please excuse my excitement over things that you've probably gone through a dozen times already.

Before everyone nods off to sleep - here's a potted version of what happened:
  1. Match starts at 6:30 AM, Indian Standard Time. (Yawn!)
  2. I do the easy problem.
  3. I do the medium problem.
  4. I code up the hard problem and start testing.
  5. Things don't seem to be giving me the right answers - something is screwy...
  6. Coding phase ends - there goes the hard problem - time for the challenge phase.
  7. Someone views my easy problem code for a suspiciously long time. It's no surprise when he successfully challenges it - depriving me of almost 200 points.
  8. I have the satisfaction of watching my challenger get successfully challenged.
  9. I find someone who has a blatant mistake in his code. About to figure out how to challenge, but someone beats me to the punch. Drat.
  10. Challenges fly thick and fast. At the end of the challenge phase, only 6 of the easy problems are still standing - out of about 20 in the room.
  11. Time for system testing. Sit and wait.
  12. Things end - my medium still stands - and I end up squarely in the middle of the room.
For those of you who haven't been able to make any sense of this - a few words of advice - buzz off to TopCoder and look it up(there's a link on the left) - or just buzz off. This post isn't exactly for general consumption.

Now - let's get into the gory details...

First off - sleep! If only I wasn't yawning through the first problem, I might have seen the line in the problem statement that led to my downfall...Adding one extra line would have taken care of it(N.B: Haven't had a chance to test this out yet, but looks likely.) I'm still yawning a bit as I write this.

Second: On the hard prob - I could have simply used a variant of Floyd-Warshall. Sadly never saw it, jumping into a recursive depth first search instead. If I had submitted it - it might never have handled test cases with large inputs without blowing the stack. Sad...Really have to stop jumping at the first solution that pops into my head. Kinda reminds me of (Digression Alert!) Paul and Leto Atreides II in Dune - by viewing the future, they froze it into unchanging form, and then spent the rest of their lives breaking out of the traps that their prescient vision led them into(and indirectly, the rest of the human race as well). As with most things in Dune, you can pull a lesson out of this - premature design can be a deadly thing. Paul Graham has something to say on this as well, but I can't remember which of his essays addresses this issue.

Third: I really have to look up commonly used algorithms. Unless you can see complex problems as variants of stuff you've done before, chances are you won't be solving it within the time limit. The standard algos(Dijkstra's shortest path, 0-1 knapsack, etc.) are the building blocks of solutions to the hard stuff. You have to weave them together using the standard algorithmic programming techniques(divide and conquer, dynamic programming, memoization...) and tie the whole lot together with some old fashioned ingenuity. And naturally, these three are all connected on a deeper level, so you shouldn't be surprised if getting better at one makes you better at the others...

That's about it for the abstract stuff. On to more mundane matters...

Ran into a friend of a friend in the competition arena. For those of you who know him, the friend happens to be Mihir(the one who lives 2 floors down from me) and his friend happens to be a chap called Nishant(hope I have this right - I can't remember his surname), otherwise known as niphoton on TopCoder. If the name rings a bell, he was the coder of the month for April...

Apparently someone screwed up the system tests. For about fifteen minutes(might have been longer) into the system testing phase, it looked like everyone had failed the Div 1 500 pointer. Someone pointed this out, and I went through all 10 rooms in div 1, searching for someone who hadn't messed up. Naturally I came to the conclusion that something was screwy...then the admins mentioned that something was wrong with the systests. Thankfully for the Div 1 guys, everything worked out. I think the mess up also affected Div 2, since my rank rose from 9 to 4, before falling back to 9 once things were fixed. Interesting how both these ranks were consecutive squares...

That's about all for now - off to check if my rating and rank has been updated - and if I've turned up in division 1(still not sure if that's good or bad - see previous post). And of course, to see if Tomek has managed to give Eryx and Snapdragon a beating and reclaim his throne...

Tuesday, May 03, 2005

Free at last...almost

It's finally over. The sixth and final viva ended this morning. It isn't really worth an entire blog, since it was the kind of fuzzy subject where you can talk around anything they can throw at you if you understand a few fundamentals. So that's about it on that subject.

Effective immediately, I have sworn to study nothing at all for the next three days at least. The last two weeks of vivas and submissions have been the most gruelling days I have ever had the misfortune of living through...thankfully it's over now, and I can heave a sigh of relief, and stay away from college for the next month or so until the exams start...

To be maddeningly precise, I have to go over to college to take care of some minor business. Complete waste of time - almost two hours of commuting time for about ten minutes of actual work. The bureaucrats strike again...In any case, since no frantic cramming is necessary, this should be a walk in the park...

In other news, I seem to have sprained my shoulder - looks like a pulled muscle. Rather annoying - turning my head to look left actually pains my right shoulder...

Fellow techies in need of comic relief, the adventures of BOFH are exactly what you need - several years worth of stories about a bored, annoyed, and frequently homicidal system administrator unleashing his wrath upon unfortunate muggles(nontechies) who try his patience...
The humour is unbelievable, and the writing style is excellent(though as my friend Thite says, it could have been a little more British) . Kinda reminds me of my cousin's stories of dumb users calling up his call centre and asking the most inane questions humanly possible. Definitely worth the read.

Songs I'm currently listening to:
Walking in Memphis
Hungry Eyes(the one from Dirty Dancing)
Yanni(about 10 of these, two or three are supposed to be in collaboration with Enya, but I haven't had a chance to hear them yet)

Stuff to do:
TopCoder match at 0630 Thursday morning...This is a little interesting - my next match will undoubtedly end with me placed squarely in division 1, which leaves me with a slight problem - I'm not that good yet! So the most likely possibility is that I'll be oscillating between division 1 and 2 for a couple of months, before I finally get good enough to hold my own in div 1...

It's really pretty sad - algorithmic programming is something that MU doesn't seem to really focus on - we get a little bit of it in Analysis of Algorithms and Data Structures - but not enough. Hell, I have classmates who don't know what memoization and dynamic programming are...of course, it could be argued that until a few months ago, I didn't know either - but it turned out that I've used both techniques before without knowing their names(or even that they were general approaches to certain classes of problems), simply by doing a little old fashioned intuitive hacking(if you're a nontech person - this just means programming, nothing else) with some mathematical analysis behind it. But there are people who can't even do that...something which I can never understand. How in blazes can you be a computer scientist/engineer without knowing how to program?(And no, they don't understand maths the right way either...)

Looks like that's the end of it...I should really be getting to sleep now. Big day to waste tomorrow!

Sunday, May 01, 2005

Now that's how it's supposed to be done!

In comparison to my other posts, this is going to be rather short...just a sloppy narration of interesting events, as opposed to the usual sloppy narration plus boring analysis...

Here's the scene - two vivas, back to back - ADBMS(Advanced DB management systems) and SP(Systems Programming) - and me scared to death about SP. ADBMS was never too much of a worry in any case, but after SP was rescheduled yet again(long story, not worth going into) and the teacher issued some cryptic comments, I was prepared for the worst, or should I say, unprepared...

In any case, things start up - the first half of the class ends up doing ADBMS and the second half goes to SP. Being stuck at the end of the first half, I realize that it's going to be a long day...Eventually we end up going to ADBMS, in the midst of happy reports from the second batch about SP. Apparently our great teacher was following through on her assurance that the risk was all hers, not ours...people ended up coming out after less than 3 questions, and she didn't even seem to be listening. Things were looking up...

The usual group of 3 ends up in ADBMS vivas. After the first 3 minutes, the prof has deduced that I know what I'm talking about and the other guys don't(I suspect they did, and were either merely confused or inarticulate). I'm sitting in the middle, and I sit back and watch the show as questions are shot at my left and right. Every now and then the occasional question comes to me, I answer, prof nods his head, and goes back to torturing the other two...Thankfully, he's a nice guy and they get off easy. I come out rather happy, and figure the best thing to do is to get SP over with quickly. Needless to say, this does not happen, as profs break for lunch.

Meanwhile, we furiously struggle to stuff more SP into our heads, all the while hearing news that a teacher from another department has turned up and is asking devastating questions. Our own teacher is following the age old practice of covering up her own ignorance by getting petty...

The teachers return, and we wait outside the lab as the first group goes in. Since there are only about ten of us left, tension levels get even higher, and people(myself included) bemoan the injustice of subjecting us to this torment while the other batch gets off scot free. First batch comes out looking pale...second batch comes out with reports of a devastating question, and the info that they've been told to come again 2 days later - with the answer this time. Feverish inquiries are made about the answer, as most people refuse to believe that my answer is right.

Time for the final group - that's me - and only two of us as opposed to the usual three. I go in fearing the worst. Friend of mine who came out two groups ago comes in along with us(he has a question to answer - or else...). He ends up giving an example I explained to him a few minutes ago, and the new teacher brings me into the discussion, noticing my slightly interested look...

Instantly I notice something different - no vague, uncertain statements - she actually speaks with certainty and assurance - and she isn't faking it. Belatedly I realise that I'm actually dealing with someone who knows the subject(and by knows, I mean knows, not the poor excuse that usually passes for it around here). Is this good or bad?

Questions start. They actually need to be thought about, not just used as an index into an answer table...Pretty soon I can no longer maintain the conventional student facade(not that I really try) and end up in my usual avatar - digressing and getting technical...to my surprise, the teacher loves it, and proceeds to go out of the syllabus, into AI and my experience with interpreted languages(long live Python!).

Slight detail - the poor chap next to me has been forgotten right at the beginning - he receives a few questions and then the big guns are trained on me...

I battle my way through and emerge triumphant. Some prof turns up and the viva ends. I'm left with a weird feeling that I struggle to identify...Teacher puts her finger on it by informing me that she actually 'enjoyed taking this viva.' In my astonishment, I manage a reply to the effect that I had a whale of a time too. Whew!

Now this is how it's supposed to go! A little thought on the bus back home brought me to the conclusion that two ingredients have always been missing at college(profs and students alike) - actual competence, and a deep love for the subject. Those of us who have it(that's right - I'm modest too) are strangers, those who don't are the people the system seems to be working for. Sounds like an interesting idea - over time, all systems end up catering to the lowest common denominator(not to mention employing them) - kinda like entropy and the heat-death of the universe...

Will probably post tomorrow, once the last viva is over...of course that gives me a lack of subject matter - what the heck, I'll talk about the weather...

PS: Incidentally, Operating Systems vivas got over today - not much worth writing about - just that they were abnormally short, and that all my apprehension was for naught...