February 27, 2004

The Business of Open Source Software

An Introduction to Open Source Software

Even a casual follower of technical news would have noticed a recent strengthening trend in mainstream press. There is an ever-increasing mention of terms like Open Source, Free Software, and Linux. Further investigation would reveal that, for some reason, this issue seems to divide the world into two camps: those that feel very strongly about it and those that don’t.

That part of humanity, which feels strongly about Open Source Software (OSS) and Free Software (FS), wouldn’t have much use for this article. However, for those of you who are in the other camp and possess a mild curiosity about this phenomenon, this article attempts to unravel a few terms and provide a few perspectives.


What exactly is this beast?

This section is best started with a clarification. There is not one beast here but several and vastly different beasts. However, for the purpose of simplicity, we will not allude further to this difference. Instead we will try to gain an overview of the philosophy of Free/Open Source software. Further information is, however, easily available. [1][2]

In the 1970s, the world was still young. At least the world of computers was. The computer then was the Digital PDP-10 and software was something you wrote to get work done. The source code of software was freely available to see, modify, reuse, or improve. The 1980s, however, saw the breakdown of this culture, and the rise of proprietary software.

Proprietary software is different from free software. Usage of proprietary is typically limited to usage of the executable only, without access to its source code. The rights of the users to attempt to modify the executable are severely curtailed. Further, compensation is required to be paid to the ‘owner’ of the proprietary software to gain limited rights to use the software. The rights of the customer to reuse or share the software are also curtailed according to the agreement signed for the purchase of the software. On the contrary, free software does not place such restrictions on reuse or sharing of software. Here, free does not mean without compensation, but rather means the freedom to choose to use software without restrictions. Further, the OSS software also distributes the source code of the software along with the executable, so that the user can read and modify it as he sees fit.

Returning to the story at hand, this change from the 70s to the 80s was not acceptable to a number of people. One such person was Richard Stallman. He was so irked by the closing up of the software community that he decided to do something about it. To ensure that the freedom to use software remains, he set up the GNU Foundation. The goal of the GNU foundation was to build and distribute components for a complete operating system according to the philosophy of having freedom to use software as seen fit.

In 1984, the GNU was set up. In 1985, its first product – the GNU Emacs was built and released to the world. In tune with the philosophy, the GNU baulked at the proposition of “copyrighting” their work. Instead they “copylefted” their software under what came to be known as the GNU Public License (GPL) [3]. Copyleft uses the copyright law, but flips it over to serve the opposite of its usual purpose: instead of a means of privatizing software, it becomes a means of keeping software free.

By the 1990s, work was going on in full steam and a number of components of the UNIX system were being rewritten from scratch and released under the GPL. However, for a complete system, there is one crucial component required to tie all of it together – the kernel. The GNU was working on a kernel called the Hurd, but the project was not delivering. And there could not be a complete ‘free’ system without a kernel.

In 1991, Linus Torvalds, a 21-year-old computer science student at the University of Helsinki, decided that his personal operating system, Minix, a Unix-look-alike operating system was not good enough. [4] He was pretty sure he could write something better. So in a very brave and foolish attempt he started to write his own. But in doing this he made an important decision, to involve other people. He took the help of a number of the news groups at that time, to ask for ideas and guidance. And from this sprang the kernel, which we now know as Linux. GNU/Linux became the complete “free” operating system that Richard Stallman and a number of others had been dreaming of.


So what does this mean to me?

No talk about OSS/FS is complete without talking about the other extreme, or at least the perceived extreme – Microsoft. Somewhere along the way, not without reason though, the fight for the freedom to use software has been morphed into the fight between Linus Torvalds and Microsoft (Bill Gates). To the media, of course, this is selling stuff, and it has done little to allay this misconception. However, the first step to understanding, using, and benefiting from OSS/FS starts at breaking the media stereotype of David vs. Goliath.

Free software is not about cost. Free software is about freedom, freedom to use, freedom to reuse, freedom to distribute, and freedom to change. If this results in a perceived low initial investment, then it has more to do with the economics of it, rather than it being the USP of free software.

Software is like other economic goods and is unlike other economic goods. It is like other economic goods because it needs effort and expertise to produce and serves an economic interest. It is unlike other economic goods as the marginal cost to produce additional copies is negligible. The returns on investment are much, much higher than other economic goods and reusability is much higher than any other investment. This leaves us with a peculiar scenario – an extremely useful economic good and very easy to reuse.

This gives rise to problems similar to the ones faced by the music and motion picture industry. But software is not art, and it can deliver monetary benefits. To protect such a ‘property’ the copyright law has been typically employed. Using the principles of IP to protect software like music, has led to a monopoly like situation. Accepting a proprietary software solution for a business process makes the business process monopolistically dependent on the software.

