Thursday, June 23, 2005

Re: Intel at Apple's Core

I don't think this will be the case at all. Apple isn't going to let you run their OS on PCs. A huge part of their revenue is from hardware

Yur right... Apple will try to control their platform/OS and work on specific hardware too.


Sure, people will manage to get it on PCs and there will be hacks etc... but I doubt it will be anything big. Plus OS X isn't Open Source so there's less incentive for the OS community to bother with it.

Actually MacOSX is open source. See darwinsource/. I knew that they are based on BSD Unix, but just realised they are open source too!!.

IMHO the OSX hacks will get quite popular if it happens..

Admin pics

Admins Ashtray
Admins Ashtray

Admins Archive of Babelfish
Admins Archive of Babelfish

Homeless Admin
Homeless Admin

Wednesday, June 22, 2005

Re: The Future of Microsoft

I did read that article. Linus makes sense. But I don't see his statements supporting what you wrote.

Anyway, since we're on the topic, came across this post from an MS dev... The Innovation Tax

Re: The Future of Microsoft

Relating to my essay, here's a recent interview with Linus about the future of Microsoft that I found on slashdot.

http://blogs.siliconvalley.com/gmsv/2005/06/an_interview_wi.html

Monday, June 20, 2005

Why Indians Aren’t Software Innovators?

In the current software industry, there is little ongoing innovation. The core of the industry relies on the outsourcing of projects from international (mainly American) firms. Based on the experiences of many of my relatives who work for such companies as Infosys, Wipro, Tata Consultancy Services (TCS) and Motorola India Electronics Limited (MIEL), I have observed they are usually given well-defined projects that have little room for creativity. But I believe that this is not an issue for most developers in India since most have been trained to engineer based on solid and well-defined specifications. This mindset is may be due in large part to the style of education in Indian schools and colleges.

Most Indians have been trained to be good engineers but not good innovators. For example, a few years ago, my cousin in India and I were both studying electricity and magnetism as a part of our high school physics curriculums. I was shocked to see how she would solve a problem regarding electric fields and flux using Gaussian surfaces. Her professor had taught the class the standard Gaussian surfaces: sphere, pillbox, etc. The class would then memorize the necessary integrations and formulas to answer any questions on the standard state government exam. However, in my high school we had approached these problems by evaluating them from scratch instead of plugging in numbers into memorized formula. When I asked my cousin a question regarding some of the more general concepts of electricity and magnetism, she could not answer them. Though this is a small example, the Indian education system fails to teach underlying concepts and understanding. Therefore I believe that the Indian software industry is missing “out of the box” thinking which is necessary for software innovation.

If the Indian education system does not actively foster innovative thinking, one may ask why there are so many successful Indian entrepreneurs in the software industry in the United States. In fact, EconomicTimes.com states:

“.3,000 of the technology firms created in the Silicon Valley since 1980 are run by Indian and Chinese entrepreneurs. Accounting for over thirty per cent of the total number of technological start-ups, reaching $19 billion in sales, and creating 70,000 new jobs, these businesses have made significant contributions to the local economy. …Today, there are more than 20,000 Indian millionaires in the Silicon Valley.[1]

One reason may be that many of these successful ventures were started by graduates of the Indian Institutes of Technology (IIT). In order to be one of the 2% of applicants admitted into IIT, students must be able to pass a notoriously difficult entrance exam.[2] Therefore unlike government issued entrance tests for all other Indian universities, where memorizing will work, the IIT entrance test requires students to master the underlying concepts rather than just memorize and drill problem solving techniques.

One many then ask about the success of non-IIT Indian software entrepreneurs in the United States. Most of the remaining Indian entrepreneurs are likely completed graduate studies in the United States have developed innovative thinking through these institutions. Many of my friends who completed an undergraduate engineering degree in India and are now graduate students in the United States, have expressed much appreciation for the American style of higher-level education. For example, when they took a course on operating systems in India, they simply had to memorize the architecture of several major operating systems from a book. However, when they retook the course after immigrating to the US, they actually had to build an operating system which brought a whole new level of understanding.

