Sunday, October 28, 2007

David I has piracy issues...

David I of CodeGear has written a blog lamenting about the amount of innovation is lost through software piracy. The thing I noticed was the familiarity of this argument with the one that is put forth by RIA. Then he brings in some statistics to prove that about 35% of software "value" is being lost through piracy...

CodeGear is in a rather dangerous downward spiral in their long term strategies, and capability to deliver. Even after four releases, their new Delphi IDE line is bogged with bugs and serious performance problems. Severe fragmentation of resources into several new projects (PHP, Ruby) have not helped them at all. Instead of trying to find out why CodeGear is becoming more and more of a developer antagonistic company these days.

Instead of drumming that old drum that the RIA has been beating for sometime. Open up, look around, basically grow up!!

Monday, October 22, 2007

A Word About Mail Forwarding Etiquette

I am member of several mail groups, and have quite a few friends eager to show share some extremely informative or hilariously funny message with me.

I usually don't mind getting forwarded messages when the content is related to my primary interests or something relevant. But more often than not, these are pretty mundane, unfunny jokes and pseudo claims/information.

The worst offenders though are those mails with the forwarded message in attachment, often in a chain of attachments. So, if you want to read it, you have to open a series of attachment, and eventually you will find that obnoxious one line joke!!!

Anyone who forwards email to me, remember. If you don't have time to spend my reading experience better, DONT forward them to me...

Sunday, October 14, 2007

My Vista does everything wrong... they want me to go back to XP...

This is what Madam X (her own impersonation, I suggested Mrs.X) told us about what her computer tech told her.

Madam X is an artist, who has been using Windows XP for a while, and wanted to buy a new computer powerful enough to do serious graphic works. Mac was an option, but since both me and Shobha (my wife) are more familiar with Windows we suggested Vista. She went out and bought this pretty powerful Quad Core HP desktop with 3GB RAM and 1TB Hard Drive. Pretty impressive machine.

After a very brief honeymoon period, she started complaining about mysterious things happening. Sometimes, her computer did not allow her to open attachments of emails that she used to view without any trouble in XP. There was this mysterious problem of font settings never sticking in MS Word. There was other issues with creating labels, printing to her HP Laserjet, annoying popups, bizarre copy paste issues, etc. etc...

She had been complaining about this for a while, we first thought that it is just some teething troubles everybody feels when start using a totally new OS. However, her problems persisted and seemed to become worse by the day.

She had a regular computer tech who used to help her when she had issues before was reluctant to help her quoting his unfamiliarity with Vista. (A decent position I would say.. read on). So she called up the original seller Microcenter and complained about the issues. They told her to bring the machine in to see what can be done.

[The following is a paraphrasing, as we were not with her at Microcenter.]

She was first served by a technician who first did not believe her. He said that the problems are because she didn't know how to use Vista. However, once she started showing him the issues, he agreed. So the manager came in and did a higher level diagnostics. Again, after seeing the problems he was baffled as well. So he started telling her all the issues with Vista. He said that Vista is full of bugs and it will only be fixed when service pack I comes out. It is also possible, he said, that she might have gotten a particularly buggy version of Vista. (You know, like a lemon car). His recommendation was that she should consider going back to XP. Vista might not be the best OS for her, of course she will have to pay to put XP back in this machine. (This desktop is factory installed with Vista).

When Madam X emailed us that evening detailing her visit to Microcenter, we were a bit baffled as well. My wife started using Vista early this year. I had been testing Vista in a few virtual images and recently in my laptop. None of the issues she had been seeing were even remotely familiar to us. In both our cases Vista had been working rather smoothly, except for a Bluetooth driver issue in my machine and some early NVidia driver issues with Shobha's which had been since rectified. We invited Madam X and her computer for a lunch.

First problem, the computer has only DVI and we do not have any DVI monitors. (Yes I know, how sad...). Nor did we have an adapter. After some deliberations, I went out (reluctantly, come on it is a Sunday morning), first to a radioshack as I saw the thing in their website, and then to Staples. I came back and hooked up to our monitor, it booted fine.

The first thing I noticed was the number of things that popped up immediately on startup. There was this HP problem solver (or answer wizard or something) on top of the screen, which Madam X said did not answer any of her questions. Then there was this weird warning from some SuperSpy or something else Spyware program. Then there was a flashing screen of Symantec. Ok, first action - cleanup.

So I went to the startup programs and found some very interesting things there. First one ofcourse the SuperSpy thingie, which her Computer Tech installed promising absolute protection. Then there was an HP Toner Order Reminder (Sic), the answer wizard of course, and a couple of other quasi adware programs. We unselected all and restarted. Better, we can see the desktop now.

First Problem - Word does not obey default font settings

She uses MS Word 2003 for all her documents She does not like Times new roman (neither do I) and wanted all her documents to be Ariel. In her XP machine, she could create any new document and it always opened with Ariel. In Vista, she tried to change the font, but every time she opened a new document, the font went back to Times New roman. By the way this was the clinching issue for the Microcenter guy. (He called it totally bizzare and unexplainable)

Remedy, modify your default template (normal.dot). She must have done this when she first started using Word in her XP machine. But time is such a funny phenomenon that filters out only the crucial part of our experiences!!! So I started looking for normal.dot. Strangely enough it did not come up in my search, so Shobha started looking for it and within a second told me to look in Users/MadamX/Appdata/Roaming/Microsoft/Templates. Of course, there it was. So I opened it, changed the normal tag from Times new roman to Ariel, saved it back. We created several new documents and made sure that it is always Ariel. So, the first baffling bug in Vista is resolved.

While this was not too hard to find out for me and Shobha, there were a few things that were not very intuitive in these operations. For example, I would think that word should be smart enough to recognize the user behavior of changing the normal font to Ariel every time a new document is created. Second, I was unable to find a way to save the default template changes back. I am certain that i was able to do this without much effort earlier. Finding it in a hidden folder is not the easiest of things.

Second Problem - E-mail attachments that used to open are now cannot be opened.

One of her mailing groups used to send news letters that had extension of the month number to it. These were word documents, but, may be because it was saved from Mac did not have an MS word registered extension. So, when she tried to open this file, as usual the dialog came up warning her about the danger of opening this unrecognized file (with a lot of binary data ofcourse). When she said to go ahead, it showed the second dialog asking her to select a program to open it or look in the net to find a program. She selected to pick one from the list.. Boom, a dialog with a lot of red comes up telling her that windows cannot open this dangerous file.

Ok, this is frustrating. If Windows Mail knew about this file being a suspicious one and prevent her from opening it at the end, why did even go through the other two steps!!! Anyway, we told her that when she gets these kinds of files, that does not have a word icon to it, save it to the local folder and then open it from there. And this is not a good advice. The protection one gets from within Windows Mail against malicious files is not available from the explorer. But in this case, the sender is a trusted source. Once it is saved, one can follow the traditional way of picking a program to open the file, which in this case is MS Word. Once again, a bit un-intuitive that it first gave the user an impression that this process can eventually succeeded, eventhough Widows Mail could figure out that it is not the case. The messages were a bit too cryptic as well.

Third Problem - When a new mergemail document is created and gave the address in the first dialog box, print it does not do anything...

She showed me this, and yes, it does not (apparently) do anything. We repeated the step a couple of times, until we found out that if we want to see the new document, we need to press the New Document button after entering the data. Well, this time, it is equally a user error. The UI could give more information about the possibilities, but the help was very comprehensive. So I cant put the blame on Microsoft.

Fourth Problem - After creating a new label document, you cannot copy selected text. When you do a highlight, right click copy and paste operation, data previously copied was getting pasted. Whatever she does, the it never copies the intended text. In this case, we actually found that she was right clicking outside the selection, which in turn was unselecting the already selected text. Interestingly enough the Copy menu was still enabled. However, when you move to the next cell and right click paste, nothing happened. (We did not have a previous Clipboard content).

Shobha took over from me and gave a thorough lesson in copying and pasting and various tricks and tips. Thus that problem solved.

