Thursday, April 07, 2005

I have been using Sharp Reader for reading all my subscriptions and  using the Web UI of dasBlog to do my postings. Though I love Sharp Reader for its simplicity, lately I was feeling down because an update for it is long overdue.

Anyways, after trying out Newsgator, FeedDaemon and others now I am using Sauce Reader. I like the neat Interface, especially the clear, legible fonts (I guess enhanced by Clear Type). I will likely stick with this, will keep posted on how my trial goes.

This posting is posted from the WebLog feature of Sauce Reader - hope it comes out clean.

 
Wednesday, April 06, 2005

I don't believe this - that I am writing a blog entry about working in vanilla "ASP" (Active Server Pages).

Anyways, last week on an existing website, we had to do a new ASP page that reads an XML from a URL, and display it. While doing it, should cache the XML file, so that for every incoming web request, the page doesn't do an outbound XML file web request. Basic idea was to act as a kind of a reverse proxy (or caching web server) to prevent the full load from reaching the other webserver which had the XML file.

Doing this in ASP.NET is a simple matter of enabling page caching, but doing it in ASP required pulling off few tricks from my old ASP hat. The code I wrote to do is a generic implementation that used ASP Application Object and VBScript DateDiff time comparison method. You can download the full code from here.

 
Wednesday, April 06, 2005

A situation we had in a recent project (Windows Application) was to take some actions based on whether we had an Internet Connection or not. Though it sounds very simple, there is no straight forward way to determine this. This because you can be connected by numerous methods - Internet via LAN/Wireless or Modem/Dialup or thru' IR/Bluetooth, etc.

Couple of years back, when we were building a Cricket Score Alert Application in VB 6.0, we used to download a very small file via HTTP, and if succeeded we concluded that the Internet Connection was present. This time, I wanted the solution in VB.NET and expected to find a better solution. After several Internet searches, I came across this article (KB Article: 821770), which talks about WinInet DLL. Though this WinInet function gives you good information on the type of Network Connection (LAN or Dialup, etc.), it doesn't still say for sure you have an active Internet connection.

Instead of calling WinInet through Interop from VB.NET, I would have loved to see a native function in .NET Framework BCL - Framework folks, are you listening?.

You can download the code snippet here, for using the "InternetGetConnectedState" WinInet Function.

 
Friday, March 18, 2005
ASP.NET v2.0 (which is expected this calendar year) brings some exciting technologies including great Web Parts, making reuse lot more powerful and easy than today. Webparts was introduced in Sharepoint and there has been lot of questions on the interoperability between ASP.NET Webparts and Sharepoints Webpart. This blog entry from one of the Microsoft Sharepoint Technical Evangelist throws clarity into it.
 
The blog also refers to this great tool "SmartPart for SharePoint: Workspace Home" that makes hosting ASP.NET 1.x User Control easily on a Sharepoint Webpart today. Great functionality, check it out. 

I just now upgraded my blog to the new dasBlog 1.7.x. It is great and much faster than the Predecessor - I simply love it. The upgrade was smooth and so far I noticed no data loss (keeping my fingers crossed!). Also I noticed that the tamil fonts now appear correctly with Mozilla Firefox. Thanks E.Ravi for doing the upgrade on record time.
 
Wednesday, March 16, 2005
Last week on the 11th, it turned out to be a special evening for me. I got to meet Somasegar (Corporate Vice President, Microsoft Developer Division) and interact with him.The occasion was a Roundtable with Soma for select Chennai MVP’s and the Chennai RD (which is me!).
 
I first read about him nearly a decade back in the book “Show-stopper!: The breakneck race to create Windows NT”. After that, on many occasions I heard his name being mentioned with admiration by several Microsoft Employees. The first time I got to meet him in person was in Sep 2000, when Bill Gates launched MSN India. The last I got to meet him was few months back, on the occasion of a community roundtable held at Microsoft Bangalore, along with Eric Rudder. All said, last week (on the 11th) was special, since I got to talk with him for appreciable time on various interesting topics.
 
