Tuesday, October 25, 2005

Bug Tracking "OnTime"

Google ads are gr8. Yesterday, when I was showing my blog post to some of my friends I happened to click on one of the ads about a "Visual Studio Add-In". This took me to Axosoft, a company which makes the bug tracking software called "OnTime." Before this, I only knew about two such tools, one is FogBugz by Joel Spolsky, and another is Visual Intercept which our company uses.

The distinguishing feature of OnTime is that it integrates nicely with Visual Studio. Therefore the developer need not leave his IDE just to log bugs. Apart from the Visual Studio Add-In, they provide the web-interface which is the convention with such tools. For further convenience, a Windows Standalone application interface is also provided.

All three interfaces work exactly in the same way and have almost similar UI. Moreover, the UI is highly customizable and the developer can add new fields which are not provided by default. This is a really nice feature and one can customize defect details according to their own project environment. You can also add attachments with your defects (like a snapshot).

Grouping the defects based on some criteria is another great feature. That way it is much easy to keep track of the defects. And OnTime provides with hell lot of ways to group the defects. You can group them by their status, their assignee, their completion date and much more.

Doing all this without leaving your Visual Studio is such a great relief for the developer that it is worth spending your $$ on it. Much of developer time is wasted in switching from Visual Studio to the web browser and so most people have a special session at the end of the day just to log bugs in the web-interface. That way you might forget some detail about the bug. It is best to enter the defect as soon as you notice it right from your programming environment.

The best part is that the company is offering the tool free for single user development. So you can use it for developing personal projects. And for bloggers like me it offers two user licenses. Anyway I have not written the blog post just for those licenses (I have to stick to the tool used in my company). But I will definitely recommend OnTime to the concerned authorities in my company.

Sunday, October 23, 2005

Book Review: Just For Fun

A few days back, I read this amusing book "Just For Fun". I just noticed the author "Linus Torvalds" and that was reason enough to issue the book from my company library. And true to the title, reading the book was fun.

So what does Father of Linux want to say to all geeks (and non-geeks too)? You think he would describe the birth of Linux in all gory and geeky details. Yeah, he does that and a lot more. For those who are not geeks, he presents some philosophical content, and this is highly amusing, although you might disagree with him in this area.

Thus somewhere around 1991, he creates Linux just for fun. Believe it or not, most programmers program for the sake of fun and enjoyment they get out of it, and here Linus goes on to describe his fun creating Linux. The journey begins when he was an undergraduate at University of Helsinki. There he got hold of "Operating Systems: Design and Implementation", the book which changed the course of his life. As he says, "As I read and started to understand Unix, I got a big enthusiastic jolt. Frankly, it's never subsided." In the book Tanenbaum describes Minix, an educational OS based on Unix.

Linus installed Minix on his new 386 machine, and figured out that this OS was too crippled for any real work (it had to be, after all it was for educational purposes only). He didn't like the terminal emulation program and started developing his own version entirely by programming the 386 hardware. That was how it all started with a terminal emulation program. I can't describe the whole story here (for that you need the book), but what I got the feeling that it was great and wonderful.

In one of the chapters he explains his tussle with Tanenbaum ("Minix vs. Linux"). Here you see his sentiments expressed when someone challenges his creation called Linux. His feelings for Linux are contained in his email to Tanenbaum like this "but, I am touchy when it comes to Linux." In further chapters one finds the growth of Linux, open source and GNU. In a decade or so he becomes a revolutionary and a celebrity.

Next he describes the growth of Linux from some geeks in newsgroups to the common user at desktop. You come to know about his Transmeta affair. And one hears the talk of fame and glory (and money too). It's difficult to imagine how his pet project grew to such enormous proportions and with it Linus became an "accidental revolutionary."

In the concluding chapters, Linus presents his view on topics like "Intellectual Property", "Why Open Source Makes Sense" and "Fame And Fortune". These articles are worth spending time. In one article "An End to Control" he talks about the freedom of customers and expresses views against the pure greed of companies.

The ultimate philosophical content is expressed in "The Meaning of Life II" where he says that one begins from survival, then gets into social order and finally seeks fun and entertainment. Whether you agree with him or not, you will have the fun knowing the philosophy of a computer geek.

I had fun reading the book and I hope some of you out there will experience the same.

Wednesday, October 19, 2005

Source Insight