There remained other mysterious problems about backup (the desktop shortcut of backup turned out to be an XCopy batch file) and something else.

We finished the session by removing several programs including the SuperSpy ware and toner reminder (can you be more blatant!!!) and some other unused programs, set up windows backup to her removable hard drive etc.

Well, everything is fine for about 12 hours now. I am sure she will find other unfamiliar areas as she explore more and more. I am also sure that she is going to teach a thing or two to the expert who tells her that it is all because Vista is buggy, and she needs to go back to XP.

We, on our part, once again will be rewarded in hell for helping the Evil Microsoft Empire!!!!!

Saturday, September 15, 2007

Northwest passage opens up

Yesterday ESA finally confirmed that the Northwest Passage has opened up and is free of ice year round.

A couple of weeks ago, I was watching a program about global warming and this guy was predicting the opening up of Northwest Passage and that being a very critical step towards an irreversible trend.

Well, now it has happened. This is not just a climate event, think about all the new economic dramas that are going to play out!!!

Friday, September 14, 2007

Finally, I am free...

On Tuesday, when I was evaluating CodeGear RAD Studio 2007, I noticed that if I turn off my McAffee Anti-virus, I get the build done in about 20% of the time it otherwise will take. (E.g 3.9s to .7s.). On Wednesday, while I was booting up the computer, I noticed a prolonged delay in finishing the startup. When looked at the profiler, I found that three different McAffee processes monopolizing both cores of my 2.4Fghz machine. And then it came up with an important notification advertising their offer for upgrade. It was the last straw.

I have been noticing that whenever I had a performance degradation (yes, I do notice it when I run two copies of VS 2005, a Virtual PC image of Orcas B2, two copies of Delphi, Outlook, couple of remote desktops over VPN etc., which btw is my usual load.) I found that one or more of the several McAffee processes running vigorously. This is especially noticeable when outlook is downloading mails or when I compile/debug my code.

Though I had turned off whatever protections I can find in my copy of McAffee (which actually is just the scan from Security Center) I did not fully uninstall it. Today however, I found that it is up to its tricks again, this time by running on Access virus scan during a compile. So, here it goes. I promptly uninstalled McAffee.

I am a judicious user and don't install any and all free stuff in my machine. I think I should be fine. We will see. With my backup, restoring it wont take more than an hour or so even if I get a virus.

Thursday, September 13, 2007

Tale of Two Upgrades (RAD Studio 2007, VS2008)

In my years of working with Delphi, I have had to upgrade existing code base to next version. The only version I did not do this for was 4-5. All of these upgrades introduced breaking changes with varying effort to resolve. So, I have been expecting some things to go wrong when we attempt the upgrade from Delphi 2006.net to 2007.net, especially since it involves a change in framework.

Usually I do not complain too much about these upgrade issues. Most of the time the changes are result of improvements of language and VCL and it is a price I was willing to pay - until yesterday.

This is the story of two upgrades that I tried during the last two days.

Visual Studio Orcas Beta 2.

On Sunday, I finally installed Visual Studio 2008 Beta 2. First I tried a small LINQ application which worked nicely. Then I went to read some documentation, which was very good for a beta 2. Next, I tried the new Client Management services and played with a few authentication options. While the documentation was a bit hard to find this time, once I found it, it was reasonably well written. After a few more poking around, I decided to check a good size project. So, I created a copy of a web project I am working on. This is based on DotnetNuke (more about this later). I have a couple of web application projects implementing my modules, a web service and a bunch of libraries. For data access I use NHibernate. I wanted to try LINQ for NHibernate the Alt.Net guys are cooking up. With a lot of skepticism I opened the solution. As expected, it notified me about upgrading the solution and started doing it. It did take a few minutes and it asked me whether to convert my ASP projects to framework 3.5. I said yes, it eventually finished conversion and opened the project. I pressed F5, it started compiling, started the ASPX development server, started my webservice, started my DotnetNuke web site and everything worked fine. I was really very pleasantly surprised. I can imagine the engineering effort that went into providing such a smooth experience. Achieving this in Beta 2 is even more commendable.

Codegear RAD Studio 2008 (Highlander) RTM

On Monday night I got the mail from CodeGear for RAD Studio 2007 trial. (I am still waiting for upgrade notification, which apparently is going to take two weeks). I downloaded and installed it. I do like web distribution and in my case, installation went without a hitch. It did take a long time to finalize the help file integration but I doubt if CodeGear had anything to do with that.

Once the installation is over, I started it up. I cannot comment on speed as this is the first time I was running Delphi in this laptop. Once it came up, I started looking around. Thought I will do the web application first. Created a simple application, pressed run. The firewall warning came up. Didn't think it was nice for a web application IDE. I was able to connect to the server from the browser without much effort. I was impressed by it. Well, I have always had good opinion about Intraweb.

One of the things I was expecting eagerly from Highlander was the MSBuild support.  So, once I finished playing with the IDE, I tried a commandline build of my test application. We had been using MSBuild commandline builds for both win32 and .net under D2006 first using a set of custom tasks and recently using the tasks from D2007 Win32. We used a set of non-IDE projects for driving this commandline builds as Delphi has this really annoying habit of adding absolute paths to the project files. The commandline worked fine once I found the Rad Studio Command prompt with the necessary path variables.

This was followed by a series of efforts at opening my existing project group file. The first trial failed because I did not make the files read/write. The IDE went through all the 44+ packages and told me that the edit buffer is read only. It was also occasionally tried to open forms with custom components and failing to load them. So, I refreshed my view, made everything read write and opened the group again. The message window notified me of resolving or failure to resolve assembly references. Since my assemblies are not built yet, they also failed to load.

Once the conversion was complete, I selected the first project and clicked on Build All From Hear. Immediately, the build failed saying c:\windows\system32\borland.vcl.dll was not found. I started changing every one of the references (including the ones the conversion log said was resolved) and compile the projects one by one. Soon I made some mistake and the projects got corrupted again. Once more refresh of the view, another conversion and yet another try at compiling. Same result. Then I decided to close the solution and reopen it. Voila. it correctly found the Borland assemblies, but I found that all the assemblies that IDE failed to find (because they were not built yet) was redirected to (can you believe it) Windows\system32. Why on earth a .Net IDE working under Vista would assume that I generate (or third parties will copy) assemblies into windows\system32????

That takes us to the next iteration. One more refresh, but this time I decided not to try converting the solution. Instead, I deleted all bdsproj and bdsgroup files from my view, and created a new solution. I, then added each dpk/dpr file to the group, compiling each of them before adding the next one. It worked for most part. But then came the annoying bugs, but that is for another time.

The compile was not clean either. There were a couple of breaking changes, noticeably unavailability of implicit conversion of TDateTime to double and THandle to integer. I am sure it is defined in one of those units, but ofcourse the documentation does not say anything. Actually the documentation on converting win32 projects have not been updated since Delphi 2005 it seems!!!

10 years ago, I wouldn't have considered using Visual Studio for my development. Now, I just want to stop using Delphi.

Tuesday, August 21, 2007

Next stop Neutralinos...

Now they have confirmed solar nutrinos. It is interesting to see more and more of the bizarre theories of quantum physics get empirically confirmed.

Next big thing is of course the Higgs and Neutralinos. Can't wait.

Saturday, August 18, 2007

How to extinguish the Sun

I was watching bits and pieces of a SciFi movie about solar flares igniting the methane in the atmosphere. According to the movie, this huge series of solar flares overheat the upper atmosphere. The higher percentage of methane (is this true?) gets ignited by this. This global level ignition of the atmosphere will eventually will consume all oxygen and cause extinction.

So, the hero, overcoming the opposition from the disbelieving officials, finds a solution. Explode some nukes in the Antartic, causing huge amounts of ice to evaporate. This will work as a huge fire extinguisher and we will be saved.

In the last scene, the bombs explode, hero's ex-wife watches from distance, the burning sky starts clearing from the north, and then, snow starts falling. Everybody claps.. world is saved.

Just one doubt though. If 5 nukes caused this snow, wouldn't the snow be radio active? Embracing the lesser evil?