And monopoly increases prices, and that too significantly.

After the bubble burst on the great IT dream, the software industry is facing a significant over supply of resources, leading to low productivity. And this low productivity is being maintained by the monopolistic premium charged by software vendors. To state it differently – current software development, selling, deploying and administering process is grossly inefficient. This inefficiency is being fuelled by the proprietary nature of software. The bottom line is that the IT department budgets are taking the blame.

This is where OSS/FS plays a crucial role. By driving down prices of software, OSS/FS drives true productivity in the entire process of making and selling software. This productivity is what reflects as low prices for OSS/FS and is not an endemic nature of the software.


What can I do?

Understand the philosophy of OSS/FS. It is crucial to understand what freedom means because it will help you appreciate the true nature of software in general and free software in particular. Further it will help you no matter where you are to form realistic expectations of what to expect from OSS/FS.

If you run the IT department for a business, there is a tremendous cost savings for you. Free software is easier to maintain and gives a lower TCO. Free software contributors are a great source to snag amazing programmers from. Finally free software gives you a flexibility of choice, which is never possible on a proprietary platform.

If you are a programmer or a software maintainer, there is tremendous learning for you. You have knowledge beyond your wildest dreams in OSS/FS forums. OSS is a great way to read, obtain and reuse code snippets. FS gives to access to technologies never possible on the proprietary platform.

If you are an end user, OSS/FS is your source of productivity and flexibility. Recognize that OSS/FS is not about Windows versus Linux, but is about choice. When you make that investment into hardware or software, recognize that it is your right to demand more. And recognize that your hardware is capable of more, software is capable of more, and proprietary solutions are neither the highest nor the best benchmarks.


The road ahead

It is easy to talk about the great dream of free software ruling the earth. However, free software has its own, very obvious flaws. OSS/FS cannot be everywhere. OSS/FS cannot scale to build every need. But is a great way to recognize that software is not just another economic good. You can demand and get more out of your IT buck. And that freedom is your birthright.

[1] http://www.gnu.org/philosophy/philosophy.html
[2] http://www.gnu.org/gnu/thegnuproject.html
[3] http://www.gnu.org/copyleft/gpl.html
[4] http://www.geocities.com/n_ravikiran/write003.htm

Document Changes
February, 27, 2004: First published version. This essay was written as a writing sample for an "Effective Business Writing" Course.

February 26, 2004

Why Microsoft has no other alternative

A history of Microsoft, and why they are the way they are.

A few days back I had this discussion with a friend of mine. It centered around one of my favorite topics - Linux and Microsoft. The discussion was essentially about the ideas of monopoly. My friend's view was that being a monopoly, Microsoft was justified in behaving the way it is. My counter-point however was that, this monopoly itself was ill-earned. Which naturally needed a lot more clarification. Hence this article.

The History

Microsoft was formed by Bill Gates and Paul Allen, and began by writing software for the IBM's home PC - Altair, around 1975. It struggled the first few years of its existence, looking for its niche in the market. In 1980, IBM was waking up and was like the proverbial cat on the tin roof. IBM wanted to get a machine on the market as soon as possible. And instead of going ahead with another version of their 8-bit machine, they chose to go with the 16-bit Intel, 8086 chip. This meant IBM needed a new OS, and fast.

A number of things hap penned in a very short time. Microsoft bought an existing PC Operating System. IBM chose not to wait for the CP/M to be written for its new processor. Microsoft offered to bundle its OS with the IBM PC (for peanuts), and also work with IBM to develop it. MS-DOS was released in 1981. (A brief history DOS here and here.)

MS DOS was itself not an original product of Microsoft. Instead, it was the creation of a company called Seattle Computer Company, and Tim Paterson (who later joined Microsoft). It was known as QDOS 0.10 (Quick and Dirty Operating System), before Microsoft bought all rights of the OS from Seattle Computer and changed the name to MS-DOS 1.0.

IBM never intended that MS DOS (or PC-DOS) be the Operating System for the IBM-PC. They were in fact waiting for the CP/M to come out with its 8086 version. What happened was something quite different. Squabbles between Digital Research (the vendor for CP/M) and IBM delayed the CP/M-86. With Microsoft being the sole interested party in providing an operating system, IBM found itself with a nothing other than QDOS 0.10, under the name of MS-DOS 1.0, for shipping with the IBM PC in October 1981. The quality of this product was so bad that the initial IBM PC shipped without an operating system. Later, IBM itself undertook a rigorous rewrite of the MS DOS, to get it partially ready for bundling with its PC. (The PC-DOS is hence copyrighted by both IBM and Microsoft). In spite of this, Digital Research's CP/M-86 would still have been the operating system for the PC but for two things - Digital Research wanted $495 for CP/M-86 and many software developers found it easier to port existing CP/M software to DOS rather than the new CP/M-86 operating system. Priced at $39.95 DOS became the automatic choice for the users of the new range of IBM PCs. Thus Microsoft's (poor) clone of CP/M managed to become the de-facto Operating system for the IBM PCs, not by any technical superiority, or even a marketing blitz (which Microsoft was quite incapable of undertaking) but by sheer timing.

