Saturday, October 08, 2005

Last week there was a post by Jon Box in his blog about Microsoft adding jobs in India. Jon is one of my fellow Microsoft Regional Directors, from Memphis USA. I sent him back a detailed reply by email on how I feel on this important issue. Here it is:

As someone who has been running an Indian IT Services Company for last several years and with sizable portion of my business coming from USA, these are my comments.

In business the first rule of thumb – your returns are more or less dependent on your risks. You don’t take risk you don’t make money, its that simple. In fact nothing could be more risky than to resign your job and start a company. After the risk are the following

  1. To identify a need (a.k.a Innovation/Invention)
  2. Develop a Product (a.k.a. Manufacture)
  3. Package the Product and Market them
  4. Sell the Product

India/China currently does only 1 of the 5 steps in a business – Manufacture. If someone in US is worrying about us, either he/she doesn’t understand what it is to be an American or lacks seriously in self-confidence.

Risk and Products
Today Microsoft or IBM makes several times more money more than the 3 Top Indian IT Services company (TCS, Wipro and Infosys) put together. Put together they will have same number of employees as Microsoft. It might never be possible for them to overtake Microsoft or IBM. Why?. Because MS/IBM are products company – a company who’s core assets are its products which is based on IP (Intellectual Property) and Patents.

Compare this to India, though Indian Engineers are considered high in Software, we don’t have one product that is seen in store shelves around the world. The reason is simple, to develop Products and to market them requires huge capital investments which simply doesn’t exist in India. Even if you have deep pockets, the chance of a product succeeding is very low – the risks are very high. We Indians traditionally like to play it safe and we like the safe Government Jobs. We never venture into the unknown. This is the reason why Asians (including India and Japan) save money. We keep it as Gold Ornaments (Never enjoy them by wearing it but safeguard it against theft by keeping it in Bank Safe Lockers) and Bank Savings. A common man (Woman) in India investing in Stock Market is unknown till very recently. The Silicon Valley and its VC/Angel funding culture has no parallel in India. In India (until very recently) the only funding known was Debt. Equity funding was being restricted to handful of stories.

Contrast this to US. USA is certainly the land of opportunity – Opportunity created due to the risk taken by Entrepreneurs and equally by common man. I always admire at the American (and of course the Europeans) zeal for exploring and travel. To drive from East to West Coast in search of opportunity and settle down there is a everyday common story in US. It is unimaginable for me to drive down even 600 miles and settle down in my neighboring state – nevertheless go to the other end of India.

If American Companies don’t innovate/invent with their money eared, certainly the Indian Companies (with their newly earned money) will innovate and we will reap the benefits of that invention for next 2 decades.

Packaging and Marketing
Next to risk & innovation it is packaging and marketing that I consider to be core strengths of US. In fact, at my company we hired at high rates and outsourced our marketing campaign to a US Agency – because we realized it will be cheaper to do it right the first way, rather than waste money on iterations with cheaper clones.

These are the reasons why in the world today you see Coke, Pepsi and Mc Donalds everywhere.

In fact, when Coke and Pepsi came to India a decade+ back – they killed all the local Soft Drink manufactures. One of the Indian’s who soled all his bottling plants & brands to Coke; created a new empire from scratch – bottled water. In India nobody would have dreamt of buying Water, but this guy saw a need when people earn more they will demand safe drinking water, and local bodies in India will never get to give it for long. He created “Bisleri” bottled water. Pepsi was forced to follow it up with Aquafina. 

[Though I am not writing on this, examples like this could turn out to be answers for India as well, on how to face “China” dimension. For example China makes finished goods at prices lower than it cost to even produce 1/4th the raw materials in some products. This is true even for India-China comparison].

Summary
Apart from these, in my experience I have seen Americans to be excellent Managers (and Japanese for their keen eye on perfection). I found it amazing on their capabilities to methodically plan and execute things.

In the new economy; companies that innovate, that take risk, that package well, succeed. Companies that don’t do it  - perish. It is same whether it is for US or India or China. It is also same for Individuals because Individuals are part of companies (in the work force).

So in summary if your Angry Coder is losing job, then the company they work for is not innovating (or) He/She is not innovating to go high in the value chain to become managers and manage the outsourced projects that have gone to India or China or to Eastern Europe. Needless to say managerial jobs will earn twice/thrice of their present income. Wow, I didn’t realize I will be ending this with a positive note like this!

 
Friday, October 07, 2005