Finally I have reached the Holy Grail of source code browsing. Yesterday I saw one of my colleagues running an evaluation version of Source Insight 3.5 and I was amazed by the way it displayed all the symbols (similar to Class View in Visual Studio). The impressive feature which made me consider this code browsing tool was that it was able to generate the symbols without using any project or workspace kind of thing.

I had used a lot of different kinds of programming editors starting from the ones in Unix family (VI, PICO, NEDIT, VIM, GVIM etc.) to those in the Windows family (TextPad, UltraEdit, Visual Studio, Crimson Editor etc.). And I wished I could get the Class View feature of Visual Studio in any of the low cost or free editors. But none of them seemed to provide this feature at a low cost. There were code browsing tools like Understand for C++, and RedHat Source Navigator which allowed code browsing and class view, but these tools required that I create a project out of all my source files. Due to my prior Unix experience I am used to "$vi f.c; cc f.c;./a.out;" kind of style and I don't like creating unnecessary .dsw/.dsp files. I just have a damn CPP file and I need to browse through it efficiently. Why the hell does my software need a project database of sorts??

Then watching Source Insight in action was such a great relief. My colleague just dropped a CPP file in Source Insight window and WOW! In a second there was the class view complete with all symbols (variables, functions, #defines, #includes and more). So cool!

Feeling enthusiastic about it, I also installed the evaluation version on my machine. Its default syntax highlighting is not very pleasant. In fact it allows syntax highlighting for every programming element including even function parameter names. And so the whole screen looks awkward due to lot of colored words there in your source code. To configure the highlighting to match with that provided by Visual Studio took me an hour or so. They have horrible configuration dialogs and their default setting is not pleasing to most people out there. Especially the default font is not fixed width which is very annoying.

But leave aside the issue of complex configuration dialog, the tool works great. Drag and drop editing, column editing and other common features work nicely. The features like auto completion and context view are very very helpful. Features related to project/workspace are similar to those found in Visual Studio. The line numbering seems to be better than VC7 and VC8 beta. I wish there were tabs like those in VC7 and TextPad which allow seamless switching between multiple files. Source Insight is much faster than VC, but somewhat slower than TextPad, and can handle large files with good efficiency.

Lastly I would like to mention that I had come across Source Insight much earlier in my career, and at that time I just thought that like Understand, VC, and Source Navigator, it would not allow code browsing without a workspace. My prior frustration with these project based browsers did not even let me experiment with this new tool. Thanks to my colleague Vaneet who showed me this tool again.

I haven't explored all the features, but I hope they would be great as well. I need to recommend our IT department to spend $$ on this tool rather than buying fat VC licenses from Microsoft.

Saturday, October 08, 2005

Darwin Revisited

In one of my previous posts I mentioned a thing or two about Intelligent Design (ID) Theory of Origin of Life. The ads displayed by Google on my blog had links to many sites on ID theory. Although being an ardent believer of Darwinism, I thought why not have a look at the views of the other side. And so I clicked on one of these links displayed by Google.

The arguments against Darwinism on that site are fun to read. They represent the height of stupidity and misinterpretation and above all it looks like those guys are so desperate to convince people about ID theory. To my surprise, that one single click on the Google ad earned me a lot more that all the clicks in the past month. Perhaps the site owner so desperately wants people to click at his site link and that's why he is paying so much to Google. Good for me.

After reading their arguments I thought it would be proper to visit Darwin again on my blog. The argument begins with the evolution of "eye". The author is bewildered by the fact that brain is able to process the data generated by millions of rods and cones in the eye in a few nanoseconds and thinks that this cannot be possible without some divine intervention.

The first problem with this argument is that it talks about the capacity of brain and not about that of eye. The job of eye is not difficult (mainly forming an image using lens) and the evolution of eye from no eye has been explained in great detail by Dawkins in "Climbing Mount Improbable". Moreover, vision is not accomplished in a matter of nanoseconds as the author says (in fact, it is much slower), otherwise we could see individual blades of rotating fan. The process of visual interpretation by the brain is very complicated and, frankly speaking, is not understood in great detail. But instead of explaining this process, just saying that it is done by God is not a good idea at all. If Darwinism does not have a very strong explanation about evolution of brain, then surely Creationism has no explanation at all.

There is another problem with the argument in that website, and that is about misinterpretation. To quote from the website, "Evolution's explanation for this [eye] is essentially that we have eyes today because all of the animals that didn't develop them died." What evolution actually says is that having an eye helped in better survival and not that organisms who did not have eye died. The conclusion drawn by the author is obviously false, and highly ridiculous and above all is a perversion of logic. In fact there are many eyeless species today coexisting with species having an eye. Survival is possible in many ways. Having eyes is one of the better ways of surviving. But this way might be unnecessary (and too much of a burden) for species like bacteria and other microbes.

Another argument which is provided goes like this: "This complex organ (substitute any organ you wish) is made up of so many intricate small parts, so many proteins and enzymes are involved in its working that any small part is useless without the other". Thus losing one small intricate part or enzyme would render the whole organ useless.

To beat this argument is very simple. Since I am a software engineer let me provide you an analogy from this area of human endeavor. A computer is all concerned with zeros and ones, and a software program is a large sequence of zeros and ones to be interpreted by the computer. If any single bit goes wrong in this sequence, the whole software fails. No need to mention that if this ever happened in practice, we software engineers would have a hard time writing perfect code. Every software program has bugs (leave the learning exercise when you begin programming) and the entire software does not crash just because of a bug.

Translating it into language of biology, a complex organ will work even if some suborgan (or a protein) gets damaged (or is missing), but with somewhat less efficiency. Sometimes it may not work altogether (very rare). If this were not the case we would all have to be perfect without any allowance of any disease or disability.

The reason why people like this author are desperate to seize any opportunity of disproving Darwinism is that they think that Darwinism undermines their faith. And believe me, faith is a much much more powerful motivator than logic or rationale. That's why people need to have faith. In fact the power of faith over logic has an evolutionary explanation which I won't go into here (check my future posts for that). The point which I wish to make here is that if you have faiths which contradict with reality of nature then you might get into trouble sometime or the other because reality is absolute and cannot be changed by your faiths.

Book Review: Don't You Have Time To Think?

Two weeks back I happened to come across this book "Don't You Have Time To Think?" by Richard P. Feynman. Being a Feynman fan, I bought the book then and there. After reading the book for a few pages I came to know that it was not a book by Feynman, rather it was a collection of his letters edited by his daughter Michelle Feynman.

Since the letters reveal much more personal details compared to lectures or other books, I guessed I would come to know much more about Feynman than I had known from "Surely You're Joking" and "What Do You Care?" True to my expectations the book brings out the soul of Feynman.

The letters have been organized chronologically beginning from his college life, love life, professional life and finally till his death. And I believe his daughter has done a very good job in selecting the letters for each stage in his life.

Some of the letters contains puzzles for his father to solve, others contain professional advice to people. Some are about his resignation at National Academy of Sciences. But the most interesting are the letters exchanged between him and his love Arline. These bring out the deepest sentiments of Feynman. The letter to Arline after her death is very touchy. Most people know much about his love of physics and not much about his personal relationships. I believe this collection of letters will tell the other side about him.

Letters from his professional life contain advice to students like "Follow your passion" or "You must fall in love with some activity". Then there is the National Academy of Sciences episode which is very entertaining. His disgust for such associations is very much highlighted. One letter is about how he wanted to unsubscribe the Physics Review magazine despite the best efforts of its editors.

From his letters, it looks like he responded to letters from ordinary people, total strangers, and some cranks too. He was receptive to the ideas of laymen and encouraged them to proceed in proper direction. Most of his letters to these people were written in most humble and modest style. In one letter to a student he admitted his own error in one of his books by saying, "I made a mistake, so the book is wrong ... and you goofed too, for believing me".

In one of his letters he expressed his disbelief in God by saying that "The idea of God watching all good and evil on this earth" did not fascinate him and told his own conviction that "The stage is too big for this drama". Definitely the universe is so large enough that the good and evil going on earth is of no concern in the vast scheme of things. Another letter with philosophical content deals with the problems of wealth.

The book convinces the reader that he was a person in love with almost everything. But according to Feynman, he was above all in love with physics, "This is, in my mind, of even more importance than my love for Arline". I believe the fire and passion of physics kept him in his high spirits even after Arline's death.

Thanks to Michelle Feynman for bringing out this entertaining collection. To all the Feynman fans: go and grab a copy. To those who are not fans as yet: please grab a copy to become one.

Note: The book is published in USA with a different title "Perfectly Reasonable Deviations From The Beaten Track".