Down Memory Lane – The BTech96 YearBook

A sudden burst of nostalgia prompted me to pen down my first experience developing a social network. Back in 1999-2000 I wrote a framework for the yearbook of my undergraduate class in the Computer Science Department at IIT-Delhi, without the use of a database and strong security. Another reason for writing the article so may years later was to use Joomla. But more about Joomla in a later post. Hope the yearbook story inspires you.

The BTech96 YearBook – An Experiment in Social Networking

Often in life we come up against some interesting situations that demand more than the occasional dose of creativity. I had been going through my courses at IIT-Delhi, grinding through assignments, but really loving the programming. Every semester when I went home in the mid-semester break of a week or the end-semester break of much longer duration, I never touched books (not that I touched much of them in the hostel).

During my breaks I had written some interesting stuff:

  1. Typefast – When I was in my first / second year, there was this game we used to play on dumb-terminals. It was called Typefast, where random words would start falling from the top of the screen to the bottom and you had to keep typing out the whole thing before it reached the bottom. In the days when I was not familiar with the keyboard this game was a big challenge. When we moved to our department’s labs we had much better computers, but unfortunately the Typefast binaries wouldn’t run. Once I got introduced to the curses library I decided to take a stab at writing my own code to do the same thing that Typefast did and I was quite successful.
  2. Minerva – Another piece of software that I had written using curses. This was based on Panini, something that a senior (Amitabh Sinha?) had written. It used my GRE cram lists and randomly asked you to give the synonyms / antonyms of different words.
  3. Scrabble – I had written this in Java for the Bitskreig, the ACES festival in our department. At that time I had written only the player vs. player mode, with dictionary checking built in, but I have, since then added an AI mode into it.

But I guess my biggest project was the yearbook for my batch. I had seen yearbooks for prior graduating classes. Most departments did not have one. The CS department’s graduating classes did have an online yearbook, but it was something put together by a moderator aggregating email.

We had to be better. I mean, we were supposed to be the cream of the nation and was that the best we could come up with?

The Challenges

Feeding PageRank

At one time my Google PageRank™ used to be quite high – 6 or 7, without even trying. I guess I did something to annoy it over the years and my PR dropped to 0. So I decided to do a few things as a part of my new “Ego Drive”, not to be confused with the “Eco drive” that I still haven’t embarked upon. So far I have gotten around to doing just two:

  1. I registered with Technorati. And then I hit a kind of weird situation: Technorati wouldn’t let me claim or, both of which point to my blog. It instead let me claim my home page I couldn’t figure out how the pinging on Technorati worked, though. How does Technorati understand that there is new content? I had a feeling that it has something to do with publishing feeds. And therein lay a problem – my feed lay on my blog, not on my homepage.
  2. That is where the second thing came in. I wrote my own feed generator. So far I have written it only for Atom 1.0 – I am yet to do it for RSS2. The feed generator posed some interesting challenges:
    1. How was I to manage the list of sites in a flexible manner for the feed to report against? I solved this using a simple XML-based sitemap. You can very easily write a simple XML to represent your website. XML being structured content, I could use the same document to create a PHP sitemap.
    2. My sitemap is better for static content. What was the best way to show the dynamic content like that in my blog? After a bit of thinking and a bit more research I figured out that the easiest of ways to handle this – a link to a feed in my sitemap. I put in a linkfor my blog saying:

      I then used the Zend Framework to get the entries in the feed. On the fly I pull up the entries whenever my site’s feed is accessed and show the results. For this I used the Zend_Feed class.

      I considered dynamically determining the information from the page’s <link> tags, but ran into some issues processing some feeds, when Zend kept throwing Exceptions.

    3. The third was to dynamically get the summary and content of all the pages in my sitemap, to display in my feed. For this I used the Simple HTML DOM Parser. That let me retrieve the details from a specific segment of my pages. In most of my pages the main content is stored in a div block with class content, so retrieving the details was pretty easy.

The next step would be to write an RSS2 feed, just to ensure compatibility with feed readers that can’t read RSS2. I would be interested to know, though, if people who are savvy enough to use feed readers would settle for a feed reader that isn’t compatible with all kinds of feeds.

In the meanwhile I would like to welcome suggestions if you know how to do this better.

The Road Less Traveled