Today I encountered this issue in one of the projects. Simply put, we have an ASPX page like www.venkatarangan.com/file/getit.aspx?id=4040 that is going to read a file say "Office2003.DOC" from filesystem and stream it. The actual file will depend on the ID that is passed. It will come from a folder that is not accessible through IIS or will come from a SQL Server BLOB column. In either case an user will see in IE's dialog box the filename to be get it.aspx?id=4040 and not as "Office2003.DOC".

We can modify the mimetype of the output of an ASPX page to say image/jpeg or anything by using the Response.ContentType property. It will be easy if we can specify the filename as well, but no property exists to do this in Response object. One way to solve it will be to create a virtual URL like /4040/office2003.doc. This URL doesn't exist, it will be mapped to be handled by a HTTPModule and the HTTPModule does the streaming by parsing the URL and getting the ID number. Since in this case the filepath from IE's perspective is Office2003.doc, IE will no problem in identifying the mimetype and launching MS Word with the file loaded.

HTTPModule seemed to be a round-about solution. That's when my good friend Deepak Gulati of Microsoft came to rescue with this ASP code snippet (Thanks Deepak, I know I can count on you for these quick solutions. If you get a chance visit his photo blog)
<%
  'If correct mime type is known use that    
    Response.ContentType = "application/x-unknown" 'Arbitrary
   
    fn = "blog.doc"                                'Actual FileName
    FPath = "c:\temp\" & fn
    Response.AddHeader "Content-Disposition","attachment; filename=" & fn

    Set adoStream = CreateObject("ADODB.Stream")
    adoStream.Open()
    adoStream.Type = 1
    adoStream.LoadFromFile(FPath)
    Response.BinaryWrite adoStream.Read()
    adoStream.Close
    Set adoStream = Nothing
    Response.End
%>

The above solution works by adding a "Content-Disposition" header as specified in RFC2183. This RFC seems to provide couple of useful customization possibilities, check it out. The code also shows a simple way to read a file and stream it using ASP/ADO.

References:
1) How To Raise a "File Download" Dialog Box for a Known MIME Type - Microsoft Support KB
2) Explanation of Content-Disposition - MSDN Reference

While I was searching this, I came across this support article that uses a single API call to "URLDownloadToFile" for downloading and saving a file. The code works in VB6.0 thru' .NET.

 
Thursday, October 06, 2005

Chennai Marine Aquarium
For reasons unknown after I took these photos I was told to stop!

Though India has tons of places of potential tourist interest, and Indians travelling abroad spending the most per day, there are few tourist places in India that are of International standard. Chennai is no different in this regard - inspite of having the world's second longest beach, there was no Aquarium to educate and promote interest in marine life. This void is now being addressed with the opening of the new Marine Aquarium.

I took my son (2 Years old) last week to the aquarium. He loves to see fishes ('ish' as he calls it) and we had a good time. Comparing to aquariums I have seen in Singapore, Lankawi (Malaysia), California and other international ones', this one is quite small. But nevertheless it had about 20+ tanks with double that number of fish varieties.

The aquarium is within the Zoological Survey of India premises in Santome High Road. Roughly about 1 - 1.5 Kms from Santome Church going towards Adayar and before the right-turn to Foreshore estate, and is on your right-hand side. It is roughly the same distance from Iyappan Temple if you are coming from Adayar towards Marina. Unfortunately there is no publicity or any prominent signs promoting the existence of the Aquarium. The aquarium management seems to have got the timings completely wrong, it is open only during Weekdays from 10AM to 5PM. This timing leaves out the the target audiences (Students and Kids) from visiting it. Presently there is no entry fee!

So if you are in Chennai, it is a good place to spend 30 minutes. And do this now, when it is new - before it gets spoiled just any other public place in India due to poor maintenance.

 
Wednesday, October 05, 2005

If you are looking at using Windows Sharepoint Services (a.k.a. WSS that ships with Windows Server 2003), check out these 30 ready to use templates from Microsoft. They range from Expense Reimbursements to Marketing campaigns.

There is also the Sharepoint team site at Gotdotnet, this has tons of information on Sharepoint, FAQs and more.