Thursday, August 09, 2007

Finally a brave voice from an IT professional

 Here is a news item that I cannot afford to not comment on.

It is not very often to hear broad reaching statements from IT professionals (except when Steve Jobs exhorts his cult members).

It takes courage to question accepted norm especially when the norm is about security. Steve Riley has shown that courage. Not only that he has the right perspective on IT security but also has the right things to say about war on terror.

The over r0mantic nationalism of the US makes a balanced discussion about the security of the country and war on terror almost impossible. I think this is not just an issue with the US. A lot of countries assume that blowing up nationalism out of proportion is the best way to keep people from real issues.

It is high time we stop making our lives into one paranoia after another.

If you read the article, don't forget to read the comments. There are quite a few of them, most of them showing overwhelming support for Steve's stand.

 

Here is a news item that I cannot afford to not comment on.

It is not very often to hear broad reaching statements from IT professionals (except when Steve Jobs exhorts his cult members).

It takes courage to question accepted norm especially when the norm is about security. Steve Riley has shown that courage. Not only that he has the right perspective on IT security but also has the right things to say about war on terror.

The over r0mantic nationalism of the US makes a balanced discussion about the security of the country and war on terror almost impossible. I think this is not just an issue with the US. A lot of countries assume that blowing up nationalism out of proportion is the best way to keep people from real issues.

It is high time we stop making our lives into one paranoia after another.

If you read the article, don't forget to read the comments. There are quite a few of them, most of them showing overwhelming support for Steve's stand.

Thursday, August 02, 2007

Ahh Sir Elt...

He never was in the top of my favorite musicians, but I did like his songs. So, this statement from him poked my interest.

Every time an artist nears his or her creative sunset, they start blurting out things. So, this time Sir Elt thinks that we should shut down the Internet for five years because it is killing music.

Well Sir. Elt, once in a while look out of the closet.

Friday, July 13, 2007

What do you would like to have? Browser/URL or a decent application?

 

See this article that claims that Microsoft's strategy on Software/service is bad

First, watch Independence Day to see how bad it is to centralize all computation to a central server (mothership). The aliens can infect the whole system with a virus :-)

Seriously though, the so called "future" of pulling every computational complexity to already crowded Servers and keep the desktops (which match or exceed computational capabilities of servers) away from participating in any of these efforts is a very old paradigm. It is almost always promoted as a solution to the IT management issue. The pain of deploying clients, pains of providing updates, lack of good cross-platform client solutions etc. etc.

We are still infatuated with browser and legacy protocols like http and trying to cramp in capabilities that http never intended to handle.

lets be honest. It is nice to go around and talk about web 2.0 and all other stuff, but a lot of the so called 2.0 applications either run as installed client (Second life, Messenger), or uses downloaded applets that uses client capabilities. The computational complexity is happening in the client.

When I have a handheld with a Core duo 1.1 Ghz, I would rather run applications in my handheld instead of getting tied to a browser.

As I have written earlier, I hate a browser to be my primary workspace. I like reading wikipedia in the browser, but will never want to run my chat client from a browser window. Browser's primary aim is to curtail users' and developers' power and options. This results in a poor user experience, not (as the author of the above article claims) less complex ones...

It is ok to go out of the browser. Internet is where my data is, not where my applications are.

Tuesday, July 10, 2007

We need to slow down

I was going through the hundreds of very interesting comments on the Grand Challenges For Engineering global brainstorming project. While reading them, I was wondering what I think the challenges that we face.

Unlike a lot of people I am not worried about the future of earth. Earth has survived much more than what we humans can do to it, including a whole planet ploughing through it. So, earth, whatever we humans do, has a very long and bright future.

On the other hand, I am not so sure about humans though. We have seen unprecedented growth in technology in the last century. Unfortunately, we also have unprecedented inequality, animosity and violence. We are facing series of crisis even greater than the last ice age. We will face acute shortage of energy sources in this century. We have a very real climate crisis in offing. We are facing a major crisis of religious conflict parallel to the ones in the dark ages. Urban centers are proving to be very expensive in every way.

There is a very real chance that this could be the beginning of the end of humanity as a species. May not be in 100 years but a few hundred. The interesting thing is that, this wont be from a global catastrophic event like a thermo-nuclear war, but a gradual decay of humanity. Cities withering away, communities broken up, intense localized violent squabbles wasting the last of our resources, uncontrolled diseases eliminating whole races...

We are still very young to face such a slow painful extinction. We need to slow down. For a moment, consider downsizing our lives and societies while improving the living of all humanity. Change our priorities from terra-forming Mars to inhabiting the deserts and seas. Lets forget the mad rush to centralize everything, and move towards decentralized, equitable and sustainable development.

I think the grandest challenge of technologists is to perceive this need and change our world view. For once, lets not try to drive everything faster, higher and more bizarre, but make things simple, more efficient. Lets slow things down a bit, take a breath.

We humans have a long way to go, a lot of incredible things to achieve. Lets preserve ourselves.

Monday, July 09, 2007

NASA postpones Dawn... Again!!!

NASA today decided to postpone the Dawn Asteroid mission again. Read the story here.

The mission is very interesting in the sense that it is the first time we are visiting an asteroid closely. Remember, in most space sci-fi thrillers, mining colonies in asteroid belt is a common story line. It looks like instead of rare, exotic materials like Naquida or something like it, but for water.

My interest in the mission is not colonizing the asteroid belt, but the use of several new technologies that NASA has been putting in the back burner for so long, the ion propulsion drive being the first of them.

I still haven't figured out why NASA takes at least 100 times more money, time and other resources to do something that you can do otherwise. But hey, it is NASA

Monday, June 25, 2007

Future of Delphi, VCL.Net and WxF

I have been reading a lot of articles about the recently published Delphi Roadmap. It was interesting to see so many people happy to know there is an actual Roadmap for Delphi.

Codegear(Borland) has been extremely tardy and unprofessional during the last few releases of Delphi. Delphi 8 was a total disaster, D2005 was only slightly better. D2006 did make things a bit better and D2007, as far as I have seen seems to be at least as stable as D2006. Publishing the roadmap was a big sigh of release for me who has to constantly address the apprehensions of product owners about the future of Delphi.

In these discussions, this from Marco Cantu helps us reading the tea leaves better.

Since I never used Delphi Winform support, the demise of it was not a big item for me. I, like Marco believes that Delphi is VCL.

While there is a flux in UI paradigms in the .Net world, there is a very significant overall direction. The close connection between WPF, XBAP, SilverLight etc. makes it possible (more than any other time) to create common UI elements for Client Side and Browser hosted applications. Considering the push from pretty much everywhere to a more service oriented application architecture, this is a significant win.

At the current state of affairs at CG, it looks like Delphi and VCL.Net will be atleast one release cycle behind the latest from MS. Making VCL.Net platform neutral, atleast within .Net, Win32, Win64 circle is crucial to support fast changing technology outside the control of CG.

I am not sure this is what I see. For e.g .Net compatibiltiy breaking changes introduced in D2006 Win32 and beyond for Unicode, like WideStrings.

Ideal VCL will be write once, compile in win32/64/.net/Mono. With accompanying interoparability solutions, I can use Delphi as the only tool I need to provide most solutions, provided the IDE will stop crashing so much...

Well, I guess we will see in the coming months, both from Microsoft and CG.

Tuesday, June 12, 2007

Sextuples... A Miracle?

It is a well known fact that there has been an increasing trend in multiple child pregnancies including several Sextuples in the last several years. Today there was another one reported in the morning show. I found it rather disturbing to see the dilemma of that couple. Of course, I guess they are not allowed to express any major concerns in morning television.

Every time I hear about these extreme multiple pregnancies, which almost always happens in relation to fertility clinics and artificial insemination, I wonder why it is not considered as a failure of service? I understand the emotional requirement to have one child or two, but it is hard to imagine that an average family will be overjoyed by having six babies at one go.