As a recipient of a highly subsidised education in the best environment India can provide with some of the most intelligent people in the world, my days at IIT were focused on getting a challenging job that would offer the most money. I am sure there were several people with the same goals – get a job in the fourth year, graduate, make a lot of money and spend a life of leisure. Some decided to insert the additional step of post graduate studies before joining their professions by doing an MS, MBA or PhD.

By my fourth year of professional life I realised that my job paid more than average, the quality of work was not challenging at all and my life of leisure was not entirely that. That was when I happened to catch an email dated 13th March 2004 that my friend was reading. The title was “Parivaar” and it said:

Dear Sir,

My name is Vinayak Lohani and I am a 38th batch alumnus of IIM Calcutta. After graduating from IIMC I did not take up a corporate placement but started Parivaar, a Residential School for socially ostracized children from categories of orphans, children of women in prostitution, street children, children abandoned by their families etc.

Parivaar Centre (as it is called) started in January and currently houses 20 such children. We are admitting 40 more children whom we have identified who are highly vulnerable and need immediate support.

IIM Calcutta alumni have been of great help and 35 IIMC alumni (15 from my batch i.e.. 38th) have extended support to one child each at Parivaar. We need 15 more individual donors to place these children and ensure that they too get opportunities like children form ‘normal’ backgrounds.

You would be able to read about Parivaar Center at:

You can extend support to one child at Parivaar through our Child Sponsorship Scheme. The cost of one child at Parivaar residential Centre is Rs. 1025 per month i.e. Rs. 12,300 for a year. You will be associated with the sposnored child over the years and will be apprised of his/her progress.

Sir, this is a personal appeal to you for joining hands with us in this cause. If I do not get confimred support from 20 individual donors before March end I would not be able to admit some of these highly vulnerable children, 15 of whom are girls who have been identified to be under threat of being trafficked and forced into prostitution.

We had planned for 40 children this year but since 15 more such extremely vulnerable cases have been reported we need to move away from planning. What is planning when human lives are concerned. And hence for this reason I am writing to IIM Calcutta alumni who might be willing to extend their support. Your contribution will be a destiny-changing support to one child.

Looking forward to your reply.

I would be glad to answer any queries that you may have.

Vinayak Lohani

The mail shook me awake. Vinayak is a person of roughly my age who, after graduating from IIT-Kgp and IIM-C could have gotten an extremely lucrative job. But he chose to attend a higher calling and leveraged his network to do something that I can only dream about. This was what I had spoken about in my comment regarding Taare Zameen Par.

I visited Parivaar on 3rd October 2004 to experience first-hand what it felt like. It had to be one of the most humbling experiences of my life. The rain did nothing to dampen the spirits of the children, who each wanted to meet me and talk to me. They were a happy lot. Really happy. You could sense how much being a part of a family mattered to them. There was not a child whose smile did not touch my core. These children now attend mainstream schools and get an education that would help them compete with others from the more privileged classes.

Starting with 3 children in January 2004, today Parivaar has not only extended its reach to 386 children, but it also has lent a helping hand to other child shelters struggling with infrastructure issues. All thanks to one visionary individual who decided to choose an option that does not reward monetarily but amplifies manifold the satisfaction you get out of life. There are other organizations that care for the underprivileged, but Parivaar is the one I know most about and hence able to comment better on.

My visit to Parivaar changed me quite a lot. It taught me that there is so much more to life than flexing your intellectual or fiscal muscles. It made me much more mellow about a lot of things like uncooperative colleagues, decisions not going the right way and so on. Of course, I still maintain an argumentative streak, but someone who knew me 5 years back is bound to notice the difference. After all, what I face are minor trifles.

The Road Not Taken

Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;

Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,

And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back.

I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.

From Mountain Interval by Robert Frost

Few things exemplify Robert Frost’s poem above better than Parivaar. Take a bow, Vinayak Lohani and Parivaar! May your tribe increase!

Portraying the Mahatma

At the risk of being butchered, marinaded, barbecued and finally eaten, I would like to state that Bengali pride makes most Bengali people prefer the firebrand nature of Netaji Subhash Chandra Bose to the more non-violent Mahatma that the rest of the world idolises. I fall in the same bucket (i.e. prefer Bose to Gandhi), which is why I decided to take a shot at writing this.