If you are administrator then the official Adminstrative Site for Sharepoint has valuable info on Capacity Planning, Upgrade Options, Deployment scenarios and the likes.

 
Saturday, October 01, 2005
mac300.jpg
Apple mac mini
Samsung 910MP 19" LCD

Last month while in United States, I ordered for a mac mini from the Internet. I ordered for the base config with 512MB RAM, 40GB plus Bluetooth module, Wireless Keyboard and Mouse - all put together came to abut US$700. First came the wireless keyboard and mouse package in 3 business days and a day later the machine itself arrived. That was pretty impressive delivery. I took it out and plugged to a monitor it simply worked. Wow!. 

For long I wished to own a mac, to play with it and see how different or similar it is to Windows. In case of mac mini I simply wanted to own this lovely little box after seeing the image on Apple's site. I was impressed with its extremely small size and the engineering marvel of apple. It is amazing how Apple Engineers can put inside this small box - couple of chips, a hard disk, a dvd rom drive and still manage with heat that is being generated inside. Even in my HP Laptop, after few minutes of usage I could use the bottom to boil water.

The first thing I did was to download Windows Media Player for mac so that I can listen to my WMA songs, following that I downloaded Remote Desktop Connection (RDC) for mac. With RDC I could connect to my Windows Laptop and still do my emails.

The things I loved after few hours were Mac 10.x (Tiger)'s beautiful aqua user interface and animations. Followed by that was the crisp interface especially the text clarity (to some extend thanks to my 8ms Samsung 19" LCD). I simply couldn't help myself admiring the sharpness of Tamil Texts in Unicode pages using Safari browser. The audio was brilliant. Safari's RSS reading was equally good. The machine came with Office 2004 for mac 30 days trial pack installed. Word sports an interesting UI in this release for mac, cool. The best feature for me was the bundling of Murasu Anjal for Tamil Fonts and Tamil Keyboard. Because of Murasu bundled in, I could go to any latest Mac apps and start typing in Tamil. Unfortunately Office X for mac and Appleworks 6.0 don't support this new Input/Display methods. PowerPoint 2004 & Textedit supported this flawlessly. The experience of connecting my digital camera and importing photos was simply painless. Good work Apple.

Things I didn't like: I was not that impressed with the Safari browser page rendering speed. Even after trying for an hour or so, I couldn't enter this blog from my apple. I tried first with Safari, then with Camino, then with Internet Explorer for mac. The issue was none of them had my Dasblog entry screen which uses FreeTextbox to appear correctly. So I am doing this post from my trusted Windows XP.

In Remote Desktop I figured how to do Right Click - later configured to use the Alt key with mouse click as Right-Click. I am still unable to select multiple songs or create a playlist in Windows Media Player for mac.

 
Saturday, September 24, 2005

After spending last week in LA for Microsoft PDC, this whole week I was in Redmond (Microsoft is Headquartered here). I didn't have any meetings today as all Microsoft Managers were out to MS Company Meet today - Microsoft is 30 now.

My Cousin "Vijay" who lives here, suggested I drive down to Deception Pass. Deception Pass is a beautiful scenic place and a Washington State Park, which is about 80 miles from where I stayed (Bellevue, WA). In the past I have driven in the US only twice - first time with in Bellevue area itself and the second was last week for few miles on the way from LA to Sequoia. Though I have been driving in India for more than a decade, driving in the US is different especially the road rules. In the past whenever I came to US it has always been for short stays and I have avoided driving here.

Yesterday I called up Enterprise Rental, got myself picked up and rented out a Dodge Neon Car. I went with the full insurance package which covered risk upto a million dollars (enough even for US terms). Today morning started around 10:30AM and reached Deception Pass Bridge view point around 12:30PM (520 West, 405 North, I 5 North and finally on SR-20 West). Though I feared, driving was not difficult here; Equipped with a Direction Map from MSN site, I took the correct Exits and turns. I had gone with my colleagues, we spent next few hours at various scenic spots around Deception Pass Bridge and inside the State Park. On our way back to Bellevue, we stopped at Prime Outlet before joining I 5 South. Overall it was a day worth spent, enjoyed it most.

Deception Pass - Venkatarangan TNC and Colleagues
 
