VTK Designer 2

That was the month of October 2006. That was when the last major update to VTK Designer was provided to the world. Since then I received a lot of email about VTK Designer for VTK 5.x and VTK Designer for Windows.

Since my company purchased a copy of Qt 4.2 for Windows, we also got the commercial edition of Qt 3.3.7 for Windows. So I thought of preparing a port of VTK Designer 1.0.5 for Windows. But it turned out to be a nightmare. Things just did not work out easy for me. So we dropped the whole VTK Designer 1.x series working on Windows thing and moved on to VTK Designer 2.

Before speaking more about VTK Designer 2, here is a screenshot of it running on Windows Vista showing a beautiful terrain visualization scene.

Thats right, “VTK Designer 2” works on Windows Vista now!. I have compiled it on Windows XP, Ubuntu 7.04, openSuSE 10.2 as well, and it works on all of them. 🙂

I have been trying to prepare a simple video demonstration so that I can upload it to YouTube and show some of the cool new features of “VTK Designer 2” but the damn network is slow today. Hopefully the upload should be done in a couple of minutes.

Inheritance in C++

I was casually looking at some material on C++ on the web today when I came across this. The first read messed up with my head.

After a while I thought of doing some experiments with g++, because for some strange reason the phrase “private virtual functions” popped up in my head. And I thought that was weired. My formal education in Computer Science told me that there was no way we could have private virtual functions. So I decided to write a simple test and check with g++. The test program goes something like this.

class AbstractBaseClass
{
public:
virtual void PublicFunction() = 0;

protected:
virtual void ProtectedFunction() = 0;

private:
virtual void PrivateFunction() = 0;

// Declare Friends
friend void ProbeClass(AbstractBaseClass* ptr);
};

class DerivedClass1 : public AbstractBaseClass
{
public:
void PublicFunction() { cout << "DerivedClass1::PublicFunction()" << endl; }
void ProtectedFunction() { cout << "DerivedClass1::ProtectedFunction()" << endl; }
void PrivateFunction() { cout << "DerivedClass1::PrivateFunction()" << endl; }
};

class DerivedClass2 : public AbstractBaseClass
{
public:
void PublicFunction() { cout << "DerivedClass2::PublicFunction()" << endl; }
protected:
void ProtectedFunction() { cout << "DerivedClass2::ProtectedFunction()" << endl; }
private:
void PrivateFunction() { cout << "DerivedClass2::PrivateFunction()" << endl; }
};

void ProbeClass(AbstractBaseClass* ptr)
{
ptr->PublicFunction();
ptr->ProtectedFunction();
ptr->PrivateFunction();
}

int main()
{
DerivedClass1 object1;
DerivedClass2 object2;

ProbeClass(&object1);
ProbeClass(&object2);

return 0;
}

To my surprise the above program compiled well on g++. And whats more, I did get the output as expected.

prashanth@vcl1:~/temp$ ./a.out
DerivedClass1::PublicFunction()
DerivedClass1::ProtectedFunction()
DerivedClass1::PrivateFunction()
DerivedClass2::PublicFunction()
DerivedClass2::ProtectedFunction()
DerivedClass2::PrivateFunction()

Private virtual functions do exist !!!. This is my first time with a “private” virtual function. I hope the concept wont appear weired to me anymore.

Bought a copy of Windows Vista Business yesterday. Why Windows Vista Business? Because it costs less than Home Premium, the only other edition that comes with Aero (apart from Ultimate ofcourse). It costed something like 8000 bucks !!! but I believe its worth luxury/premium price (atleast so far I believe that 😉 )

Some of my old apps dont run. VS2005 Standard installs properly, but when I started it for the first time I was asked to download a 500 MB service pack!!!! All the other software that I have works quite well. Qt 4.2.3, VTK 5.0.3, VTK Designer 2 (development version) all work quite well. All the commercial projects that I am involved in also work well on Vista.

I am from the non-WindowsHaters camp. Not that I like Windows (in all respects) either. But then I dont really care. I have used OpenSuSE 10.1 and 10.2 both of which are very very very impressive. It is a complete pleasure to work on them. I have been a Windows user and have been doing development on Windows for quite a few years now and my experience has been good. It has been extremely good ever since I started using genuine software. GNU/Linux has always been a developer paradise for me and it will continue to be.

The Aero Interface looks good. Applications seem to start faster on Vista. Maybe because the registry is not cluttered yet. I am however not a fan of the so called “improved user control” system in Vista. It asks me for permission when any process does anything on the C drive. Couple of concepts in Vista have also changed. For example the Windows Explorer doesnt look like “Windows Explorer” anymore. It is refreshingly new. Instant search feature is quite good. I really liked Windows Photo Gallery. After fSpot I guess Windows Photo Gallery is the only photo software my tiny little brain could comprehend.

Windows Vista is surely not as bad as some reviews have painted it to be. All in all, Windows Vista is good but for the “price tag” and nagging questions and the lack of support for old apps. If only I could control my curiosity about Vista longer, I would have bought a copy of Vista a couple of months later and saved some more money.

People and Decisions

Starting and growing your own business is probably the best way to learn about realities and life. I have probably learned the best of the lessons in life over the last two years.

Lesson #1: Most people do not have what it takes to make and keep promises.
I have interacted with people that have made promises and have failed to keep them. When they make the promise, they seem to have made it with a genuine intention. But then as time progresses, they realize that it takes real strength to keep a promise. Thats when they back out and back out in a really nasty way.

The lesson to be learned here is: never trust a promise. People really dont make promises.