I have tried to analyze 5 movies, each dealing with a different view of Gandhi. Correction: I have tried to analyze 4 movies movies and 1 play. I have tried to keep my analysis as spoiler-free as possible.

  1. The Perspective of a Biographer: Gandhi (1982)

    Any list on films about Gandhi is incomplete without this biopic mentioned at the top of the heap. The remarkable thing about this movie is that the maker Richard Attenborough is not Indian and Ben Kingsley who plays the titular character is only half-Indian. And yet, this is as good a depiction of Gandhi as possible. So much so that most non-Indians I am aware of got interested in Gandhi through this eponymous movie. I myself use this movie as a refresher-course when I forget some detail associated with India’s freedom struggle.

    As a biopic this multiple Oscar winner covers Gandhi’s life from his days in South Africa up to his death. The whole aspect of India’s freedom struggle with him in the forefront is shown in great detail. The movie publishes a disclaimer upfront, stating the impossibility of recording all of Gandhi’s life in one movie and proceeds to show his journey with great historical accuracy. It seldom sees the need to spice up any event associated with Gandhi’s life, since this was a life where truth certainly was more interesting than fiction. Being more of a homage, it tends to skip over some character flaws, but that doesn’t take anything away from its splendour.

  2. The Perspective of a Relative: Gandhi, My Father (2007)

    This is an exceptional movie directed by Feroz Abbas Khan, which got buried under the more commercial releases of the year. Given the fact that the average Indian moviegoer likes the glamour and glitz that a Khan puts on display rather than a serious look at an unexplored relationship, it was not at all surprising that Gandhi, My Father failed to set the cash registers ringing. Featuring Darshan Jariwala as the Mahatma and Akshaye Khanna as his eldest son Harilal Gandhi, this movie tracks the troubled relationship of Gandhi with his son.

    I like this movie because it is never preachy. It shows how Gandhi favoured merit over relations and gradually became a passive agent of the destruction of his son’s life. Harilal’s relations with his father soured due to several actions on Gandhi’s part:

    1. Preferring to sponsor another young man in the neighbourhood for higher studies in the UK
    2. Advising someone to sue Harilal for cheating
    3. Disowning Harilal publicly

    It shows how Gandhi the father of the Nation always trumped Gandhi the father of Harilal.

  3. The Perspective of a Common Man of Today: Lage Raho Munna Bhai (2006)

    Among all movies that I have seen, this was the most novel attempt of making the common man empathize with Gandhian philosophy. For those not familiar with the movie, this is the second (and so far last) installment of the popular “Munna Bhai” series directed by Rajkumar Hirani.

    It deals with a goon Munna (Sanjay Dutt) trying to woo a pretty Radio Jockey (Vidya Balan) by pretending to be a professor of Gandhian philosophy. When he first hears of 2nd October and “Bapu” in the land of the Mahatma around 60 years after independence, his thoughts don’t progress beyond it being a “dry day”. For the uninitiated, a “dry day” is when booze-shops don’t sell liquor. After a bit of fact-finding he figures out that Gandhi is the “guy whose face they have on banknotes”. However, faced with the prospect of being outed he bites the bullet and slogs for 72 hours through every piece of literature that he can find on Gandhi.

    The result is that Gandhi (Dilip Prabhavalkar) appears to him in person and guides him through the essentials of Gandhian philosophy. He solves a variety of complex problems using his approach, called Gandhigiri:

    • He helps people muster courage and speak the truth (while lying about himself!)
    • Fights corruption
    • Shuns class discrimination
    • Protests in a non-violent manner
    • Makes people feel guilty about doing the wrong thing
    • Fights superstition

    The attempt of this movie is to help people start a journey to understand Gandhian philosophy. Of course, to gain a real understanding you would have to devote a few years of your life, but this movie’s refreshing approach really connects with the common man.

  4. The Perspective of a Non-Believer Turned Follower: Hey Ram (2000)

    Many would argue the presence of Hey Ram on this list, because this movie barely showed Gandhi for 10 minutes. However, IMO this is a very deserving pick.

    Kamal Hassan directed and acted in this movie, featuring Naseeruddin Shah as Gandhi. His character, Saket Ram loses his wife to the communal riots associated with the partition of India. In his grief and rage he is recruited by a group of Hindu fundamentalists, who plan to kill Gandhi. They hold Gandhi responsible for the riots and are against his policy of appeasement towards Muslims. Saket Ram is assigned the task of assassinating Gandhi. Eventually though, after the murder of a very close Muslim friend (played by Shahrukh Khan) by Hindus, he sees the error of his ways.

    What caught my fancy in this movie was the gruesome violence and the sheer futility of the partition riots – I was quite shaken after I stepped out of the movie theatre. The interesting thing about the movie is the difference in the portrayal of Gandhi before and after Saket’s change of heart. The dialogue delivery by Naseer before the change makes you detest Gandhi – it is as though Gandhi tried to emotionally manipulate the masses by going on fasts and Satyagrahas. After Saket’s change, however, the portrayal became much more benign. Most friends of mine failed to latch on to the fact that the portrayal of Gandhi varied by the state of mind of the protagonist, and thereby disliked the film.

  5. The Perspective of a Follower Turned Assassin: Mee Nathuram Godse Boltoy (1989)

    This one, a Marathi play, is the odd one. This was also a very hard one to write about. Pradeep Dalvi, the playwright was denied permission to stage the play by the government of Maharashtra in 1989. Nine years later an attempt to resurrect the play in theatres failed again. So you can’t catch the play, but the transcripts are available. The play is split into four acts:

    1. An Assassin Speaks
    2. Gandhi Must be Stopped at Any Cost
    3. The Next Moment I Fired at Gandhi
    4. The Assassination

    History is always written by the victor. In this case, though Nathuram Godse was the person doing the killing, the victor was actually Gandhi. So naturally, any viewpoint that opposed Gandhi’s was bound to be put down. The play provides the viewpoint about Gandhi being wrong in his political stance, then justifies his killing as the only way to stop him from destroying India.

    I was hanged. There was only one common factor in Gandhi’s life and mine. We were both the cause of each other’s death. He wanted to live for his principles and I was prepared to die for my principles.

    Nathuram Godse, in Pradeep Dalvi’s play, Mee Nathuram Godse Boltoy

