Monday, April 11, 2005

Recently I came across The World Fact Book, this is a US Government's CIA website that provides comprehensive information of all countries - their geography, history, economy, people, culture, concerns and more.  Unlike the popular belief, seeing this site you will get convinced that US Government is well informed about rest of the world!.

Two sites I normally turn to for Encyclopedic content - the first is MSN's Encarta and the other is free Wikipedia. Wikipedia even has a Tamil Encyclopedia (if you notice even this URL has a Tamil folder name!)

 
Monday, April 11, 2005
Two weeks back I was on a holiday to Guruvayoor & Munnar. Guruvayoor is one of the most regarded holy places in South India, it has a popular Lord Krishna Temple (Krishna in his child form). Munnar is a lovely hill station about 3 hours drive from Cochin, Kerala.
 
The Guruvayoor temple devasthanam maintains a well run Elephant santuary, which has over 65 elephants of different age, sex and origin (from various places of India). It is fun to watch the elephants get bath, eat, walk & even dance.
yanakotai_32.jpg
Elephant at Guruvayoor Yanakotai
yanakotai_42.jpg
Young Dancing Elephant
yanakotai_22.jpg
Elephant given bath by 3 keepers
yanakotai__12.jpg
Elephant transporting its food
view_from_rajamalai.jpg
View from Rajamalai (The Highest point in Munnar)
sunset_internationalpark.jpg
Sunset as seen from KSEB International Park
venkat_in_rajamalai.jpg
Venkatarangan in Rajamalai
nilgiri_tahr_in_rajamalai.jpg
Nilgiri Tahr (A Deer Like Animal) in Rajamalai
 
Sunday, April 10, 2005

In my last post, I mentioned that I am using Sauce Reader to do my postings. Though I managed to do text only posts, I am having problems with posts that include images. Sauce Reader supports two image upload options - MetaWebLog API and FTP. MetaWebLog is not supported in dasBlog 1.7.x and for some reasons (which I am yet to figure out), my FTP server refuses to get connected from Sauce Reader or even from IE. My FTP server gets connected only from GlobalScape CuteFTP, even though the FTP server is Windows Server 2003/IIS.

While using Sauce Reader I noticed that its UI looks sharp and clean; curious on the 3rd Party controls they could be using I went into the "C:\Program Files\Synop\Sauce Reader" folder and I noticed they used a handful of third-party components (a combination of free/commercial). I found the list of components impressive, so giving them below:

  1.  .NETXP  - This is a set of free packages that include lots of Windows XP like controls, Alerts, Reusable forms, Wizards, FTP Client, MSN Messenger/Outlook style alerts and more. Check it out. [Free & Commercial]
  2. .NET Components from Chilkat - Seeing their website this company seems to make lot of email, HTML related components for .NET & ActiveX. [Commercial]
  3. XML-RPC.NET from Cook Computing. [Free]
  4. esellerate - A Software commerce Provider. [Commercial]
  5. NET Html Agility Pack from Simon Mourier - An agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT [Free]
  6. SharpZipLib - A Zip, GZip, Tar and BZip2 library written in .NET. [Free]
  7. Infragistics Windows UI Development Tools [Commercial]
  8. Apache log4net - A tool to help the programmer output log statements to a variety of output targets. [Free]
  9. Lucene.net  - Lucene.Net is a byte-to-byte port to .NET of Jakarta Lucene a high-performance, full-featured text search engine library written entirely in Java. Now it is commercially available as Search Black Box[Free & Commercial]
  10. NetSpell SpellChecker  - A free .net Spell Checker. [Free]
  11. Microsoft Application Block [Free]
 
Sunday, April 10, 2005

Since I do little printing on paper and I have a variety of printers available in my office, I have so far resisted the idea (mine and my wife's) of buying a printer for my Home PC. Though my Home PC is fully loaded (P4 HT, 1GB RAM, 180GB x 2, DVD-RW, CD-RW, TV Tuner, 17" LCD, DSL, FireWire, USB) , till now I only had a scanner for emergency scan and email.

This week, when I wanted to scan and email an important document, the scanner decided to die. Frustrated, the next day as soon as I went into to office, I ordered for a top of the art, HP All-in-One Home device. Yesterday, the vendor delivered HP PhotoSmart 2608, which is a Colour Photo Printer (meaning it can print photos on special paper), Scanner, Fax & Copier. It includes a LCD Display for settings and Photo viewing, USB & Ethernet Interface & multiple memory card slot readers. In Chennai it costs Rs.14,600/-. I installed it today morning and so far happy with the print and scan quality.

Previously whenever I got to install any new device on my home PC (my Systems guys don't let me do it in the office :-) ), I go straight ripping the package, connecting the power, installing the software and after few hours, turn to the manual. Today, I decided to act wise, I first read everything in the box, including the instructions on how to open the box and remove the printer. Then once I found the setup instructions, I went through it religiously one-by-one, all the way through the 20 odd steps and got the printer installed. It turned out to be good idea, as without the proper steps, this could have taken me hours to figure out. 

The first time the software installation failed with some crazy MSI error. It offered to uninstall and reboot. I did that and reinstalled the software, everything went fine this time. During the software installation I noticed two things, that it required Microsoft .NET Framework (and installs it, if it doesn't find one) and it took more than 30 minutes to complete it (probably on my machine, Windows XP itself doesn't take this long). When I say 30 minutes on installation, I meant purely the file copy/settings time it took and it doesn't include the waiting for user-response time or detecting the printer, etc. Definitely a long time...

 
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.