Saturday, September 20, 2008

SOME TRICKS IN WINDOWS XP



Internet Explorer 7 is full of many new features .
On the internet it has its reputation as Firefox killer !
Featuring : Tab Scrolling , Web Search Box , More Speed, etc.



Keyboard Shortcuts :

CTRL+click (Open links in a new tab in the background)
CTRL+SHIFT+click (Open links in a new tab in the foreground)
CTRL+T (Open a new tab in the foreground)
ALT+ENTER (Open a new tab from the Address bar)
CTRL+Q (Open Quick Tabs - thumbnail view)
CTRL+TAB/CTRL+SHIFT+TAB (Switch between tabs)
CTRL+n (n can be 1-8) (Switch to a specific tab number)
CTRL+9 (Switch to the last tab)
CTRL+W (Close current tab)
ALT+F4 (Close all tabs)
CTRL+ALT+F4 (Close other tabs)

`````````````````````````````````````````````````````````````````````````````````````

Hidden Programs In Windows XP !


Strange, but true that some good programs are hidden in Windows XP !!!

Programs :

1. Private Character Editor :
Used for editing fonts,etc.

** start>>Run
** Now, type eudcedit



--------------------------------------------------------------------------------


2. Dr. Watson :
This an inbuilt windows repairing software !

** start>>Run
** Now, type drwtsn32




--------------------------------------------------------------------------------


3. Media Player 5.1 :
Even if you upgrade your Media Player, you can still access your old player in case the new one fails !!!

** start>>Run
** Now, type mplay32



--------------------------------------------------------------------------------


4. iExpress :
Used to create Setups

You can create your own installers !

** start>>Run
** Now, type iexpress

--------------------------------------------------------------------------------

Wow Notepad Knew About 9/11/2001 !

Amazing thing but true , Notepad knew about 9/11/2001 !
The flight number which hit the WTC in New York was Q33N !

See it yourself :

1. Open Notepad
2. Type : Q33N
3. Now, go to Format menu
4. Choose Font.
5. Now, change the size to '72'
6. Now, change the font to 'Wingdings'
7. See what is displayed !

Isn't it amazing !

`````````````````````````````````````````````````````````````````````````````````````

Watch " Star Wars

You Don't need to Download IT !

Just :

Start>>Run , type : telnet towel.blinkenlights.nl

And Enjoy The Movie !

`````````````````````````````````````````````````````````````````````````````````````
Trick To Create Table In Word !


To create a table in Ms Word you can use this shortcut !

>> Just type : +======+=====+====+===+==+=+

>> And simply hit 'Enter' !

>> You will see that the text changes to a table. Here, the number '=' represent the number of characters in each cell !

>> Just it makes your work easy and fast !

`````````````````````````````````````````````````````````````````````````````````````

Hibernate Your XP !

Hey your Windows XP has a very good but hidden feature !

Trick Advantage :

You can leave your work in between and shutdown the PC and resume it next time as it is !
Even I switched off my PC while writing this article and when I reopened it I resumed my article from where i left !

When you want to stop your work and shutdown(Keeping your programs open)
Do The Following :

1. Click start>Turn Off Computer.
2. As the Turn Off menu comes up press 'Shift' and 'Stand By' changes to 'Hibernate'
3. Click Hibernate (Shift Kept Pressed)

Your xp will save the work and shutdown !

Now, when you switch it on again it will resume it again !

No loading of windows will take place and you will be resumed to your work as if you had just switched your monitor off and now on again !

Its Amazing !

`````````````````````````````````````````````````````````````````````````````````````

Crack BIOS Password !!!


Forgot BIOS Password ?

Do the following :

1. Open the CPU
2. Now, observe the motherboard.
3. You notice a coin like silver Battery(3V).

----------------------------------------- NOTE --------------------------------------------------------
This battery is 24 x 7 power supply for the BIOS, which is used to run the system clock will the main power is off. It also initiates the booting process when power is switched on.
-----------------------------------------------------------------------------------------------------------

4. Remove the battery from the motherboard.
(It is safe to remove the Battery)
5. Wait 30 seconds and place the battery back on the motherboard.
6. Now, when you start your system you won't be prompted for the BIOS password.

Enjoy !!!
------------------------------------ CAUTION -----------------------------------------------
1. Perform on your own risk !
2. You have to set the time of your computer when you start again.
---------------------------------------------------------------------------------------------------

Block Or Unblock Websites without software !


Many times in schools, colleges & offices surfing Entertainment sites are banned !

To overcome this you can unblock these or block some other websites and play pranks !


Do The Following :
For eg you want to block www.abc.com !


* Open the folder C:\WINDOWS\system32\drivers\etc
* There you will find a file named HOSTS

* Click on the file and press SHIFT and now right click on it .
* From the right click menu select Open with .

* Now, select Notepad to open the file from the list !
* Now, in the file under the line 127.0.0.1 localhost add another line as 127.0.0.2 www.abc.com.

* Now, File>>Save !


Now, open your web browser and try openning www.xyz.com , it will not load !


To unblock sites just do the opposite !

`````````````````````````````````````````````````````````````````````````````````````

Scare Your Friend With Auto Shutdown !

Read the following :

1. Right click on desktop>select New>shortcut
2. In the shortcut window type : shutdown -s -t 60 -c "the message you want to display"
3. Select Next
4. Name it anything.

Now, double click it !

Scared ???

Nothing happened !

Remedy :

1. Go to start>Run
2. Type : shutdown -a
3. Hit Enter

Oh! You are rescued !

Wednesday, September 10, 2008

KNOW ABOUT BIGBANG THEORY

Big Bang Theory - The Premise

The Big Bang theory is an effort to explain what happened at the very beginning of our universe. Discoveries in astronomy and physics have shown beyond a reasonable doubt that our universe did in fact have a beginning. Prior to that moment there was nothing; during and after that moment there was something: our universe. The big bang theory is an effort to explain what happened during and after that moment.

According to the standard theory, our universe sprang into existence as "singularity" around 13.7 billion years ago. What is a "singularity" and where does it come from? Well, to be honest, we don't know for sure. Singularities are zones which defy our current understanding of physics. They are thought to exist at the core of "black holes." Black holes are areas of intense gravitational pressure. The pressure is thought to be so intense that finite matter is actually squished into infinite density (a mathematical concept which truly boggles the mind). These zones of infinite density are called "singularities." Our universe is thought to have begun as an infinitesimally small, infinitely hot, infinitely dense, something - a singularity. Where did it come from? We don't know. Why did it appear? We don't know.

After its initial appearance, it apparently inflated (the "Big Bang"), expanded and cooled, going from very, very small and very, very hot, to the size and temperature of our current universe. It continues to expand and cool to this day and we are inside of it: incredible creatures living on a unique planet, circling a beautiful star clustered together with several hundred billion other stars in a galaxy soaring through the cosmos, all of which is inside of an expanding universe that began as an infinitesimal singularity which appeared out of nowhere for reasons unknown. This is the Big Bang theory.

Big Bang Theory - Common Misconceptions

There are many misconceptions surrounding the Big Bang theory. For example, we tend to imagine a giant explosion. Experts however say that there was no explosion; there was (and continues to be) an expansion. Rather than imagining a balloon popping and releasing its contents, imagine a balloon expanding: an infinitesimally small balloon expanding to the size of our current universe.

Another misconception is that we tend to image the singularity as a little fireball appearing somewhere in space. According to the many experts however, space didn't exist prior to the Big Bang. Back in the late '60s and early '70s, when men first walked upon the moon, "three British astrophysicists, Steven Hawking, George Ellis, and Roger Penrose turned their attention to the Theory of Relativity and its implications regarding our notions of time. In 1968 and 1970, they published papers in which they extended Einstein's Theory of General Relativity to include measurements of time and space.1, 2 According to their calculations, time and space had a finite beginning that corresponded to the origin of matter and energy."3 The singularity didn't appear in space; rather, space began inside of the singularity. Prior to the singularity, nothing existed, not space, time, matter, or energy - nothing. So where and in what did the singularity appear if not in space? We don't know. We don't know where it came from, why it's here, or even where it is. All we really know is that we are inside of it and at one time it didn't exist and neither did we.

Big Bang Theory -
Evidence for the Theory
What are the major evidences which support the Big Bang theory?


* First of all, we are reasonably certain that the universe had a beginning.
* Second, galaxies appear to be moving away from us at speeds proportional to their distance. This is called "Hubble's Law," named after Edwin Hubble (1889-1953) who discovered this phenomenon in 1929. This observation supports the expansion of the universe and suggests that the universe was once compacted.
* Third, if the universe was initially very, very hot as the Big Bang suggests, we should be able to find some remnant of this heat. In 1965, Radioastronomers Arno Penzias and Robert Wilson discovered a 2.725 degree Kelvin (-454.765 degree Fahrenheit, -270.425 degree Celsius) Cosmic Microwave Background radiation (CMB) which pervades the observable universe. This is thought to be the remnant which scientists were looking for. Penzias and Wilson shared in the 1978 Nobel Prize for Physics for their discovery.
* Finally, the abundance of the "light elements" Hydrogen and Helium found in the observable universe are thought to support the Big Bang model of origins.

Big Bang Theory - The Only Plausible Theory?

Is the standard Big Bang theory the only model consistent with these evidences? No, it's just the most popular one. Internationally renown Astrophysicist George F. R. Ellis explains: "People need to be aware that there is a range of models that could explain the observations….For instance, I can construct you a spherically symmetrical universe with Earth at its center, and you cannot disprove it based on observations….You can only exclude it on philosophical grounds. In my view there is absolutely nothing wrong in that. What I want to bring into the open is the fact that we are using philosophical criteria in choosing our models. A lot of cosmology tries to hide that."4

In 2003, Physicist Robert Gentry proposed an attractive alternative to the standard theory, an alternative which also accounts for the evidences listed above.5 Dr. Gentry claims that the standard Big Bang model is founded upon a faulty paradigm (the Friedmann-lemaitre expanding-spacetime paradigm) which he claims is inconsistent with the empirical data. He chooses instead to base his model on Einstein's static-spacetime paradigm which he claims is the "genuine cosmic Rosetta." Gentry has published several papers outlining what he considers to be serious flaws in the standard Big Bang model.6 Other high-profile dissenters include Nobel laureate Dr. Hannes Alfvén, Professor Geoffrey Burbidge, Dr. Halton Arp, and the renowned British astronomer Sir Fred Hoyle, who is accredited with first coining the term "the Big Bang" during a BBC radio broadcast in 1950.

Big Bang Theory - What About God?

Any discussion of the Big Bang theory would be incomplete without asking the question, what about God? This is because cosmogony (the study of the origin of the universe) is an area where science and theology meet. Creation was a supernatural event. That is, it took place outside of the natural realm. This fact begs the question: is there anything else which exists outside of the natural realm? Specifically, is there a master Architect out there? We know that this universe had a beginning.

Monday, August 11, 2008