What hap penned to the IBM PC is, as they say, history. Riding on the success of the IBM PC, MS DOS became the default Operating System in the PC world. Despite its success, the MS DOS, was never a technically superior product than any of its contemporaries. MS DOS 1.0 was nothings by QDOS 0.1. It added support for storage disks, and went through versions 2.0 in '83 and 3.0 in 84. Network support did not come until as late as version 3.1 in 1984. While the rest of the world (read Unix) boasted of incredibly powerful and versatile OSes running a variety of hardware platforms, MS DOS was still going with some extremely buggy versions of its operating system, into version 4.0 in 1988. Most of the basic utilities and tools that normally should for part of any operating system were included in versions as late as 5.0 and 6.0 in '91 and '93 respectively. Version 6.22 was released in 1994, which was the last official 'DOS version' of MS-DOS, while 7.0 and 7.1 were released for almost exclusive use as a basis for Windows 95.

MS DOS, was never a technical marvel. It's success had more to do with some decisions and some people and the explosion called the IBM PC. But today's Microsoft is not about DOS. It it about quite another thing called Windows. But lets begin at the beginning.

The concept of using a graphical visual interface originated in the mid 1970s at the Xerox Palo Alto Research Center (PARC) where a graphical interface was developed for the Xerox Star computer system introduced in April 1981. PARC had earlier also developed a success story with the Alto computer, which in mid 75 were so successful technologically that they quickly became the benchmarks for all graphical interfaces that came later. The Xerox Star did not experience any commercial success, but its ideas were copied by Apple Computer, first in the innovative Lisa in 1983 and then in the Apple Macintosh introduced in January 1984. With these machines, Apple provided WIMP (Windows, Icons, Mice, Pointers) and features like folders, long names etc which, in the PC world, were not fully implemented till Windows 95.

To put it simply, when Windows 95 was released, the reaction of Apple users was "But we had all that 10 years ago". So why did the world wait for Windows 95? The Alto machines were more of a technological demonstration than a commercial venture. They were the path breakers that defined the future on computing, but were unfortunately not commercial successes. Apple suffered from different problems. Apple was a vertically integrated computer company. This meant that Apple made its own architecture, built its own computers, developed its own OS and wrote its own applications. Also, Apple did not operate with any other system. In an industry that was rapidly moving towards commoditization, Apple was a very costly lock-in. Commercial interests took a back-seat at Apple, while it chose to be the cult, the renegade and paid its price. Apple never could pose a challenge to Microsoft, because they never met on the same playground. Apple played on its own hardware, in its own niche, while the huge IBM playground, was left to Microsoft alone.

These were, however, not the only products that could have challenged Windows. Quite a few other products provided graphical operating systems, or graphical shells on top of DOS to run multitasked DOS applications which the native OS had failed to provide. VisiOn from VisiCorp, which came on the heels of VisiCalc - the ground breaking DOS spread sheet program, failed because it was way too early. The hardware was just not ready for it. Digital Research's GEM (Graphical Environment Manager) could not run DOS applications. Quarterdeck Office Systems' DESQview, succeeded for a limited time, till Windows 3.0 became the standard.

It was not just technology and timing that bogged down Microsoft's competition. IBM suffered from short sight. It felt that the GUI was just a passing phase. Top View from IBM was introduced in 85 and discontinued in 87. Windows 1.0, when it was released 1985, was so similar to Apple Macintosh, that the latter threatened to sue Microsoft. In an ingenious move, Microsoft signed a licensing agreement with Apple that stated Microsoft would not employ Apple technology in Windows 1.0, but made no such agreement for further versions of Windows. However, Windows 1.0's dismal failure at the market made it ridiculous for Apple to follow up with litigation.

Windows failure however did not hurt Microsoft as it would have hurt other companies. Because, Microsoft had DOS - its revenue source to fund more and more development on the Windows platform, something that no other company could frankly afford. Version after version, Microsoft bunged Windows, but MS DOS gave them enough revenue to keep at it. By the time Windows became as good as most of the products mentioned here, competition was dead. Curiously, by the time Windows was finally ready, so were the application developers and so was Intel's hardware. When Windows for WorkGroups (Windows 3.1) was released, it was singularly user friendly, had a large set of third party applications to choose from, and had hardware to keep up with demands of a graphical interface. For the first time PCs with Windows were outselling the Mac and Apple could do nothing about it. Impelled by the popularity of its own Word and Excel, Windows rode the craze for the GUI driven PC, guided by the able hands of the future of Microsoft - the incredible marketing machine.