I know it cost a lot for one impregnation at the clinic, but selecting a potentially dangerous decision of allowing too many embryos implanted is appalling. From both the clinic's side and the couples. The danger is not just for the parties involved, but the babies as well.

Such incidents should not be considered a miracle or abundance, it is yet another failure of the healthcare system. Here is a very interesting article about this issue.

It is a beta, look how cute it is? Please don't hurt it...

Today several bloggers commented about bugs in Safari Windows Version Beta.A controversial one by David Maynor and Inaequitas, many news postings and a whole bunch of comments. One argument, that was repeated in a lot of places, as a basic ethical stand when dealing with security issues, is that, one should not be divulging security and other issues to the public during beta/ctp.

I have been participating in pre-release programs with and without NDA. In all projects that I have participated, there were never an ethical issue for posting the findings in public forums. In most cases it was considered healthy. I remember other incidents like several Symantec reports about Windows Vista security issues very early in the CTP stage.

In my opinion, when a company publish content to the public space, whether it is labeled as alpha or beta or CTP or release without explicit binding constraints, it is in public domain. I do partly agree with David that providing information about issues with software in public domain should not be considered as a bad practice. If the company that produced the software is incapable of responding to it in a timely manner, they should be held responsible.

I always wonder, what other industry in the world will have a statement like "this product is sold as-is, ...." and a fool proof indemnity clause as a standard statement of service.

If software industry want to be as reliable and predictable as other industries (like aerospace for e.g), it need to shed the special status it always crave. It is just another industry. I work in a factory, that looks very nice, makes me happy and gives me good amount of money. I have been to enough discussions that elevates my vocation into a great intellectual exercise. Now I want to produce. I do not have much sympathy towards other software vendors. If you cannot survive in a demystified market place, you will simply wither away.

Friday, June 08, 2007

At last, Highlander (Delphi.Net) Roadmap is out

For quite a few months of conspicuous silence about the plans, features and roadmap about their upcoming releases (even a few months ahead), CodeGear finally have published their roadmap for the forthcoming releases.

See Nick Hodges blog here about the publication.

First of all, I am very relieved to see it published. Without a straightforward answer or published roadmap, I was having hard time planning for technology adoption for our oncoming releases. There was a steady stream of complaints and sometimes angry venting at the Codegear forums about the disappearance of the roadmap.

Well, now that it is hear, it is time to start more educated speculations about it :-)

I am specifically interested in the Highlander release roadmap, which is supposed to come out by the end of this year. The farther releases, understandably has much less clear specs, except of course the promise of 64 bit.

Here are some key points I noticed

  1. DBXClient, this is a very interesting feature. It is nice to have a thin driver layer that is native in both win32 and .net. Unicode support is great as well.
  2. Consumption of generic types - This is nice, but does it mean there wont be language support for declaring generics?
  3. CodeBehind support for Asp.Net, very nice
  4. Aspx provider model for fod DBX4 seems promising.
  5. I am not sure what unified metadata, but if this further reduce the incompatibility between ado.net and DBX I am happy.
  6. Is SQLDatabase the replacement for Interbase? It is apparently posed as an alternative to SQL Compact edition from MS. I have to see how that spans out.
  7. One thing that is not clear is how these features span among the SKUs. I will be very sad to see if the DBXClient and SQLDatabase is limited to the higher SKUs.
  8. I have never been a big fan of ECO, mainly because of its strong dependencies and issues incorporating it into TDD. However, VCL.Net support for ECO is interesting. I am sure a lot of people who use ECO will like that.

I overall satisfied with this. Lot of the technologies that I am planning to move into like SmartClient Software Factory, Workflow Foundation and WPF (I am sure there wont be a WPF design surface available, but that is not a major issue for the next one year for me) will work with Highlander.

Now we have to see how true the release time line will be.

Thursday, June 07, 2007

And we are back to old rocket

I have always wondered the logic of space shuttles. That thing cost almost $2 B (not counting design and development cost) to build and about $500 M to launch. Most of the stuff that is used during the launch is not coming back either. At the same time Ariane cost about $600M per build.

And then we have the "next generation" space exploration vehicle, which will be (with three quarters of probability -sic- will be completed in 2015) which, of course will cost about $15 B to build.

All these should be compared to the $18M X-prize winning spaceship. Yes, yes I know, that was experimental, went only to the outskirts of earth, technically, outer space. So, how come when NASA build something, it becomes a monstrosity?

Then I got a few tidbits dating from Nixon era, how he wanted to build something that is specifically suited for secret spying satellites and various classified military missions. That makes everything so clear. If you want to make something that works 100 times less efficiently with 1000 times more money, all you need is a classified project funded by American military and NASA !!!! 

Friday, June 01, 2007

Evil Evil Microsoft...

In Martin Fowlers blog there was this article about Ruby and Microsoft. While pondering the possibility of Microsoft implementing a .Net implementation of the Ruby Platform. There is this one sentence that caught my eye. Here it is

[snip]..but Microsoft imposes drastic limitations on its employees' ability to download open source software, let alone look at the source.[snip]

He makes this observation while talking about the difficulty in porting the ruby runtime. I am wondering, can someone do this these days? Put a ban on all its workers from browsing to open source projects? I am sure they have a very complicated, comprehensive filters around their boundaries. There are also reports of dogs and cats getting into MS campus, never to be heard from again!!!

Wednesday, May 30, 2007

30 Billion to fight AIDS... and the catch is?

President Bush asked Congress to provide $30 Billion additional funding to fight AIDS. This is wonderful news. I have always wondered the reluctance for USA to provide funding for international efforts in health care and poverty alleviation. This is a right small step in the direction. So, I decided to read more about it, to see what the programs that will benefit from it are. Being a skeptic, I was expecting to find something fishy, may be a specification of drugs, or some wording about intellectual property. To my surprise, I did not find any rumor mills working in that direction. Then there it was…

The plan is to provide support for fighting AIDS by providing healthcare and medicines as well as a prevention plan. Guess what… The best way to prevent AIDS is abstinence. This is a principle that has been successfully tested in the US high schools. I am sure this will be the end of AIDS. We all know that it is a disease that God brought upon us for our own immoral actions. I strongly propose a strong advocacy against homosexuality as well. This will be a second dawn for Africa, centuries after the first dawn dawned on them as the missionaries.

An abstinence related story from Texas I think talks about this Prom dance where daughters go as dates of their fathers. They dress up and spend the night dancing and drinking non-alcoholic drinks. This is supposed to promote abstinence in female offspring apparently by somehow satisfying their natural sexual urges. I am not insinuating anything!!!!

Sunday, May 27, 2007

Delphi Win32 to Delphi.Net: Part I - Geting it Built

Converting from Delphi Win32 to Delphi.Net

There may be several reasons for deciding to move your codebase from win32 to .Net. Delphi users have a very unique opportunity to achieve this transition with much less effort than any other languages. However, beneath the apparent ease of conversion, there are several gotchas we need to be aware of. Some of them are simple compilation issues while others could cause very hard to debug runtime errors and performance issues.

While a simple recompiling of the code will be a good start for a conversion project, I strongly suggest you consider a refactoring as well. Package (assembly) management under .Net is much cleaner than under win32. .Net also provides better ways of modularization like a better reflective language, better managed interfaces, assembly loading strategies etc. In our particular case, we decided to maintain dual builds during most of the conversion process, which is crucial for us to have a production quality version of codebase at all times. If you are not planning for dual builds, you will need a full development cycle that guarantees feature parity between the win32 and .net versions before new features can be put in.

Any changes that go beyond type declarations and well known transformations must be covered by Unit tests provided you can execute them in both win32 and .Net. Chances are that, you will be making a lot of changes during the conversion process. Being able to prove your significant changes saves a lot of hard debugging time later.

Any codebase under continuous development will gather deep inter-linkages between modules that are hard to isolate and resolve. Rebuilding codebase under .Net gives you an opportunity to isolate these and similar issues. Instead of reusing the existing package projects (assuming you have a multi-package structure), start by creating a logical package structure and pull units into these packages starting from a known root level unit. A root level unit will have dependencies only to VCL and other core never-built libraries.

