29 Oct 2009

Rise and fall of Microsoft


During 1990 to 2000 - following paragraph was relevant. In fact, this is what I wrote in my blog in 2000.
Most people nowadays when buying new computers use Windows as OS. Some of them are even unaware that there are dozens of other operating systems. For example, Apple's Macintosh, IBM OS/2, Linux etc. These are for PCs. For main frames there are AS/400, Windows NT, Unix etc. It's not that Windows is the best of all, but it is really the most popular. Windows graphical user interface is not at all intimidating. In fact, it is the Microsoft's business strategy, which has made Windows #1 OS. Back in the seventies, Microsoft & IBM jointly developed DOS. At that time Microsoft envisages that computer industry will revolve around PCs rather than main frames as thought by IBM. So, in an attempt to dominate PC market Microsoft launched Windows. And it was a quick success. However, Microsoft is not the pioneer in developing GUI. Apple Macintosh developed a GUI OS longer ago when people were using DOS 3.0! Experts believe that MacOS is still superior to Windows. But, Apple made a blunder by trying to say customers what they offer than to listening what they want. Very recently, Apple is selling their most advanced PC without a floppy drive! They have included a CD writer instead. They argue that floppy disk backdated. I think that most potential buyer will stay aside form the product. Another wrong step of Apple's was that they patented their programs as well as their design. But IBM did not. When you buy an IBM compatible computer from market, IBM does not get any royalty. This is perhaps one major reason behind such widespread success of selling PCs. Among all OS Windows is perhaps the most forgiving. The IBM OS/2 may be more powerful than Windows, but it won't run if there is a slightest discrepancy in you computer's hardware.
In 2009, the above scenario has changed a lot!
Today Microsoft is quickly being replaced from #1 software giant on earth. It's now head to head between Microsoft and Google. So far, Microsoft got most its revenue from its ubiquitous operating system, Windows (various flavours) and Office products. At this very moment, both have serious alternatives. Open Office is nearly 90% as good as Microsoft Office. It is free! Linux has become more matured and one can even run it from USB disks directly. This is free too and you are encouraged to copy and distribute. All products, where Microsoft were a pioneer a decade back, has now either free or very cheap similar alternatives. Be it Microsoft Encarta encyclopaedia ( = Wikipedia), Microsoft Encarta Atlas ( = Google Earth), Microsoft Train/Flight Simulator (actually developed by Kuju which Microsoft bought later), Visio (= free flow chart editor) or whatever - you name it and we have a free alternative!
I know you're going to shout that I missed two important candidates, Visual Studio and SQL Server. Yes, Visual Studio does not have any equivalent because it runs only on Microsoft platform! On other hand, Express version of Visual Studios is freely downloadable and perfectly serves amateur developers. SQL Server still has a good market as low cost database with good features but MySQL, PostgreSQL and Oracle lite editions are not far away.
Very recently Microsoft announced that they will launch web editions of Office software. Alas, too little too late. We already have competing products like Google Docs, Zoho office, Editgrid etc. Still, most computers are sold as Windows pre-installed. But as time goes by, we shall see several others of being offered with Linux.
Windows Mobile was launched with much fanfare. Yet, it is now dying smart phone OS - facing stiff competition from open source systems like Symbian, Android, Linux Maemo etc.
Microsoft's search engine, Bing, failed to make a dent in Google or Yahoo's dominance.
Windows Live is a flop! Hotmail users are migrating to Gmail, Yahoo or other places.
Interestingly, Microsoft's arch rival Apple is rather going stronger!
I personally disliked Apple for their closed architectural approach to everything (including iPhone). To use an iPhone to its full potential, one needs to jail break it - which is not supported by Apple. Also, you can't use it without involving iTunes! What a rubbish concept.
Yet, Apple was successful making iPhone make a desirable item to millions around the globe.
Microsoft's Zune never managed to compete with iPod. Windows mobile is struggling where iPhone is flourishing!
I always admired Microsoft. Unlike Apple, they never crippled their software and they encouraged piracy of their product. That's why it their products got such a big market share today. I myself learned computer on DOS (and then Windows) and Visual Basic was first programming language I mastered.
So what did Microsoft do wrong?
They failed to see the power of crowd sourcing. Wiki is today's power. Voluntary collaborative approach gave birth to Linux, Firefox, Wikipedia and much more.
Bill Gates also could not comprehend power of cloud computing. He tried to stick with 1 computer 1 license revenue concept - which is now becoming obsolete.
Microsoft never invested properly to their database business, that's why SQL Server could never become true competitor to Oracle. Microsoft always targeted mass market via Windows and Office. But after World Wide Web, people every where has so much choice.
Windows 7 is a desperate attempt to get some people back to Windows. But again it is going to fail. I now like to see Linux in my computer rather than Windows.