ROUTERS





Router

A router (pronounced /'rautər/ in the USA, pronounced /'ru:tər/ in the UK, or either pronunciation in Australia) is a computer whose software and hardware are usually tailored to the tasks of routing and forwarding information. Routers generally contain a specialized operating system (e.g. Cisco's IOS or Juniper Networks JUNOS and JUNOSe or Extreme Networks XOS), RAM, NVRAM, flash memory, and one or more processors. High-end routers contain many processors and specialized Application-specific integrated circuits (ASIC) and do a great deal of parallel processing. Chassis based systems like the Nortel MERS-8600 or ERS-8600 routing switch, (pictured right) have multiple ASICs on every module and allow for a wide variety of LAN, MAN, METRO, and WAN port technologies or other connections that are customizable. Much simpler routers are used where cost is important and the demand is low, for example in providing a home internet service. With appropriate software (such as Untangle, SmoothWall, XORP or Quagga), a standard PC can act as a router.

Routers connect two or more logical subnets, which do not necessarily map one-to-one to the physical interfaces of the router.[1] The term layer 3 switch often is used interchangeably with router, but switch is really a general term without a rigorous technical definition. In marketing usage, it is generally optimized for Ethernet LAN interfaces and may not have other physical interface types.

Routers operate in two different planes :

Control Plane, in which the router learns the outgoing interface that is most appropriate for forwarding specific packets to specific destinations,
Forwarding Plane, which is responsible for the actual process of sending a packet received on a logical interface to an outbound logical interface.

Control Plane

Control Plane processing leads to the construction of what is variously called a routing table or routing information base (RIB). The RIB may be used by the Forwarding Plane to look up the outbound interface for a given packet, or, depending on the router implementation, the Control Plane may populate a separate Forwarding Information Base (FIB) with destination information. RIBs are optimized for efficient updating with control mechanisms such as routing protocols, while FIBs are optimized for the fastest possible lookup of the information needed to select the outbound interface.

The Control Plane constructs the routing table from knowledge of the up/down status of its local interfaces, from hard-coded static routes, and from exchanging routing protocol information with other routers. It is not compulsory for a router to use routing protocols to function, if for example it was configured solely with static routes. The routing table stores the best routes to certain network destinations, the "routing metrics" associated with those routes, and the path to the next hop router.

Routers do maintain state on the routes in the RIB/routing table, but this is quite distinct from not maintaining state on individual packets that have been forwarded.

Forwarding Plane (a.k.a. Data Plane)

For the pure Internet Protocol (IP) forwarding function, router design tries to minimize the state information kept on individual packets. Once a packet is forwarded, the router should no longer retain statistical information about it. It is the sending and receiving endpoints that keeps information about such things as errored or missing packets.

Forwarding decisions can involve decisions at layers other than the IP internetwork layer or OSI layer 3. Again, the marketing term switch can be applied to devices that have these capabilities. A function that forwards based on data link layer, or OSI layer 2, information, is properly called a bridge. Marketing literature may call it a layer 2 switch, but a switch has no precise definition.

Among the most important forwarding decisions is deciding what to do when congestion occurs, i.e., packets arrive at the router at a rate higher than the router can process. Three policies commonly used in the Internet are Tail drop, Random early detection, and Weighted random early detection. Tail drop is the simplest and most easily implemented; the router simply drops packets once the length of the queue exceeds the size of the buffers in the router. Random early detection (RED) probabilistically drops datagrams early when the queue exceeds a configured size. Weighted random early detection requires a weighted average queue size to exceed the configured size, so that short bursts will not trigger random drops.

Types of routers

Routers may provide connectivity inside enterprises, between enterprises and the Internet, and inside Internet Service Providers (ISP). The largest routers (for example the Cisco CRS-1 or Juniper T1600) interconnect ISPs, are used inside ISPs, or may be used in very large enterprise networks. The smallest routers provide connectivity for small and home offices.

Routers for Internet connectivity and internal use

Routers intended for ISP and major enterprise connectivity will almost invariably exchange routing information with the Border Gateway Protocol. RFC 4098[3] defines several types of BGP-speaking routers:

Provider Edge Router: Placed at the edge of an ISP network, it speaks external BGP (eBGP) to a BGP speaker in another provider or large enterprise Autonomous System (AS).
Subscriber Edge Router: Located at the edge of the subscriber's network, it speaks eBGP to its provider's AS(s). It belongs to an end user (enterprise) organization.
Inter-provider Border Router: Interconnecting ISPs, this is a BGP speaking router that maintains BGP sessions with other BGP speaking routers in other providers' ASes.
Core router: A router that resides within the middle or backbone of the LAN network rather than at its periphery.
Within an ISP: Internal to the provider's AS, such a router speaks internal BGP (iBGP) to that provider's edge routers, other intra-provider core routers, or the provider's inter-provider border routers.
"Internet backbone:" The Internet does not have a clearly identifiable backbone, as did its predecessors. See default-free zone (DFZ). Nevertheless, it is the major ISPs' routers that make up what many would consider the core. These ISPs operate all four types of the BGP-speaking routers described here. In ISP usage, a "core" router is internal to an ISP, and used to interconnect its edge and border routers. Core routers may also have specialized functions in virtual private networks based on a combination of BGP and Multi-Protocol Label Switching (MPLS).

Small Office Home Office (SOHO) connectivity

Residential gateways (often called routers) are frequently used in homes to connect to a broadband service, such as IP over cable or DSL. A home router may allow connectivity to an enterprise via a secure Virtual Private Network.

While functionally similar to routers, residential gateways use port address translation in addition to routing. Instead of connecting local computers to the remote network directly, a residential gateway makes multiple local computers appear to be a single computer.

Enterprise Routers

All sizes of routers may be found inside enterprises. The most powerful routers tend to be found in ISPs but academic and research facilities, as well as large businesses, may also need large routers.

A three-layer model is in common use, not all of which need be present in smaller networks .


Access

Access routers, including SOHO, are located at customer sites such as branch offices that do not need hierarchical routing of their own. Typically, they are optimized for low cost.


Distribution

Distribution routers aggregate traffic from multiple access routers, either at the same site, or to collect the data streams from multiple sites to a major enterprise location. Distribution routers often are responsible for enforcing quality of service across a WAN, so they may have considerable memory, multiple WAN interfaces, and substantial processing intelligence.

They may also provide connectivity to groups of servers or to external networks. In the latter application, the router's functionality must be carefully considered as part of the overall security architecture. Separate from the router may be a Firewall or VPN concentrator, or the router may include these and other security functions.

When an enterprise is primarily on one campus, there may not be a distinct distribution tier, other than perhaps off-campus access. In such cases, the access routers, connected to LANs, interconnect via core routers.


Core

In enterprises, core router may provide a "collapsed backbone" interconnecting the distribution tier routers from multiple buildings of a campus, or large enterprise locations. They tend to be optimized for high bandwidth.

When an enterprise is widely distributed with no central location(s), the function of core routing may be subsumed by the WAN service to which the enterprise subscribes, and the distribution routers become the highest tier.



History




A Cisco ASM/2-32EM router deployed at CERN in 1987.The very first device that had fundamentally the same functionality as a router does today, i.e a packet switch, was the Interface Message Processor (IMP); IMPs were the devices that made up the ARPANET, the first packet switching network. The idea for a router (although they were called "gateways" at the time) initially came about through an international group of computer networking researchers called the International Network Working Group (INWG). Set up in 1972 as an informal group to consider the technical issues involved in connecting different networks, later that year it became a subcommittee of the International Federation for Information Processing.

These devices were different from most previous packet switches in two ways. First, they connected dissimilar kinds of networks, such as serial lines and local area networks. Second, they were connectionless devices, which had no role in assuring that traffic was delivered reliably, leaving that entirely to the hosts (although this particular idea had been previously pioneered in the CYCLADES network).

The idea was explored in more detail, with the intention to produce real prototype system, as part of two contemporaneous programs. One was the initial DARPA-initiated program, which created the TCP/IP architecture of today. The other was a program at Xerox PARC to explore new networking technologies, which produced the PARC Universal Packet system, although due to corporate intellectual property concerns it received little attention outside Xerox until years later.

The earliest Xerox routers came into operation sometime after early 1974. The first true IP router was developed by Virginia Strazisar at BBN, as part of that DARPA-initiated effort, during 1975-1976. By the end of 1976, three PDP-11-based routers were in service in the experimental prototype Internet.

The first multiprotocol routers were independently created by staff researchers at MIT and Stanford in 1981; the Stanford router was done by William Yeager, and the MIT one by Noel Chiappa; both were also based on PDP-11s.

As virtually all networking now uses IP at the network layer, multiprotocol routers are largely obsolete, although they were important in the early stages of the growth of computer networking, when several protocols other than TCP/IP were in widespread use. Routers that handle both IPv4 and IPv6 arguably are multiprotocol, but in a far less variable sense than a router that processed AppleTalk, DECnet, IP, and Xerox protocols.

In the original era of routing (from the mid-1970s through the 1980s), general-purpose mini-computers served as routers. Although general-purpose computers can perform routing, modern high-speed routers are highly specialized computers, generally with extra hardware added to accelerate both common routing functions such as packet forwarding and specialised functions such as IPsec encryption.

Still, there is substantial use of Linux and Unix machines, running open source routing code, for routing research and selected other applications. While Cisco's operating system was independently designed, other major router operating systems, such as those from Juniper Networks and Extreme Networks, are extensively modified but still have Unix ancestry.

Wednesday, July 2, 2008

LINUX TUTORIAL FOR YOU






Step-by-Step Guide & Tutorial Pages

Have an old system gathering dust? Convert it into a Linux server! It's easy to do. Just follow along with our guide pages and we'll walk you through installing the Debian Linux OS and setting up a network with the most common types of Internet and LAN servers. You'll learn some things about operating systems, networking, and the Internet in the process, and you may just have some fun along the way. Even if you have never worked with Linux before, you'll be able to use our guide pages to go from zero to "sysadmin" in no time, as well as get a solid start in the knowledge needed for the Linux+ certification.



Why Not Red Hat ?

Red Hat is in a tough spot. Most of their revenue streams are based on sales, support, and training while the open nature of Linux has resulted in thousands of freely-available Linux resources on the Web. Their survival depends on having a product that is proprietary enough to make you dependent upon them for upgrades and support. And now that they are a publically-held company they are under pressure to meet the expectations of Wall Street analysts for revenue growth and cash flows every quarter. (Did you think it was just a coincidence that they churned out new versions at an average of two a year?) In time, Red Hat's dominance will likely kill off smaller commercial distributions like Mandrake and TurboLinux and dealing with Red Hat will be no different than dealing with Microsoft.


Why Debian ?

Debian is the world's leading non-commercial totally free Linux distribution. Remaining loyal to the concept upon which Linux was created, it is produced by hundreds of volunteer developers around the world. Contrary to a common misconception, Debian is not for Linux gurus only. As a matter of fact, as you will see on the guide pages, its advanced package management system makes it one of the easier distributions for new Linux users to work with. Here are just a few of its


Advantages:

Non-Proprietary: Debian is a true GNU/Linux distribution using the standard UNIX style commands. This ensures that what you learn today won't be obsolete in two years and makes it easier to also learn how to work with UNIX systems.

Easy Maintenance: A seamless, totally-integrated package management system makes it easy to keep your system up to date and free of orphan files and incompatible products. Most dependent packages are handled automatically so you don't get the "Failed dependencies" error commonly encountered when trying to add software on RPM-based systems like Red Hat and Suse.

Automated Patching: The Debian package system also allows you to use a single command to update your entire system (operating system and installed packages) over the Internet. This allows you to use a scheduler to routinely run a shell script to automatically update your system with the latest program, OS, and security patches.

Extensive: Only free software packages (applications, utilities, etc.) are allowed to be included in the official Debian distributions, and the current binary distribution comes on 21 CDs or 3 DVDs because there are over 18,000 of them. With Debian, you don't have different "server" and "workstation" or "personal" editions. It's everything all in one.

Support Options: Peer support is available through a community of listservs (mailing lists) and chat rooms. Replies to messages may even be from those who helped develop the product. And since you're likely not the first person to encounter a given issue, there are also searchable archives of listserv messages. If your company requires commercial support contracts fear not. Numerous for-profit support operations offer a variety of technical support options. With Debian, you don't have to worry about forced upgrades due to vendors dropping support for older versions.

Minimal Investment: Debian's peformance is excellent even with the modest hardware requirements Linux is famous for. While most OSs require newer, faster, bigger hardware, Debian allows you to utilize those old Pentium systems instead of throwing them into a landfill. This, along with the fact that you can load a single copy of Debian on as many systems as you want, means you can set up a full-blown enterprise at very little cost.

Reliable: Debian's focus on stability and reliability results in servers that you may have to reboot once a year, rather than once a month.
User-centric: New versions of Debian are developed when major changes warrant one, not to generate revenues from upgrades. (You need only look at the version numbers of the various distributions to verify this.) Debian disc images are available for download from www.debian.org. If you download the images, be sure to download the current "stable" release (get the "i386" set for an Intel PC system). However, downloading and burning 23 CDs or 3 DVDs takes some time and effort. You can also purchase ready-made DVD sets from Web vendors for around $20 with CD sets costing a little more.

Why Not Debian ?

If you're the type who likes to base your operations on the bleeding edge, Debian isn't for you. Debian's focus on providing a stable, reliable operating system across all platforms means it will never be "first to market" with new bells and whistles. They are incorporated into new releases once the bugs have been discovered and worked out.

SOME FLAVOURS OF LINUX






What is Ubuntu?

Ubuntu is a community developed operating system that is perfect for laptops,desktops and servers. Whether you use it at home, at school or at work Ubuntu contains all the applications you'll ever need, from word processing and email applications, to web server software and programming tools.
Ubuntu is and always will be free of charge. You do not pay any licensing fees. You can download, use and share Ubuntu with your friends, family, school or business for absolutely nothing.
We issue a new desktop and server release every six months. That means you'll always have the the latest and greatest applications that the open source world has to offer.
Ubuntu is designed with security in mind. You get free security updates for at least 18 months on the desktop and server. With the Long Term Support (LTS) version you get three years support on the desktop, and five years on the server. There is no extra fee for the LTS version, we make our very best work available to everyone on the same free terms. Upgrades to new versions of Ubuntu are and always will be free of charge.
Everything you need on one CD, which provides a complete working environment. Additional software is available online.
The graphical installer enables you to get up and running quickly and easily. A standard installation should take less than 25 minutes.
Once installed your system is immediately ready-to-use. On the desktops you have a full set of productivity, internet, drawing and graphics applications, and games.

What does Ubuntu mean?
Ubuntu is an African word meaning 'Humanity to others', or 'I am what I am because of who we all are'. The Ubuntu distribution brings the spirit of Ubuntu to the software world

Ubuntu Server Edition

The Server Edition - built on the solid foundation of Debian which is known for its robust server installations — has a strong heritage for reliable performance and predictable evolution.
Integrated and secure platform
As your business grows, so does your network. More applications need to be deployed and more servers are required. Ubuntu Server Edition offers support for several common configurations, and simplifies common Linux server deployment processes. It provides a well-integrated platform enabling you to quickly and easily deploy a new server with any of the standard internet services: mail, web, DNS, file serving or database management.
A key lesson from its Debian heritage is that of security by default. The Ubuntu Server has no open ports after the installation and contains only the essential software needed to build a secure server.
Lower Total cost of ownership with automatic LAMP installation
In around 15 minutes, the time it takes to install Ubuntu Server Edition, you can have a LAMP (Linux, Apache, MySQL and PHP) server up and ready to go. This feature, exclusive to Ubuntu Server Edition, is available at the time of installation.
The LAMP option means you don't have to install and integrate each of the four separate LAMP components, a process which can take hours and requires someone who is skilled in the installation and configuration of the individual applications. Instead, you get increased security, reduced time-to-install, and reduced risk of misconfiguration, all of which results in a lower cost of ownership.
Eliminate the cost of updating individual workstations
Ubuntu Server edition includes thin client support using LTSP (Linux Terminal Server Project). LTSP-5, the latest release, offers a simple installation and easy maintenance. All the data is stored on the server, which will substantially diminish the cost of updating individual workstations and help to ensure their security. Notable benefits of Ubuntu's thin client support are:
Simplified management: manage all clients from one system. Install new software, change their configuration, or even upgrade to a new version on the server, and all clients are instantly up to date. There is only one backup to take for all clients.
Fully automatic installation and setup: installing a thin client server is as easy as installing a single desktop system, and once it's finished, new clients can be added with no additional administration on the server
Lower TCO through shared resources: Common high-powered desktop workstations sit idle most of the day consuming power and costing your organization money. With a high-powered server and low-cost thin clients, you can get great performance and save money. Need higher performance? Just upgrade the server, and all clients instantly benefit.
Quick failure recovery: If a client system fails, simply swap in a new one and continue working. No configuration is required, and all of the user's data and settings are intact.
Locally attached devices: Users can access printers, cameras, iPods, USB sticks and other devices connected directly to the thin client.


KUBUNTU

KUBUNTU is an official derivative of Ubuntu using the KDE environment instead of GNOME. It is part of the Ubuntu project and uses the same underlying system. It is an exciting distribution that showcases the full potential of the KDE desktop. Kubuntu shares the same repositories as Ubuntu, and relies on the same underlying architecture.

The K Desktop Environment

A powerful graphical desktop environment, combines the ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of the Kubuntu operating system. KDE version 3.5.5 is the current stable release and Kubuntu 6.10 is the first distribution to include it.


Photo Management

Digikam is now included by default. This advanced digital photo management application provides you with the tools necessary to view, manage, edit, enhance, organise, tag and share photographs. Organising both photos and photo albums is a snap with Digikam as it allows you to sort chronologically, by directory layout, or by custom collections.
Power Management
Kubuntu received a new power management overhaul with the latest release. Guidance, the power management system, allows users to select various functions to control the power of their portable computing system, whether it is controlling the brightness of the display during low battery, locking the system upon closing the lid or controlling access to multiple batteries.

Easy Networking and Printer Sharing
Zeroconf and print sharing let you browse the local network for available services. Both are now simple to setup and maintain requiring nothing more than ticking a box to enable the feature.
Accessibility Profiles
Kubuntu now offers users the ability to use a preconfigured accessibility profile depending on the type of disability right from the initial point of setup. This provides users the accessibility features they need in order to not only install the Kubuntu 6.10 operating system but to use the system on a daily basis for all of their computing needs. Press F5 at the CD boot screen to choose a profile.

Thursday, May 8, 2008

LINUX EDUCATION

Does Linux have a future?

Open Source

The idea behind Open Source software is rather simple: when programmers can read, distribute and change code, the code will mature. People can adapt it, fix it, debug it, and they can do it at a speed that dwarfs the performance of software developers at conventional companies. This software will be more flexible and of a better quality than software that has been developed using the conventional channels, because more people have tested it in more different conditions than the closed software developer ever can.



The Open Source initiative started to make this clear to the commercial world, and very slowly, commercial vendors are starting to see the point. While lots of academics and technical people have already been convinced for 20 years now that this is the way to go, commercial vendors needed applications like the Internet to make them realize they can profit from Open Source. Now Linux has grown past the stage where it was almost exclusively an academic system, useful only to a handful of people with a technical background. Now Linux provides more than the operating system: there is an entire infrastructure supporting the chain of effort of creating an operating system, of making and testing programs for it, of bringing everything to the users, of supplying maintenance, updates and support and customizations, etcetera. Today, Linux is ready to accept the challenge of a fast-changing world.

Ten years of experience at your service

While Linux is probably the most well-known Open Source initiative, there is another project that contributed enormously to the popularity of the Linux operating system. This project is called SAMBA, and its achievement is the reverse engineering of the Server Message Block (SMB)/Common Internet File System (CIFS) protocol used for file- and print-serving on PC-related machines, natively supported by MS Windows NT and OS/2, and Linux. Packages are now available for almost every system and provide interconnection solutions in mixed environments using MS Windows protocols: Windows-compatible (up to and including Win2K) file- and print-servers.
Maybe even more successful than the SAMBA project is the Apache HTTP server project. The server runs on UNIX, Windows NT and many other operating systems. Originally known as "A PAtCHy server", based on existing code and a series of "patch files", the name for the matured code deserves to be connoted with the native American tribe of the Apache, well-known for their superior skills in warfare strategy and inexhaustible endurance. Apache has been shown to be substantially faster, more stable and more feature-full than many other web servers. Apache is run on sites that get millions of visitors per day, and while no official support is provided by the developers, the Apache user community provides answers to all your questions. Commercial support is now being provided by a number of third parties.
In the category of office applications, a choice of MS Office suite clones is available, ranging from partial to full implementations of the applications available on MS Windows workstations. These initiatives helped a great deal to make Linux acceptable for the desktop market, because the users don't need extra training to learn how to work with new systems. With the desktop comes the praise of the common users, and not only their praise, but also their specific requirements, which are growing more intricate and demanding by the day.
The Open Source community, consisting largely of people who have been contributing for over half a decade, assures Linux' position as an important player on the desktop market as well as in general IT application. Paid employees and volunteers alike are working diligently so that Linux can maintain a position in the market. The more users, the more questions. The Open Source community makes sure answers keep coming, and watches the quality of the answers with a suspicious eye, resulting in ever more stability and accessibility.
Listing all the available Linux software is beyond the scope of this guide, as there are tens of thousands of packages. Throughout this course we will present you with the most common packages, which are almost all freely available. In order to take away some of the fear of the beginning user, here's a screenshot of one of your most-wanted programs. You can see for yourself that no effort has been spared to make users who are switching from Windows feel at home:


1.2. The user interface

1.2.1. Is Linux difficult?

Whether Linux is difficult to learn depends on the person you're asking. Experienced UNIX users will say no, because Linux is an ideal operating system for power-users and programmers, because it has been and is being developed by such people.
Everything a good programmer can wish for is available: compilers, libraries, development and debugging tools. These packages come with every standard Linux distribution. The C-compiler is included for free, all the documentation and manuals are there, and examples are often included to help you get started in no time. It feels like UNIX and switching between UNIX and Linux is a natural thing.
In the early days of Linux, being an expert was kind of required to start using the system. Those who mastered Linux felt better than the rest of the "lusers" who hadn't seen the light yet. It was common practice to tell a beginning user to "RTFM" (read the manuals). While the manuals were on every system, it was difficult to find the documentation, and even if someone did, explanations were in such technical terms that the new user became easily discouraged from learning the system.
The Linux-using community started to realize that if Linux was ever to be an important player on the operating system market, there had to be some serious changes in the accessibility of the system.

1.2.2. Linux for non-experienced users

Companies such as RedHat, SuSE and Mandrake have sprung up, providing packaged Linux distributions suitable for mass consumption. They integrated a great deal of graphical user interfaces (GUIs), developed by the community, in order to ease management of programs and services. As a Linux user today you have all the means of getting to know your system inside out, but it is no longer necessary to have that knowledge in order to make the system comply to your requests.
Nowadays you can log in graphically and start all required applications without even having to type a single character, while you still have the ability to access the core of the system if needed. Because of its structure, Linux allows a user to grow into the system: it equally fits new and experienced users. New users are not forced to do difficult things, while experienced users are not forced to work in the same way they did when they first started learning Linux.
While development in the service area continues, great things are being done for desktop users, generally considered as the group least likely to know how a system works. Developers of desktop applications are making incredible efforts to make the most beautiful desktops you've ever seen, or to make your Linux machine look just like your former MS Windows or MacIntosh workstation. The latest developments also include 3D acceleration support and support for USB devices, single-click updates of system and packages, and so on. Linux has these, and tries to present all available services in a logical form that ordinary people can understand.
The screenshot below shows how each item in the Channel list (RH 7.2, StarOffice, Opera, Ximian Gnome, Loki games and CodeWeavers) can be updated with one mouse click. Adding or removing software packages or keeping the system up to date is simple with tools like this one, called Red Carpet:

1.1. History

1.1.1. UNIX

In order to understand the popularity of Linux, we need to travel back in time, about 30 years ago...
Imagine computers as big as houses, even stadiums. While the sizes of those computers posed substantial problems, there was one thing that made this even worse: every computer had a different operating system. Software was always customized to serve a specific purpose, and software for one given system didn't run on another system. Being able to work with one system didn't automatically mean that you could work with another. It was difficult, both for the users and the system administrators.
Computers were extremely expensive then, and sacrifices had to be made even after the original purchase just to get the users to understand how they worked. The total cost of IT was enormous.
Technologically the world was not quite that advanced, so they had to live with the size for another decade. In 1969, a team of developers in the Bell Labs laboratories started working on a solution for the software problem, to address these compatibility issues. They developed a new operating system, which was
simple and elegant
written in the C programming language instead of in assembly code
able to recycle code.
The Bell Labs developers named their project "UNIX."
The code recycling features were very important. Until then, all commercially available computer systems were written in a code specifically developed for one system. UNIX on the other hand needed only a small piece of that special code, which is now commonly named the kernel. This kernel is the only piece of code that needs to be adapted for every specific system and forms the base of the UNIX system. The operating system and all other functions were built around this kernel and written in a higher programming language, C. This language was especially developed for creating the UNIX system. Using this new technique, it was much easier to develop an operating system that could run on many different types of hardware.
The software vendors were quick to adapt, since they could sell ten times more software almost effortlessly. Weird new situations came in existence: imagine for instance computers from different vendors communicating in the same network, or users working on different systems without the need for extra education to use another computer. UNIX did a great deal to help users become compatible with different systems.
Throughout the next couple of decades the development of UNIX continued. More things became possible to do and more hardware and software vendors added support for UNIX to their products.
UNIX was initially found only in very large environments with mainframes and minicomputers (note that a PC is a "micro" computer). You had to work at a university, for the government or for large financial corporations in order to get your hands on a UNIX system.
But smaller computers were being developed, and by the end of the 80's, many people had home computers. By that time, there were several versions of UNIX available for the PC architecture, but none of them were truly free.

1.1.2. Linus and Linux

Linus Torvalds, a young man studying computer science at the university of Helsinki, thought it would be a good idea to have some sort of freely available academic version of UNIX, and promptly started to code.
He started to ask questions, looking for answers and solutions that would help him get UNIX on his PC. Below is one of his first posts in comp.os.minix, dating from 1991:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)Newsgroups: comp.os.minixSubject: Gcc-1.40 and a posix-questionMessage-ID: <1991jul3.100050.9886@klaava.helsinki.fi>Date: 3 Jul 91 10:00:50 GMTHello netlanders,Due to a project I'm working on (in minix), I'm interested in the posixstandard definition. Could somebody please point me to a (preferably)machine-readable format of the latest posix rules? Ftp-sites would benice.
From the start, it was Linus' goal to have a free system that was completely compliant with the original UNIX. That is why he asked for POSIX standards, POSIX still being the standard for UNIX.
In those days plug-and-play wasn't invented yet, but so many people were interested in having a UNIX system of their own, that this was only a small obstacle. New drivers became available for all kinds of new hardware, at a continuously rising speed. Almost as soon as a new piece of hardware became available, someone bought it and submitted it to the Linux test, as the system was gradually being called, releasing more free code for an ever wider range of hardware. These coders didn't stop at their PC's; every piece of hardware they could find was useful for Linux.
Back then, those people were called "nerds" or "freaks", but it didn't matter to them, as long as the supported hardware list grew longer and longer. Thanks to these people, Linux is now not only ideal to run on new PC's, but is also the system of choice for old and exotic hardware that would be useless if Linux didn't exist.
Two years after Linus' post, there were 12000 Linux users. The project, popular with hobbyists, grew steadily, all the while staying within the bounds of the POSIX standard. All the features of UNIX were added over the next couple of years, resulting in the mature operating system Linux has become today. Linux is a full UNIX clone, fit for use on workstations as well as on middle-range and high-end servers. Today, all the important players on the hard- and software market each have their team of Linux developers; at your local dealer's you can even buy pre-installed Linux systems with official support.