Since .Net allows multi-part package names, make use of them. Instead of calling your db access library as dbaccess.dpk, name it <mycompany>.<myapp>.DBAccess.dpk. You can match the package names to the default namespace of the package itself. You can change the default namespace for a package in the options dialog. I haven’t made a decision on the propriety of multiple packages defining same namespace. This could lead to confusion if you have large number of packages. However, you can use it to break dependency between two application areas which are logically in the same namespace.

Don’t expect wonders and miracles from the conversion. Your ugly forms will still look ugly, your bad performance could get worse, and you will be faced with a whole new set of idiosyncrasies. I believe that the advantages from .Net far outweigh these risks. But that is for another note.

Following is a compilation of issues, tips and tricks I collected during our .Net conversion process. They are not in any particular order. I will certainly be adding more to this list.

How to prepare for Delphi Win32 to Delphi.Net conversion

1. Get a good refactoring tool. The D 2005 has some refactoring capabilities, but you will need more than what it can do. Especially for moving, copying and pasting methods, modifiers and property accessors. We using Model Maker Code Explorer. The only issue I have found so far is that it adds fully qualified unit names (eg. Borland.Vcl.Classes even when you have the unit classes in your uses list) to the uses clause when you use a known class from the classes unit. I end up removing these as they break both .net and win32 build

2. Try to split your application/source code into smaller packages. Package management in Delphi.NET is much less problematic compared to previous versions of Delphi

3. Write as many unit tests as you can under win32. It will give you an idea of where the most painful dependencies are. This is very valuable information for your package design.

4. Scrub your code for compiler warnings, especially the ones about invalid type casts and platform independence. Most of these warnings have been promoted to errors under .Net.

5. If you are using third-party components, make sure they have a vcl.net version available. If not, make sure you have their source code and it is not too hard to compile under .Net. For example if you see a lot of pointer manipulations, windows API calls or ASM keywords in your third-party source, be very scared!!!

6. Get a fast machine, ideally a multi-core and have 1GB or even better 2GB RAM. Delphi 2005 and D 2006 are memory hogs. I routinely see close to 1GB used up by BDS during a long change/rebuild cycle.

7. Use DUnit and write tests for any unit that can be tested. If the unit cannot be tested, try similar constructs in test before making the change itself.

8. If you do not have a source control, install one. There are several open source options available. If you have MSDN subscription, try using Team Foundation Server. I have grown to appreciate the nice features TFS provides especially for an agile development environment.

9. Create a project group that contains everything you are compiling. This could be a bit of a load for Delphi, so go for that 2+GB.

10. Create a command-line script for compiling your project group from command line. Compiling from IDE is much slower than command line compiles.

11. Add your unit test projects to the command line compile and run them as part of the build.

12. Be ready for some boring work. Make sure that you have whatever keeps you alive on those endless build/fix cycles. May be you can take a cruise!!

TClass.NewInstance disappeared

Here is another one for the elusive "Conversion Guide from Delphi win32 to Delphi.Net" that Borland/Codegear has never written.

TClass had this nice virtual NewInstance method which would call the default constructor. We used this in a lot of factories. However, understandably so, Delphi.Net does not have a NewInstance method.

I imagine it would be awkward to keep this behavior under .Net. So, we will need to use other means for achieving the result. It did take some poking around to finally figure out how this is done. Well, it was not that hard once I looked in Borland.Vcl.Classes, the TReader method to construct a new instance. So, my solution was to rewrite the factory methods similar to the following.

function MyClassFactory.CreateInstance( aName : string ): TMyClass;
var params : array of System.Type;
    paramValues : array of TObject;
    aConstructorInfo : System.Reflection.ConstructorInfo;
begin
  SetLength( params, 0 );
  SetLength( paramValues, 0 );
  aConstructorInfo := getClass( aName ).ClassInfo.getConstructorInfo(params);
  Result := TMyClass( aConstructorInfo.Invoke(paramValues));
end;

In my case, the constructors did not have any parameters. If you are expecting parameters to your constructor, fill the params array accordingly. Unfortunately, this will not compile in win32. There goes the first IFDEF CLR.

Specializations of TMessage... a good thing, but!!!

To ease the marshalling requirements of sending messages, a large number of windows messages have been converted to specialized message types in Delphi.Net. However, this has introduced an interesting problem in conversion.

We have several components that override and redeclare message handlers. One of them is a CMParentFontChanged. The original declaration was

procedure CMParentFontChanged( var Message: TMessage ); message CM_PARENTFONTCHANGED;

In the implementation, it calls inherited, which has the following declaration.

procedure CMParentFontChanged(var Message: TCMParentFontChanged); message CM_PARENTFONTCHANGED;

The compiler will cast your TMessage to a TCMParentFontChangedMessage, resulting in a null reference under .Net. So, I was getting these mysterious “object reference not pointing to an instance” errors. (I still haven’t figured out how to make D2005 debug into .Net VCL source. That would have helped me figuring this out easier.) My resolution was to change the type of the inherited message handlers. If you have a lot of message handlers, this could become a headache.

Some interesting tricks that are biting back!!!!

In Delphi win32, explicit casts were not type enforced - meaning, you can cast an object reference to another type even when they are not compatible. While in most cases this would be disastrous, in one of the third party components we have, there was this interesting piece of code. It was trying to access the color of the parent to set its own color. However, since the parent is a TCustomControl, which doesn’t have a color property, it cast the parent to TCustomPanel in one case and TGroupBox in another both of which have a color property, and this worked fine.

When converted this code to .Net, it did compile. However, since the explicit cast is strictly typed (same as the as cast) the result of the cast was a nil, which of course created the "Object reference not blah blah"

Full reflective nature of .Net makes it easier to handle such situations. Instead of casting to an arbitrary class, use reflection to get PropInfo for the property you want to set or get. This technique can be used for even non-published properties under .net.

Following code snippet shows setting a text value to an arbitrary property of the control.

class procedure TMyControlhelper.SetString(aControl: TWinControl;
const propName: string; aValue: string);
var
PInfo : PPropInfo;
begin
PInfo := GetPropInfo ( aControl.ClassInfo, propName );

if ( PInfo <> nil ) then
begin
if ( PInfo.TypeKind = TTypeKind.tkString) then
SetStrProp( aControl , PInfo, aValue )
end
end;

Please note that PPropInfo is System.Reflection.MemberInfo and thus a full citizen of.Net reflection. You can use a similar method to get the values.

A small wrinkle to the above is when you need to set a delegate (event handler) the same way. In Win32, you can use a TNotifyEvent and cast it to a TMethod for setting a event handler. For e.g

SetMethodProp(aControl, propName, TMethod(aValue)); // win32

Where aValue is of type TNotifyEvent (or some other method of object type). However, this is not true under Delphi.Net. TMethod is a whole new class. It took me sometime to figure out how to resolve this issue. Finally, I found out, almost by accident that the reference of a TNotifyEvent is actually a TMethod. So, under .Net my code looks like:

SetMethodProp(aControl, propName, @aValue); // clr

Unit changes

1. Variant: As usual, there are several classes and constants that have changed units. The primary one is Variant. Variant is no longer declared in System. It is declared in variants. Well, a variant is just a TObject with a very interesting ObjectHelper. By the way, if any of you want to know how to write implicit conversion routines in Delphi, Look in the variants unit, TVariantHelper object. Really interesting stuff.

1. HRESULT. I have no clue where this constant was before. Now it is in Delphi.VCL.Windows

2. If any of you were being too smart by appending unit names to functions, here is a gotcha. If any of the system units where qualified ( for e.g System.copy instead of just copy), it is not going to work. System now refers to the System unit of Framework. Borland's system unit is called Borland.Delphi.System. So, if you really want to qualify a function from Delphi's system unit, write Borland.Delphi.System.Copy.

3. HInstance: I had to do a search the whole source directory for this. It is in WinUtils.

4. Where is the Point!!! : The Point and Rect routine has moved to Borland.Vcl.Types. Well many other things have moved there. For e.g TPoint declaration. But there is a typedef in Windows unit that refers to this TPoint

