Sunday, August 29, 2004

I am surprised that a developed country like US has problems in Elections; I am talking about the Florida problems in last US President election. This time around they appear to have issues. In this year US President elections, they are planning to use Electronic Voting Machines in about 1/4th of places, but even for this there is huge hue-and-cry about the effectiveness/correctness/security of EVMs.

In India *a developing country* we have been using our own indeginious EVMs for over a decade now. In fact, in this year Parliament elections in India, we used EVMs all across the country. And this was for an electorate of over 600 millions, out of that probably over 40% are illeterates as well and with hundreds of different Politicial Parties. Still we had no nearly no issues with EVMs, people voted peacefully, effectively & decisively. And we got a new government in place in no time. All this was possible because of the great Indian Democracy and thanks to our Autonomous Indian Election Commission. Election Commission is a constitution authority in India which is independent and vested with powers to run free-and-fair elections in India. It has been doing the job successfully for last 50 years plus.

I have always admired the expertise of Indian Election Commission (EC) and seeing these news, I can't help but feel that United States, apart from IT Services, should *Outsource Elections* to India. If our EC can do it for 600 Million People, shouldn't it be easy for it to do for a developed country of just over 200 Million and two major parties?.

Anyways, the world is now recognizing India's expertise in Elections. Yesterday United Nations (UN) has signed a MOU with EC seeking its help to conduct elections in Afghanistan and Iraq.

What do you think about this?. Post in the comments link below. 

 
Saturday, August 28, 2004


(Image copyright/trademark of Microsoft Corporation)

In the conference yesterday, Microsoft announced Longhorn to be released in calendar year 2006 during . There was also the announcement on WinFX (The new Windows Programming API) Platform which is based on .NET Framework that supports programming Avalon & Indigo. WinFX will be available around Longhorn timeframe for down-level Windows like Windows XP and Windows Server 2003 Operating Systems as well. After nearly a decade the core Windows Programming model will get a major face-lift with WinFX. This will help ISVs who are developing Windows applications to start using the new WinFX to programme for existing and upcoming Windows releases.

I would loved to see the Windows storage subsystem, code-named "WinFS" (Windows File System) released with Longhorn. But now WinFS is going to be only in its beta during "Longhorn" release, so overall it is turning to be good!

 
Thursday, August 26, 2004

From the time I migrated from FoxPro/Clipper*1 in MS-DOS world to Windows (over a decade back), I have been a strong Visual Basic supporter. From time to time, in between I did some coding in C, C++ and to an extend in JAVA when it first came, but pretty much I have been a VB guy. (Just to prove that I did program in C++ check my Delete ’97 – a console application that sends files deleted from command line to recycle bin). When Web came, I sticked to VB, as most of my web programming was with ASP and VBScript. In fact, I did as little as little possible in JavaScript - which too was mostly limited to client side (browser) scripting.

In between, whenever I did program in C++, I felt it to be a waste of keystrokes to add semicolon in each line and I didn’t like the look of curly brackets every where. On a more serious note, coming from Basic/dBase world I felt comfortable with Visual Basic especially its support for UI, Database tasks and the availability of more high-level data types like currency, strings and more.

So when C# came, though I liked its power of expressions, my old dislike for C family of languages continued and kept me away from doing anything serious with it. And VB.NET gave me pretty much of what I wanted and also at the end of the day it was all ending up as MSIL (Intermediate Language) whether you did the initial writing in VB.NET or in C# or in PERL.NET.

But something happened yesterday that might change this. I listened to Anders Hejlsberg (Microsoft Chief Inventor of C#) talking about new features they are introducing in C# 2.0. The new features include Generics, Anonymous Methods, Nullable types, Partial Types and more. Especially I was very impressed with using Anonymous Methods in place of delegates; this can give great expressiveness with a simple syntax.

So now, I am left to thinking about switching to C#. Even if I don't move completely, one thing is sure, I am going to give this C# 2.0 a serious try.


*1 Though C++ was the first Object Oriented Language I learned, the one I used a lot, loved and appreciated was Clipper 5.x. The code-blocks (this is the successor to Macros in dBase) in Clipper gave you great power by allowing you to have code snippets in convenient places (even in a DB) and execute them whenever you wanted it. The support the language gave you to do common DB tasks (more so it was a language integrated with a DB Engine) like Input Masks  ..., I can go on and on about Clipper 5.x, but let me stop my saying I still look forward to some of its power coming to new languages. Language Purists might disagree with me on the above lines, but then it is a free world :-)

 

 
Thursday, August 26, 2004