1.1.3. Current application of Linux systems

Today Linux has joined the desktop market. Linux developers concentrated on networking and services in the beginning, and office applications have been the last barrier to be taken down. We don't like to admit that Microsoft is ruling this market, so plenty of alternatives have been started over the last couple of years to make Linux an acceptable choice as a workstation, providing an easy user interface and MS compatible office applications like word processors, spreadsheets, presentations and the like.
On the server side, Linux is well-known as a stable and reliable platform, providing database and trading services for companies like Amazon, the well-known online bookshop, US Post Office, the German army and such. Especially Internet providers and Internet service providers have grown fond of Linux as firewall, proxy- and web server, and you will find a Linux box within reach of every UNIX system administrator who appreciates a comfortable management station. Clusters of Linux machines are used in the creation of movies such as "Titanic", "Shrek" and others. In post offices, they are the nerve centers that route mail and in large search engine, clusters are used to perform internet searches.These are only a few of the thousands of heavy-duty jobs that Linux is performing day-to-day across the world.
It is also worth to note that modern Linux not only runs on workstations, mid- and high-end servers, but also on "gadgets" like PDA's, mobiles, a shipload of embedded applications and even on experimental wristwatches. This makes Linux the only operating system in the world covering such a wide range of hardware.



How to install roundcube on cPanel Server?