Unlike the old world monopolies of the likes of AT&T, technical superiority was never a hallmark of Microsoft's success. And therein lies the reason for Microsoft being the way it is.

So what does this mean?

Monopolies are always a bad idea. They exist by making the cost of entry into a business very high. Microsoft is a monopoly in the PC OS and Office applications segment. Like other monopolies, like say the AT&T, Microsoft tends to spend time defending its position rather than innovating. A monopoly works to raise, the rather high barrier to entry, even higher. As a result innovation suffers. And when innovation suffers at a company like Microsoft, which is producing Operating Systems, everyone suffers.

The first alarming effect of Microsoft as a monopoly is due the fact that it writes Operating Systems. Writing an Operating System is a thankless job. An Operating System, is the base that runs user application programs. Since it is just above the hardware, there is only so much the OS can do. And consequently there is very little innovation that you can do with an Operating System. Writing an Operating System, making it proprietary, and making people pay for it, is therefore an unsustainable business proposition. Hence Microsoft does what it is doing - bundle in software and gain unfair advantages in application space. Bundle in Internet Explorer, Outlook Express, Windows Media Player. Tweak Windows to run Office components better than competitor products. Not disclose all Windows API information to third party software developers. All these practices are not only anti-competitive, but directly effect the end users in a number of ways.

The second reason why Microsoft's position is a dangerous one is the fact that Windows has been developed rather than designed. Microsoft has put backward-compatibility ahead of other technical considerations. While this might be a good thing in the short run lets understand why this is deadly in the long run.

Writing an Operating System is based on certain standards. Unix-like OSes are built standards like the POSIX. These standards define the basis for building an OS. So POSIX based Operating Systems have a designed strength and capacity for security, performance and architecture. Windows on the other hand developed. Windows from 1 through 98 ran as a shell on top of DOS. In effect, it extended capabilities provided by DOS. Hence the security model, and file system etc offered by Windows were limited by the underlying DOS. Windows recognized this early, and started another thread of development called the NT (New Technology). The Windows NT 4.0 was a major commercial success. After Windows 98, both development trees were merged into the first venerable Windows 2000. Windows XP followed shortly after. You will notice that all through, there was no significant break with the past. Never was there a chance for Microsoft to correct the errors of the early QDOS and start afresh. Never could Microsoft, address issues that were inherent to its offering. In effect, its mantra of backward-compatibility became its own choke-hold.

Windows and Microsoft has preempted any questioning by its customers by doling out goodies. Extreme simplification, integration and ease of use. This is a third reason to be really scared. Technologies like OLE and ActiveX have been polished and pushed repeatedly. Drag & drop have been used to woo customers. Windows Sharing has replaced the FTP. Windows has challenged, without reason, the traditional knowledge that Operating Systems have to be different from Applications by creating a huge monolithic OS/App. While this has brought computing to the masses, this has also created a technological Chernobyl waiting to happen.

In 1983, Fred Cohen, working for his PhD, the in University of Southern California, created the concept of a "self-replicating" program. By 1987, a virus was a known term. 1988, changed all that with the Jerusalem virus, which started making serious trouble. And the trouble did not stop. Leheigh, Tequila, the Dark Avenger Mutation Engine, the Virus Creation Laboratory, Word Concept, Chernobyl, Melissa, ILoveYou, Nimda, Sircam, CodeRed, Klez, BugBear, Slammer and Mydoom represent the woes of the PC world. Symantec became a household name. An email attachment became a bad-word. Simplification, tight integration, backward compatibility and Windows success have created this extremely intolerant monoculture.

There is more. Windows owes its success to the fact that it embraced an open hardware platform (Intel) unlike Apple that bet itself on proprietary hardware. Now it is doing the same thing with Applications and Operating Systems. It is creating customers by locking them into its Operating System and refusing to inter-operate with other OSes. What Apple did with hardware, Microsoft is doing with its OS. This lack of interoperability today could well be its Achilles heel tomorrow.

One other effect of this lock in, is raising costs for the users. It is no longer possible to get Windows without paying for IE and WMP. This is not only reducing options, but also making the OS an expensive proposition. And when Windows comes with all its bells and whistles, hardware costs are correspondingly rising to provide the horse power, which the user never needs. A home user, using the computer for email only, cannot upgrade from Windows 98 to 2000, without paying for a doubly costly hardware upgrade. In short, end-user costs are rising.