20 Oct 2009

Oracle RAC - tiny intro

Introduction

An RAC database is a clustered database.

There are multiple Oracle instances which are connected via "interconnect" - which is a type of LAN.

The datafiles are stored in several disk drives which are connected by "cluster aware storage".

By adding multiple instances, we can add and remove and single Oracle instance without bringing the database down. So, database always remains available. That is the essence of RAC - high availability.

An RAC database is managed by "Oracle Clusterware". RAC operates in "shared everything" architecture mode.

Any storage (eg. SAN, SCSI etc.) can be used with RAC. However, good I/O speed is required for scalability of storage.

RAC supports up to 100 clusters which may be different at hardware level but must run same operating system!

Oracle recommends using ASM (Automatic Storage Management) for ease of dealing with clustered storage.

As a reminder, the RAC is used for high availability and scalability. When work load grows, you can simply add another server to the grid (RAC is a type of grid computing after all).

RAC can be managed via Oracle Enterprise Manager.

An Oracle RAC database requires three components - cluster nodes (the servers or computers running Oracle instances), shared storage (disk drives) and Oracle Clusterware (software application).

Installing RAC

The first step of working with RAC is to install "Oracle Clusterware" which is installed via Universal Installer.

Then you have to configure the clusterware.

Then install ASM (Automatic Storage Management)

Now install Oracle 11g database

Then perform post installation tasks. This ensures that clusterware and database are installed properly and they are aware of each other.

It is possible to convert your normal single instance Oracle database to an RAC database. You can achieve this via Enterprise Manager or "rconfig" utility.

Administering Clusterware

Oracle Clusterware includes two important components: the voting disk and the OCR.

The voting disk is a file that manages information about node membership, and the OCR is a file that manages cluster and Oracle RAC database configuration information.

RAC can be administered via Oracle Enterprise manager. On EM's web console mode, click on Availability tab to see details of Clusterware. You can click on Topology tab to see a visual represntation of your nodes. The Interconnect tab shows you info on interfaces. You can also add new instance to clusterware via EM (under Server tab).

Oracle Clusterware posts alert messages in alert log - which is under $CRS_home.

RAC data dictionary views are created by catclust.sql.

Cache Fusion

Oracle RAC uses "Cache Fusion" to synchronize the data stored in the buffer cache of each database instance.

Since all computers/instances in an RAC access the same database, the overall system must guarantee the coordination of data changes on different computers such that whenever a computer queries data it receives the current version - even if another computer recently modified that data. Oracle RAC refers to this functionality as Cache Fusion. It involves the ability of AC to "fuse" in-memory data cached physically separately on each computer into a single global cache.

Recommended Reference for further reading:

Oracle Database 2 day + RAC
http://download.oracle.com/docs/cd/B28359_01/rac.111/b28252.pdf

Converting single instance database to RAC

http://www.oracle.com/technology/pub/articles/chan_sing2rac_install.html

Other
http://www.orafaq.com/wiki/RAC_FAQ

3 Oct 2009

iPhone is not a geek phone (yet)

In spite of so much hype about iPhone, I still think it is not for geeks (as yet).


It may be flashy and have a good touch screen interface, but it is limited any too manys ways.

First, is the lack of open architecture. Apple has always been a pet hate of mine for their unwillingness to offer an open platform.


Though Apple is so vocal about their millions of applications available for iPhone hype, most free applications are just crap. Yes, I repeat just crap. Even some paid apps are craps too. Agreed, most iPhone apps don’t cost more (may be £1) however, most of them don’t do any real task either.


Problem is, most iPhone apps are still not matured. Numerious applications are just a front end interface for web based applications (like iPhone Facebook, news readers etc.). Any website, which is designed for mobile browsing, is already offering same feature and functionality. All those apps which can’t be used unless you’re online are pretty much useless IMHO.


My next gripe is the iTune. You can just install an application directly (without using iTune) to iPhone. You can bypass iTune but you must then install it directly from App Store. Give me the option of copying application directly to its memory from computer.


There are not many applications which you can use in iPhone while being off-line. If you are willing to develop iPhone applications and NOT on Mac platform, then you are screwed. Apple arch rival Microsoft is still way ahead with the formers intuitive Visual Studio IDEs. You may argue why Apple should offer good IDEs in Microsoft platform? Well, forget MS platform, why not offer something on free Linux platform?


Yes, you can achieve a lot more things by jail breaking the iPhone. But why do I need to do it in the first place. The product should be sold in unlocked form in a reasonable price.

In some European countries, Apple does sell iPhone in unlocked format!!