To install roundcube on a cPanel or Linux Server, you should know your MySQL root password. Replace your MySQL root password with Database Password.
If you have already used RoundCube installation before then make sure you have removed traces of it.
Follow the steps given below and remove any traces of it with,
cd /usr/local/cpanel/base
rm -rf roundcube*
mysql -p -e ‘drop database roundcube’;
chattr -i /usr/local/cpanel/base/frontend/x/webmaillogin.html
chattr -i /usr/local/cpanel/base/webmaillogin.cgi
/scripts/upcp
You will have to specify your root password when prompted.
Let us begin with installation
A) Download roundcube first from the given sourse and apply the proper permission to directories
cd /usr/local/cpanel/base
wget -O roundcube.tar.gz http://heanet.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.1-rc1.tar.gz
tar -zxvf roundcube.tar.gz
rm -rf roundcube.tar.gz
mv -f roundcubemail-0.1-rc1 roundcube
cd roundcube
chmod -R 777 temp
chmod -R 777 logs
B) Create the database and install the intial sql file. The following commands will do this for you.
replace the mysql password in place of DATABASEPASSWORD
mysql -e “CREATE DATABASE roundcube;” -pDATABASEPASSWORD
mysql -e “use roundcube; source SQL/mysql.initial.sql;” -pDATABASEPASSWORD
C)Set the configuration as given below
cd config
mv db.inc.php.dist db.inc.php
mv main.inc.php.dist main.inc.php
Now open db.inc.php
nano db.inc.php
Find
$rcmail_config[’db_dsnw’] = ‘mysql://roundcube:pass@localhost/roundcubemail’;
Replace with
$rcmail_config[’db_dsnw’] = ‘mysql://root:DATABASEPASSWORD@localhost/roundcube’;
Now Open main.inc.php
nano main.inc.php
Find
$rcmail_config[’default_host’] = ‘’;
Replace with
$rcmail_config[’default_host’] = ‘localhost’;
D) Configure cPanel to show roundcube in the theme. Please note this is for the X theme(default) only!! If you use another theme please skip the next part and see below.
cd /usr/local/cpanel/base/roundcube/skins/default/images/
cp –reply=yes roundcube_logo.png /usr/local/cpanel/base/frontend/x/images/roundcube_logo.png
cp –reply=yes roundcube_logo.png /usr/local/cpanel/base/webmail/x/images/roundcube_logo.png
cd /usr/local/cpanel/base
wget http://www.hostgeekz.com/files/hostgeekz/HGpatch-roundcube-0.1-rc1
patch -p0

RoundCube——
***UPDATE***
Remember to chattr +i the files or add the patch to your /scripts/upcp.
chattr +i /usr/local/cpanel/base/frontend/x/webmaillogin.html
chattr +i /usr/local/cpanel/base/webmaillogin.cgi



Apache Installation on Linux