It is not as if Microsoft is unaware of this. It is, and its actions are directed by this awareness. Microsoft wants to move away from the OS market into anything else - Xbox, handhelds, Application Software and what not. And each foray of Microsoft is ruthless bordering on the illegal. The browser wars were the beginning. The war against Java was yet another. The war of Windows Media Player with the likes of Real is just heating up, and will not be the last. With Microsoft's cash pile, funding these wars, and given its strangle hold on the computer world, these wars are almost a no-contest for Microsoft. But for the fact that many of the tactics used by Microsoft seriously challenge the antitrust regulators. If Microsoft escaped the US regulators, the EU regulators might yet prove to be a different breed.

Microsoft is not on the leading edge of technology. It however is an awesome marketing team. And right now, it seems invincible. And Microsoft depends on this idea of invincibility for its survival. Its stock price depends on this aura. Microsoft's high valuations are due to the very high valuations of its shares. And this stock price can be held only if Microsoft can prove year after year, that it is growing at a breakneck speed. Does not matter what technology it develops or what markets it enters - its growth is the biggest asset it has as of today. The moment, its investors realize that Microsoft cannot grow the way it has been growing, all hell will break loose. The stock price will drop, initiating a spiral downwards.

Microsoft must not seem vincible.

The Microsoft Philosophy

Almost anything that Microsoft thinks is with regard to the upkeep of this image of invincibility. This is in short the philosophy of Microsoft.

This philosophy is brought forward in some measure of sickening clarity in what are known as the Halloween documents. The body of the Halloween Document is an internal strategy memorandum on Microsoft's possible responses to the Linux/Open Source phenomenon. This was meant to be an internal study, but was leaked out at the time of Halloween 1998. The document itself is a fascinating read. Two comments made in the copy of the document over at the opensource.org are very revealing. I will represent the same here, without reference to the context here. The reader need not accept the same at face value but may want to check out the actual context in the document and see the validity of the statements for himself.

The first talks about the perception focus of Microsoft the 'technology company'.

"