So there you are – one man, so many movies. Do catch them if you can – each is worth your time. It won’t matter if you admire the man’s principles or not – his journey has several lessons to teach.

Dining Styles and Why I Hate Internet Explorer

Contrary to what the title says, I have to warn you that this monologue is not regarding table etiquette. Instead, this is a very coding centric rant focusing mostly on my adventures with Tables (Dining) and CSS (Styles).

The job that pays me my wages requires me to be an advocate of standardization, mostly with a focus on data and application customization. When I started doing web-pages in 1997 on a Unix mainframe through a dumb terminal, the only browser I had access to was Lynx – a text-only browser. Then I got access to a terminal with graphics and was able to run Mosaic. I was able to see what my pages actually looked like with pictures.

Moving on, the next browser I had access to was Netscape Navigator, and subsequently Netscape Communicator. Those were awesome browsers, leagues ahead of the competition, which was mainly IE 3 and IE 4. They had a lot of concepts like frames, layers and so on, which let you add funky things to your pages. Of course, I never went beyond frames and some MouseOver and MouseOut events in Javascript.

Then I started off professionally, and I had to write wee bits of code to run on both Netscape and IE. This was the new IE 5, the first big release that altered the balance in the browser wars. That was when my liking for Netscape started diminishing. The whole concept of layers was, though structured, extremely convoluted. IE handled things much better. Quite surprisingly IE was MORE standards-compliant than its competition. Netscape had completely missed the bus and its subsequent releases always were playing catch-up in terms of features, and that too in the face of collapsing market share.

So for a while I just made sure my pages rendered properly on IE (now at 6). But that was when Microsoft took a 5-year break and Firefox came by and completely whipped it in terms of standards compliance. In the meanwhile, I started using programming techniques on my web-pages. I started by writing small JavaScript functions that helped me use my own template structures. Those days I had my page at geocities, so using PHP was not an option. When I purchased my own domain I replaced the JavaScript templates with PHP, which was a pretty good move.

So chronologically, I used these browsers as my primary:

  1. Lynx
  2. Mosaic
  3. Netscape Navigator
  4. Netscape Communicator
  5. IE 5
  6. IE 5.5
  7. IE 6
  8. Firefox 1.0 > IE 6
  9. Firefox 1.5 > IE 6
  10. Firefox 2.0 > IE 7
  11. Firefox 3.0 > IE 7 > Chrome > Safari > Opera

My web-layout techniques also progressed correspondingly:

  1. Plain text
  2. Text with pictures
  3. Frames, JavaScript
  4. Table layouts, JavaScript
  5. Table layouts, JavaScript, CSS
  6. Predominantly CSS, with tables where unavoidable, JavaScript