Apacahe is a very unique and the most popular web server which is used by different types of websites which is also called as Apache httpd .
Below are the installation steps for Apache. The user who is familiar with changing directories, using tar and gunzip, compiling and has root account of the server can easily install Apache
Installing Apache version 1.3.37
1) SSH to your server as root & download Apache 1.3.37 source from Apache httpd server website, http://httpd.apache.org/
# cd /usr/local/src
# wget http://httpd.apache.org/download.cgi
2) Extract the tar file.
# tar -zxvf apache1.3.tar.gz
# cd apache1.3
3) Now configure the source tree. We are installing apache at /usr/local/apache. Following will create a make file.
# ./configure –prefix=/usr/local/apache \
–enable-so \
–enable-cgi \
–enable-info \
–enable-rewrite \
–enable-speling \
–enable-usertrack \
–enable-deflate \
–enable-ssl \
–enable-mime-magic
You may only enable ‘-so‘. More information regarding the other options, you can try ./configure –help
Setting up Apache server.
1) With the above installation of apache the apache conf file is created at /usr/local/apache/conf/httpd.conf
1) If you want to run Apache on a different port to the default (80) then then change the number on line 280. Ports less than 1023 will require Apache to be started as root. Port 80 is probably the easiest to use since all other ports have to be specified explicitly in the web browser, eg: http://localhost:81.
Port 80
2) You may want to change the server admin email address on line 313:
ServerAdmin admin@example.com
3) Specify your machine name on line 331, you may just have to remove the # comment marker. If you configure virtual hosts as outlined below then Apache will use the virtual server you name here as the default documents for the site.
ServerName www.example.com
4) You should set the document root on line 338:
DocumentRoot /usr/local/apache/htdocs
5) And on line 363:
This should be changed to whatever you set DocumentRoot to.
6) The default file to serve in directories is index.html. You can change this or add new file names (in order or importance) on line 414.
DirectoryIndex index.html index.htm index.php
7) If you don’t get a large number of hits and you want to know where your visitors are from then turn host name look ups on at line 511. Turning this on does place extra load on your server as it has to look up the host name corresponding to the IP address of all your visitors.
HostnameLookups On
8) Apache Errorlog on line 520:
ErrorLog /usr/local/apache/logs/error_log
Setting Up Virtual Hosts:
1) Virtual Hosts in Apache enables the single Apache server to serve different web pages for different domains. Through Virtual Hosts we can configure how Apache should handle requests to each domain.
When any site or domain is browsed in a web browser, the browser sends the hostname of the server that it is connecting to, to the web server. All the HTTP request that come to the server (on the ports it was told to listen to) are caught by Apache. It checks the host name included in the request and uses that to determine the virtual host configuration it should utilize.
2) Whena request is received by Apache, it get following details:
Hostname: The domain name (eg. hostingcomments.com)
IP address: (eg. 10.10.10.1)
Port: (eg. 80)
During Apache configuration, we should mention each IP address and port combination for which we will be specifying virtual host domains, in the configuration file. So we should add the NameVirtualHost entry in the httpd.conf file:
NameVirtualHost 10.10.10.1:80
Please make sure the ipaddress that you use is configured on your machine.
3) Each virtual host will have its own directory for the web pages to be stored. This can be anywhere that the Apache web server has permission to read. For example, on a cPanel server the web pages are located at /home/username/public_html.
Now If we set a domain hostingcomments.com on the, its VirtualHost entry will be:
NameVirtualHost 10.10.10.1:80
ServerAlias www.hostingcomments.com
ServerAdmin webmaster@hostingcomments.com
DocumentRoot /home/hosting/public_html/
ServerName tmcnetwork.bayker.com
BytesLog domlogs/hostingcomments.com-bytes_log
CustomLog /usr/local/apache/domlogs/tmcnetwork.bayker.com combined
Running Apache:
1) apachectl is the easiest way to start and stop your server manually.
# cd /usr/local/apache/bin
# ./apachectl start
2) You can also copy the file /usr/local/apache/bin/httpd to /etc/init.d/ from where your can stop & start apache.
# /etc/init.d/httpd stop
# /etc/init.d/httpd start
4) Now make Apache from the above make file.
# make
5) If make is successful & goes without any error , install Apache
# make install


LINUX FLAVOURS

Different companies have various distributions of linux they differ in add-on software, GUI, basic commands, parameters, price and in others. These companies upgrade there versions in same time frame. Some of linux flavours are as per below.

* Red Hat:- The Red Hat distributions for Intel, Alpha and Sparc are built from the exact same source packages. This is to ensure maximum portability between platforms regardless of the underlying hardware architecture.
It’s also pegged as the top distro in terms of the development, deployment and management of Linux for an internet infrastructure.
Red Hat is also famous for a very easy installation system known as Red Hat Package Management, which effectively allows download and installation of packages with a single command.

* DEBIAN:-Debian Project claims to be “an association of individuals who have made common cause to create a free operating system”. But it has a reputation for being the ‘elite’ users choice in Linux, infamous for its uber techie ‘holier than thou’ user base.
Although, like many Linux variants, Debian is updated and maintained through the work of many users who volunteer their efforts, extensive pre-release testing is done to ensure the highest degree of reliability possible, and a publicly accessible bug tracking system provides an easy way to monitor user feedback.

* SUSE:- SuSE is the leading Linux distro in Europe and the biggest competitor to Red Hat. Known for its easy to use interface, SuSE is also renowned for good customer service, making it a strong player in the enterprise space.
Like Red Hat, SuSE is one of the oldest flavours of Linux. SuSE is also involved in the UnitedLinux project

* MANDRAKE:- MandrakeSoft seized this opportunity to integrate a user-friendly graphical desktop environment as well as to contribute its own graphical configuration utilities.
As a result Mandrake quickly became famous for setting the standard in ease-of-use and functionality and proved that Linux as a server or workstation has no reason to be jealous of any other more established operating systems.

* GENTOO:- Gentoo Linux is a versatile and fast distribution geared towards developers and network professionals. Again, a benefit of Gentoo is its advanced package management system called Portage.
This is a true ports system in the tradition of BSD ports, but is Python-based and sports a number of advanced features including dependencies, fine-grained package management, ‘fake’ installs, sand-boxing, safe un-merging, system profiles, virtual packages, config file management and more. It’s smooth and sleek, but definitely a Linux for power users.

* CALDERA:- OpenLinux product line is a multi-tasking, multi-user Linux-based operating system surrounded with utilities, graphical interfaces, installation procedures, third-party applications, etc.
But, like Turbolinux , the SCO Group - which was recently acquired by Caldera - will now focus on the UnitedLinux project.

* UBUNTU:- Ubuntu is a complete Linux-based operating system, freely available with both community and professional support. It is developed by a large community.Ubuntu is suitable for both desktop and server use. The current Ubuntu release supports PC (Intel x86), 64-bit PC (AMD64), Sun UltraSPARC and T1 (Sun Fire T1000 and T2000), PowerPC (Apple iBook, Powerbook, G4 and G5) and OpenPower (Power5) architectures.

Linux Advantages

Low cost: You don’t need to spend time and money to obtain licenses since Linux and much of it’s software come with the GNU General Public License. You can start to work immediately without worrying that your software may stop working anytime because the free trial version expires.

Stability: Linux doesn’t need to be rebooted periodically to maintain performance levels. It doesn’t freeze up or slow down over time due to memory leaks and such. Continuous up-times of hundreds of days (up to a year or more) are not uncommon.

Performance: Linux provides persistent high performance on workstations and on networks. It can handle unusually large numbers of users simultaneously, and can make old computers sufficiently responsive to be useful again.

Network friendliness: Linux was developed by a group of programmers over the Internet and has therefore strong support for network functionality; client and server systems can be easily set up on any computer running Linux. It can perform tasks such as network backups faster and more reliably than alternative systems.

Flexibility: Linux can be used for high performance server applications, desktop applications, and embedded systems. You can save disk space by only installing the components needed for a particular use. You can restrict the use of specific computers by installing for example only selected office applications instead of the whole suite.

Compatibility: It runs all common Unix software packages and can process all common file formats.

Choice: The large number of Linux distributions gives you a choice. Each distribution is developed and supported by a different organization. You can pick the one you like best; the core functionalities are the same; most software runs on most distributions.

Fast and easy installation: Most Linux distributions come with user-friendly installation and setup programs.
Full use of hard disk: Linux continues work well even when the hard disk is almost full.

Multitasking: Linux is designed to do many things at the same time; e.g., a large printing job in the background won’t slow down your other work.
Security: Linux is one of the most secure operating systems. “Walls” and flexible file access permission systems prevent access by unwanted visitors or viruses.

Open source: If you develop software that requires knowledge or modification of the operating system code, Linux’s source code is at your fingertips.

Sunday, March 2, 2008

History a Brief History of GUI

Graphic User Interfaces were considered unnecessary overhead by early computer developers, who were struggling to develop enough CPU horsepower to perform simple calculations. As CPU power increased in the sixties and early seventies, industrial engineers began to study the terminal entry programs of mainframes to optimize entry times and reduce mis-types. The earliest mainframe query protocols still in use, i.e., airline reservation systems, were developed during this period to queue as much information as possible into the shortest command. Essentially, operators were trained to perform computer language interpretation in their heads.

For an example, read this vision of future computing from the science fiction novel Inherit the Stars, ©1977 by James P. Hogan:


"What do I do now?"

*"Type this: FC comma DACCO seven slash PCH dot P sixty-seven slash HCU dot one. That means 'functional control mode, data access program subsystem number seven selected, access data file reference "Project Charlie, Book one," page sixty-seven, optical format, output on hard copy unit, one copy.'"

In the middle to late seventies several companies, including IBM and Xerox, began research on the "next generation" of computers, based on the assumption that computing power would drop in price to the point where many more individuals in companies would be able to effectively use them. IBM directed most of its efforts at mainframe development, but also started a small division to design and produce a "personal computer", which, despite its obscure operating system, would recreate the home-built small computer market. Other companies were struggling to produce cost-effective small computers using the CP/M operating system.

The most notable interface research program was at a facility owned by Xerox called the Palo Alto Research Center (PARC). In 1973 the PARC team began work on the Alto computer system as "an experiment in personal computing, to study how a small, low cost machine could be used to replace facilities then provided only by much larger shared systems." The Alto project continued into 1979, replaced by the Star computer, which many consider the forerunner of the Macintosh. The Alto had many unique features, and pioneered the use of the mouse, the portrait monitor, WYSIWYG, local area networking, and shared workspaces.

Alto, and the later Star computers, derived many of these features from cognitive psychology work. The designers attempted to communicate with users more effectively by making the computer communicate in ways the brain uses more readily; using icons for instance, because the visual part of the brain can track their presence and state much better than words. They developed ways of organizing information in patterns which the eye can track through more easily, drawing attention to the work in progress. They developed the model of WYSIWYG (what you see is what you get) to improve print proofing performance, and found through testing that the digital representation of black text on a sheet of white paper increased information legibility and retention. The Star interface added the concept of the desktop metaphor, and overlapping and resizable windows. PARC discovered along the way that whole new subsystems had to be developed to enable their technology to work; but once demonstrated, testing showed dramatic improvements in productivity, job satisfaction, and reduced training time for users. PARC's research clearly showed that a computer system of sufficient power could be optimized for human use, and that optimization would be paid back with a range of productive (and profitable) behavior and attitude improvements.