Simple issues in class declarations

Unsafe Methods: In our codebase, there were some methods I wanted to use direct pointer manipulations. These methods required adding the unsafe keyword to it.

Inherited Constructor: Most of us don’t follow the good programming practice of calling inherited Create in the constructors. For Win32 it was optional, and you could decide where to call it from within the constructor body. Under Delphi.Net, you must call the inherited Create before trying to access local fields and functions. It luckily shows as a compile time error.

Class methods as event handlers: It is possible to use class methods as event handlers/delegators. You cannot use a standard Delphi class method as a delegate under .Net. Delphi class methods are a very Delphiish

Visibility of Overriding Method: When the visibility of an overriding method in a descended class differs from Parent, Delphi win32 used to give a warning. Changing the visibility of an inherited method is no longer a warning, it is a compiler error. Only way to change visibility seems to be reintroducing.

Potentially polymorphic constructors should be virtual. That sure sounds mysterious!!! This is a compiler error I got. The offensive call was trying to create a class by using a variable of the type of that class. ( for e.g, FooClass = class of TFoo ). Changed the constructor to virtual and the compiler was happy.

Constructor is where the class is constructed: In Delphi win32, constructor was just a method that the compiler called during the creation of the object. The object is already allocated and initialized by the time you get to the constructor. However, in Delphi.Net, like any other .Net language, constructor is where the whole thing happens. Until you call the inherited constructor, the instance will not be initialized. There were several cases where the constructor was making use of instance variables and methods. In one case, the constructor was calling the inherited constructor passing to it an instance method as a delegate. This however was correctly flagged as an error (unlike Java!!!) by the compiler. The resolution of that issue was not very simple.

The change in constructor behavior has caused us more problems than simple compilation issues. It is common to use constructor as an initialize in Delphi Win32, which it was. In an ideal world, no one should be doing any initialization in a constructor, but in Delphi, the temptation was hard to resist..Net requirements could derail initialization dependencies and create hard to track bugs. If you confront a class hierarchy that has substantial amount of initialization code in constructors, you should try to refactor the initialization code out of the constructor to a virtual instance method called from the base constructor. This will give us a chance to verify the behavior before the actual conversion.

A related issue is dependency injection. A large initialization block is usually a symptom of arbitrary dependencies. If this is happening in your code, consider one of those dependency injection patterns.

Changed class internals

We are all humans and end up using some of the undocumented internals of VCL classes for convenience or tweaking performance. One such usage I found was of the internal pointer list that a TList holds. Accessing the values directly from internal list is slightly faster as it does not do bound checking. Under .Net, this internal list is a System.Collections.ArrayList. Furthermore, it does not do a bounds check before accessing the element of the internal list. You can either decide to sacrifice the performance gain in win32 code and access the items directly, or use compiler directive to direct access the items under .Net.

Variants are first class objects. All the variant magic is now simple operator overloads. Other than the requirement for adding the Variants unit where there are implicit casts of Variants to other types, I haven’t encountered anything that will break the conversion.

TGUID: This class is now just a System.Guid and does not have the internal D1, D2 etc. fields that the win32 TGuid structure has. There was one case where we were ascertaining if a Guid was empty by comparing the D1, D2 etc. to zero. This technique obviously won’t work under .Net. Following is what I ended up doing.

           NULLGUID = '00000000000000000000000000000000';
           ...
           Result := aGuid.Equals( TGUID.Create( NULLGUID ) );

TStringList.GetText and TStringList.SetText are not public anymore. I am not sure why someone want to use the methods instead of the Text. I do remember one time when the strings where only 256 bytes, GetText provided a way to get a PChar of the complete text representation of a TStringList larger than 256 bytes.

TWinControl. CMFocusChanged is gone. Instead it declares a virtual method FocusChanged( newFocusControl: TWinControl ). One of our TWincontrol descendants was handling this message, which needed to be changed to the overridden method.

Delphi Exception class under .Net is a redeclaration of System.Exception. This is a welcome change as we no longer need those weird third party contraptions or home grown stack tracing mechanisms. System.Exception class contains everything you need to know about the exception. For example, to get the stack trace just access Exception.StackTrace property. One change that might affect existing code is that Message property is now read only. You cannot append to the message property of an instance of an exception to provide additional information. However, System.Exception has an InnerException property which contains additional exceptions that were thrown before this one.

TList and ValueType Pointers

TList is a very popular container class for Delphi programmers. One common use for TList is to hold valuetype references, typically to native types. These constructs will take the address of the passed in value (integer, float, TDateTime etc.) and store it as a TList item. When the value is read, it will be dereferenced to the corresponding type.

There are two major differences in .Net. TList is now an array list that can hold any System.Object. Secondly, you cannot use the address operator on a ValueType.

If you want create a pointer to a ValueType, you will need allocate outside managed memory and marshal it back and forth. In a similar case, I considered three different approaches. First one was using marshalling. I soon found the horror in that approach. Second approach was to use Variants to hold value instead of a pointer. Third approach is to use Boxing; a technique .Net uses to make ValueTypes to behave as an object reference. Though Delphi.Net does not support auto-boxing, you can use a simple cast to box the value type, for example, you can make an integer into a boxed integer using TObject(value). Just to be sure, I wrote a small test that compares the three options. As expected, marshalling found to be the slowest approach followed by Variants. Boxing approach seems to introduce the least amount of overhead in the above scenario. Using Variants provide additional support for type checking and safe conversions. If you require this, use variants.

Friday, May 18, 2007

Multi-verse and Brahman - May be there is a book here!!!

Recently we in our alumni email group caught up in a heated discussion about god and miracles. Since I was in vacation this was a good opportunity to brush up my vedanta. So, when a discussion started about Ishaavaasyopanishad, well, specifically about the first Shloka

Ishaavaasyam Idam Sarvam Yatkincha Jagatyaam Jagat||
Tena tyaktena bhunjithaah. Maa gridah kasya svit dhanam||

Well, during the reading, I couldn’t but help think about the ramifications of M-Theory (another link) on the whole concept of Brahman, Maaya and Isha. So, I refreshed my Shankaracarya and found something rather interesting.

Shankaracarya took great attention to the logic of his arguments. Instead of saying something is so just because Vedas said so, he tried to come up with analogies and logical tools to provide an explanation, sometimes terming them as proofs. So, it is only natural to try to extend those logical steps to include new realizations of how things are.

While not all M-Theorists agree about multi-verses, they do agree that the laws of physics of this universe are not necessarily applied anywhere else in the 11 dimensional space. One of the significant achievement of M-Theory is explaining the singularity away from Big-Bang. But that would make it quite viable that such brane collisions happen more than once and could give rise to multiple universes.

So, how could one relate this possibility of differing fundamental laws being applied in different universes/branes/boundaries to Advaita?

The fundamental assumption in Advaita is that Brahman is the primordial, omnipotent, featureless, (not that, not that) presence (Nirguna). Isha is the manifestation of Brahma on Maaya. Furthermore, Isha is responsible for creating the universe, and is the causation. (Of course, the ultimate causation is Brahman). The universe is the effect of this, and at the same time, is a projection of Isha (Brahman by association) on Maaya.

When there are multiple universes with differing laws of physics, one could take two possible arguments. The first one is to say that Isha manifests universe in multiple ways with differing laws. But, a logical explanation will be to assume that in a multi-brane state (sthiti) it is quite possible to have multiple manifestations of Brahma on the branes. Ohh… my, this could even lead to the assumption that Branes are actually the causation of Maya. So, these manifestations of Brahma could be considered as different Isha, each of which is omnipotent, omniscience in the corresponding universe (or Brane if it had never collided with another one. I agree, I haven’t found a good enough explanation of what happens to the Ishas when a collision occurs. Survival of the fittest?)

It is like a hall of mirrors that has different mirrors with different surface geometry. Each one reflects you in different ways while all is you. (See, I too can come up with Shankaracaryanesque analogies.) One has to acknowledge the complexity of Hindu philosophy though. It is possible to come up with an esoteric definition with the help of as many Shlokas as you like using the Vedas and Upanishads.