Particularly between 5 and 6 above there was an interesting toss-up. If you see the layout of this page, it is quite intricate. Each line can be thought of as having 3 columns:

  1. The left edge / top left corner / bottom left corner, with a shadow. The corners occur once, the edge repeats for the length of the main content
  2. The middle section, which repeats horizontally to a pre-determined width, and vertically for the entire length
  3. The right edge / top right corner / bottom right corner, with a shadow. The corners occur once, the edge repeats for the length of the main content

Approach 5 seemed straightforward, because in a table we can set the width of columns and things get aligned automatically. However this was easier said than done, as precision was of great importance. In any case, I had my page looking exactly as I wanted it to. My page rendered correctly on the big 4 – Firefox, IE, Safari and Opera. I had devised an approach where the layout would be created by calls to PHP functions. This was done to minimise impacts of changes like column widths etc. This worked very well for a while.

Then I migrated this blog. And the trouble began. Most content management sites use XHTML instead of HTML. And in case of my blog that royally hammered the look, because, out of all things possible, the look did not turn out correctly in IE 7.

I refuse to be aligned!
I refuse to be aligned!

A little research showed me that the use of XHTML was playing truant. Further research showed me that I could fix the look by using CSS instead of tables. So I started the transformation. I had never used the layout features of CSS, like float, position, margin or padding. Neither had I used CSS to extensively control backgrounds. I found out what I was missing. This approach was so much better than my table-based hacks. More importantly my page was slowly becoming standards compliant.

How did I know that I was compliant? Quite simple – I used the site validation techniques that I accidentally stumbled across. There are two of them that I am aware:

  1. CSS – Checks if your stylesheets are using valid tags throughout
  2. XHTML – Checks if you comply with the XHTML standards. This is really useful and points out a lot of good practices by means of code corrections, like the use of an "&amp;" instead of an "&" while linking to pages and so on.

You don’t see the validation links down in this page, but that is because WordPress refuses to listen to you even if you insist you want to put in your own HTML code and not use the visual editor. So WP puts in <p> tags by itself when you don’t need them. Anyway, I hope to make the blog compliant later. At the end of the day, though IE made me do the hard yards, I was happy because my pages were compliant, as you can see at the bottom right-hand of my main home page.

My sites were compliant and everything was well, till I removed my “left bar” and replaced it with a “menu bar”, to free up some real estate. Bad idea. I checked the look on IE Mac 5.2 and had a seizure. The menu bar looked like a film by the Ramsay Brothers instead of the nice sleek design I wanted to give it. I immediately decided that this needed testing on IE 5.5 and IE 6 at least, in addition to IE 7. This was particularly important since a lot of people working on XP still use IE 6 and not IE 7.

How did I isolate the problems? And how did I test it out on all the IE versions without installing them or using different virtual machines? I found this very good set of tools in my attempts:

  1. Firebug – This is a must-have Firefox plugin if you are a web-developer. It identifies which section on a page is using which style in a very nice manner by highlighting the section on the page.
  2. IETester – I love this in spite of the fact that it tends to crash more often than I would have liked on Vista. This application lets you open tabs for IE 5.5, IE 6, IE 7 and IE 8 RC2 and renders pages based on the browser selected
  3. Sandboxie – I don’t know if this was supposed to be “Sandbox IE”. Nevertheless, this lets you install different applications, like other browsers in a “Sandbox” area, without messing up your core installation

IETester was a phenomenal help. It helped me figure out how ugly some things were in IE.

  1. The CSS boxing problem was a major nuisance. If a page rendered correctly in IE 5.5 it wouldn’t render in IE 6 and so on. I had to tackle this with a bunch of hacks:
    1. Using * html before an element in the CSS to make IE read it
    2. Inserting a “” in an element name, a.k.a. the Tantek hack.
  2. I couldn’t get some PNG files with a transparent background to show up correctly, so I replaced them with GIF.
  3. I couldn’t set the widths to be automatic as they were taking up the whole width

There are a lot more that I cannot recall at this moment. Finally, after a lot of effort I managed to make the look consistent across all the IE versions. Actually I succeeded in not breaking it. The consistency part of things is there between the big browsers, not the older IE versions.

— End of rant.

Update on 14th July 2009: Having redone the blog’s theme some points above are longer valid. However, the basic premise holds – IE sucks.

Why So Serious?