Secondly, there are no successful software entrepreneurs in India outside the outsourcing arena because there is no direct interaction with potential software consumers. Domestically, there is no significant demand for software because home ownership of a personal computer is limited to a few individuals in the upper-middle class. It is also difficult for an Indian software product company to develop products for international clients because it is hard to determine the customer’s needs from the other side of the world. Therefore the only model for an Indian products company is to establish sales and marketing offices in foreign countries and conduct development efforts at home. However in such a company, market assessment and innovation would essentially be occurring abroad and coding would be done in India – basically what is already occurring in India already.

The third reason we have not seen any product companies from India is because there currently is no need for them. Given the current boom times in India, an entrepreneur is likely to follow a proven formula by founding a small outsourcing company rather than take undue risks to start a products company. Over time, the profitability and attractiveness of outsourcing firms in India will decrease and only then will Indian entrepreneurs be forced to look at other business models.

Therefore, the Indian software industry will inevitably either perish or will have to become innovative as the payoffs for outsourcing decrease. Furthermore, as the domestic demand for software grows, Indian companies will not only have an upper hand in a larger market, but they will also have direct exposure to customer needs. However, in order to expedite this industry transformation, the Indian government should look toward reforming engineering curriculums to cultivate a generation who not just backend engineers but true innovators.


[1] http://www.nasscom.org/artdisplay.asp?Art_id=2692

[2] http://www.indianembassy.org/US_Media/2003/mar/cbs_iit.shtml

Sunday, June 19, 2005

Re: The Future of Microsoft

Microsoft has over 80 products stretched over many markets from mobile device software, to RFID, to MSN services, to desktop applications to video games.

As companies get bigger they need to start looking at expanding their product base. Sure a lot of them won't click (with Microsoft it's a lot), but that's how they can get to the "next big thing". I don't see they having 80+ products stretched over many markets to be a problem at all. They are investing in many areas and they will hope that some of those will click for them. The reliance they have on Windows and Office is unbelieveable. It is an eventuality that these will subside. They NEED to look at other products.

But you can start to see signs from the Microsoft culture that the company is beginning to no longer be as cohesive as it once was. As Microsoft becomes a larger and more mature company, they will always continue to struggle to find the balance of performing with the strength of a large company while maintaining the efficiency of a small one.

I don't think this is anything unavoidable. It's sort of like a country. You have many subgroups and subcultures within. You relate yourself with both. Once a company gets to a certain size, you can't do things the same way as a startup. So rules change and so does the culture. We spoke a little about Google and how it operates. They are small right now, but aggressively hiring left and right. Eventually, the entire company will find itself in a situation similar to how many others before them have. They will need to change. How and what they do will have to be seen. But the certainty is that they won't be the same as they are right now and maintaining the "efficiency" they have right now won't be possible.

This can be seen from the recent resurgence of Netscape’s Firefox browser in the software market. In the Business of Software, it is mentioned that the Netscape Navigator code base grew from “100,000 lines in 1994 to 3 millions lines in 1994”. Netscape’s inability to add new features while maintaining stability in the product was one of the major reasons for their loss in the browser wars.

Yes, ONE of the reasons for Netscape's downfall was because version 4 was a real sucky application. It didn't even compare with IE 4, which was years ahead of it in every way. The most important being its implementation of the DOM. But I won't say that the size of the code was the reason for Netscape releasing such a bad app. I'm sure IE was also had similar number of lines of code. It's how the app is architected that matters. Look at Win 9x vs Win NT. Windows 2k/XP are much larger than Windows 9x, yet they are better OSs. So just trimming down the LOC (lines of code) isn't the answer.

Prahalad’s theory basically claim’s that 90% of the world technology and commercial products are targeting the richest 2 billion people in the world. This in turn has left the 4 billion people who earn less than $4 per day out of the world’s markets. But he thinks that is can all change, because now the “bottom of the pyramid” has reached such a critical mass that companies can still large profits despite smaller profit margins per sale.

