Monday, June 23, 2008

Microsoft as a raw material supplier!

Microsoft vs Google, this topic has been widely discussed across many portals, web, forums etc., in fact even in my blog a couple or more times.

Following are some of the frequently asked questions (FAQ) on this topic:
Is it the late entry to web by Microsoft? Is it the pc centric approach? IS it becoming tough for the giant to move?, All sort of questions trying to answer why is Microsoft trailing behind Google.

To me the key things happen to be the difference between a raw material producer to the finished product maker, the former is Microsoft and the later Google.

Raw material and finished product stuff here?-yes but how?
Web development could be done either based on open source(Java-J2EE/PHP) technologies or Microsoft .NET technologies. Adding multimedia capabilities on web is possible based on Adobe Flash or Microsoft Silverlight. So if you think of the infrastructure for building huge websites you can use Microsoft technologies end to end. Sql server -> IIS -> MSMQ -> client browser as Internet Explorer and the client web pages developed on ASP.NET. MySpace one of the top most hit websites in the world, built it's entire infrastructure on top of Microsoft technologies. So we see Microsoft as an enabler and a raw material provider here. End users knew the final product better than the raw material. Protector & Gamble (P&G) produces numerous products used daily by all of us but we never know or care about the raw material suppliers to P&G, and the profit made by P&G is huge compared to it's suppliers. The same story is happening with the technology sector, it is one who has the final product gets the most out of the technology. Microsoft did not have a strong web presence (despite it's early entry by hotmail, other MSN websites and now Live)in terms of the list of users. And being eaten away by the popularity of search engine Google.

Not to forget Windows OS and office are still finished products to the end user and also only a section of Microsoft is competing against Google as Microsoft is so diverse with the product. But not every day one changes these software, it is once a year thing!! It is very easy for one to forget the once a year stuff and embrace the others.

But it will be very interesting to see how both the companies are going head to head. On one side Microsoft is playing the catchup on search and advertising with Google. Google is expanding its empire in the new areas where Microsoft has a strong hold.

Wednesday, June 18, 2008

Simpler is better!

The best way to vouch customer experience is to design your applications as simple as possible. Hiding the complexity behind the scenes and making things simple and stylish to the user is the mantra to succeed in IT today. Over the years one company has excelled in delivering the easy to use software, yes I am talking about Google.

I was just trying out Google sketchup, and felt they live up to their name again.

Per my analysis this is what makes Google a dominant player in the market. Consistency in delivering simple to use user interface, the core functionality always works and only then they start adding new features, any new application they build has a small comprehensive youtube tutorial (the release mechanism is always the same), brief write up in their blogs and the tag "beta" to it.

The tag beta works out well, as it creates a mindset not to expect more from the software and the bugs are taken in a lighter sense as it is just beta. But the beta itself is good!.(It is not that there are no bugs, I have found bugs in gmail - label coloring. Having a label list > 20 and try to add a color to a label automatically scrolled the page to the bottom and wouldn't allow to choose the label I'm interested in. Do not know if they fixed it.)

The time taken for installation is also very important for small and powerful software such as instant messenger. Try downloading and installing Yahoo messenger you feel the bulkiness of the application, taking significantly much longer time at least 7-10 times of the time required by Google talk. Choosing the powerful language and tools appropriately for the application you have decided to built is a huge differentiator.

Just take the example of the search engine page or simply, you just see few simple images and text. One should have noticed the search results by Google, at the bottom of each webpage there are set of images "GOOOOOOOOOOOOOOOOOOOOgle", the number of o's denote the set of new pages with results. This allows the already cached image to be loaded and makes the search results appear/load much faster.

Organizing the categories of the softwares and periodically changing the highlighted software in the main Google page is a very small thing, but those stuff adds up to the power of Google.

Thursday, June 12, 2008

Making VB simple with XAML / LINQ. Oslo Microsoft's modeling strategy!

Based on my recent study I would like to summarize a few things, and thought would share with you guys!

Based on this blog, you can see than VB.NET can directly have XML and LINQ and can be interpreted by the compiler.

The way programming IDE's/libraries are being introduced/modified now a days make sure it is not required for one to know everything. What I mean by this?

See the code in the blog (mentioned above), you see XML as XAML, at compile time you would come to know if "" can have ColumnDefinition, if not based on the schema -, the error will pop up. See the way XML is being used, it is not within quotes which mean it is directly understood by the compiler. The other thing is LINQ, one can use database calls (update/delete/insert/alter etc) directly like what we do with objects, your table is treated like an object. So say if you want to see the properties of column, when you key in column and 'dot' you get the ColumnName as a property. Again you get things right away in compile time.
Having said both the above, the third parameter is the way XAML and LINQ are combined, see the statement Name=<%= column.ColumnName & "Label" %>, here Name is a XML element and column.ColumnName comes from LINQ. And all these are inside the VB language.

Recently I saw a presentation at Microsoft Tech-ED (Link for tech-ed ->, see Bill Gates keynote) where they showed the progress on visual studio, which can access a DB2/ORACLE database like an object model. There is a huge focus on modeling, see these links - and

Modeling allows one to conceptually visualize what is happening inside a project/code. Say you are asked to fix a particular code for example related to security aspect of the product, in order work on that you might have to encompass things that are non-security related (things like GUI etc), so this makes things tougher. What if there is a model which allows you to extract the set of things that you might like to see at the moment. That model will have all the blocks and inter-relations defined, and if you pull up a security block from the model you get all the code that is only related to what you are looking for. So you don't have to worry about the other things in the project.