Note the clever distinction here (which Eric missed in his analysis). "customer's eyes" (in Microsoft's own words) rather than any real code quality. In other words, to Microsoft and the software market in general, a software product has "commercial quality" if it has the "look and feel" of commercial software products. A product has commercial quality code if and only if there is a public perception that it is made with commercial quality code. This means that MS will take seriously any product that has an appealing, commercial-looking appearance because MS assumes -- rightly so -- that this is what the typical, uninformed consumer uses as the judgment benchmark for what is "good code".

"

The second is even more damning. Commenting on the Halloween documents' perceived strengths of the Open Source movement

"

The difference here is, in every release cycle Microsoft always listens to its most ignorant customers. This is the key to dumbing down each release cycle of software for further assaulting the non-PC population. Linux and OS/2 developers, OTOH, tend to listen to their smartest customers. This necessarily limits the initial appeal of the operating system, while enhancing its long-term benefits. Perhaps only a monopolist like Microsoft could get away with selling worse products each generation -- products focused so narrowly on the least-technical member of the consumer base that they necessarily sacrifice technical excellence. Linux and OS/2 tend to appeal to the customer who knows greatness when he or she sees it.The good that Microsoft does in bringing computers to the non-users is outdone by the curse they bring upon the experienced users, because their monopoly position tends to force everyone toward the lowest-common-denominator, not just the new users.

Note: This means that Microsoft does the ``heavy lifting'' of expanding the overall PC marketplace. The great fear at Microsoft is that somebody will come behind them and make products that not only are more reliable, faster, and more secure, but are also easy to use, fun, and make people more productive. That would mean that Microsoft had merely served as a pioneer and taken all the arrows in the back, while we who have better products become a second wave to homestead on Microsoft's tamed territory. Well, sounds like a good idea to me.

"

The effect of the Microsoft monopoly and a glimpse into its philosophy are well brought out in the two quote above.

Conclusions

This is by no means a comprehensive outburst on Microsoft. However a number of idea picked up over a period of time have found their way into this article. Many thanks to all those hordes out there, who helped me give shape to and drape in logic the vague ideas that I felt from time to time.

We have a lot to thank Microsoft for. Though it might not be for bringing computing to the masses, but it was for a simplification and a dumbing down of technology that was long overdue. But the large scale dumbing down itself has become the curse that we have to deal with today. Microsoft is a giant and at the same time a kid. It is a giant with its market control, its product usage but it is a kid with its tantrums and its desperate philosophy. It is like a kid with a gun, and I don't trust them one bit.

Related links

A brief history of DOS here and here
Some history of Windows here and here
Webmasterbase on some GUI history
The Halloween Documents

Document Changes
February 26, 2004: Essential rewrite of article stressing the central idea and new links too.
April 01, 2009: Updates and corrections.

February 10, 2004

Metacomm Pollution

I was sitting having a sandwich and cold coffee, reading BBCi over my T610, when this idea struck me. It started with someone making some sort of wearable computer which is intended for a human, but a robot can also use it. Somehow building a robot that used stuff made for humans seemed very funny to me. I thought about it. The reason I thought it was funny was that it seemed to be very dumb to make bots use interfaces developed for us.



Think about it, the reason we have these vague interfaces for humans is because we as a species are "interface constrained". All our interfaces for communicating with the outside world are low on bandwidth and are inefficient to go. Why would you want to build a bot that uses a mouse - you would rather connect the mouse port and allow the bot the directly talk to the mouse port. Rather, you would rather that there was no port at all, which would take care of the low bandwidth and restricted data that can is transferred through a mouse interface.



Now think about it. We as humans are restricted by the rate at which we communicate. Remember the peripherals of the computer which was the reason why the processor was never loaded? Are we not a similar analogy? It is our rate of data interaction with our surroundings that prevents full fledged thinking. Take a look at what I am doing - I got this idea in under 10 seconds, and for the last 5 minutes, I have not even come close to explaining the core concept.



Humans are like computers with extremely slow data exchange interfaces and without multitasking.



Life in the modern world is driven by nothing other than this aspect of the human. Humans had basic wants like food, clothing, shelter etc. These were met. He then had some higher needs, which were also met. However as his needs were met, he started facing the effects of his twin drawbacks.



He started finding difficult to concentrate, to be productive. He found it difficult to think and talk at the same time. He found it difficult to communicate with others, put ideas across, get ideas understood and accepted. This has meant that man now stopped communicating ideas and started communicating about the need to communicate better. Sort of like meta-communicating.



Meta communication is slowly but surely clogging up the modern world. The effects of meta communication pollution is visible all over the place. Management is now the most meta communication polluted of all human practices. All the buzz words, all the terminology, all the talk is little substance and all hot air. However it is understood. And reused. Thus meta communication takes precedence over communication when it comes to management. The how's, the font sizes, the styles, the dress of the presentor. All these take precedence over the content, which is delegated to the backstage. Typical of the meta communication polluted day in the life of a manager.



Lets get a word in. Metacomm is short for meta communication, or communication about communication. It refers to all communication that is not directly related to the communication that has to be done. Metacomm also refers to all activities that are an overhead to the action being performed.



The next most metacomm polluted environment is the new fangled "process oriented" software development companies. Software development is an art and a science. When it is treated like manufacturing, a number of steps need to ensure that this metaphor works - metacomm. The CMM levels, the ISO certification - all refer to process orientation and more importantly spew out metacomm.



I could go on, but I will not. Metacomm is the next big evil that humans have to face. In fact it is the biggest evil in the recorded history of mankind. Information overload with metacomm pollution. Degrading lifestyles, deteriorating minds, stressful environments.



Metacomm pollution is the mother of all future shocks that toffler could ever imagine. And believe it or not, it is here.



And I have a feeling mother nature knows about it too!



More on mother nature, up next.



- ravi

January 21, 2004

Personal Programming - Requirements

A Personal Programming Platform (P3) is a programming platform, that is built to be a very portable and easy to use programming language/environment. The following are some of the requirements for a language to be called P3.



Small Footprint: This is the most important requirement for a P3 platform. The entire programming and executiong context, including the user files and output directories and any other resources should all be available as a single unit - a single directory tree. And this tree should not in any way be tied to the system on which the platform is executing. User files should be forced into the same directory structure. Installation should be little more than unzipping/installing. There should be no references in the Registry or in the System folder or wherever. The entire P3 platform should work out of a single directory structure - by design, even if that means sacrificing of some flexibility.



The idea of a small footprint is portability. I should be able to take along my entire development, execution and data contexts with me in one move when I go. A single tar or zip command should be enough to allow me to migrate to a new system. A single delete command should remove all traces of me having worked on the system. Simplicity and ease of movement is the hallmark of a small footprint P3 system.



CLI & WIMP enabled: The main execution context of the system should be something like that of MATLAB. When the program is launched, the user will end up in a command line interface (CLI). Here interactively he will try to accomplish tasks that he will want to do. He will be able to run a command or a script, invoke a IDE to develop and edit a script and also bring up a debugger in case the scripts are misbehaving. During and entire session with the programming language, the CLI will be the base for working. The Python CLI is a very good starting point, but of course some changes will be required by it too.



Additionally, there will be a tight integration with the WIMP style of working also. For example, when a script is worked on and perfected, it should be possible to move that as a "macro" to a toolbar button with an simple command. The next time, the script will be available by clicking on the toolbar.



Run Time Database: This is the most important requirement of a powerful P3 environment. During execution of any script, it will have access to a SQL style database. This need not be a true database, but it will automatically be available to any script or program when it is running, without additonal programming effort. This run time database should support SQL style queries, though it need not support the entire command set. A smaller and modified SQL command set, dSQL (dynamic SQL) needs to be supported by this database.



The database is not built for performance, or to support deep nested select statement. Rather, it provides a easy to access database system, which can be use by any executing program. All data that is not hardcoded will be part of this database. All runtime information is best accessed through this database.



Of course, this database needs to be persistent. Shutting down the program should not destroy the data.



The database not only stores information which the program needs for its execution, but it acts as a data source for many other data requirement calls too. The database will define a schema that will allow users to "query" for information like "current date" to a "random" number etc. Most function calls will be reduced to a database calls. Function wrappers for these calls will also be available.



Powerful synchronization: This is another requirement. The P3 is designed to be used by users on the fly, on the move, and not necessarily when they are working out of their base system. As a result, it should be well aware of all changes that are being done to it. When one or more P3 instances are brought together, each to be able to talk about the differences it has with the others. This will include not only the changes to the data and the scripts, but also any changes to the internal scripts etc.



Easy customization: All customizations should be easy to track, package, distribute and incorporate. However, all changes should necessarily be in accordance with the guidelines above.



does it make sense?

- ravi

Personal Programming

This is an idea that has intrigued me for some time. It came to me when I was thinking about doing something to automate my website. It is a pure-html site, and I wanted to do some kind of automation of updation of links of each page when a particular page was altered. A very obvious means would be to use a "content management software". But I was too lazy to search for one that fit my bill. Because my requirement was simple, change a links in each page automatically. Something along the lines of a simple perl hack, rather than anything else.



I am not averse to computing, but at the same time I am lazy. Perl is made for me, but then there are some deficiencies for my purpose. Perl promotes laziness, but after it is up and running. I want something that promotes laziness _always_.



And it should be non intrusive. It should be intelligent. And it should keep everything with it and not make me think. And it should be portable. I will try to come up with a wishlist in the next blog. Do you know anything that provides such a platform?



Anyways, forward the requirements,

- ravi

January 13, 2004

Intelligence

Is a question that has troubled me. Why is that a question? The question is, what is it?



People frequently confuse knowledge with intelligence. People confuse wit with intelligence. Or don't they? Where does knowledge end, and intelligence start?



Consider this, when we sit here, discussing stuff, what part of the discussion is intelligence? If I tell you something you dont know, is that intelligence? Or is that knowledge? When I give you a fresh perspective, is it because I can process stuff faster or because I have had this experience before? And this knowledge itself. How much of it is conscious and how much of it sub-conscious?



If knowledge can be sub-conscious, then where is the line between intelligence and knowledge?



Look at an example. Someone tells you that a deal he is involved in is going well because of something very attractive that the opponent is offering. Suddenly warning bells start ringing. And you try to analyse that something might be wrong.



Why did the warning bells ring. Is it only because you are stupenduously intelligent than he is, that you saw a mole where he did not? Or was it that you have been given a raw deal before? Or is it because you have been brought up in an environment that made it difficult to trust people (knowledge again)? Or was it that you have heard of something like this before? How much of it is original knowledge, and how much is original processing or intelligence.



The reason I am talking about this is because I had taken one general IQ test somewhere. And I scored a 136, which according to the scale meant I was up there with Einstein. Which of course is not true. But many of the questions in the test, I was able to ace through because I had worked with those types of questions before. So for me it was a cakewalk. That does not mean I am a genius.



If it is difficult to separate intelligence from knowledge, why are we trying? What is this IQ test all about? Finally, shouldnt we have different semantics to deal with this difference?



keep thinking :),