This week, I am here in Bellevue (near Redmond) , USA for a 3-day Microsoft Evangelism conference. Apart from many Microsoft employees, many of my fellow Regional Directors across the world are also here. It is turning out to be a great event, especially giving a chance to meet many of the other RDs; An opportunity to associate faces to each of the email IDs.

The amount of innovations and development that is being done by Microsoft in terms of Windows Platform and in Indigo SOA is amazing. Over a period these features are going to be seen by customers as a clear platform differentiating factor. Anyway, I am seriously impressed on what I am seeing on Visual Studio 2005 especially with ASP.NET 2.0, C# 2.0 & Team System. Read about some of these technologies for yourself here.


The above photo has nothing to do with this entry, other than it is the view outside my hotel room. One more useless piece of information; it was shot with a Nokia 6600 camera phone and digitally touched with Irfanview tool.

 
Thursday, August 26, 2004

Earlier this month, all five of us - Microsoft Regional Directors in India met up. The event was a dinner before Tech Ed 2004 in Bangalore. The dinner was hosted by Eileen Crian; Eileen manages the Microsoft Regional Director programme worldwide.

Microsoft Regional Directors from India
(From Left to Right, myself, Praveen Srivatsa, Satya VVV,
Sanjay Shetty & Vinod Unny)

The next photo (below) was taken in the Speakers Lounge during Tech Ed 2004 in Bangalore. To read more about how I feel about Tech Ed, read this entry.

Speaker Lounge - Tech Ed 2004 - Bangalore
(From Left to Right, Myself, Sanjay Shetty, Sheila Gulati and Praveen Srivatsa)

Sheila Gulati manages the Developer Evangelism group in Microsoft India.  You can read about Indian RDs here and about the Microsoft Regional Director Programme itself here.

 
Wednesday, August 18, 2004

Microsoft has published a KB article on programs that have problems with Windows XP Service Pack 2 here. Leave aside the list of programs, what I found interesting in the KB, was a command I learned “Tasklist.exe”.

Tasklist.exe is a command line tool, that basically lists all the running processes in a machine. It can accept an optional username and password and be able to run in that context. Tasklist.exe /svc will result in a display of all processes running as service, including the DLLs they have loaded in their memory. This can be useful when debugging a problem, especially to find out on what one instance of the mysterious svchost.exe process has loaded inside it.

Tasklist.exe /m SEARCHCONDITION, will result in display of all process that have the matching string named DLLs loaded in them. For a full list of options from command line, try “TaskList.exe /?

 
Wednesday, August 18, 2004

I am very happy today. 

My country of 1 Billion, India after a wait of 104 years has yesterday won a medal better than Bronze in an event other than Hockey (India's National Sport). Major Rajvardhan Rajore has won Silver in double trap shooting competition. Congrats Major, you have made every Indian Proud!.


(Courtesy: ChennaiOnline.com)

Perhaps, this will break the Jinx for India and help her to win many more medals in athens and in coming years.

 
Saturday, August 14, 2004

I had written my URLDecode in Visual Studio 2003 (.NET Framework 1.1). Though I didn't use any Framework 1.1 specific feature in my application, it won't run by default in a machine with .NET Framework 1.0. This means I am limiting my target audience.

.NET supports something called as “Assembly Config” files, which have a file name in the format <ASSEMBLYNAME>.EXE.CONFIG. For example, if you application is named Note.EXE, then you can create an XML Configuration Note.EXE.CONFIG and have it placed in the same folder as your EXE. In a way these are for Windows Application, what is Web.Config is for ASP.NET Applications. The configuration settings specified will affect the execution of your assembly. The settings can include, CLR binding redirections. This means I can write a *.CONFIG file that will redirect references from 1.1 assemblies and CLR to 1.0 versions of same.

I wanted to create this file manually for URLDecode for sometime now. Recently I found Snippet Compiler download page has a similar config file for their software to do the same. I then customized it a little. You can use this generic configuration file for any .NET 1.1 application and have it execute in .NET 1.0. The caveat ofcourse, is that if the application uses any 1.1 feature, it is going to fail.

Download the generic config here (0.83 KB)

 
Saturday, August 14, 2004

Microsoft Tech Ed 2004 is happening this month across four cities – Bangalore, Chennai, Mumbai & Delhi. The first two cities are completed, there is only Mumbai for me to go. After which I am traveling to Redmond, USA so I will be missing Delhi this time. The topics I present this time were “Secure Coding Strategies” & “Developing Secure Web Services using WSE 2.0”.

For speakers like me, Tech Ed is a tiring event that happens every year  - Sleepless nights spent  on preparations, struggle with Beta Code and of course Murphy's Law when it comes to doing demos on stages. Though these being the case, I keep looking forward to presenting in every Tech Ed. Tech Ed gives the satisfaction of sharing technical ideas with some of the most “Intelligent” people working in Microsoft Technologies in India and from various Microsoft Development Teams.  It is also the largest technical gathering of these smart people in one place.  Apart from this, we have extremely “Fun” moments in the speakers lounge. In general there is a heavy exchange of latest Technical ideas in the air and frank criticism on things we dislike and things that are broken badly as well.

In Chennai, one of the speakers started a discussion thread on Open Source and on Patents. My god, this went for like hours. Though, I won't be able to publish what was discussed there, it brought out how different people understand and feel about Open Source and on Patents. Though, this discussion stole time out of my preparation for my next session, I thoroughly enjoyed the healthy discussion.

In Bangalore, one of my fellow speakers asked me on long I have been presenting in Tech Ed?. Wait a minute, it seems to me like I am presenting in Tech Ed for years. After a “LookOut” search in my PST files, Eudora Search in Pre-2000 emails and a hard-disk search, I realized my first Tech Ed India was on 1999. That makes the present Tech Ed my “Sixth” year in succession. (Do I hear a big applause here?, Thanks :-)).  In Tech Ed 1999, I had presented on Top 20 UI Mistakes in Windows Apps' (surprisingly they are prevalent even today. Download PPT here - 1MB), MS Agent Technology, Windows Installer & WebDAV.

