Tuesday, June 29, 2004

Basic Philosophy Part II: Computers and Technology - Continued

Standards and Open Source

My third general rule is to use non-proprietary software whenever possible. Standards are very important and not adhering to them can be very expensive. In 1990-92 I developed an extensive hypertext teaching system using a proprietary package. It had many nice features and it claimed to be evolving into a cross-platform system. By 1994 it was clear this had been a major mistake as it was not cross-platform (all non-MS Windows development had stopped) and the appearance of Mosaic made it apparent that HTML and the Web was the way to go. So, I spent a very large amount of time transferring the material to Web format and vowed never to make the same mistake. I hate repeating mistakes as it is much more fun to make new ones. ;-)

So now any web work I do is compliant with W3C standards. I am also a strong advocate of Open Source software. I am not an operating systems bigot and I don’t really like any of them. I sometimes am a firm believer in the idea that computers are an alien plot to make sure that humans don’t get any real work done.

I personally use Windows XP machines, Mac OS X machines, and Linux machines. I will admit that XP is an improvement over Windows 2000 which was an improvement over Windows NT. I spent many hours reloading NT systems until I would load something that crashed everything and I would have to start over. XP seems to have solved that problem. I don’t use the Mac that much but I think it is a nice OS; it’s just that the systems are so expensive for what you get. I prefer Linux (I use Fedora Core 2) for my web servers and for a lot of my other work. But for home, I still use mainly my XP machine because that’s what my games require – I am a RTS gamer and play the Age of Empire series and Rise of Nations.

I don’t really think that Microsoft is intrinsically evil. They are just like any other large organization, i.e. , out to crush the opposition and rule the world. Standards and Open Source are the best hope of avoiding that fate. The best allies of Microsoft are the entrenched IS departments who don’t want to change. I’ll be talking more about this later.

Basic Philosophy Part II: Computers and Technology - Continued

The User