In the early eighties the IBM PC running DOS became the runaway best seller among computers. DOS was a cryptic command line interface, a direct descendant of mainframes. The PC had many limitations, including memory access, power, and lack of color or graphic standards; but it had enough productivity to warrant purchases of millions of units.

At the same time, a small group of designers at a company called Apple Computer made a deal with Xerox PARC. In exchange for Apple stock, Xerox would allow Apple to tour the PARC facility and incorporate some of their research into future products. Apple took elements of the Star interface, refined them and produced the Lisa computer. The Lisa failed, owing to its cost, lack of software availability, and other factors. Apple's next try with an enhanced and friendlier Lisa interface was the Macintosh, which found a small market foothold in the design and publishing markets. Apple was committed to its GUI, spending millions of dollars over the next ten years to research and implement enhancements; their commitment paid off in the late eighties as the desktop publishing market exploded and Apple's interface was widely acclaimed by the artists, writers, and publishers using the computers. Interestingly, one of the most successful Macintosh application developers was the Microsoft Corporation of Redmond, Washington, owner of MS-DOS. Microsoft, following the Apple GUI standards, developed a spreadsheet for the Mac which set new standards for ease of use. This product was, of course, Excel.

Apple worked with artists, psychologists, teachers, and users to craft revisions to their software and developer guidelines. For example, in California they sponsored an elementary school where every student had an Apple Computer. Each year the teachers and Apple programmers spent the summer planning new lessons and making enhancements to the software used to teach them, because Apple believed that children give the truest reactions to basic interface issues. Although a distant second in number of systems behind IBM compatibles today, Apple's closed hardware and software implementation at one point made them the largest personal computer manufacturer in the world, eclipsing IBM in 1992. Apple believes that the principal contributor to their success has been the consistent implementation of user interfaces across applications. Macintosh users have been able to easily master multiple applications because commands and behavior were the same across applications: Command-S is always save.

In the late 1980s Microsoft Corporation, producer of DOS, DOS applications, and Macintosh applications, began a joint project with IBM to develop a new graphic user interface for IBM compatible computers. This partnership later dissolved, but Microsoft went on to take user interface lessons learned from their successful Macintosh products, Excel and Word, and created a series of graphic shells running on top of DOS which could mimic many of the Macintosh GUI features. Microsoft and Apple became involved in extensive litigation over ownership of many of these features, but the case was eventually dismissed. Later version of the Windows operating system became increasingly Macintosh-like. Today Microsoft gives little credit to Apple for pioneering and validating many of the ideas which they have copied.

With increasing desktop power and continued reductions in CPU pricing, another area of GUI development also entered business, that of UNIX. Like DOS, UNIX is a child of the seventies and inherits a powerful and obscure command line interface from mainframes; unlike DOS, it had been used in networked applications and high-end engineering workstations for most of its life. In the eighties UNIX GUI shells were developed by consortiums of workstation manufacturers to make the systems easier to use. The principal GUIs were Solaris (Sun Microsystems), Motif (Open Software Foundation, or OSF), and later NeXTstep (Next Computers).

Altogether new graphical operating systems were also developed for the emerging families of RISC desktop computers and portable devices, these include Magic Cap (General Magic), Newton (Apple Computer), People, Places, and Things (Taligent), Windows CE (Microsoft), and the Palm interface (US Robotics Pilot).

The mid 1990s brought two new movements to GUI design - the Internet browser and it's limited but highly portable interface, and LINUX, a freeware version of UNIX. Which of these will have greater long-term impact is open to debate, but it appears that the browser has had widespread effect on GUI design, and on human culture.

The HTML/browser interface comes in bewildering variety of implementations. With limited interaction in forms the designers were forced back to basics, building and testing iterations. Fortunately, HTML is relatively easy to create, though some would suggest, difficult to master. Newer versions of HTML and decendants like DHTML, XML, WML, SMIL, offer greater potential for true interactive experiences but at the cost of increased download times and questionable compatibility with a diverse legacy of installed browsers. Over time the legacy browser problem will be solved as users upgrade their systems, and bandwidth issues should also improve. But the important thing learned by GUI designers from the Web is that screens do not have to be complicated to be useful - if the form solves a need and is easy to use, then people will use it.

LINUX represents another trend in computing and GUIs, that of group-developed software based on components. Facilitated by the Web, software designers can collaborate and produce startling work in short timeframes. LINUX is small and reliable, yet supports a large base of usable processes. Along with Java, LINUX represents a possible future of portable software running on compatible systems anytime, anywhere.



Key Features Common concepts in good GUIs

Important similarities exist between these GUIs which are based on sound principles of cognitive psychology and proven through thousands of hours of testing and billions of hours of use. They are summarized below:
Consistency: Once a set of rules is picked for a GUI, it is vital that different applications share methods for invoking similar features (external consistency), and that applications use the same methods for similar functions within the program (internal consistency).


*Metaphor: To make complex processes easier to understand and manipulate, it is useful to choose a similar "real world" process to associate with the application, i.e., the desktop for managing files and choosing office applications. Use of visual images, sound, and actions serves to reinforce the illusion and make it more understandable.


*User Centered: The user is in charge of the interaction on several levels. Actions are initiated and controlled by the user, the user selects the objects the action will affect, the user sees immediate visible results of actions to confirm their changes, and the user is warned about negative effects of their actions. Ideally, the user cannot be wrong, he or she can always recover from an error. When questions arise during development of new applications, they should always be settled to the users' benefit. Design specifications should arise from user needs, and research on the efficacy of the design must be done with users. The user is not a programmer, the user will make errors, but the user is in control.


*WYSIWYG: Everything is seen, and features are not hidden except by the user, i.e., the tab settings on a word processor are seen unless turned off. Items which exist in the real world should look like them, especially if they may be printed, such as an invoice in an accounting program.


*Aesthetics and Environment: The human eye and mind are evolved to make sense out of a disordered world. However, this process can completely consume the resources of the human brain; chaotic screen designs take a long time to understand and use. Information should be ordered into a simplified grid or list, it must be organized hierarchically according to importance and grouped into similar tasks. The application should have 'look' which reinforces the sense of craftsmanship required to create quality applications.

At the same time, the design should help the user navigate the system; compatible changes to detailing, color, and patterns along with title bars help the user to recognize where they are in the application.


Marshall MacLuhan

To make things even more complicated, designers of user interfaces are aiming for a moving target. GUIs evolve, the hardware systems get faster, displays get larger, and the user is changing. As sociologist Marshall MacLuhan pointed out in the fifties while studying television, "...the medium is the message." This is because we must reject carrier information to extract real information from the events around us. For example, when we watch television we make constant evaluations on whether the information we see is important: the announcer's words instead of the color of his green jacket. If we did not evaluate the jacket color as unimportant and "reject" it, we would have great difficulty deciding what was important in the huge flow of information coming out of a TV. As we watch television we are constantly learning new information which must be rejected, so in many ways the TV is affecting our values and thought patterns. Similarly, GUI presentation of information has many levels of information which users learn to reject. A consistent interface makes it easier for the user to quickly extract information from the screen. Conversely, changes from learned ways of displaying or manipulating data lead to confusion and doubt, since the user must build a new internal model of hierarchical information. Since most users use multiple applications, and upgrades are constantly loaded, the user must make these evaluations daily. Users become more sophisticated, but they also develop technology induced blind spots which may prevent them from seeing important information.

Life with HTML What happened here? Why are so many sites so ugly?

HTML was developed by a group of engineers and scientists who wanted to share reports and papers over a network. Over time, image tags and miscellaneous formatting was added, but until about four years ago, NONE of the authors were designers.

(A good information/interaction designer is concerned with all of the aspects of the interface, from the server and database used, to the transport layers, to the features and limitations of the delivery platform, to the industrial psychology of the computer/display system, to the cognitive psychology/knowledge base/usage patterns of the end user. Their focus is on improving the user's experience through applied expertise with programming, marketing, sociology, psychology, art and design history, economics, technology, engineering, research methodology, etc., etc. But I digress.)

Sure, design is about making things look better on the surface. But you CANNOT SEPARATE FORM FROM CONTENT; good design is about making things clearer to understand, and much more useful, and that comes from careful use of sound design principals (yes, there are rules for how to design something, for example: http://www.dsiegel.com/tips/tips_home.html ).

Now, the original developers of HTML were smart people, but they didn't think "design" was important. They felt that once they could publish their papers, they were done (unfortunately, an all too common engineering fallacy, "It works, it must be finished"). As graphic designers started using the web, they brought with them some 400 years of printing experience and the rules of graphic design, for instance:

Whitespace organizes information better than lines
Humans reject information to read it*
Contrast = better readability
There are cultural meanings to color

So now we have a lot of arguments and "hacks" added to HTML so that information can be presented in a more useful and effective way: tables, alignment tags, color control, frames, face commands for fonts, etc., etc. Sure, this makes the code more complicated, but isn't that what computers are good for? Taking mundane, repetitive tasks and making information easier for humans to understand and use. Or would you rather give back your color monitor, your menu interface, and your mouse? (I know I wouldn't).

One thing is for certain, if you use the older HTML tags with their default behaviors, you WILL have an ugly page.

*Marshall MacLuhan wrote an entire book on this phenomenon. When you look at a list of information, your brain evaluates each piece of data, then rejects the unimportant/uninteresting ones so that you can focus on the important part(s) of the list. This happens at such a low level that most people are not aware they do it. Think about reading a map, which is an extremely rich interface; if you could not reject information, you would never find the road or city or distance which is important, since your brain can only hold so much information at a time.



Text Design Have we learned anything in 400 years?

With 400 years of design history and 50 years of psychology research to digest on print what do we know?. When reading text, the following things WILL improve reading speed and retention:

Contrast between the font ink and the background color
Use Serif fonts for printing
(but sans-serif fonts are marginally better for on-screen legibility)
8 to 11 words per line (column layout)
Whitespace margins to the sides of the column (gutters)
Minimal use of changes in font inside text
(no highlights, bold, italics for individual words)
Consistent text alignment (flush left preferred)

If you have to create wider columns, you really need to increase the leading (typographer's term for vertical space) between lines. Wide columns of text do not easily guide the reader's eye to the next line, resulting in confusion and slower speed. To use a wider column with small text, you must have more leading.

In CSS the argument to do this is:
line-height: normal | | | | inherit
Preferred:
line-height: 1.5em;

When you set text in a page without using a table (or div with a width) to control maximum width, you create a bad situation for your users with large monitors. The HTML default leading is too narrow for full width windows.

Cascading Style sheets allow you to set the space between lines of text. Unfortunately, the continuing browser competition between Netscape and Microsoft, combined with multiple platforms and old versions hanging around on many computers, left us with inconsistent results for several years. It used to be that if you depended on this feature to allow use of wide columns, you could create an ugly situation for many users without it but in the past three years the web population has largely adopted CSS and DOM compatible browsers - woo!

I could go off about how chaotic page layouts consume your brain's concentration, since your brain is evolved to impose order on chaos, and why it's important to provide navigation cues for large text blocks, but that would take too long, and you probably aren't interested.



Visual Chaos Why is it important to have clean layout?

Well, maybe you are interested. Cognitive Psychologists like Conrad Lorenz in Switzerland began serious and methodical studies of children's brain development in the 1950's. Their theory was that physical and cognitive brain structures developed in childhood affected our perception and thinking throughout our lives. This has since been repeatedly proven correct.

The core findings and their effects:

1) The order that structures develop determines their importance and speed of utilization; the order is Visual, then Aural, then Sense of Self, and finally, Abstraction.

This is why scientists estimate that 80% of our brain is given over to processing visual stimuli. As an infant develops, the first sense which comes under control is vision; these are the deepest, fastest, and most sophisticated structures in our brains. Static images are powerful, but moving images are completely gripping. Think of the pressures on our vision in the environment where we evolved; the search for food and for threats made vision very important. That is how most people can determine whether they've seen an old movie, when flipping channels late at night, within 5 seconds of seeing the footage. No one told you there would be a test on this later, but still we have this incredible ability. And it makes a large percentage of the population very susceptible to television advertising, which speaks directly to many of these deepest brain structures.

Aural senses develop next, adding sound to the infant's world. This sense builds on the visual sense and the infant begins to associate sounds with visual objects. As yet, we use very little sound in interface design, but we will be using it...

The Sense of Self comes with kinesthetic (body movement) awareness and a new level of higher-order thinking. The infant begins to control their own body, then to know their own limits, and to realize that they can/cannot control other objects around them. So the sense of self is a two edged cognitive tool, balanced by the Sense of Not-self, or otherness. The sense of self builds on visual and aural cues; so we see that higher order functions are based on earlier, simpler structures.

The final key cognitive structure builds on all of the above. Abstraction is the growing ability to take childhood elements and manipulate them as symbols. Spoken language is the principal method for abstract concept manipulation, but we all use other systems as well, such as currency, mathematics, and body language. We continue to build and use systems of abstraction throughout our lives.

2) The Human brain has evolved to create/impose order on chaos, to allow manipulation of environment.