Some photos from Tech Ed '99:


Myself, Daniel Ingitaraj & Sanjay Vyas

Lighter moments of Tech Ed '99 - Speakers & Logistics folks unwinding

Though not dancing during this photo, myself in a Dance floor!!

Finally, you can read more about Tech Ed 2004 – Agenda, Speakers and once the event is over the presentations & code from here.

 
Tuesday, August 10, 2004

One of the most respected faces of India in the international IT space Mr.Azim Premji (Chairman, WIPRO) gave his first TV Interview. Premji was speaking to Shekhar Gupta, the Editor-in-Chief of The Indian Express in NDTV's Walk the Talk programme. Coming from a background of Brick and Mortar (lifcobooks.com)  Business family myself, I admire Premji. His courage is commendable for expanding WIPRO from Vegetable Oils and Soaps to the new economy of IT Services.

Read this interview to peek into one of India's success story.

 
Saturday, August 07, 2004

It is generally believed Spyware/Adware gets installed only if you visit the darker lanes of Internet. But in reality it turns out that even if you are browsing the Internet only for emails or go to your favourite portal, your PC is vulnerable to Spyware. This is in spite of your PC being protected with a decent Firewall and Antivirus installed.

Spywares are programs that install without our knowledge in your PC and monitor your activity, especially on what you are browsing. They frequently are used as Advertisement vehicle, throwing up pop-up ad windows when you are using your PC. 

Apart from a Privacy stand point of monitoring what we browse, spywares also have a danger by exposing our PC to attacks. Since all the spywares are unwanted software they waste our processor, memory and other precious computing resources.

Just any other computer issue, Protection against spyware starts with education. The first place you should go is Microsoft's Security page “What you should know about spyware”, then to PC Magazine's page '11 Signs of Spyware' and then finally go to 'How to Avoid Spyware'. After learning about Spyware, the next thing to do is to get a anti-spyware tool that can scan your machine and if found, remove all the spyware the installed. Most professional Anti-spyware software also give you a shield to protect your PC from future spyware's invasion. Some of them even provide blocking of pop-ups and advertisements shown in webpages.