For the few Indian readers that I have (not that I have any non-Indian readers), do you remember Flop Show? Do you remember the episode where Jaspal Bhatti made a TV serial?

He intended to make a tragedy, which unintentionally ended up becoming an award-winning comedy. A conversation with my brother Kokonad today sent me back to the days of Flop Show. Our conversation was through IM:

Koke: I like your blog… it’s really funny
Me: Thank you. I did not think there were too many funny entries there.
Koke: Style of writing sentences in general. :-). It’s like you truly seriously mean to say “…” (something in Bengali that I had remarked on our trip to LA and San Diego, which had Koke and Tanuka laughing uncontrollably) but it is funny to us!

So there you are – here I am, trying to seriously weigh two sides of every issue (unsuccessfully, of course) and people are having a laugh. This happens to me quite often. Remember Spontaneous Rotflosis? When I talk I am probably more serious than most people. If the Joker from The Dark Knight was present, he would probably have asked: “Why so serious?”

Heath Ledger as the Joker... Why so serious?
Heath Ledger as the Joker... Why so serious?

And yet, I wasn’t trying to be funny.

Almost there…

Last Saturday night, or actually the early hours of Sunday, 1st February, I was up watching the Men’s final of the Australian Open – a match-up between the two best tennis players in the world: Rafael Nadal and Roger Federer. The world rankings say that Nadal is #1 and Federer is #2, and if the current form is any indication, Nadal is bound to catch up and overhaul the career Grand Slam mark that Federer sets.

But for as long as Federer is an active player, he will remain my favourite. Being a right-handed player with a single-fisted game myself, albeit of phenomenally less talent, I love watching the beauty of his play – so effortless, so graceful, yet so fascinatingly dominating. He is the reason that I resumed playing tennis after a 15-year hiatus.

Which is why I was really sad on Sunday morning. These two opponents have provided 3 thrilling encounters, all in the finals of grand slams – 2007 Wimbledon, 2008 Wimbledon and 2009 Australian Open. All were 5-setters, and the first one resulted in a victory for Federer, while the other two had Nadal triumphing. The two defeats, though worthy of the finals of Grand Slams, left me feeling very sorry for Federer. Here was a person on the cusp of history on both occasions – about to set an open-era record by winning his 6th successive Wimbledon in 2008 and his record equalling 14th Grand Slam at the Australian Open in 2009. Both the times Nadal halted his quest.

When asked to speak at the award ceremony of the Australian Open, he broke down and I guess most people could feel his pain. Sheesh – someone who has reached at least the semi-finals of every grand slam since 2004 and the finals of all but two of them, who has missed winning a calendar grand slam on two occasions, being thwarted by another genius surely must hurt. Particularly since Federer’s problems against Nadal are more in the mind rather than the ability. Throughout the Australian Open Federer had a first serve percentage of around 70%, but in the final it dropped to 51%. It is as though his form deserts him while playing Nadal. It was quite different in Wimbledon 2007, when the match kept see-sawing till Federer hit his groove in the fifth set. Nadal’s level of play remained the same, but Federer was sensationally sublime, as he is with every opponent other than Nadal. The result was that Federer convincingly won the last set. If only Federer can do that more often against Nadal! Till then I feel it is difficult for Federer to cross the number 14.

At the end of the day the greatest gesture of the Australian Open came from Nadal, when he put his arm around a distraught Federer to console him. The best moments in sport are highlighted by the victor commiserating with the vanquished, when the vanquished could well have won an engaging battle. Take a bow, Federer & Nadal at AO 2009, you join Andrew Flintoff consoling Brett Lee at Edgbaston in 2005 and Brett Lee applauding Sachin Tendulkar at Adelaide in January 2008 as my favourite sporting moments!

The Apple of My Eye

Overcome by curiosity at the fawning of thousands of bloggers over Apple in general and the Mac OS X operating system in particular, I bit the bullet and purchased an Apple MacBook. The nice-looking black one. In November 2006. Having used it for more than 2 years now I have mixed feelings.

Before I go into my rant, let me provide a background about myself. My foray into computers began with dumb terminals working off a mainframe. I then had an extended affair with Linux – RedHat and Slackware. I also used HP-UX, SGI Irix and Solaris quite a lot, based on which course I was doing my assignments for. After that I got into a job, which meant predominantly using Windows, first NT, then 2000, then XP and now Vista. Of course, I continued to have Linux installed on my machines on a dual-boot and I did help in the administration of Linux quite a bit.

