Over the years, I've been called a lot of names. I've been called a nut, an 'evil diabolical honeypot' and though I don't remember the exact name at this moment, Richard Stallman has called me some pretty uncomplimentary stuff as well. But nothing has bothered me so much as this particular comment for my last blog post.
"you are boring us now! whoever wants to know about vsd...you'r loosing your audience...*makes exit*"
Boring? BORING? When I first saw that comment, I typed out a long , flaming reply, brimming with indignation. And then the truth hits me - my blog *has* become one-dimensional over the past few months. I guess it was inevitable - when you work on something all day and you love it so much, you're bound to blog about it and talk about it a lot. Which is probably not what my readers (whoever is left) want.
What do I blog about?
What do I write about? There is so much cool stuff I see internally at Microsoft which I would love to blog about - and promptly get fired for it. Well, I don't have an answer for that - yet. So for the remainder of this post, I shall link to some of the posts I've seen in the last few days which have made me think a bit.
The nature of things and a n-dimensional hyper-plane
Microsoft's loss has turned out to be Indiana University's gain - Roshan has been blogging up a storm after leaving the B0rg. His latest post is about how we in commercial software focus on solving problems - rather than thinking about why they came into existence. It takes 2-3 readings to understand, thanks to sentences like these
Abhijit got me to look at the involution represented by a matrix as the reflection of a point about an ‘n-1’ dimensional hyper-plane in an ‘n’ dimensional space. I knew that given a function that produces ‘n’ bits, the matrix would be a ‘(2^n)x(2^n)’ square matrix and hence I was looking for the reflection of a point about a ‘(2^n)-1’ dimensional hyper-plane.
However, the last para is worth its weight in gold.
The world of commercial software or in general the world that practices software engineering in a way that is not research oriented has certain rules of problem solving that are different from those of research. The more creative and intellectually challenging of those environments let you take your problems and solve them in any way you want. The lamer environments put too many bounds on how you solve your problems. Very rarely, almost never, in commercial software do we get the freedom to ask the following question in a non-trivial way ‘why is this the problem that we need to solve? why is this its nature?’.
This struck a chord with me due to another conversation I was having today with Sada. I was talking to him about a wacky idea I had thought up for Visual Studio some time back. We were discussing it when I realized that I really didn't understand what problem I was trying to solve. Worse, I realized that I didn't 'understand' the problem itself or why it existed or how it came into being. When I say 'understand', I mean truly, deeply, completely understand.
While you're at Roshan's blog, read his post entitled 'Judas to the Temple of Lambda'. I quote
Dan Friedman is one of the kindest gentlest people you can talk to – and pretty much every other sentence some brain mutilating idea, said in the kindest subtlest way possible. So it happened that I needed to prove that something is not possible (it is related to the hypothetical apply-iterator operator I speak of here). Fifiteen minutes after the conversation I am thinking about higher order programming with continuations and my brain is hurting. (do you know what that means? If you don’t you need to go though the experience of hitting upon an idea that changes the way you look at the world.
Across the line of magic
We programmers like to think that we, and we alone, know the pleasure, the mental high you get when you debug something and fix a piece of offending code. Vishnu Vyas describes some beautiful debugging - by a TV repairman.
Programming is something that's an inherently fun affair. It lets you be the master of your creative energies. It lets you become god for some time, It lets you create. And that gives a programmer immense pleasure and satisfaction. Just like sex....(snip)
This look, which I had considered the secret trade-mark of us elitist geeks, was exactly what I saw on the repairman’s face. This was obviously an expert at work. And the best way to learn anything is to learn by watching the experts do it, and this time I had to cross my magic line to the realm of bits and piecies and all your fancy electronics - the resistors, the capacitors, the transistors and what not.
Read on to see the rest of the debugging story.
Yahoo interviews and small utilities
Swaroop, who is an infinitely cooler person than I am (he has written a book, for God's sake!) has a couple of posts which made me reminisce about my initial days with computers (shall blog about them soon). I couldn't help but laugh at the following incident from his interview at Yahoo - it sounds so similar to something that happened during my interview at Microsoft
A funny moment was when they asked how much history I was maintaining, and I said unlimited, because the Python list can store as much as the computer’s memory allows, and they didn’t quite expect that, mostly because they were used to #define SIZE 100 in C++ programs written by other students.
Though I'm unhappy he didn't use Sql Server :-), his account of his project involving MySql is an awesome read too.
Mini Microsoft and working at Microsoft
And finally, there's a post from dear, ol' Mini exhorting college grads to not come and work at Microsoft. As someone fresh out of college and having been at Microsoft for 6 months now, my first response was WTF? I could type out a long rebuttal but consider the following
- My PUM beats me up when I'm lazy and don't 'think up of stuff' . I walk into his office whenever I feel like it to bounce some idea or the other off him. Did I mention that he's my manager's manager?
- I have almost unlimited resources at Microsoft - I have 2 really, really powerful machines whirring away near my feet. And a TabletPC. And a super, fast network connection. And a company which doesn't really care about when I come into work or what I wear. Where the usual response is 'Go do it' rather than a negative reaction.
- BillG's Thinkweek. Though I had been in the company only for a month at that time, I was able to submit a paper. In how many other firms would that be possible?
I'm may sound fan-boyish, but Mini really annoyed me with that post. Yes, we are big and we may not be right all the time. But if you want to change the world, this is still the best place to do it from.