He is an active blogger, who’s blog is one of the most heavily commented, more so because he heads several exciting products from Microsoft including upcoming Visual Studio 2005.
 
With Somasegar, Corporate Vice President - Microsoft
 
During the roundtable, when I asked him how he finds the time to blog (I had to squeeze time at late nights like this one to blog!)?. Soma replied that he resolved to actively do it, right from the moment he decided to blog a year back. He added that most of his blog entries where made back home (Redmond, USA) and he hardly finds time during his business trips like this one to India. Holding a senior role in a company like Microsoft, I wondered how he decides what to blog, what not to blog and what will be his suggestion for people who blog, on where to draw the line?. I expected him to evade this question, no he didn’t, instead he replied instantly “It is simple, apply common sense”.
 
Click here for more pictures of the day.
 
Tuesday, March 15, 2005
Last Friday, I was chatting with a friend of mine, who works for a Software MNC in Chennai. Whenever we get a chance, it is common for us to share with each other our plans for future and seek other person’s advice and feedback.
 
A little background about him, before I continue: He is from a typical Indian middle class family and after a decade of career progression at various Software firms, he is now settled down in life - married, has a kid and a good paying job. 
 
Our topic of the day was his recent decision to buy a house – certainly a right time to do it. The house was a 3-bedroom flat in the heart of Chennai and will cost him nearly Rs.50 Lakhs (which may be 3 to 5 years of his pay). He is going for a housing loan of nearly 90% of the property value. Considering normal household & living expenses the loan is likely to be repaid with in a 15 year tenure.
 
I started sharing with him what I think are very important points to understand about the impact of these loans, especially housing loans which have a long duration and huge value at stake. We normally go for buying a house thinking that a house is a great asset for the family. Even if an unfortunate event happens to the earning member, the house will provide a basic roof to the family. This is where many Indian Households miss to appreciate the fact that a house (or a car) when bought in loan is not ours (not an asset) until we have fully paid the loan. Till the point we are regularly paying the dues it certainly is an asset, but the minute we default (due to any reason, death or even sick bedridden due to an accident) it becomes a liability. An example will help here, Mr.X who has a wife (housewife), two school going children and he lives in a nucleus family. He buys a car at Rs.7 Lakhs for a three year tenure. In one year, he has repaid Rs.3 Lakhs and now owes only Rs.4 Lakhs. At this point, he meets a fatal accident and his wife is now left not with an asset of Rs.3 Lakhs (nowadays car value diminish greatly) but a liability of Rs.4 Lakhs. So not only the diseased family has lost the earning member, but also burdened with a huge/impossible outstanding to pay.
Coming back to my friends’ discussion, I advised him first to go for a life insurance for a value greater than the housing loan value. Since he has already invested in the house which will give him future returns, the life insurance should be a simple life cover with no returns. This way his premium for the insurance will be extremely low (few thousands per year) and it won’t be a double burden for him. There are some good single premium policies available now that will fit this need perfectly. This insurance should be his personal policy taken by him. This is because though his company has a good cover for his life, that will cease to exist if he loses his job (actually only at this time, the insurance becomes more significant).

On the loan front, he was considering finalizing the housing loan with a foreign bank who offered him 7% interest rate, his other offer was from a nationalized bank at 7.75%. I advised him to go with the nationalized bank. My argument was not on basis of any patriotic reasons, but because of my experiences over the years.

  1. The fine prints of a foreign bank (and also many of the private banks) are generally too difficult for a normal person to comprehend fully. With a nationalized bank, you will have the comfort factor that they represent “Government of India” and they will be sympathetic to your requests.
  2. Many times, these banks try all the tricks of the trade, when it comes to collections. Their use of so-called “collection agents” are legendary. Though most of the times the Foreign Banks are forced to do this, because of their huge defaults; that alone cannot be an excuse in a democratic country. Many times, these are used, purely circumventing the law of the land.
  3. Also foreign banks lacks customer relationship (or what I call human touch). Though they have huge IT investments on the best CRM products, there is no one to talk to, when you need help. The fantastic personal attention, caring phone calls, stop the minute you sign on the dotted lines. After this it becomes “so called” system driven. For everything you have to call hundred different numbers and repeat the same problem statement to two hundred people.
  4. You might say that I am missing about the Relationship managers that these banks proudly advertise about. These are normally available only for big corporates’ and my experience here again has not been good. In reality even when they are available they don't help much because their knowledge on banking is extremely limited. They repeat verbatim what is their on the computer screens (which you would most of the time have already read from their secure/private website). For every query apart from the routine credit/debit, they have to check with their respective departments and this takes normally several days. Also the attrition/churn rates in these banks are extremely high, so within a year, you will be having at least a minimum of two to three relationship managers.