- ravi

January 12, 2004

Sony Ericsson T610

I recently bought this piece, and thought I'd introduce you to it. I was seriously considering buying a cell, and of course no Nokia for me. Agree, nokia has quality, but it suffers from the same problem that plagues all industry leaders. The basic technology is cheap, but all bells and whistles are priced out of the world. And frankly Nokia low-to-medium range cell look like rot.



So, the shootout started, between price and features. I was looking at a slightly above base product, and at the same time could not afford a communicator. I landed somewhere around T68i, primary because of the way it looks. Then I was with a friend who had a T810, which had a similar screen if not the looks. And the 256 color screen put me off. It just did not pack the zing I wanted. T68i was out. Then, something else happenned. Some brain cells, which had been hibernating, woke up. And I wanted a camera with the phone.



Enter T610.



Looks could just kill.

The first look at the phone, and it looks like half a phone. It has a gigantic 128 by 160 pixel, 65000 color screen, covering more than half the front of the phone. the key pad starts with four navigational buttons, two for screen prompts and two more as "clear" and "up level up" buttons. Sandwiched between these four buttons is a very small and extremely handy joyclick (it isnt much of a stick, and you can click with it too!). Below the navigation is the regular keypad. However, the keys are really accessible rounded rectangles, small but handy and wide enough to never have a cross clicking of keys. The entire phone weighs just 95g, and is of a block design. The grooved sides provide a nice way to grip the phone when talking. You dont feel that it is just going to drop. The back of the phone has a 3d sony ericsson logo, and an inconspicuous dark circle - your 33mm lens ;)