During my formative years I had the option of choosing from vi and Emacs for editing. I stuck to Emacs, mainly because it seemed supremely configurable. When I moved into the professional world I shunned commercial software like Visual Java for JDEE on Emacs, mainly because it kept my machine spiffy and because I had a very good understanding of Emacs. Of course, once I got a taste of IntelliJ IDEA, I dropped Emacs. I started using vi (actually GVIM) at that point, just like a lot of people use TextPad or EditPlus for quick and dirty editing. It was just that Emacs was an overkill for such activities and vi was much better than any of the pure Windows alternatives. The only time I use TextPad is when I want to do a “block select” on text.

The point of saying all of the above is that I have covered a fair spectrum of machines and operating systems and have adapted quite comfortably to each. To cite an example, I took to Vista just as easily as I took to XP, unlike several people I know.

So here is what I felt about Mac. You might have guessed by now, since I have had the black MacBook for more than 2 years, that I have used Mac OS X version 10.4 and 10.5 on an Intel platform.

  • The Good
    • Undeniably, the OS reliability. I have left the machine running for weeks without having to shutdown or restart. In fact, the only time I do a restart is when some patches need to be applied.
    • The looks. You can’t argue with this one. The outward appearance is sleek and the GUI redefines polish.
    • Boot Camp. I haven’t come across a better tool for installing an alternative OS. It was as effortless as it could be. Of course, I am still not sure if I can get it to triple-boot with Linux in addition to Vista.
    • Lots of other things, like battery life, resource usage etc. My battery lasts quite long – around 1.5-2 times as much as my office’s dinosaur, HP Compaq nc6400. The Mac hardly ever makes any noise.
    • Pricing. I know I will get a few raised eyebrows for this. But I am not kidding. If I compare the most reliable of the breed in non-Apple laptops (IBM / Lenovo and Sony), the costs are comparable for comparable configurations. And with the kind of stability that the machine has, I would say it is excellently priced. This wasn’t always the case, mind you, and the falling prices are the reason that Mac sales have picked up steam in the last few years. That and the switch to Intel, of course.
  • The Bad
    • Safari. Contrary to what the fans say, I find Safari to be a mediocre browser at best. Its page rendering is slow and the features it touts are things I don’t care too much for. Its redeeming feature is that it has full versions available for iPhone in addition to Windows and Mac. But then, so does Opera (for non-Apple Smartphones).
    • I was stunned to see Apple sounding the bugle on “Spaces”. 12 years back I used the WindowMaker window manager on RedHat and that let me define multiple desktops and assign different programs to different desktops. Of course, I had to tinker with the configuration file scripts for that, but I am sure they have a UI for it.
    • One aspect that is reminiscent of Windows of yore is the system restart after applying most patches. I can understand wanting a reboot if a critical security patch has been applied, but restarting after updating QuickTime? Safari? That is a stretch, given that these are patched quite frequently.
  • The Ugly
    • Where is my right-click? I consider it a serious design flaw that I have to keep “Control” pressed and then click to get a right click (or use an external mouse). Whose brilliant idea was it?
    • I have to actually use the command prompt for showing / hiding system files. And I thought this was supposed to be easier than Windows.
    • In Windows I can define what services I want to start automatically and what programs I want to start automatically. Imagine my surprise when I had to resort to Google when I wanted to figure out how to do the same in Mac. I looked at all the usual places first, like System Preferences » Accounts etc.
    • 5th January 2009 was a very happy day for me. Because Google made Picasa available for Mac that day. Ever since I came to know of Picasa in 2004, I have been hooked by its extreme simplicity. The fact that it was available for Windows and Linux but not for Mac always had me wondering. The last 2 years have been extremely difficult – iPhoto is just plain ugly.

Given a choice will I not own a Mac? Far from it. As I said earlier, I have seen a wide spectrum of machines and operating systems. None of the flaws that I have pointed out in a Mac are really showstoppers and the strengths are *very* good. And since adaptability is not my weak point, I would go so far as to say that I like the overall package.

I guess my main gripe is with Apple and its fans harping on the usability of the OS, when really it is quite unusable for a layperson used to other things. It is like saying that vi is more usable than TextPad, while it really is not unless you figure out its quirks. I still haven’t gotten Tanuka, someone who uses a computer for chat, mail, surfing and photo management to quite like the Mac. She finds it very alien.