Friday, September 16, 2005
Web Content Management is now part of Microsoft Sharepoint Server (Office 12 System). MCMS is dead. Ryan Stocker from Microsoft in WCM session highlighted the new features of upcoming WCM product.
  • Today there are two portal stories from Microsoft - Sharepoint is for Intranet and MCMS was for Internet. With Office 12, it will be an integrated story. You can create Internet Facing Sites and Intranet (as always) using Sharepoint technologies. Remove forced choice "CMS02" vs Sharepoint Portal Server. Roadmap towards an integrated Enterprise Content Management (ECM) story.
  • To achieve the last point all WCM services found in MCMS02 have been developed into the new Sharepoint server. This meant adding Internet readiness to Office "12" Servers.
  • New WCM features introduced
     ○ Consistent and Pixel Perfect Branding - which was extremely difficult today with Sharepoint 
     ○ Page Authoring - Web based or Smart Client (Word)
     ○ Dynamic Site Navigation controls/webparts
     ○ Governance - Publishing Schedules, Approval workflow, Formatting restrictions
     ○ Site Management Tools
     ○ Performance - Internet Scale & powerful Caching to handle high traffic rather going to DB for every piece of content. Also cache buckets are based on user rights.
     ○ Content Deployment methods
     ○ Security - Forms Authentication, Anonymous
     ○ Multi-Lingual Sites (Basic site in English and then other sites depend on this)
     ○ Search
  • Customers will be provided powerful tools to migrate all content from existing MCMS02 sites to Office "12" server. 
    • Make creation of dynamic, produced websites dramatically faster and easier. 
    • Provide great Out Of Box (OOB) Experience
    • Lower amount of costly custom code
    • Incremental migration is like a job that can move incremental content from CMS02 every night to the new site
  • In the new system:
    • Portals are a collection of webs
    • The webs are arranged in a hierarchy
    • Hierarchy controls navigation and security
    • SPSv2 Area, CMS02 Channel are now all based on the WSS webs construct for containership
    • Each web has a document library for pages. Pages are special document library items. So they inherit all WSS functions like versioning, Check-in/Check-out, workflow free
    • Each web can have its own ASP.NET v2.0 master page. Then there is page layout that actually lays out the page
    • WSS ships with standard field controls. There are additional CMS field controls like rich HTML
    • Portal Navigation 
      • Includes Webs, Pages and Authored links
      • Dynamic Navigation based on site hierarchy
      • Navigation links trimmed based on security, workflow state and publishing schedule
    • Security
      • A new WSS authentication provider implemented on top ASP.NET Role provider
        • Viewer role: Viewers can use the site, can view pages, documents, images. But they can't use the Sharepoint application - Can't call Remote APIs: SOAP, DAV & RPC. Can't view application UI
        • Policy: Can constrain maximum access per web application. Deny all write access via http://site:80
    • Topology
      • Farms: Scale up and down as needed
      • Multi-farm: Staging environments in different networks. Authoring in Intranet with AD Authentication. Production in live networks with forms authentication
      • Site collections can be deployed between environments
    • Paths and Job
      • QuickDeploy job role allows news authors to deploy content immediately
      • Normally there is path which is channel connecting authoring to the live environment
      • Jobs control what content is copied when
      • It doesn't deploy security setting
Having worked on Portal Development for nearly a decade, I was quite skeptical when I heard Ryan talk about using Sharepoint as the basis for a High Traffic Internet site. So I went to Hands-On-Labs (HOL) and played around with this new technology. After an hour of getting my hands dirty I was convinced that this is very promising piece of work. Though the final release and performance will determine its success, the idea of using Sharepoint's (ASP.NET v2.0) evolved WebPart technology as the basis, brings in hitherto unseen power to the WCM space.
 
You can download from here slides for this and other Sharepoint sessions of PDC '05. Thanks to Mark Harrison for the link to this page.
 