The screen and the interface

The lively 65000 colors is what catches your attention first. Indoors, the colors are vibrant, and well contrasted. The icons are well constructed and intuitive. The main desktop is a treat to look at. The problem crops up when you try to use the phone out in the sunlight. The visibility of the display drops, and leaves the screen almost useless. Shading the screen, helps, but does not improve matters by much.



The interface is governed by your ability to use the joystick and the navigational keys. Nokia users will find the interface "counter" to what they have been using. The joyclick is also a tad difficult for the first time user. However a few days and a little practice can upgrade your usage speed enough to avoid being the bottleneck.



The icon-driven menu is informative and useful. Navigation starts from icons and has layered menus underneath. Maybe, the icon interface could have be extended to the later layers too, rather than continue with the plain vanilla menu interface. Messages are displayed via a "pop up" screen. Some menu options have a help option too, to provide additional information. The eye-candy is good, usability is better.



One final comment about the interface is the T9 input. They call it "predictive" but it does not. However, it works like the usual one-click input. However, it is slower than that given by Nokia. The T610 makes up in part, by giving a VB IDE style, auto complete popup during text input. It is slow, but it makes up.



Features (drool, drool)

Camera: a 1:1 CCD based camera. Means, low quality photography and bad response in low light. But dammit, this is a phone. Takes pics in two sizes, one at 1:1 giving you are 320 by 240, and another one smaller, with marginal improvement in quality. The camera is accessible via a shortcut key on the left edge. A very cool nikon-style click sound when the shutter is hit. Rapid saving of photo, in under 5 seconds. 2 megs of memory, use it as you please.

WAP: Another shortcut key on the right edge. To be frank, I have not yet found the actual link that leads to starting a browsing session. Render of pages is decent, however streaming multimedia is not supported, so you cannot watch video and the like.

Themes: The look on the phone is handled by means of themes. Colors, shades, wallpapers are all part of the theme. Some realyl good themes are bundled.
Connectivity: Bluetooth, Infra red and possible a data cable. Usage is quick and painless.

Games: The days of the snake is over. We now play GOLF, which sounds as if I was potting a ball in a billiards table. Supports JAVA and Morphun games too. But I miss not having a snake handy.

Programs: Do you know what a midi synthesiser looks like? No? Did you have a chace to ever play with a program called the Rave eJay? No? Check out the awesome music composer in the T610. You can choose from like 120 pieces to arrange 4 tracks to build really new pieces. Want to be woken up with the crash of an orchestra - well, make it yourself. Hey, talking about software, you have a paint program in the phone too. You will not be jobless when you wait for your delayed flight.

Others: You get a Outlook sync on a bundled CD. Slow, but it works. And there is a pretty nifty interface to even map fields between the T610 and your Outlook. You also have all your other nifty thingies - voice commands, organiser (nice interface), screen savers, 32 phonic sounds (we will come to that later), personalised rings and pictures etcetera etcetera.



In Use

Memory: You have 2 megs, shared between all your pictures, sounds and themes. You dont want to be caught without memory for the crucial shot of your girlfriend laughing. Swap the existing stuff out. Use bluetooth, or infra red, but clear your desk, you never know what might be coming in.

Battery: This beast of a display drains your battery like crazy. Remember, talking was once the biggest drain, the display just joined it. Add some sessions running JAVA games and you know what that can do to a battery. Keeping a once a day schedule of recharging is not a bad idea. But of course, it charges up pretty quickly.

Heating: A gentle warming during prolonged use (games/charging), but nothing out of the ordinary.

Voice Volume: Get used to low volumes. You may want that louder, louderer option for that concert - you dont have it. However, regular use is pretty workable.
Ring Volume: Is low. Is abysmally low. And the loudest is pretty much half of what a nokia 3315 can whip up. But wait.

Do you know the polyphonic sounds are actually midi files? (oh, the composer also stores its sounds as midi files)

Do you know you can transfer midi files two way between a computer and a phone using bluetooth or infra red?

Do you know there are freeware available that can be used to jackup the volume of your midi files?

Do you know that you can google for almost any midi file you can think of?

Now dont ever crib about not having enough volume, or enough options for ring tones. Dont even tell me that you "paid" to "download" polyphonic ringtones to your phone. :)



I love this phone,

- ravi