If you get philosophical about it, you can easily argue that we live in a sea of energy. Photons bounce off molecules and have some of their energy absorbed, air moves in waves and we hear sound, the molecules of our fingers interact with other molecules and we feel touch. Of course, a lot of chemical/physical/organic phenomena occur just to get that energy, or the effects of that energy into our brains. But we don't think about energy absorption every time we see the color red, in fact, it took thousands of years to devise the physics model which "is" absorption. The point is, without the brain's ability to take all this energy and assign meaning to it, and then create metaphorical handles to manipulate those meanings, we would not be able to complete the simplest tasks because we would be overwhelmed with detail. See MacLuhan above. Instead we develop internal hierarchies of meaning and symbol as we learn to allow us to move through our day to day tasks without spending too much attention on our environment -- we have imposed our own vision of order onto our universe.

This ordering by labeling and rejection, like any useful tool, has good and bad uses. When we walk down the aisle of the grocery store and are able to find the correct brand of tomato paste without reading every can or bottle or box or bag, that is a good use. When we refuse to re-evaluate past values and assumptions in the face of new and contradictory information, that is a lazy thinking.

3) Without apparent order, the brain will set about creating order, even if only subconsciously. This consumes "bandwidth".

When faced with a new terrain of seemingly chaotic organization (like some web pages) the brain will begin searching for meaning and organization. This occurs on many levels, with some processes occurring beneath the level of consciousness. The brain will waste processing power searching for these missing relationships; this has been proven in experiments with reaction time and complex visual environments, reaction time goes down as the brain is occupied processing a complex (read chaotic) environment. The solution to this is to simplify the interface design, making tables clearly aligned, creating consistent navigation, and using whitespace and lines to create clear groupings of like information.

4) Abstraction is costly in terms of processing, and layers of abstraction are more costly.

An example of the power of the visual structures of the brain and layers of abstraction is the "Rooms of Animals" exercise, which I first heard Alan Kay discuss in 1990. If you have two rooms, one with walls filled with pictures of animals, the other with walls filled with names of animals, and you ask a volunteer to enter a room and find a specific animal, that subject will always find the picture faster, usually by a factor of 2 to 3. This is because the user dealing with names must read the word, recall associations (reverse abstraction to recall meaning), determine whether there is a fit, and only then accept or deny the term. On the other hand, a volunteer in the picture room can let their faster visual brain structure accept or reject the representations directly (while abstractions, the pictures are sufficiently visual to allow the low level, nonverbal, visual brain to make the comparison).

Use of slang, mnemonics, TV or literary metaphors, poetic descriptions, riddles, etc., all slow down an interaction even further since the user is now dealing with layers of abstraction (but it can make the experience richer, or more fun).

5) Humans think in three dominant modes: Visual, Aural, and Kinesthetic.

We all use three structural modes to interpret our world, rooted in the three earliest cognitive structures. But humans tend to select and reinforce one of those modes over time, and become more sensitive to information which is presented in their dominant mode (This is actually a separate branch of behavioral study called Neuro-Linguistic Programming, or NLP). The GUI interface is successful, in part, because it communicates in all three modes:

The GUI is Graphic, using visual representations of data and programs, this appeals to people with a visual bias. The majority of the human population is/are visually dominant. A clue to listen for is "I see what you're saying..."

The use of language, and some sound, appeals to Aural mode dominant users. The menu structures and written instructions in GUIs work on this level, and the hyperlinked aspect added to language by the Web is very powerful. Note that Aural users include language (an abstraction layer) as a working skill. "I'm listening...","What did they say?"

Finally, kinesthetic users, who are sensitive to body position, emotions, and movement through space find the mouse movements and apparent spacial relationships of GUIs appealing. "What did you do?","Where is it?"

Regardless of an individual user's biases, it is important to communicate in multiple modes whenever possible. This ensures that the interface will be effective for different groups, and that most users (who actually use all the modes regularly) will have redundant information to help them better understand the interface.



Common Page Problems in HTML I've made all of these mistakes. And lived to tell the tale.
Hop into the wayback machine headed for 1998... note that many of these issues are still with us today

More than three years of HTML design experience has knocked me around pretty well. Many things have gotten much better, but HTML still has a steep learning curve. Here are things we should all know better about designing for the web.
Use arguments for images...
Always use width and height tags so the browser can render the page before it finishes downloading the images. Yeah, it's a pain. But the pain is greater for users that wait and wait and wait for their modems to load a page, only to find it doesn't have what they want.
Avoid the

tag...
Use
 
instead, unless you are an advanced CSS jockey. The

tag will break any font formatting when it's properly read (per the HTML standards). Urg.
Use Relative font sizes...
A surprising number of web users have altered their default font sizes so that they are larger and easier to read. When you choose an absolute size you foil their desire to view information at a legible size.
Avoid bad backgrounds with poor text contrast...
Also remember to set the body bgcolor to be a similar color.
Check that spelling and grammar...
Also a pain. People take the information seriously (or not) when you take the extra time to check this over.
Use redundant navigation...
What do users want? To find related information? Sheesh. Sure, some viewers may get lost on large sites, but plan at least two ways to get to any page.
Check your pages in Netscape AND MSIE...
Brrrr. They really do look different sometimes. I also recommend Opera, because it has stricter HTML compliance. While you are at it, visit a friend and walk through the site with them. They'll have great comments.


A Brief Introduction to SIGMA: An Intelligent Visual Programming Environment for Scientific Modeling

Introduction and Motivation

Within both NASA and the scientific community at large, computer models are playing an increasingly important role in the conduct of science today. Scientists construct software models to analyze data, to validate theories, and to predict a whole variety of phenomena. Developing a new scientific model is a time-intensive and painstaking process. Usually, scientific models are implemented using a general-purpose computer programming language, such as FORTRAN. Implementation can involve writing large and complex programs that access multiple datasets and utilize numerous different statistical and numerical processing packages. Software development time for large scientific models can take on the order of many months to years of effort.

Although considerable resources must be expended to build a scientific model, for a variety of reasons it may difficult to share the completed model with colleagues in the scientific community. Model-sharing is highly desirable because it enables researchers to conserve resources and build upon each others' efforts in a synergistic fashion. Unfortunately, modeling code is typically low-level and idiosyncratic, and it may be difficult for anyone but the model's developer to understand. The relationship between the computations in the code and the actual physical situation being modeled may be obtuse and indecipherable. Furthermore, a great deal of important information about the various modeling assumptions made by the modeler is buried in the code and is very difficult to recover. Finally, documentation may be minimal or lacking altogether.


Despite these well-recognized problems and despite the acknowledged importance of scientific model-building, scientists today generally lack adequate software engineering tools to facilitate the development and sharing of modeling software.



The SIGMA modeling tool