Lesson #2: When someone says “they are confused about doing something”.. they really mean “they are not going to do it” PERIOD.
Confusion comes from the lack of strength to make decisions and the inability to tell no. Most people dont want to tell no to things because they fear looking bad in front of others. But they cannot say yes either. Thats when they will come up with the whole “I am confused” drama. So to save their time and our time.. it is best to conclude – “they really want to say no” and move on.

Lesson #3: Most people want to have the fruit without working hard to get it.
This really amazes me. People will go to any extent and explain how the world is unfair and how people are wrong when they dont get the fruit. But they fail to realize that they have really not worked for it. Everyone wants to be a Narayana Murthy or a Bill Gates or a Steve Jobs, but the question is how many people are willing to put the kind of effort and struggle that these people have put in life?

Prabhu Ramachandran, Python and Visualization

About two weeks ago I met with Prabhu Ramachandran at his office in
IIT Bombay. I can safely say now that I have never met a person with
the right mix of technology, enthusiasm, extreme simplicity, humility
and brains that he has.

We spoke for a couple of hours on our passions for Open Source and
our respective Open Source projects. Prabhu is a very animated person.
When he was describing his dreams for MayaVI 2 his face was all lit
up with enthusiasm and purpose. I was fortunate enough to get a demo
of MayaVI 2 from the master and creator himself. It has some kick ass
features.

I was in that same meeting that I got the motivation to take a look
at Python (Prabhu describes it as an ideal programming language). I
must say that Python a fantastic language. I am reading the online
tutorial for a little of two hours now and I am already quite familiar
with the language. It is so simple to understand and use. I had never
imagined that learning a new language would be so easy. Python seems
to have everything that I ever wanted from a language. I hope to learn
more about this language and pour my learnings back into VTK Designer.

Meanwhile, I must say that VTK Designer 2 is going quite good. I dont
have much to tell about it right now because there is a lot of work
going on. More on this in a future blog.

VTK Designer in KDE SVN

After about two years of development (29th October 2004 was when the first version was released),
VTK Designer has managed to get into the KDE SVN. After giving a demo of VTK Designer at FOSS.IN
2006
, Aaron Seigo suggested that I try getting an SVN account and importing VTK Designer into
the SVN. And I applied for a SVN account, got one and yesterday evening I also uploaded VTK Designer
into the SVN
. Aaron also blogged about it here.

From here on, VTK Designer will get fully KDEized and will make complete use of the awesome
power of the KDE framework.

Finally a complete development environment !!!!

After over six months of saving, planning, negotiating and what not; I now have
a complete development system. A 64 bit AMD Athlon PC with 1GB RAM, 512 MB NVIDIA
6800 GS Card with 512 MB Video RAM, 120 GB HDD, 19 inch Monitor with a legal copy
of Windows XP SP2, Microsoft Visual Studio 2005 Standard Edition, Qt Version 4.2.1
and Version 3.3.7 for VS2005. Back in college I had never thought that I would
buy all these things. The hardware and software has cost me a fortune; but it has
all been completely worth it. Well actually all this hardware and software belongs
to my company that I co-founded; but then I get to use it like all the time. So
that personal belongingness is there. 🙂 I thoroughly appreciate and thank my
friend Manish’s help and support during all this time.

Just a bit more of hardware to buy before Manish and I sit down and put our brains
together on a research area we have been eying on for quite some time now. We have
a lot to study and we are absolutely looking forward to get started.

My talk on VTK Designer has been accepted at FOSS.IN 2006. This is my first talk in
a FOSS event; although it would be the 5th time I would be presenting about
VTK Designer. But then FOSS is a different place all together. I applied for a talk
slot very late last year; and was obviously rejected. I waited with excitement and
patience for a year, and I guess I was the first person to apply for a talk slot
this year. And FOSS.IN is giving me an opportunity to present my OSS software and
ideas 🙂 I am preparing to not disappoint the audience, and hope they wont be, with
my talk.

VTK Designer 1.0.5

Five months of development effort and about 70,000 lines of code and over 200 pages of
design and user documentation later; VTK Designer 1.0.5 Beta is finally out today. In-fact
it is getting out as I type this journal.

For about one or two weeks now I have been getting remainder emails from people interested
in getting their hands on the new version. I could have asked for no better appreciation,
than an audience waiting for the next release. Even before the beta was out people have
sent me emails about how they want to support VTK Designer development; what areas they
would like to contribute and so on.

I like user feedback. Infact the 1.0.5 Beta is a testament of that. Most features in this
version are driven by user requests. WCMaker a 10000 LOC + tool is entirely a user driven
request. I think the Beta is quite good. It is not bug-free, and certainly not flawless
in design; but it surely is a giant step ahead of its predecessor. 17% of upload left; and
I am going to be celebrating the release.

It is close to 3 AM in the morning now; and I have to leave my house and go to Mysore
in another three hours. Every bone in my back is giving up in pain; but I have never
been more charged and energetic in my life. Whether 1.0.5 makes it big or not; I am still
satisfied for the effort and ride it has given me.

First Project Delivered

Today our company delivered our first complete project. I am supposed
to not speak much about the project itself for a couple of more months;
but I can share the feeling of having completed the task.

The last few weeks have been extremely heavy with long working hours
and no holiday (not even a Sunday). This is our first product after the
company was incorporated, and my second with the same client. We handled
everything from project prestudy, design, implementation, testing,
documentation, manuals, installation programs, demos everything.

Had a complete blast while doing this project. At the end of all this
tiring work; I feel satisfied that we have come this far. Now it is
time to find out how the work will be perceived by our customers.
Fingers crossed