I agree. The Asian market is HUGE. And these companies, Microsoft included, will need to do more to make their presence felt there. And not only target the upper/middle classes, but even the lower classes.

A few weeks ago, Microsoft announced they would be releasing stripped down Hindi version of Windows XP to the India market for $70 as a pilot program.

You're talking about Windows Starter Edition right? I actually think this was really stupid. From what I remember, this version only allows you to open up three applications or windows or something. You can't take a product that's sold for X in the US and sell it for around the same price in another country like India or China. Even $70 (Rs. 3000+) is too much. The only way they will come down to a reasonable price is when they start feeling the heat from Linux. China already has Red Flag Linux which is a home baked version. It looks like the Chinese govt. is heavily promoting it since they don't want to rely on a foreign American company. If India, with its IT superpower, status does the same, Microsoft will be forced to bring down the cost.

And regarding language, I think Linux comes in more languages than any other OS. There was a story long back where a small town in some scandinvian country threatened to move to Linux unless MS released a version of Office or Windows in their language.

In conclusion, I feel that in order for Microsoft to maintain their market dominance, they need to focus as a company. They not only need to question whether their new product lines are actually viable and worth pursuing but they also need to streamline their existing flagship products. And finally as software commoditizes, they need to find new ways for the entire software market to grow.

Yeah focus is needed, but at the same time I feel Microsoft needs to try out different markets. They need to see what works and diversify away from their reliance on Windows and Office. It might sound strange but the spread of broadband is a direct threat to Microsoft. As more people have access to high speed internet, they are more likely to store their data in a remote place and work with think clients. Essentially what runs on the client won't matter much anymore - which is exactly what MS is trying to prevent. They are in a catch 22. Classic example is IE. During it's hayday - v. 4, 5, 5.5 - it was absolutely brilliant. Blew everything else out of the picture. But they saw what they were doing... encouraging people to build web apps and not Windows apps. This was fine in a way, since IE only ran on Windows and no other browser supported the cool stuff in IE. But as Mozilla, Opera and other guys started having similar features which could support complicated Web apps, the OS didn't seem to matter much anymore. So they let IE rot. And this is it's present state. Let's see what new developer features IE 7 will have. I'm sure it will have all the general user friendly features like tabs and RSS support etc...

Boy that was a big tangent. Anyway, my point is that yes they need to put out better software with more innovative features, but they need to also expand into other markets or even create new categories of products.

Re: Intel at Apple's Core

I think this is going to be really huge. I've always wanted to try Mac. But the main barrier has been very very expensive non-x86 hardware. I guess this is an issue for lots of other guys. On the home pc front, Apple may gain a larger market share. Not that Apple is going to overthrow MS, but will definitely make inroads into the market share.

I don't think this will be the case at all. Apple isn't going to let you run their OS on PCs. A huge part of their revenue is from hardware and they aren't going to let Dell, HP and all the other PC dudes take that away. Not to mention the fact that Mac OS won't have support for all PC hardware. Did you see the keynote where they made this announcement? I didn't see the whole thing, but I did see the part where he actually made the announcement and gave the reason for shifting - x86 architecture is more efficient at power consumption and will scale better than PPC. I didn't see making the OS available to the larger PC market as the reason. Sure, people will manage to get it on PCs and there will be hacks etc... but I doubt it will be anything big. Plus OS X isn't Open Source so there's less incentive for the OS community to bother with it. They got plenty to play with with Linux etc...

My 2 cents.

Friday, June 17, 2005

greasemonkey

greasemonkey is one really cool firefox extension i came across. From the homepage....

"Greasemonkey is a Firefox extension which lets you to add bits of DHTML ("user scripts") to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page's style, user scripts let you easily control any aspect of a web page's design or interaction."

There are a whole bunch of user scripts for general and specific sites as well. An example of a generic script is Linkify. This script turn all URLs on a page into hyperlinks. Suppose a page contains text like http://java.sun.com, the Linkify script would automatically convert it to a hyperlink ( http://java.sun.com ). Google Butler is an example of a site specific user script. From their web-site