I am sure one of those Frijtoff Capra likes will run with this or a similar take to provide more proof that the ancient philosophies actually did solve all the problems.

If somebody is still not clear, I do not subscribe to this idea. This is one of those thought plays you do instead of masturbating J

Wednesday, May 16, 2007

We are a bunch of idiots!!!

I have been reading the comments on the article Why doesn’t Microsoft has a Cult Religion? I did blog about the article yesterday and did leave a comment in the article too. But I cannot but notice the sheer animosity people (apparently developers) express in these articles and discussion boards about their preferences in computer software companies and technologies.

It is common to have very passionate discussion about technology. But these days, especially when developers and IT discuss technology there is so much venomous exhortations against each other. Most of the time, the mudslinging is between the haters of the symbol of all evil Microsoft and the self appointed MS evangelists. I have seen some Linux fans showing their fangs at Java guys and vice versa. What I don't understand is the logic behind this.

Anybody who has some experience in the IT industry and actively participates in it clearly knows that there is no one solution and no one evil. Open source is not the next French revolution, it is just a business model (a pretty innovative one at that). Microsoft is not the embodiment of all evils; it is an amazing technology company with some very good products under their belt. Mac is great in their innovative design concepts that are so finely tuned to the youth. Java is a great language that practically redefined object-oriented languages.

As a developer, I embrace any technology that is exciting and give me a useful and flexible set of tools to do my work. Currently I am using MS products because that is what is providing me the most enjoyable work experience, be it in programming, or in making music. It doesn’t mean that I consider all other possibilities as lesser ones or unsuitable. I just am used to these and haven’t found any overwhelming reason to switch to anything else.

As I have been saying, this is a great time to be a software developer. We have so many options to choose from. Many of them wonderful to work with. Yes, they all do have their idiosyncrasies. So, I do look forward for the next big thing. And, it always comes… in such close successions.

So please, my fellow developers, please celebrate the diversity. We know that it is inevitable that everything will start to interoperate soon, may be with some seam. If something misses the boat, well, that is how it is. Don’t tell me you are not resourceful enough to move between the choices!!! if you are, then you will miss the boat too.

Thursday, May 10, 2007

Universe and me

I was always infatuated by exotic physics and astronomy. However, I kind of left this interest hang out in the back of my mind for quite some time. In the last year or so I find myself spending more and more time reading about and thinking (well, a better word will be dreaming) about these subjects. I have to say, Discovery Science channel has something to do with it :-)

Anyways, the recent flurry of exoplanet findings is so amazing. In the last couple of weeks or so, there was the discovery of the earthlike planet (Planet Hunters Edge Closer to Their Holy Grail) that is at habitable zone of its star, series of in-depth findings about mars like exoplanets (Sizzling Planet Makes Some Stars Look Cool, Scientists Map Weather on Distant World, freezing cold).

Combine this with the recent solary system explorations that are providing astonishing information about our neighbourhood...

Every day brings in so much fascination. I can't wait for the day that will finally provide us with the universality of life. Ofcourse, part of the satisfaction comes from shaking the basis of most of the fundamentalist relegions that we are crazy about!!!!

Monday, May 07, 2007

Nasty McAfee - Outlook 2007 issue

I finally took the move to office 2007 during the weekend and immediately hit by a very irritating issue. When I started Outlook 2007 the second time, it gave me a message box saying "naCmnLib.dll cannot be found, please reinstall office". First of all I have to say that it is a dumb message. It felt even dumber after I searched the name first which revealed that the file in question belongs to McAfee. So, Office guys, you need to change your dll resolution messages. (I know it could be just an exception that climbed up the ladders)

Outlook handles this issue very unlegently. After the above message, it exits and shows an error reporting screen. I almost always forgot about the checkbox that says restart outlook. So, everytime I dispose the error report screen, Outlook will restart, start receiving files, and crash. That is a good sunday morning!!!

Anyways, after searching several groups, all I could assertain was that, this definitely is an issue related to McAfee and there are other people who have seen this issue. No one seemed to have resolved it, or felt it would be useful for other people if they posted the resolution.

Then I found that my version of McAfee is centrally managed and cannot be updated individually. There goes that possibility.

The solution was very simple. I searched for naCmnLib.dll, found it, and added the path to my environment path. To my surprise (not) everything started working fine.

(Hey, I tricked you to read until here to find the solution. Dont think my oratory skills are good enough to capture your attention for much more. So, have a good day)

Sunday, May 06, 2007

New song - Last Day of Summer

Well, as my music website is still rather unfinished, I decided to announce the new songs here and post them from the links on the side.

I have been trying to finish this song for the last several months. The first phase of the song went very well. Well, in most of my solo works, the first phase always finish very fast. Afterall, I usually record the whole song in one sitting. Eventhough in this song I played both Piano and Flute, it was one continuous session. I think that has given a very tight melodic structure to the song.

When I play meditative tunes, I want them to last for a long time. As always, I make something that I like to hear :)

Anyways, here is the song  Last Day of Summer.

If the contractor finishes my house soon, I will be able to upload a couple of more songs that wait mixing down.

Thursday, April 26, 2007

450hp Hybrid SUV is NOT GREEN

Everybody is behind the green thingie these days. Zero Carbon, low carbon, no net carbon and the rattle goes on. Everybody now knows that SUV is baaad for environment. Gas guslers... right? So, here we have a 450hp hybrid SUV to fullfil your green fantasies!!!!!

450 HP Hybrid SUV is as obsene as a 450 HP SUV and the only thing green about it is if it is in green.

Operating systems and the ignorant fan clubs!!!

Recently there have been a lot of press coverage for the QTime/Java flaw found in MacOS. As always, the discussions on the subject very quickly turned into a pissing contest between fans of different OSes.

No system is inherentely secure and no system can be absolutely secure. In any real life scenario, there will be a lot of native and third party applications running in the OS as well. So, ramblings about which OS has more issues and which OS is better are rather moot points. Lets first acknowledge that we have some very advanced, highly productive OS in the market place that support a wide range of hardware. As a person working in the IT industry, I am proud to see the astonishing technological growth these OSes, especially Mac, Windows and Linux showing.

Security is largely becoming a behavioral and ethical issue rather than a technological one. Just like in our social lives, there need to be code of conducts and ethical and moral frameworks in the virtual space as well.

So lets not get into mud slinging whenever a report about such issues comes out. It is a bit dissappointing to see a flaw in one of these fine pieces of software, but we as a community will find technical and social resolutions to these issues.

Mac or windows or linux, java or .net or ruby I am so happy to be in the present. So vibrant, disparate, joy to work in...

Salim

Tuesday, April 24, 2007

Anderson Cooper on Hip-Hop

Attaching the alleged "Stop Snitching" campaign, Cooper repeatedly says that the rappers sing these songs, supported and promoted by Billion Dollor Corporations. However, he could only bring up some of these Rappers. None of the company executives responded (ofcourse they where white!!!)

Interesting.

Monday, April 16, 2007

Demise of the internet...

I have been walking around at my work predicting that the Internet as we know it will cease to exist. My argument was that the whole protocol and the related infrastrcutres were created under various assumptions of limiting accessibility and overcoming bandwidth issues. The other part of the infrastructure solves the problem of disconverability in traditional networks.

We have been making advances in all related technologies that makes these infrastructure assumptions meaningless. The same is applicable to http based communication as well. Http has one role, which is hypertext markup. Only some of the problems can be modelled into a hyperlink scenario. However, current trends are to create artificial scenrarios that does not suite well for the protocol.

And today I find this article. http://www.livescience.com/technology/070413_ap_new_internet.html. Ofcourse I should have posted earlier. But I wholeheartedly agree to their arguments and we as developers should be investigating this instead of trying to squeeze everything into a browser that shows Http.

Wednesday, April 11, 2007

Inventions and Discoveries I am looking forward to...

1. Proof for extraterrestrial life

