Wednesday, July 02, 2008

Recently I received a report on the vision of Tamilnadu Government for how the business climate should be in year 2025 in the state. The report was a joint work by CII (Confederation of Indian Industries) and Tamilnadu Government (TN Gov). 

tamilnadu-state-industry-in

I saw one interesting statistics that stood out among the report's many pages. It was the number of days it takes to start a business in Tamilnadu (to a large extend it is same across India) - it is currently a whooping "41" days. I was not surprised, since I run my own business for last 10 years and have been through these hurdles of bureaucracy many times.

Most recently I had to do this (starting a business) once more, this time for my family business and it took me nearly 5 to 6 weeks. At this time we still we have VAT registration pending. To be fair, few days out of this was due to my end delays as well.

  1. We started with registering the new "Private Limited" (Limited Liability Company)  with Registrar of Companies (RoC). For this the first step is to get name clearance (name of the company shouldn't be conflicting with the said/unsaid guidelines or with other existing businesses). This took some time.
  2. Then comes the actual registration which involved multiple iterations of submission of our MoA and AoA (Memorandum of Articles and Article of Association). Each time we had to take a print, sign the paper, scan it, then digitally sign it and then upload it as a PDF file to the site. Once approved, you need to follow this by a hard-copy submission(sometimes they may ask for the hard-copy for each iteration as well) of the documents.  Once this is done.
  3. First board meeting and resolutions to be passed
  4. Followed by getting an Income Tax PAN Number
  5. Then comes opening of a Bank Account
  6. Then comes applying for Service Tax Number or TIN (Tamilnadu VAT Number) and CST (Central Sales Tax). The choice between Service Tax and Sales Tax registration is depending on the nature of your business.

After all this only you can start your functioning. There will be more steps if you are involved in manufacturing, which depending on the industry has various other registration formalities. Compare all this is the time it took to open a business in USA - we opened our 100% subsidiary sitting from India in less than few days through the help of a CPA locally in India - everything happened through online. I remember reading that New Zealand, Canada and Australia with USA tops for the shortest days required to open a business. For information on doing businesses around the world, see this world bank funded site.

With the above experience I should say it is definitely commendable of Tamilnadu Government to even dream a "2" day timescale for this by 2025.

 
Tuesday, July 01, 2008

Few weeks back I was with a developer doing a code-review for one of his application. The application was a Windows Forms Application written in C# that monitors several running jobs and reports on any event/failure found in the log file.

Many gaps came up in the review which made me thinking (me thinking is surprising isn't it), hence this post. The abstractions in the form of frameworks and IDEs that are available today make programming definitely accessible but at what cost. Do they make a formal (structured) learning of programming unnecessary?. Are today's engineers getting away by not following any coding disciplines like the one's enforced by my mentor(s) and teachers when I learned programming. Before I continue this rattle and list the items let me clarify, I am not intending this post to be a comprehensive check list - it just happens to be the issues I noticed in this particular incident. I have grouped few of my findings in sections.

Reading a configuration file

  • When reading a configuration file (like .config/xml) to load values, validate whether the file exists. If file is not present either load default values and proceed  (or) exit gracefully. Having a simple try/catch  block doesn't mean you have handled all exceptions and you no further work
  • Try not to read the entire file to memory. In .NET this will be for example using StreamReader.ReadToEnd method. Think about what will happen if you the file has been corrupted or wrongly replaced with a 10GB video file. You will crash the machine by running out of memory. In typical configuration files especially for your applications you can identify the maximum likely size which will be say few MBs. So in .NET try to use StreamReader.ReadLine for as many lines as you will need
  • Similarly don't load the entire XML into XMLDOM (like by using XmlDocument) where it is not necessary. Instead try to use XmlReader which is a stream based XML processor and doesn't take up memory (many times of the full XML filesize)

UI Related items

  • While designing design the work flow and the steps with the user of the application in mind. Think about the likely steps the user will follow. Do not design with your code flow as the steps. In this application this meant not having to select a configuration file and global settings screen as first step in the Tab order. Instead have the first screen after application launch as the one the user will use repeatedly

In an earlier project I gave the complete UI design specification in Visio format to a developer that avoided all the iterations and confusions. You can read about that in this earlier post.

 
Wednesday, June 25, 2008

In the Forbes Asia June 16, 2008 issue I came across these interesting facts about Adobe (the makers of Photoshop and Flash).

  • According to Adobe, Flash Player is the most widely available software on Earth (Is it?)
  • For every 1000 users of free Adobe Flash Player and Adobe Acrobat Reader, there is a Web Programmer or Graphic Designer behind creating the content
  • 80% of Creative Professionals or 2.6 Million people use Adobe's Creative Suite
  • Adobe has 1 Million developers using its products compared 4 Million Software developers using Microsoft .NET Tools
 
Tuesday, June 24, 2008

According to Taxman in India, from 1st June 2008 (after this year Union Budget was passed) a licensed software like Adobe Photoshop or Microsoft Office is both a Service and a Product. While world over taxes are being simplified, streamlined and modernized keeping pace to technology - in India our Finance Ministry has proven its fondness for complicating existing laws and getting into legal word tangles. This is in spite of record tax collections in the last few years, this year TDS (with holding tax) collection were up by a whopping 60% from last year. 

While change of classification of software may seem insignificant it has real impact on the tax that a consumer/business is charged while buying a software package. Earlier all Packaged Software/License were treated as a sale of product and charged VAT @ 4% to 12% (varied by state). Now all software are treated as a services as well. It is not reclassified from Product to Service but classified to be both - strange is India's tax laws!. The industry is suffering for the last few weeks with all major dealers and distributors waiting for some clarity from government as this change will result in a tax of 24% on licensed (legal) software, which is absurd. In India Service Tax is Central (Federal) subject, VAT is State subject - so both don't want to clarify this situation.

This week I couldn't buy a software that I needed because of this issue. My regular dealer refused to give me a quotation for few products that I wanted because of this legal mess. He said in his 25 years of being in the business this is the first time he has stopped billing for over 3 weeks. What is even more strange is that none of the software industry bodies are vocally raising this issue to the government - may be they feel the government has no ears to serious issues like these, they are busy listening to the daily threats from the left parties :-)

 
Monday, June 23, 2008

The other day I wanted to password protect for privacy a word document before emailing it. I came across 3 different features in Word that are related to security and it was confusing at first. It took me sometime and few web searches to figure it out. Though the features can be accessed from the Ribbon they are spread over different places. It is much easier to access them from one place - which is the Office Button on the Left Hand Top corner, then selecting the "Prepare" option as shown below.

WORD2007 PREPARE MENU

1. Digital Signature: This requires you buying a Digital (SSL) certificate from a Third Party costing around USD 90 per year before you can do anything useful. Signing with this gives it legal validity in countries that support it. Any changes made to the document after the signing, breaks the signature. This way it validates the integrity of a document (as long the signature is present, the document hasn't been tampered). It doesn't offer any significant privacy benefits.

2. Restrict Permission: This uses the Microsoft IRM (Information Rights Management) service. Using this with a Windows Live ID (Free) or a IRM Server running in your company, you can assign permissions and access level to the document.  With the Windows Live ID feature, the recipients need not be in your corporate network, it will as long as they have a Hotmail ID (Live ID).

3. Encrypt Document: This is a simple password protect feature. Assign a password and then only people with the password can open the document. 

All the above three features are present in Excel and PowerPoint 2007 as well.

 
Saturday, June 21, 2008

XO2 LAPTOP

The other day on the Internet I saw the above photos of the next version of One Laptop Per Child Program. What struck me very interesting was the absence of Keyboard (hence absence of mechanical failures) and the ability for two children to share it at the same time - very valuable in developing countries and for play. You have a touch-screen that works as a keyboard - hopefully doing Non-English language with this Virtual Keyboard will be supported and native.

 
Friday, June 20, 2008

how to be anexpert

The original blog post from which I took the above chart is from here. It talks about how any one at any age with learning and practice can become an Expert. A nice piece to read and think about.

 
Friday, June 20, 2008

In the last two to three quarters we are seeing a huge surge in SharePoint projects and as a result the demand of SharePoint developers is sky rocketing. Initially we were thinking this to be a local (India) phenomena but when I talk to many of my contacts in the industry worldwide and check out articles in the Internet, it turns out to be a worldwide phenomena.

Below are some random resources on SharePoint that might be useful for developers:

 
Sunday, June 15, 2008

One of the compelling reasons I tell customers and friends for upgrading from Windows XP to Windows Vista is the extremely easy to use yet powerful backup feature. All it takes is three clicks to backup your entire computer to a removable USB storage or DVDs. You can backup a partition or folders to another partition. And the entire backup procedure for few hundred gigabytes of files takes less than an hour the first time itself, after that the incremental backup get done in minutes. The best part is that the backup is stored in VHD (Virtual PC format) format, which is a fully documented and free to use file specification. This means even if Microsoft restore utility is unable to open the VHD file, some 3rd party utility may be able to open it. I have been using the backup feature for nearly a year and I am very pleased with it. Recently when I had trouble with Windows in my Home PC, I restored my backup that was taken few months back - the entire restore process worked flawlessly and my Windows installation was good as new.  Windows Vista Back up files or your entire computer

Today before I did a routine backup of my Home PC, I wanted to clear some space in the external USB drive. I deleted all the previous backup files in the drive. Then I ran the complete back up. Unfortunately after several minutes the backup utility failed with the following strange error.

The backup did not complete successfully. An error occurred. The following information might help you resolve the error:
The system cannot find the file specified. (0x80070002)

I tried doing Vista Disk cleanup, no use. Doing few Internet searches with the error number 0x80070002 I found a forum post that talked to clean up registry keys in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList that pointed to orphan profile paths. I checked that, in my case all the profiles had correct paths. So that was not the problem. Then one of the forum post talked about running Chkdsk on the drives, I did that. Rebooted the machine. Tried the backup again, this time it went smoothly.

Now my love is back for the Vista Backup tool. I just wish Microsoft wrote the backup utility a little bit more tolerant or instructive error messages for handling these occasions.

 
Sunday, June 15, 2008

An Inconvenient Truth (Al Gore)Though I purchased this DVD a year ago (at a steep price @ Rs.499)  I didn't get the time to watch it till now. Today being a Sunday and free from any work luckily I had the time to watch the movie "An Inconvenient Truth" made by Former Vice President Al Gore. I didn't know Al Gore was such a powerful speaker, he was amazing on stage - I have noted down few presentation tips from his speech. He seems to have come out as a more powerful person after his dramatic hair-splitting loss of the US Presidency to George W Bush in 2000.

The movie is brief and runs only for about 90 minutes and it is completely on a presentation given by Al Gore with clippings in between. Since enough has been said about this movie and global warming, all I will say - this is a very compelling movie for the cause of reducing our effects on environment. I pledge to start doing my small baby steps on this from today.