"WHAT DOES IT DO?

1* removes ads on most Google pages

2* fixes fonts on most Google pages

3* Google web search:
3.1o adds links to other search sites ("Try your search on...")
3.2o in news results, adds links to other news sites
3.3o in movie results, adds links to other movie sites
3.4o in weather results, adds links to other weather sites
3.5o in product results, adds links to other product sites

blah blah.. go see the site"

Try it out.. May improve usability of your favourite site!!

greasemonkey works by changing the DOM structure of the webpage. Dunno more details..

Does Opera have a good extension mechanism?

IE7 will be released soon I suppose, but firefox really has some really neat features.. and extensions. You think IE7 will stop firefox from taking the market??

Wednesday, June 15, 2005

The Future of Microsoft

After my experience at Microsoft, though I was quite impressed by what they had achieved up to date, however, the future seemed less promising. Microsoft seems to be stretched too thin. Microsoft has over 80 products stretched over many markets from mobile device software, to RFID, to MSN services, to desktop applications to video games. But you can start to see signs from the Microsoft culture that the company is beginning to no longer be as cohesive as it once was. For example, when other employees working on XXXXXX would use the pronoun “we”, it would refer to the XXXXXX group or occasionally the entire YYYYYYY. The pronoun “they” would be used when referring to other product groups. Though this may seem insignificant, it shows that employees at Microsoft feel a sense of belonging and loyalty towards their own product rather than the company as a whole. As Microsoft becomes a larger and more mature company, they will always continue to struggle to find the balance of performing with the strength of a large company while maintaining the efficiency of a small one.

Instead of diversifying software products, Microsoft can instead simplify their existing products to provide a more secure and stable user experience. This can be seen from the recent resurgence of Netscape’s Firefox browser in the software market. In the Business of Software, it is mentioned that the Netscape Navigator code base grew from “100,000 lines in 1994 to 3 millions lines in 1994”. Netscape’s inability to add new features while maintaining stability in the product was one of the major reasons for their loss in the browser wars. From personal experience, I can see a similar trend emerging from the Microsoft Office code base and would not be surprised to see similar trends. For example, it would sometimes take one week just to check-in code and resolve dependencies – often more time than it would take to write the new code itself. On the other hand, Netscape is beginning to turn around with the release of their latest open-source browser Firefox which has accumulated over 3 million downloads. What makes Firefox so attractive is its lightweight design, fast load times and stability – all traits which Internet Explorer once beat Navigator with but now lacks. As Microsoft product cycles approach 4-5 years, for Microsoft to retain their dominance over other applications and operating systems, they should instead follow the Firefox model and build lightweight, secure and stable software rather than continuing to bloat their existing code base.

As software begins to commoditize in the existing markets, as the industry leader, Microsoft needs to find news ways for the software industry to grow as a whole. This summer I attended a guest talk by Dr. C.K. Prahalad, a world-renowned Professor of Business Administration, Corporate Strategy and International Business at the University of Michigan, who spoke about his “bottom of the pyramid” theory, which may allow Microsoft to do just that. Prahalad’s theory basically claim’s that 90% of the world technology and commercial products are targeting the richest 2 billion people in the world. This in turn has left the 4 billion people who earn less than $4 per day out of the world’s markets. But he thinks that is can all change, because now the “bottom of the pyramid” has reached such a critical mass that companies can still large profits despite smaller profit margins per sale. One example that Prahalad gave of was how Hindustan-Lever, the Indian division of Unilever, now makes 90% of their profits by selling shampoo in small single use sachets, which are more to the poor than large bottles. At the end of the talk, Prahalad asked Microsoft to consider developing products geared to impoverished populations of the world. Not only would this allow Microsoft to enter previously untapped markets but it would also allow the poor to reap the benefits of software technology as well. Prahalad speculated that Microsoft might be able to even double their profits if they were able to successfully target these markets.