We have constructed a prototype knowledge-based software development environment that makes it easier for scientists to construct, modify, share, and understand scientific models. The SIGMA (Scientists' Intelligent Graphical Modeling Assistant) system provides a type of "visual programming" environment customized for scientists. Rather than construct models using a conventional programming language, scientists use SIGMA's graphical interface to "program" visually using a high-level data flow modeling language. The vocabulary of this modeling language includes high-level scientific constructs (e.g., physical quantities, scientific equations, and datasets) rather than low-level programming constructs (e.g., arrays, loops, counters). Because SIGMA enables users to express their models using a natural vocabulary and an intuitive format, colleagues can more rapidly understand and modify the content of a model without assistance from the modeler. These same characteristics make SIGMA an excellent instructional environment for demonstrating the principles underlying a scientific model.

During the model development process, SIGMA takes on the role of a knowledgeable and active assistant to the scientist rather than a passive and uninformed subordinate. SIGMA assists the scientist during the model- building process and checks the model for consistency and coherency as it is being constructed. Using knowledge about the modeling problem and the scientific domain, SIGMA can automatically interpret the high-level scientific model as an executable program, freeing the scientist from error-prone implementation details. Users can test these models, conduct sensitivity analyses, plot results, and modify models -- all within the SIGMA environment.




--------------------------------------------------------------------------------
Figure 1. Data flow diagram representing computational dependencies in a model fragment.





--------------------------------------------------------------------------------



The visual data flow interface

Within SIGMA, the scientist views a computational model as a graphical structure called a data flow diagram, as illustrated in Figure 1. The data flow diagram represents the computational dependencies between the scientific quantities being modeled. By scanning the diagram, users can understand rapidly how one quantity is derived from others by applying a series of scientific equations.

The data flow graph in Figure 1 consists of two types of nodes: equation nodes and quantity nodes. The equation nodes are depicted in thick-bordered boxes, while the quantity nodes are shown in thin-bordered boxes. The direction of computation in the data flow graph is from right to left. The quantities at the extreme right represent known input data or exogenous quantities in the model. These quantities flow toward one or more equation nodes, where they are used in an equation formula to yield an output quantity. In turn, these intermediate quantities flow toward other equation nodes, and the entire computation cascades along as new quantities are computed and passed forward to new equations. The entire model execution culminates in the production of one or more final output quantities at the extreme left of the diagram. To compute a model output, the user clicks with a mouse on the "Compute" button associated with that output quantity node. (The "Compute" button is only active if all the required input quantities for the computation have been properly entered.)



Accessing model information

Users can access a wide variety of documentation about the quantities and equations in the model by navigating through the data flow diagram. For example, by clicking on the "Info" button of an equation node, the user gets detailed information about the equation, including the equation formula and its inputs and outputs. Figure 2 illustrates the information window associated with the "Density computation" Equation. In addition to the formula and a brief description of the equation, note how each symbol in the formula is described in terms of the experimental situation being modeled. For instance, the symbol N represents the number density of a parcel of gases in the atmosphere of Titan, while R and p represent the refractivity and polarizability associated with a Voyager radiation source interacting with the atmospheric parcel.




--------------------------------------------------------------------------------
Figure 2. Information window describing "Density Computation" equation




--------------------------------------------------------------------------------


By clicking on the "Citation" button in the information window (Figure 2), the user can access a literature citation for the Density Computation equation. This citation is shown in Figure 3. If the user wants to go further and inspect the actual citation, the "Text" button brings up a scanned bitmap image of a relevant portion of the cited material.




--------------------------------------------------------------------------------
Figure 3. Citation information associated with "Density Computation" equation



--------------------------------------------------------------------------------


Clicking the "Info" button on a quantity node also provides useful information. Suppose the user has clicked the "Compute" button on the output density quantity at the extreme left of the data flow diagram in Figure 1. SIGMA will compute the model output and subsequently the user can view the results by clicking "Info". This action brings up the window shown in Figure 4. Because density is a gridded quantity, the system displays the value for each altitude gridpoint. The user can plot the values by clicking the "Plot" button at the bottom of the window. If the user wants to see the results converted into a different set of units, he or she simply clicks on the displayed units and specifies new units. Conversion is handled automatically by SIGMA.




--------------------------------------------------------------------------------
Figure 4. Calculated values for number density



--------------------------------------------------------------------------------

Modifying the model

Aside from executing a model, users may wish to modify the model or to conduct a "what-if" type of analysis. SIGMA facilitates modification because all changes are made via the high-level data flow interface. No low-level programming changes need to be made by the user to modify the model. To change an input value, the user clicks the "Input" button on an input quantity node and enters a new value. Any previously-computed value that depends on this value is then invalidated and the user must request recomputation if desired.

A more fundamental type of modification consists of changing one or more equations used to compute quantities in the model. This is done by clicking the right arrow button on the node representing the output quantity of the equation to be modified. For example, if the user wishes to compute number density using a different equation than the "Density Computation" shown in Figure 2, he or she clicks the right arrow button on the number density node and gets a menu of alternative equations to apply (Figure 5). These equations are fetched from SIGMA's equation library. Because SIGMA has a record of the conditions under which each equation in its library is applicable, SIGMA only presents the user with viable alternatives. These alternatives are filtered from among the set of over 150 different scientific equations in SIGMA's library. (Note that SIGMA's library contains black box subroutines, as well as explicit scientific equations. Users may add their favorite FORTRAN or C subroutines to the library and these can be inserted into SIGMA data flow diagrams.) If the user selects a different equation from the menu, SIGMA will modify the data flow diagram to reflect the change.




--------------------------------------------------------------------------------
Figure 5. Applicable equations



--------------------------------------------------------------------------------


For example, if the user decides to calculate density by applying the Ideal Gas Law rather than the Density Computation, the data flow graph is modified as shown in Figure 6. The Ideal Gas Law requires pressure and temperature as inputs to compute density. (The value of Boltzmann's Constant is already stored in SIGMA's knowledge base, so the user does not need to enter its value.) The user must now decide to either enter values for the required pressure and temperature inputs, or to select an equation to compute these input quantities. As with the number density computation above, the relevant equations can be viewed by clicking the right arrow button for these quantity nodes. The process of extending the data flow graph to the right of the Ideal Gas Law continues recursively until each of its inputs can be computed from known data.





--------------------------------------------------------------------------------
Figure 6. Modified data flow graph after applying "Ideal Gas Law" equation




--------------------------------------------------------------------------------




SIGMA's critical resource:

Science Knowledge

There are a number of different visual programming tools available to scientists today, including tools for image processing and scientific visualization (Khoros [Khoros, 1992], AVS [AVS, 1992], SGI's Explorer [Explorer, 1993], Iconicode/IDF [Iconicode/IDF, 1992]), tools for scientific instrument design (LabVIEW [LabVIEW, 1992]), and tools for modeling or simulation (STELLA/IThink [STELLA/IThink, 1992], Extend [Extend, 1992]). Although these tools enforce simple syntactic checks on data flow graphs and perform some type-checking, none of these tools has an "understanding" of what the data flow program is doing or whether the operations on the data make sense. Because these software tools have virtually no information about the application domain, they have no basis upon which to evaluate the appropriateness of a data flow program for solving a particular application problem. As a result, it is possible with these tools to create a syntactically valid data flow graph that is semantically incoherent and fails to solve the intended problem.

SIGMA is unique because it utilizes an extensive knowledge base of information about the scientific domain to assist the user during the modeling process. SIGMA's knowledge base contains both general-purpose science knowledge (e.g., descriptions of widely-used quantities, scientific units, scientific constants, equations, scientific concepts) and problem-specific knowledge (information related to the specific modeling problem and scientific discipline). The general-purpose knowledge comes as a standard reusable component of SIGMA, while the model-specific knowledge must be added by the user to support each new modeling domain.

Utilizing its extensive knowledge base, SIGMA can provide the following types of unique knowledge-based support for the model-builder:

* Equation applicability testing: SIGMA actively screens each equation in its library to determine whether it is applicable in the current modeling situation. The user only sees a viable set of candidate equations.

* Model consistency checks: During the model-building process, SIGMA works to maintain the global consistency and scientific coherence of the evolving model.

* Equation entry error-checking : When entering new scientific equations, SIGMA ensures dimensional consistency.

* Automated scientific units maintenance: During model execution, scientific conversion is done automatically to maintain consistency.

* Reusable libraries: SIGMA's knowledge base includes reusable libraries of scientific equations, quantities, and constants.



Establishing the modeling context

Aside from its extensive knowledge about the scientific domain, SIGMA has available a detailed description of the background context against which the modeling activity occurs. This background knowledge about the modeling problem is essential for proper understanding and communication with the scientist.

One of the first and most important steps taken by a scientific modeler is to abstract a given real-world modeling problem by casting it in terms of a set of equations. Thereafter, the problem can be solved purely using mathematics. Unfortunately, as a result of this initial abstraction step, an important link back to the original problem has vanished; subsequently, model users may have difficulty making the connection between the equations and the real-world modeling context. Because the contextual information that gave rise to the set of equations is unavailable to these users, they may have a hard time understanding, interpreting, and modifying the model. Similarly, without the appropriate contextual information, SIGMA cannot understand and assist users with their modeling tasks.

Within SIGMA, we provide this essential connection to the modeling context by linking the numeric computation depicted in the data flow diagram with an object-oriented description of the physical system being modeled. We call this object-oriented description the modeling scenario.




--------------------------------------------------------------------------------
Figure 7. Modeling scenario for Titan/Voyager encounter



--------------------------------------------------------------------------------


Figure 7 illustrates the modeling scenario upon which the data flow diagram in Figure 1 is based. The diagram represents one portion of a model intended to compute an atmospheric profile of Saturn's moon Titan based on radio signals sent from the Voyager 1 spacecraft during its encounter with Titan in 1980. The scenario in Figure 7 describes all details of the Voyager/Titan encounter relevant to the modeling task. Associated with the Titan object in the Figure is an Atmospheric Grid of Location objects. At each location, there is an Atmospheric Parcel, which represents the mixture of gases at that location. Each parcel is composed of pure gas Constituents, such as nitrogen. The Voyager Signal originates from the Voyager Spacecraft and subsequently passes through the parcel, where it causes an energy-matter interaction represented by the Signal/Parcel Interaction object. Associated with each of these objects is a set of quantity attributes relevant to the modeling problem. Some of these attributes have known or assumed values, while other attributes are computed by applying scientific equations to the known attributes.

SIGMA relates the abstract numeric computation specified in a data flow graph to the real-world modeling context by linking each quantity node in the data flow diagram with a specific attribute of some object in the modeling scenario. For example, the node representing the number density quantity in Figure 1 corresponds to an attribute called "number-density" associated with the atmospheric parcel object in Figure 2, whereas the refractivity quantity corresponds to the "refractivity" attribute of the energy-matter interaction between the signal and the parcel.

SIGMA maintains useful information about each of the objects represented in the modeling scenario and their associated attributes. Each attribute has a text description and a set of associated scientific units. There is a hierarchy of object types, and each specific object instance in the scenario inherits information and attributes from more general objects in the hierarchy. For example, the Titan Atmospheric Parcel object is a specialization of the more general Physical Entity object. All subclasses of physical entity inherit attributes such as mass, density, and temperature, for example. By utilizing object-oriented techniques, SIGMA's infrastructure is easily modified to accommodate new scientific domains.

Two domains we have worked on extensively are planetary atmospheric modeling and terrestrial forest carbon-water transport modeling. Although these two domains seem quite different, they share in common some basic object and attribute definitions. SIGMA exploits these commonalities to reduce the user's burden of providing information to the system.



Status and Limitations

SIGMA has been developed in close collaboration with scientists in planetary sciences and ecosystem sciences at NASA Ames Research Center. We have successfully used SIGMA to reimplement and extend portions of two scientific models reported in the literature: TGM (Titan Greenhouse Model [McKay, Pollack, & Courtin, 1989]), and Forest-BGC (Forest Biogeochemical Cycles [Running & Coughlan, 1988]).

SIGMA is a prototype system and is still undergoing development and testing. The current version of SIGMA is being tested by several different types of users:

* model developers -- people who develop new models from scratch;

* model users -- people who primarily use models developed by others but who may need to make some modifications;

* model observers -- people interested in understanding a model, primarily for educational or training purposes.

SIGMA has shown promise for all three categories of users, but currently, its limitations are most serious with respect to the model developer.

SIGMA's main limitation is on the types of mathematical models that can be built within the framework. SIGMA currently handles non-coupled algebraic and first-order ordinary differential equations. However, many models require the use of simultaneous equations, and these cannot be handled easily within current system, although extensions are planned to enable their use.

SIGMA is written in CommonLISP and GINA, a Motif-based graphical user interface package. SIGMA runs on a Sun workstation.