I was in our US office today and at the end of the day I had few hours to kill and a few Mbps of Internet pipe. So I made the best use – watch some videos in Hulu.com. For those of you who are outside USA, Hulu is promoted by NBC and News Corp media houses, that has only legal videos and tons of it – including popular TV shows like "The Simpsons" & "The Office". These are supported by naturally advertisements.
While browsing I came across this movie "Casino Royale (1967)" which was said to be a spoof on the original James Bond movie. I didn’t know this was a real movie, I assumed it to be a short fun clip but it turned out to be a 2 hour full movie. This is an all-star 1967 spoof of Ian Fleming’s 007. David Niven comes as the aging Sir James Bond, called out of retirement to take on the organized threat of SMERSH. After watching the movie which was fun I learned about its creation – which involved 5 Directors, 6 James Bonds and one of the James Bonds’ Peter Sellers leaving in between.
Note: Hulu I guess is accessible only in North America due to geographical limits of its copyright reach.
The other day in a dinner conversation the topic was on how India has a nation has grown in spite of everything – Corruption, Inefficient bureaucracy and all the differences. That’s when this book came up “In Spite of the Gods: The Strange Rise of Modern India by Edward Luce“. I bought the book immediately and I finished reading it during my travel now.
The book is an excellent work done by Mr.Edward Luce, who is a journalist with Financial Times. During his various assignments he had worked in London, New Delhi and now in Washington. Mr.Luce is best suited to do this book because of his long stay in India, his wife being an Indian and finally he being a Britisher (lot of things in India are still colonial hangovers). Without these background he couldn’t have done such a wonderful job.
Mr.Luce finely balances a westerner viewpoint and Indian insight in a lucid manner – you don’t see contradictions anywhere. Many things about India is puzzling to understand even for Indians, and many times you have to go back to long gone history to truly understand. For doing this Mr.Luce start with detail of larger than life figure of 3 modern day Indians – Mahatma Gandhi, Jawaharlal Nehru and BR Ambedkar. People who know India know that North India is very different from South India and so on., so Mr.Luce seems to have done extensive travel to report both sides.
I was happy to read about the good things he talks about the work of my state (Tamilnadu) government. I learned many things from the book about India that I didn’t know before or haven’t seen it that way. One observation I really liked is Mr.Luce’s case on how several welfare programs in India like anti-poor program, literacy programs, free power, labour laws which are all created with good intentions are not effective because of the very bureaucracy that is created to run it. Mr.Luce talks with ease of both India’s strength and weakness.
If you are an Indian or someone interested about India, this is a must read book. Thank you Mr.Luce.
Few weeks back I had a strange problem, my Vista installation kept saying it is going to expire in 11 days. If you see the above image of the Control Panel-Systems says Windows is Activated. So I was puzzled, how can something that is activated can expire. Strangely the same error kept coming in few other machines in our office.
After several hours with Microsoft PSS on phone, they diagnosed the issue in my machine to be a time-bombed SP1. Since I was in the beta program of SP1, I had downloaded the RTM of SP1 from Connect which was time-bombed. The safe way is to get SP1 through Windows Update or Microsoft Downloads.
I uninstalled this SP1, installed a fresh one from download.microsoft.com; now my machine is fine. I had trouble with installing Windows Search 4.0, which also got resolved after the fresh SP1 install.
The next movie I watched on flight was Vikram’s Bheema. This movie got delayed for over 3 years & in the period Vikram didn’t act in any other movie. The story was usual and very ordinary. It is about a gangster and gang wars – we have seen enough of this in Tamil movies. The only difference is that everyone gets killed in the climax – Hero, Heroine, both the Gang Leaders (Prakash Raj, Raghuvaran) and Thailavasal Vijay. If you can please skip watching this movie, a low-point in Vikram and Director N. Linguswamy‘s careers.
On my Jet Airways flight from Mumbai to SFO I saw this movie 10,000 BC. It is a fictitious story of how a Hero from a small tribe fights against a large civilization (resembling Egypt Pyramid days). After a sustained chase he wins over them, get his people and his love released.
The settings, costume, fighting’s have been taken well. At times in the movie you feel a little bored and the story is overall unbelievable.
Following Microsoft’s retiring of Windows XP on 30th June, there has been lot of talk on the Internet on how Windows XP is better Windows Vista. I love Windows Vista and I have been using it from Beta days. I will never even dream of going back to XP. Why?.
- The UAC prompts are certainly annoying, needs to be turned off for a “Developer” machine which is what I did in my Work PC. I have it ON in my Home PC and Laptop and it works great in both machines. It gives me confidence that no rogue application can harm my PC or data
- The Visual Aero interface certainly makes the user experience more pleasing. After all you are starring at your PC for more than 8 hours a day, so why not have some pleasing effects in it
- Last and the most important for me is the integrated Search. With the new Windows Desktop Search 4.0 which made search in Vista faster, I cannot think of going back to Windows XP. The convenience of searching from Start button or in any Explorer Windows is a sure productivity gain
If you are wondering why am I talking about Vista here which is not connected to the title of this post, answer is in the next paragraph.
Microsoft rightfully abandoned the original Windows XP code and started Vista (internally called Refreshed the code) from the more stable Windows Server 2003 code base (as reported few years back in WSJ). Now few critics of Vista are asking Microsoft to scrap Vista code-base and to start a new Windows OS from scratch – something like basing it on MinWin kernel. Within “Techies” there is always an urge to do everything from scratch – this is one of the never ending arguments in Software industry. Is it good to keep patching a code/application (or) to bite the bullet, scrap the code and rewrite from scratch. I believe there is no single correct answer for this and it depends on the parameters. But the question keeps coming up in daily situations. To answer that read Joel Spolsky’s post back from 2000 – I don’t agree with many of his recent posts but this post is a master-piece and a must read for all developers.
Last few days there has been buzz around Adobe’s announcement of collaboration with Google and Yahoo! to improve the ability of search engines to index Flash files better – which are normally .SWF binary files. Instead of coming with open XML based file formats Adobe has chosen to offer an "optimised" (basically a server component) version of Flash Player that sits on a search engine’s server and checks for Flash at the same time as HTML.
Compare this with Microsoft’s Silverlight. Silverlight applications are packaged in a XAP file (which are simply a zip) format and any static textual content is in the XAML files. XAML files are nothing more than a well-defined XML file, this means even today without any special API search engines can index Silverlight Applications. In addition Silverlight apps supports deep linking which is important for facilitating relevance, very much like HTML’s nested links concept. For more details see this post here by Microsoft’s Nikhil Kothari on how Silverlight by design is Search Engine friendly.
Anyways, this is a very important step that Adobe that has announced. Flash is currently the entrenched player in the RIA space having more than 95% of market share. This has resulted in enormous amount of content being out there in the Web in Flash file formats. These have been so far out of reach of Search Engines and any attempt by Adobe to make it reachable is welcome. And any competition here between Adobe and Microsoft is also a welcome one.
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).
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.
- 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.
- 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.
- First board meeting and resolutions to be passed
- Followed by getting an Income Tax PAN Number
- Then comes opening of a Bank Account
- 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.
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.