The second rule is that the user is the most important person in your project. Usability issues and Human-Computer Interaction (HCI) principles should always be considered in every step of development. I spend most of my time on the Web and so I am especially sensitive to web usability. While I don’t necessarily subscribe to the “Flash must die” school of thought, there are many examples of really bad web sites done in Flash. I am a fan of Jakob Nielson (http://www.useit.com/).

I have worked closely with graphics designers and most of them are not intrinsically bad people. It is just that many of them have been taught to create something “cool” and glitzy, rather than something that people can easily use. Many schools still educate designers primarily for print technology, even though most of the jobs are on the web. While some aspects of design transfer from print to the screen, others do not. The standard for most graphics designers is the Apple Macintosh, which is a fine machine. However, they look at their site on their Mac at a certain pixel resolution and then assume that it will look fine on all other systems. Graphics designers like to have absolute control and so they frequently specify absolute text sizes. This means that a primitive browser, such as Microsoft IE, cannot resize the text. So, on a high resolution screen, e.g. my laptop runs 1920 x 1200 on a 15.1 inch screen or about 133 dpi, the text is really tiny. Even my students, with their young eyes, complain about this. Of course the easy solution is to use Firefox or Mozilla. But even with these browsers, a flash site with tiny text or small windows, is very annoying.

Like most people, I also dislike pop up windows (which Mozilla blocks) and flashing graphics. When I go to web sites I want to find certain information, not be entertained by a flash intro or other whiz bang animations. Of course, a site that is designed to be entertaining and not for information delivery would be different.

So, some simple rules: Always have users test your systems. Always view your web sites on different browsers, different platforms, and at different screen resolutions. Remember that MS IE is used by about 95 % of the general public. Even on siggraph.org which has more of a geek audience, it is 80% IE and 20 % everything else.

Basic Philosophy Part II: Computers and Technology

I have been involved with computers for a very long time, starting out with FORTRAN and progressing to BASIC, assembler, Pascal, Ada, C, C++, etc. I have seen companies come and go and seen first hand the mistakes they made. Some well known and very brilliant people made incredibly stupid judgments. Of course, it is much easier to realize how stupid they were in hindsight, but sometimes it was apparent to others even at the time. I have evolved a few simple heuristics or rules. These are all common sense and I am sure you have heard them before. But what amazes me is that people continue to ignore them.

Develop for the Future

The first rule is that any long term project should be developed for the environment that will exist when it is deployed rather than when it is started. So you need to understand and be able to forecast the technological and social environment in which your systems will be used. There is no point in working on solving a problem that will take three years if the problem or your target systems will be gone in three years.

Several years ago I had a friend who was working for a very large computer company (CDC - no longer around). She was part of a large group developing a business system on 16-bit minicomputers. Rather than being impressed with the room full of computers, my first question was why were they developing the system on machines that would be obsolete by the time they finished. The answer was “We got a really good deal on the computers”. A year later the company pulled the plug on the project when they finally realized that no one was going to buy it because no one was buying 16 bit minicomputers any more. So, they lost about 200 person years of time plus the cost of all the facilities, because they “got a really good deal”. No wonder the company went out of business.

Another example is in computer graphics hardware technology. People used to worry about quantizing 24 bit images so they could be displayed on 8-bit graphics hardware. That problem has disappeared since everyone has 24-bit hardware now. But the human eye is more sensitive than the 24 bit displays we currently have so people are looking at ways to create and display High Dynamic Range (HDR) images on 24 bit systems. But it is irrelevant to spend 3 - 5 years to find a software workaround for this, because by then we will have HDR displays. I first saw an HDR display in the Emerging Technology area at SIGGRAPH 2002. There is another, more advanced HDR display system being shown at SIGGRAPH 2004 (http://www.siggraph.org/s2004/conference/etech/high.php?=conference).

So always be thinking about the future.

Basic Philosophy Part I: Life in general

To give potential readers (if there are any) some background, I am starting off with a couple of posts about my general philosophy. Understanding my point of view will enable you to better understand my posts.

I am a scientist, which means I try to be objective and open to new information. I have strong opinions, but these opinions can be modified with new data. I am very tolerant of other opinions and other life styles. I am tolerant of and support the following: equal rights and opportunities for all, including gays, blacks, women, etc. I don’t just say this, I really mean it. I have been a card carrying liberal for many years. I am also tolerant of conservatives, unless they are the types who are trying to take away my rights and control me. I have libertarian leanings. I try to understand the other person’s viewpoint in discussions. I try to avoid labeling people and immediately stereotyping them. That is becoming increasingly difficult in our polarized society.

I believe in the existence of objective truth and facts. But let me clarify this point. As a scientist, there are very few things that are absolutely true. This is the problem that scientists have in arguing with lawyers and some other non-scientists. If you say, “Is there a possibility of”, then I will almost always say yes there is. In a Physics final I once calculated the probability of 10^23 ping pong balls on the surface of the earth all spontaneously rising up a meter in the air. It is low but it is not zero, thus it is possible, but not very likely. So, is it possible that if I jump off a bridge I will go up rather than down? Yes, but a very very low probability so I’m not going to do it.

A similar example is the recent movie “Day After Tomorrow”. The probability of such a severe climate change occurring in a day is vanishingly small. However, there is a significant probability that such a change could occur in the time span of a decade or two. This has occurred before and there is a high enough probability that the US DOD funded a study of the consequences of such a rapid climate change. Students of Chaos Theory are aware that slight changes can have very large effects. For example, if the oceans warmed up to the point that the Gulf Stream stopped flowing this would cause a new ice age in Northern Europe. Will it happen? Not likely, but it is increasingly probable as we continue to warm up the earth.

I am a student of history and I believe in George Santayana’s well known quote: “Those who do not know history are doomed to repeat it." This applies to general history and also to technology. I have heard it said that one advantage of aging is the gaining of better pattern recognition skills. I don’t mean this as in the case of looking at an image, but at looking at patterns in life and recognizing the similarities and differences with previous experiences. Knowing history facilitates this immensely.