It seems that Microsoft may have bought Dr. Prahalad’s theory. A few weeks ago, Microsoft announced they would be releasing stripped down Hindi version of Windows XP to the India market for $70 as a pilot program. In addition, they plan to introduce the same product in local languages to Russia, Indonesia, Malaysia, Thailand and other parts of India. Though Microsoft has claimed they are introducing this product as a response to rampant piracy, it is important to notice that the Indian version is in Hindi and not English. This may also be an attempt to reach out to the general public sector of India rather than the corporate and upper-class sectors where English is generally accepted as a standard.

During a talk, that Microsoft CEO Steve Ballmer gave to employees and new hires this summer, he said that if Microsoft were to reduce China’s piracy level to those of Italy, which are still quite high, then Microsoft would instantly add an additional $2 billion dollars of revenue annually. He added that China will only crackdown on piracy when they have a local software industry of their own. The low cost software initiative may be an attempt to do exactly this: provide an opportunity for developers, particularly in India and Russia, to purchase Microsoft products so that they can begin develop on it on their own. Furthermore, this is also allows Microsoft to “evangelize” these developing countries that do not have preferences yet for Linux or Windows.

In conclusion, I feel that in order for Microsoft to maintain their market dominance, they need to focus as a company. They not only need to question whether their new product lines are actually viable and worth pursuing but they also need to streamline their existing flagship products. And finally as software commoditizes, they need to find new ways for the entire software market to grow.

Re: Intel at Apple's core


Any thoughts about the announcement? Personally I really don't think it's a big deal at all. It's gonna be the exact same setup expect Intel will be richer.


I think this is going to be really huge. I've always wanted to try Mac. But the main barrier has been very very expensive non-x86 hardware. I guess this is an issue for lots of other guys. On the home pc front, Apple may gain a larger market share. Not that Apple is going to overthrow MS, but will definitely make inroads into the market share.

Re: Gentoo's founder is off (to MS)

Yup.. heard about it.

I guess this means very little. Gentoo's founder Daniel Robbins created a great distro and also created a non-profit org which owns the entire distro and related stuff. So his leaving will not affect the distro much. There were a few really absurd(fun to read) forum posts at Gentoo!!

Tuesday, June 14, 2005

Intel at Apple's core

Check out this op about last week's "big" announcement.

Any thoughts about the announcement? Personally I really don't think it's a big deal at all. It's gonna be the exact same setup expect Intel will be richer. IBM will lose one of their most high profile clients (but I think Xbox 360 is gonna use a PowerPC, so don't cry too much for them).

It will be interesting to see how they will port all the apps over. This is actually the main point of the opinion article. All the Open Source apps I've downloaded have versions for all major OS's. This is just amazing. How are they able to develop platform independent code so efficiently? Even Linux itself is available on so many architectures. Gotta take your hat off to them.

Gentoo's founder is off

You heard about this?

Saturday, June 11, 2005

Re: New Member

Btw all of your posts need to bash Microsoft at some level. And you'll have to have a very high level of tolerance against really bad jokes by the other guys..

I failed to mention he interned at Microsoft last summer.

And good idea - the disclaimer about the bad jokes. At least he can't say we didn't warn him.

Friday, June 10, 2005

Re: Are Design Patterns How Languages Evolve?


Another good example in the is the Observer pattern. This is where you want to "observe" another object and be notified when an event occurs. In .NET the concept of an Event is built into the system.


What you mentioned about the Observer pattern is right. An observer(mostly UI) registers with an observable(data) to be notified about changes so that it can update/refresh itself.

I think the Event class you mention actually corresponds to the Command Design Pattern. I do not have a very good idea about this pattern so may be incorrect. Many times patterns are clubbed together to provide a solution.



I find that Design Patterns are discussed more on the Java side. I haven't found much material with regards to .NET. Dunno why.


There are a lot of patterns on the J2EE side. To build a good app.. with good perf, a lot of stuff needs to be done. Java stuff does not shield you that much. It is very easy to build an app that totally sucks in perf. A lot of experience and knowledge is required. .NET i guess protects the dev more. I guess we should try discussing more topics like say persistence as well which is one of the major areas in Enterprise apps.