In contrast to this, every nationalized bank branch has a manager, who is well trained (qualified) on banking rules and business. For someone to come to a manager level in a nationalized bank, it would have taken atleast two decades of banking experience, during which they would have seen different people and different scenerios. In other words, they are not fresh out of college, learning now on the job. In almost all the branches (especially more so with branches in residential areas) the manager or deputy manager is easily accessible and tries their level best to accommodate your requests. Each manager serves in a bank at least for a period of two years, before getting transferred; and the clerical staffs (who you deal mostly) stay in each branch for even longer durations.
Having said the above, Foreign/Private banks are good too, when all you want is a Saving Accounts with good ATM reach and state of the art online presence. Above all they are good if most of the time your wants are simple products/service which can be self-serviced. In other words, if you have needs that hardly require a human being at the other side, these banks definitely excel nationalized banks.
 
Finally, coming back to my friends' story; I have convinced him enough that he is currently reconsidering all his options thoroughly.
  
Self Service ATM & Web
 
 
Monday, March 14, 2005

Delete '97 and subsequent Delete XP has been one of the popular freebies available for download from our products site: EasyTools.COM.

Description: Delete XP is for deleting files from Command Prompt in Windows (Windows 9x and Windows NT 4.0/2000/XP). Unlike, the standard "DEL" command which only deletes the file, Delete XP deletes the files and sends them to the recycle bin. In our opinion, this is what DEL command in the command prompt of Windows should have been!.

Over the years, the usage (familiarity and the need) of command prompt has certainly dimished. The only folks who uses it are the “IT Pros” and Me!. Anyways, even now I get once in a month or so, an email from some user across the world, who has found the tool on the Internet and finds it useful. He/She writes to me with a bug/feature (I leave which is more to your imagination) requests. Today, I have finally made the source code available from here.

This was one of my favourite Win32 Console applications that I wrote, since I took enough care in handling correctly the various command-line parameters (and their combinations) - which like those of you who have programmed on good ol' C++ know, was by itself a daunting task.

 
Sunday, March 13, 2005

On Friday, Forbes announced its annual “The world's Billionaries”. It was very heartening to find Indian Born Lakshmi Mittal rated as the 3rd Richest Man in the world. As an Indian, what is more encouraging are the facts Mittal has done it in an extremely competitive Steel industry, he has built the group completely out of his sweat (he and his family owns 97% of the group - which means he didn't have any major external investments) and finally he operates by aquiring sick units (in far-flung places in earth) and turning them profitable.

Great work Mittal; You have made every Indian proud!.

The forbes website also lists India's Richest as a slideshow here

 
Friday, March 11, 2005

One of the commonly asked questions on using .NET is the penetration of .NET Framework. This blog list the current statistics on .NET Framework penetration.

If you are considering using .NET Framework, you can do a sampling by analyzing the log files of your website. Internet Explorer reports the presence of .NET Framework on the client's machine on its User-Agent Property.  In my Windows XP SP2, IE 6.0 with .NET Framework 1.1, this is how this singature looks:  
Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322)

To successfully have this User-Agent Property recorded in the IIS log files of your website, ensure that W3C Extended Log File Format is selected and in the Extended Properties tab, the User-Agent option is selected.

Enabling in IIS Log - User Agent

Added on 13/Mar/2005: This blog entry by Yag from Visual Studio team lists the applications from Microsoft that use .NET Framework. Not a huge list, but certainly proves the bet of MSFT on .NET.