2. Commercial Quantum computers

3. Demise of the browser

4. Faster than light travel

5. Complete digital reconstruction of self

6. Extraction of energy from emptyness 

Tuesday, April 03, 2007

Enterprise 2.0, a dubious legitimation

In an article on Enterprise 2.0 (http://www.enterpriseweb2.com/?p=127) one of the main business value proposition bases on the increase in the proportion of employees who does tacit work. It continues to say that 25% to 50% of the employees do such work (as management and sales).

For one, I dont think this is a global phenomenon. In a society where the growth phase of capitalism is at its last legs, this is quite a possibility. On the otherhand, in emerging societies, the growth of the primary productive workforce is at a much higher pace. An interesting factor is that IT adoption in these societies is growing in momentum as well. Any discussion about technology that fails to see this fact is, at best dubious.

While free form collaboration and information availability (as opposed to data availability) is going to be key, it will play out quite differently.

Hmm, this is interesting. Ok, I am going to collect some information and see if this assertion holds up.

Monday, April 02, 2007

Poor Christian Homeschoolers...

I was watching AC360. There is this news item about a Creation museum in Kentucky (or a similar place) that shows the garden of Eden with Dinasaurs. Ofcourse, the theory is that the Eden was made 6000 years ago and ofcourse there was Dinasaurs and all other kinds of animals. Dont say how they all died out though.

The interesting part was some interviews with Christian homeschoolers. The naivity or stupidity, I am not sure which, of these people are unbelievable. How can science be true if it does not follow Bible? Adds the mother turned teacher, when we get to heaven, God will tell us how he did all this and it is going to be very close to this Eden!!!

God bless you and your child ...

Sunday, April 01, 2007

Bakerji passes away

Laurie Baker, a great architect and a greater humanitarian passed away.

I always looked up at him with awe. The endless energy, persistence, almost dogmatic conviction in his ideology.

Here are some links

http://en.wikipedia.org/wiki/Laurie_Baker

http://www.keral.com/celebrities/lauribaker/

http://www.deshabhimani.com/news/k1.htm

A lot of my friends are very close associates of Bakerji. I join them in reminiscing the great stories and immense legacy that he has given to us. Kerala is a better place for being his home.

Thursday, March 22, 2007

An hour long session with your mop

This commercial for wetjet shows a woman and a mop in a therapy session. The interesting thing is that, they ran out of time!!!!

What would drive me to a session with my dyson !!!

Thursday, March 08, 2007

Upgrading to Windows Vista is so painful ...

If it was a Mac, such and upgrade is extremely straightforward. Go to shop, buy a new Mac!!!!

Monday, March 05, 2007

Ben and Jerry

Now I have to buy Ben and Jerry whenever I buy ice cream. We do not buy a lot of ice-cream. But, I will make sure that the occassional pints that I pick from the store will be Chunky monkey or even the Steven Colbert!!!

It is a bit hard for me to accept a very successful businessman also as a liberal, but I am learning.

Sunday, March 04, 2007

lets examine the facts !!!! (Note about Jacobovici's Jesus Tomb)

So, we all saw the movie, now is time to find out if this movie holds any water.

The movie provides various related facts that provides a very high probability to the theory that the tomb described is belongs to the Jesus family.

But we do have an overwhelming evidence to prove otherwise. Bible says Jesus ascended to heaven in his physical body. Since Bible is always true (like a large number of scientists know very well during the 2000 year history of christianity) the above theory cannot be given even the slightest credibility. Ofcourse, we will start a process through which we can burn Jacobovici in a stake.

Wednesday, February 07, 2007

Thin line between history and ethics

It is always hard when narrating highly polarized times in human history. One such period is Hitler's. Since it is such an easily servable symbol of the ultimate evilness, it comes in as the principal supplier of antagonism in a lot of historic narrations. Once such is what I am watching right now. A SciFi show about Atlantis.

Most of the show's 2 hours are invested in various theories about Atlantis and theories about its location. A lot of those theories gravitate towards the alien angle. Atlantis is the primary landing site of an alien race (about 1-2 M years ago). Another argue that Atlantis was the waystation. Most of them agree that this alien race eventually succeeded in creating a viable cross-species between the primitive humans and themselves. One "theorist" suggests that the Atlantian, true to Plato's description became very arrogant and eventually killed themselves in a global thermo-neuclear war which obliterated all what was there.

This catastrophic elimination of evidence is a well used artifact by a lot of historians. One such narration that comes to mind is the one about a second Chera dynasty in Kerala that was so advanced compared to any period kingdoms, which was eventually ground to sand by enemies.

Back to the original subject, a small segment of the show was dedicated to the Nazi effort in finding the Atlantis and to come up with a theory of Atlantis that will strengthen their on racial supremacist theories. So, this theory is that Atlantis was a tribe of the original supreme human. When Atlantis was eventually wiped off the earth. Some of them migrated to other higher locations of earth like Tibet. The show goes on to describe how German archeologists and physical anthropologists running around the world to find evidence to this. The narrator was so eager to repeatedly remind us about the sinister nazi conspiracy through words and pictures all through the segment. The sad fact is that that theory could hold equal or more amount of water than the ones about the grand alien conspiracy.

Ohh yes, I have to quote this. The Atlantians who survived, some of them has a high level of alien characteristics. They are the instigators of all the violence, ecological decay etc. Ofcourse the grand illuminatti is part of this. So, we have this grand conspriacy where all geologists, anthropologists, etc. etc are involved in which hides the evidence of Atlantis from the rest of us.

I like theories that are so plastic that you can spread it over the whole universe and still have some stretch left.

Monday, January 29, 2007

Talking cookies and other monsters...

There is a continuing trend to show food items that has quite a lot of intelligence. For example the four chocolate chip cookies that drives a convertible, singing along with the song... And a monster hand comes down and takes them (to eat obviously) off the car while it is driving. What a scary thought is that. I don?t think I can eat a chocolate chip cookie without a bit of shudder after seeing this commercial.

Another even scarier commercial is the one with the Perdue chicken guy and his chickens that are exercising, and participating in intelligent conversation with a chicken on the phone!!! How can one eat a chicken without feeling a pang of guilt for killing this intelligent animal.

And now we have cereals, vegetables, cows advertising their udders, etc etc, all in very homomorphic fashion.

I am assuming that there must be a lot of people who accept these ads for the purpose they are intended for. They must have done some focus group shit before publishing it. That is even more scarier. Are we still keeping hidden cannibalistic tendencies?

Tuesday, January 16, 2007

Ahh... I did enjoy this Indian being roasted...

Colbert report today featured a writer named Dinesh D'suza, who has written a book "Enemy at home, how cultural left made 9/11" or something like that. No, i did not read the book, and no, I am not going to read that book.

Usually when I see an occassional Indian being roasted in one of those shows, I fee a bit of sympathy. Ofcourse I am not above racist nuances!!!

Anyways, I totally enjoyed Colbert plucking this guy to his skin and even the skin...

The book apparently connects the whole muslim fundamentalism as a result of the American liberalism. So, all we need to do to stop the violence is to connect the traditional america (of the christian fundamentalists) and show them how pathetically radicalized, racially motivated, and relegiously blind we are all.

Monday, January 15, 2007

Shrinking information space !!!

I just noticed that in most of the news and information sites that I usually visit are making the width of the article space in their web pages smaller and smaller. After the top banner, top menus, side menus, right hand side infolets (or whatever they are called), google ads, other ads, login page, etc etc, there is about 20% space that the article uses in a page. Not only that, most of these sites forces us to browse into different pages (the evil <Continue> link, or even worse, the 8 pt pagte numbers and > link!!!) with similar kind of noise.

I want a way to just read what I want to read. Show me the related info when I ask for it. If you are so poor and broke, show me a 30 second commercial video before I start reading the article.

Another annoyance is those floating windows with ads on them, some even with a jingle! True to the "web paradigm" they all have their disposal links in different different places.

I have to start thinking about some kind of desktop aggregator. Web is not all those web pages, but the information contained in it.