I've added a new member - Pawan - to codeWord.


Welcome to the group!! Look forward to some good discussions.. on any topic whatsoever.

Btw all of your posts need to bash Microsoft at some level. And you'll have to have a very high level of tolerance against really bad jokes by the other guys..

Tuesday, June 07, 2005

New member

I've added a new member - Pawan - to codeWord. He's a fellow Google intern (You can see some pics on my personal blog). He's a senior from MIT. He's into lots of different stuff... Perl/PHP/MySQL/C#/Java/C++/VB/.NET/Graphic Design. And he's really into religion as well - specifically Hinduism. Not that it's important, but just felt like mentioning it.

So looks like Open Source web tech is going to get some coverage too. Another perspective is always good.

Re: Are Design Patterns How Languages Evolve?

So is this the author is talking about?? But again what I am talking about are not language extensions .. rather just API additions. Mohn mentioned language extensions but somehow I could not relate those to Design Patterns... Any ideas??

What I wrote in my previous post doesn't technically count as design patterns in the way it's used today. You're right. I suppose I was lumping the "hacks" or workarounds together with design patterns. Basically, something that isn't enforced by the compiler or the language but is agreed upon by the community.

As far as design patterns go, they are becoming language features. The Singleton pattern which you mentioned is one example. In the next version of C# (and VB.NET too I think), you can declare a "static" class. This makes it so that you can't create an instance of it. The constructor is automatically private. Another good example in the is the Observer pattern. This is where you want to "observe" another object and be notified when an event occurs (correct me if I'm wrong, or confused it with another pattern). In .NET the concept of an Event is built into the system. So you can actually create events, have other objects delegate their own methods to those events so that they are invoked when that event occurs.

So this is different to what you said about design patterns being built into the API's instead of the language itself.

I find that Design Patterns are discussed more on the Java side. I haven't found much material with regards to .NET. Dunno why.

Re: Are Design Patterns How Languages Evolve?


Are Design Patterns How Languages Evolve? Any thoughts?

.NET introduced the concept of "Attributes". Java 1.5 came out with a similar concept called "Annotations".

It's interesting to see the evolution of languages and how newer features are just formalized notions of what you could do before that feature came to be. More often than not, it was just "hacking" a feature for something it was'nt really meant for.


The links provided by Mohn did confuse me in a way. We could probably have a bit to discuss on this topic.

Design patterns and what Mohn mentioned are different concepts IMHO.

Mohn made a very interesting point about how newer features are added to langs, which were not initially thought of. And sometimes the 'hack' is not so clean as in Generics in Java. I think this is just happening to make the langs more developer-friendly, which is good in a way.

Design patterns are generic solutions to a particular set of problems. Take for example the Singleton pattern. This pattern helps in creating a class of which only a single instance will exist to the most throughout the lifetime of the application. Design Patterns are solutions built over OOP's concepts.

Design Patterns are now being built into languages. Iterators we use within Java Collections can be mapped to the Iterator Design Pattern. Similarly the Java Swing API heavily uses the Observer pattern and others too. The Observer pattern can be used easily in Java by using java.util.Observer and java.util.Observable. The Proxy pattern is also implemented in a way in Java. Mohn had an example ages back(.. which I still haven't read completely!!). The MVC pattern was initially thought of in SmallTalk. But nowadays many languages(or should i say libraries) provide MVC out-of-the-box. Like Mohn mentioned about ASP.NET v2. We now use many Design Patterns without even realising they exist. Many patterns are adapted to better fit the framework so look totally different.

So is this the author is talking about?? But again what I am talking about are not language extensions .. rather just API additions. Mohn mentioned language extensions but somehow I could not relate those to Design Patterns... Any ideas??

Sunday, June 05, 2005

Are Design Patterns How Languages Evolve?

Here's an interesting post. I had sort of mentioned a little about this in a previous post long back. Any thoughts?