Friday, September 16, 2005
Bob Muglia did the keynote on Day 3 and it was all about (as expected) Windows Server System. The highlights are:
  • Microsoft Windows Server Cluster Beta 1 - www.microsoft.com/hpc. Today Linux dominates the high performance computing (HPC) market through ad-hoc custom clustering. Windows Server 2003 Cluster Edition hopes to bring a common platform to do this.
  • Microsoft is introducing Infocard – a federated identity verification system. You remember .NET Hailstorm?. This time it is supposed to be different, let us wait and see
  • Microsoft is introducing XPS (code named Metro) document delivery system as part of Avalon (WinFX WPC). XPS will be the default that applications speak to Printer for Printing, Printer are expected to have native XPS compilers in them around Windows Vista timeframe. XPS is based on Windows Presentation Framework XAML.
  • Windows Server Longhorn to be released in 2007. Today first CTP with IIS 7.0 was handed out to all PDC attendees.
  • Microsoft is introducing Transaction based file sytem (TxF) for NTFS. It will be an enhancement to NTFS released as part of Longhorn server, which makes every file operation as a transaction. Just like in Database you open Begin Trans, do file copy/move/delete/write/modify and commit trans. If you aren't using it no overhead; usage also will add very little overhead. I think this is very cool.
  • New Event Log model to be introduced in Longhorn server
  • IIS 7.0 to be made Modular – modeled like Apache web server. (More details in a separate post). Will also have Windows Activation Service (WAS), ASP.NET Integration, Integrated Diagnostics and Tracing.
  • Windows System Center Management, Windows Hypervisor, Virtualization and new enhanced VHD format to be introduced post longhorn server
  • Today every piece of MS Server System is available in 64bit. MS Internal IT has seen huge performance benefits on running web servers in 64bit
 
Thursday, September 15, 2005

Windows Workflow Foundation (which was announced today) is an extensible programming model and runtime components for building solutions on the Windows platform. Major highlights:

  1. Bundled part of WinFX runtime, should get released around Windows Vista timeframe
  2. First likely to get released as part of powers Office "12" Server workflow. Windows Sharepoint Server “12” uses WWF workflow internally
  3. It is important to understand WWF is not a server product, but BizTalk is a server product. WWF can do both Human Workflow and EAI/B2B. There is no server or service component for WWF. It gets kicked off from your main function. You call a start function of WWF and the WWF runtime runs inside your application. User has to develop the host application that hosts the runtime and also has to develop failure (Restart) and multiserver setup. Persistence can be stored to a File or a SQL Database through appropriate connection string to any machine.
  4. Workflow models and definitions can be stored as a .CS (.VB) File or as .XOML file
  5. Dynamic changes can be made to the workflow  of a running instance

For more details, refer to MSDN WWF Site or Windows Workflow Site

 
Thursday, September 15, 2005

Eric Rudder did the the keynote on Wednesday. The highlights of the keynote were:

  • Announcement of Windows Workflow Foundation (WWF), though a workflow engine from Microsoft has been rumored for several years, it finally was out of the bags today. A powerful Workflow framework as part of WinFX is a very compelling value proposition for .NET developers. Almost all business applications (Web or Windows) has some kind of Workflow custom build into them. Moving this to the underlying platform will certainly speed-up development and make it easier to debug, develop and maintain.
  • Microsoft announced MS Expression, a suite of designer tool. Traditionally developers and designers used different tool sets to do their work, Expression aims to bridge the gap. Three SKUs were announced part of Expression family
    • Microsoft Acrylic Graphics Designer – aimed at pure designers who can use it do powerful bitmap and vector graphics in the same design surface. Ability to generate XAML files.
    • Microsoft Sparkle Interactive Designer – aimed at designers and developers to design Windows Forms Application using XAML.
    • Microsoft Quartz Web Designer – aimed at designer and developers to design standards based Web Application. Everything the tool does XML, XSLT, CSS, HTML all conforms to standards. By default the tool generates XHTML 1.0 transitional – can be configured to generate based on any W3C Schema. Provides pretty cool two-way (Design and Coding) CSS and XSLT Design surface.
    • The best part of both Sparkle and Quartz is that it uses the same project files as Visual Studio 2005 and preserves formatting of all source files. Thanks Microsoft for listening to us on preserving formatting and adopting standards!
    • The folks from North Face adventure wares demoed an application that allowed sharing a 3D model designed in Autocad with people who had only Avalon was very compelling.
  • So far applications to be customized by end-users with a scripting language, had to use only Visual Basic for Application (VBA). This is commonly used by apps like MS Word, Excel, Powerpoint, etc. Now Microsoft is introducing Visual Studio Tools for Applications (VSTA) which provides the entire set of .NET Runtime and Languages available for developers to customize apps. An early version of Autocad was demonstrated using VSTA as Proof of Concept.
  • All PDC attendees to be given free copies of SQL Server 2005 once the product gets released. The final CTP of SQL Server ’05 was given to us on that day.
  • Release Candidate of Visual Studio 2005 was also given to all attendees. Finally Whidbey seems to get out of the door.