Today I tried out these two anti spyware software, the first is Webroot Spysweeper (Freeware version doesn't provide updates) and the second is new Yahoo Toolbar with Anti-Spyware software. Spysweeper is by far the best among all Anti-Spyware software, it seems to have to have a comprehensive scan facility supported by constantly updated fingerprint database.

There are many more Spyware Tools available in the Internet: See List at SpyChecker & See List at PCWorld. You can also read PCMag review on many anti-spywares here. If you wish to read details about a particular Spyware - what it does, how to remove, etc. then  go to Pest Patrol Research site, which is like encyclopedia of all known spywares. Pest Patrol is the same anti spyware technology that Yahoo uses in its Yahoo Toolbar.

Finally don't throw up your hands in the fight against Spyware, help is on the way in the forms of Microsoft's Windows XP Service Pack 2. SP2 has many security features that fortifies your internet connectivity, especially it improves default security of Internet Explorer. Many of the spyware gets installed as an ActiveX control or as a Browser Helper Object (BHO, the same technology that your friendly Google/Yahoo/MSN Toolbars uses). The changes in SP2 is likely to reduce the attack surface available significantly. After a long wait of nearly a year, Microsoft today announced that they have gone gold with the release of Service Pack 2.

 
Friday, August 06, 2004

You are on the move, sitting in a Hotel Business Centre, connected to the Internet using a PC that's there. You want to use MSN Messenger to talk to your friends or wife back home and the machine doesn't have Messenger installed. Don't worry with the new Web Messenger you can be connected using nothing but a web browser. Check out http://webmessenger.msn.com. It works with IE, Netscape or Mozilla.

 
Sunday, August 01, 2004

Many times while working in Indic Language web pages, I want to find the true character length of a string. .NET String.length() or its variants from other major programming languages, return character length based on storage space. They don't follow the language rules, so they are incorrect according to language grammar rules.

For example if the string is Tamil 'வி' or 'கொ', or Hindi 'मा', the returned length is '2'. Obviously this is incorrect, as per grammar it should be counted as '1' character.

To solve this problem, I have come up with this sample Windows Forms (.NET Framework 1.0) application. It uses .NET Frameworks, System.Char.GetUnicodeCategory() method which identifies every character as Upper Case or Lower Case or Other Letters (which means this is a Non English character) or Control, etc. Check it out.

Download Application (5.89 KB)

Download Source (18.44 KB)

An online version of this (where you can try it without download any bits) can be seen along with my article here at Bhashaindia.com.

Known bug: Deepak Gulati of Microsoft India found a bug with this solution, for Tamil (Grantha) Character 'ஸ்ரீ', should be counted as 1, but this code counts it as 2. The reason being 'ஸ்ரீ', technically is composed of two unicode seperate characters 'ஸ்' and 'ரி' which are shown as an one glyph by the font used. I am trying to figure to a way to solve. If you can think of one, post it below in the comments.

My good friend Sri.Muthu Nedumaran has suggested a platform neutral solution that works for Tamil. I am working on that, will post it shortly here.

 
Sunday, August 01, 2004

As with any other user with digital cameras, I too have built over the years tons of Digital photographs.   Now for the last 1 year, after my Son was born, the photos have increased in leaps. After downloading from the camera I keep them organized in Folders (Family, Vaageesh, Travel, Business, Friends,  Presentations & Venkatarangan). When I last counted, the Photos folder in my laptop was about 1.8GB!.

The problem I have is not with storage - with the ever decreasing cost of  Hard-disks, this is not a problem. The problem is on sharing this with my friends.

Since I have my own domain and web server space, I didn't opt for any of the online paid/free photo services that offer you to upload and build your own digital photo albums. This includes MSN Photos, Snapfish, Kodak's oFoto & Yahoo Photos!

In the early years, I was using Microsoft Front Page to create my albums (using FP's Templates) and upload my photo albums. This had two drawbacks, I should have FrontPage Server Extensions in my server (which my Admin strongly don't approve)  and the other was the template was looking very old. Even with Frontpage 2003, Microsoft hasn't update the template. So it was time to move on...

Microsoft Fotovison Sample

After several searches, I found a near perfect solution for my problem. It was Microsoft FotoVision. FotoVision is not a commercial product, but a free sample with Source from Microsoft. The application demonstrates the best practices for building a good Windows Smart Client Application.

There are three modules to this application:
1)One which runs in the desktop that allows to edit/modify your photos and organize them into Albums.
2)A very similar one to above, but one which runs in Microsoft Pocket PC and Windows CE Devices
3)Third is an ASP.NET Web Application that accepts your photo albums from client application and displays them online in neat Albums format.

Once you have setup the Web Application, which is a simple XCOPY Deployment, permission setting and running an EXE in the webserver to setup your password, you are ready. Just fire up the Client application and start playing with your new photo albums and publishing them with a single button press.

While I am writing this, I came across Jalbum, let me give it a try and post on how I think it compares with FotoVision.

Before I end this, I suggest you also visit Photo Basics at MSN.com, for some easy articles on taking good photographs.