Wednesday, June 18, 2008

Last Day at Read-Ink …

Exactly a year ago, on this very day I walked into a white, three-storied building in Indiranagar, Bangalore-the office to a start-up called Read-Ink Technologies Private Limited. That was the beginning of my first job…. And today, I am bidding farewell to this place and all the wonderful people I met here.

A lot changed over the last year; personally speaking, I got married, had a laptop blast in my house, realized a new local maximum of my ignorance, got banned, reached a new high in fitness, traveled, trekked, met some amazing people, made a few friends for life and lost a few dear ones to death…. To sum it up, it has been an eventful year!

But as I leave today I am not thinking about all the events that transpired over the last year or about the eventualities that I might have to face in the days to come… instead, my brain is working like a camera capturing humdrum moments of a ‘normal’ day here… things that will remain the same tomorrow as they were before I came…

Maybe at some time in the future I will chalk out the balance sheets for how ‘useful’ this last year has been. But as of today, such algebra is beyond me….

In my life’s book another chapter is closing.... tomorrow there will be no office, no bantering over coffee, no peeping over the cubicle, no meetings, no walks, no ‘goodh foodh’….and no second lunches…

Some how, the knowledge that we are going to leave soon does not stop us from making ourselves at home…. And that applies to life just the same.

Tomorrow will be a new chapter… beginning of new journeys…

But today, I feel like the narrator just gave the verdict… “Priya is dead! Priya is Mafia!!”

Damn! I have to sit out for the rest of the game… AGAIN!

Wednesday, June 4, 2008

MATLAB vs. C++? And the winner is….

….C++, of course! And, for the simple reason that MATLAB IS EVIL!

To all you pseudo-programmers, Simulink-flaunting ‘engineers’ and the like who swear by the ‘inbuilt functionality’ and ‘user-friendliness’ of MATLAB, I would just like to say… people, get a life! Its not that you don’t KNOW how stupid this application is- after all, you are the ones who sit there wiggling your toes while MATLAB takes minutes to run something C++ would do in micro-seconds; and you are the ones who get stymied, trying to make MATLAB understand even most simple Data Structures - then why not accept it? Why not, for once and for all, agree to the fact that C++ is superior and stop going ya-ya-ya about the ‘cool’ things about MATLAB!

People often tell me that MATLAB works better for engineers because of its inbuilt libraries and as a proof (by demonstration) they may type ‘14382^11.32’ on their command windows and lo-and-behold MATLAB tells you the answer! And then their argument may go something to the effect that to do the same thing with C++, you would need to write a function, maybe include a couple of libraries, debug, compile and run … too much headache for something MATLAB does in ONE line! Well, that is a fair argument…. only if you think that that is engineering… namely calculating random numbers to the power of random numbers…!

Honestly, that is anything but engineering! Engineering is about conceptualizing and it takes power to design elegant structures to translate those concepts to code… A good data structure is the difference between an understandable, well-organized, effectual program and useless, exasperating gobbledygook. But that is something MATLAB just does not understand. The ‘arrays’, ‘cell arrays’ and ‘structure’ that it provides address the problem of stucturing data with the same success rate as Bush is addressing the issue of ending the Iraq War!

Engineering also needs checks and while I admit that C/C++ has its own shortcomings when it comes to security issues (memory leaks, garbage collection problems, etc.), MATLAB is just outright scary. For example, there are no type-checks as a variable can be redefined from an integer to a character, to an array, to a structure within the span of a single function! Further, MATLAB passes parameters only by value… which is totally sinful if you want to pass large arrays and structures… just think of how much time and space you are consuming!

With C++ and a little more patience you can write code that is not only more efficient, it also better structured, more-understandable at any later date and therefore more reusable… I guess that’s why the latest (2008a) version of MATLAB had introduced object-oriented concepts and parameter passing by reference… But that’s something I am yet to get my hands dirty with….

Tuesday, June 3, 2008

Would you work hard…just for the heck of it?

The question is very simple… but the idea behind the question is anything but that. Imagine you were asked to do a job, however easy or difficult that does not matter, with the prescience that neither prize nor punishment will be awarded for the work you do. That does not mean that the quality of your output will not matter or that, your doing the thing well is not going to make a difference to anyone. It most probably will, just that you won’t be held accountable for it. Would you still care to spend yourself to do justice to the job?

As impractical as the above question may seem, it is not completely hypothetical. Of course, most of the time we work hard because we expect some reward/gain for doing a job well or loss/punishment/rebuke as a consequence of failing to deliver. But sometimes we can face situations where no such strings are attached. For example, think of the time in school when you knew that no matter how poorly you did in co-curricular subjects (like art, music, dance, physical education, sports, etc.) you will still pass, because those subject for some reason never count. (At least they did not count in my school.) Or, the time when you had secured the requisite grade in a course even before taking the finals and had the option of learning and doing well in the finals or not caring and flunking. Or, the time when you are about to leave a job and have the option of working hard for the last few days and diligently handing off your responsibilities or dumping the work because it won’t come on your record or affect your future prospects in any way.

In all these situations the thing to remember is that you may be spending the same amount of time trying to do the work as you would trying to malinger it. In other words, whether you do well or not on your co-curricular activities at school, you may still have to take the test just as you may have to take the final exam of the course you have already passed. Or while serving the notice period at the company you are going to leave, you may be required to be on your desk and look like you are working as usual. The only thing that would have changed is your answerability to your peers and superiors.

The answer to this question will certainly give you some insight into what kind of worker you are, and what it is that motivates you. Are you the kind of person who in the absence of any external impetus can inspire enough self-motivation to deliver the goods or, are you the kind who will drift till you are saddled up and put on course by the conditions around you…?

It may also give you some insight into whether you like doing what you do. Most people would do things if you give them an extremely good reason or an awful lot of money for doing it. The question is how many of them would be doing the same things if you take away the money or the status or the strings?