Hi.. I will be posting all the testing related stuff here. The content posted here is a collection from different websites.

Saturday, June 14, 2008

some concepts:

HTTP
The Hypertext Transfer Protocol is the set of rules for exchanging files (text, graphic images, sound, video, and other multimedia files) on the World Wide Web.
Hypertext Transfer Protocol (HTTP) is the method used to transfer or convey information on the World Wide Web. It is a patented open internet protocol whose original purpose was to provide a way to publish and receive HTML pages.

HTTPS
HTTP Over SSL. Protocol enabling the secured transmission of Web pages.
Https is a URI scheme which is syntactically identical to the http: scheme normally used for accessing resources using HTTP. Using an https: URL indicates that HTTP is to be used, but with a different default port and an additional encryption/authentication layer between HTTP and TCP. This system was invented by Netscape Communications Corporation to provide authentication and encrypted communication and is widely used on the Web for security-sensitive communication, such as payment transactions.

How secure is HTTPS over HTTP?
HTTPS is significantly more secure than http. The main three differences are
http doesn't encrypt. Https encrypts all the data going to the server. In either case someone can intercept the data between you and the server, but the encryption with https ensures that they can't do anything with it.
Http doesn't care what server you connect to. Https verifies the server against the certificate. If you double click on the padlock icon in internet explorer (To tell if your Internet Explorer browser is viewing a secure web site, look in the lower right part of the window. There is a small box in the frame of the window to the left of the area that describes which Zone you are in (usually the Internet zone, with a globe icon). If you see a yellow padlock icon, then the web site you are viewing is a "secure web site." If the box is empty, then the web site does not have a secure connection with your browser.) You can see who the server belongs to and be confident that your card details are going to the right people. Better than that if the server address and certificate disagree, your browser will warn you that they don't match and gives you the opportunity to leave before you've given any information away.
Http pages are stored on your computer and internet caches. The pages load faster, but they are stored on systems that you potentially don't have control over (your ISP's caching proxy or that internet cafe computer for example). Https pages aren't cached anywhere. Therefore there are no copies of your data hanging around to be retrieved later.

SSL
Short for Secure Sockets Layer, a protocol developed by Netscape for transmitting private documents via the Internet. SSL uses a cryptographic system that uses two keys to encrypt data − a public key known to everyone and a private or secret key known only to the recipient of the message. Both Netscape Navigator and Internet Explorer support SSL, and many Web sites use the protocol to obtain confidential user information, such as credit card numbers. By convention, URLs that require an SSL connection start with https: instead of http:
Another protocol for transmitting data securely over the World Wide Web is Secure HTTP (S-HTTP). Whereas SSL creates a secure connection between a client and a server, over which any amount of data can be sent securely, S-HTTP is designed to transmit individual messages securely. SSL and S-HTTP, therefore, can be seen as complementary rather than competing technologies. Both protocols have been approved by the Internet Engineering Task Force (IETF) as a standard.

SSH
Developed by SSH Communications Security Ltd., Secure Shell is a program to log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It provides strong authentication and secure communications over insecure channels. It is a replacement for rlogin, rsh, rcp, and rdist.
SSH protects a network from attacks such as IP spoofing, IP source routing, and DNS spoofing. An attacker who has managed to take over a network can only force ssh to disconnect. He or she cannot play back the traffic or hijack the connection when encryption is enabled.
When using ssh's slogin (instead of rlogin) the entire login session, including transmission of password, is encrypted; therefore it is almost impossible for an outsider to collect passwords.
SSH is available for Windows, Unix, Macintosh, and OS/2, and it also works with RSA authentication.

IP spoofing
A technique used to gain unauthorized access to computers, whereby the intruder sends messages to a computer with an IP address indicating that the message is coming from a trusted host. To engage in IP spoofing, a hacker must first use a variety of techniques to find an IP address of a trusted host and then modify the packet headers so that it appears that the packets are coming from that host.
Newer routers and firewall arrangements can offer protection against IP spoofing.

Router
A device that forwards data packets along networks. A router is connected to at least two networks, commonly two LANs or WANs or a LAN and its ISPs network. Routers are located at gateways, the places where two or more networks connect.
Routers use headers and forwarding tables to determine the best path for forwarding the packets, and they use protocols such as ICMP to communicate with each other and configure the best route between any two hosts.
Very little filtering of data is done through routers.

HTTP server
A computer permanently connected to the Internet on which websites are stored and can be accessed at any time.

Web Server
A computer, including software package that provides a specific kind of service to client software running on other computers. More specifically, a server is a computer that manages and shares web based applications accessible anytime from any computer connected to the Internet.
A Web Server is a computer on the World Wide Web (connected to the Internet Backbone) that stores HTML documents that can be retrieved via a Web browser.

Web browser
Is a software application used to locate and display Web pages.
A browser is an application that provides a way to look at and interact with all the information on the World Wide Web. Technically, a web browser uses HTTP to make requests of web servers throughout the Internet on behalf of the browser user.
Mosaic was the first browser.
A web browser is a software application that enables a user to display and interact with text, images, and other information typically located on a web page at a website on the World Wide Web or a local area network. Text and images on a web page can contain hyperlinks to other web pages at the same or different websites. Web browsers allow a user to quickly and easily access information provided on many web pages at many websites by traversing these links.
Popular browsers available for personal computers include Mozilla Firefox, Microsoft Internet Explorer, Opera, Netscape, and Apple Safari. Web browsers are the most commonly used type of HTTP user agent. Although browsers are typically used to access the World Wide Web, they can also be used to access information provided by web servers in private networks or content in file systems.

World Wide Web
The World Wide Web ("WWW" or simply the "Web") is a global, read-write information space. Text documents, images, multimedia and many other items of information, referred to as resources, are identified by short, unique, global identifiers called Uniform Resource Identifiers (URIs) so that each can be found, accessed and cross-referenced in the simplest possible way.
The term is often mistakenly used as a synonym for the Internet itself, but the Web is actually something that is available over the Internet, just like e-mail and many other Internet services.

The Difference between the Internet and the World Wide Web
Many people use the terms Internet and World Wide Web (a.k.a. the Web) interchangeably, but in fact the two terms are not synonymous. The Internet and the Web are two separate but related things.
The Internet is a massive network of networks, a networking infrastructure. It connects millions of computers together globally, forming a network in which any computer can communicate with any other computer as long as they are both connected to the Internet. Information that travels over the Internet does so via a variety of languages known as protocols.
The World Wide Web, or simply Web, is a way of accessing information over the medium of the Internet. It is an information-sharing model that is built on top of the Internet. The Web uses the HTTP protocol, only one of the languages spoken over the Internet, to transmit data. Web services, which use HTTP to allow applications to communicate in order to exchange business logic, use the Web to share information. The Web also utilizes browsers, such as Internet Explorer or Netscape, to access Web documents called Web pages that are linked to each other via hyperlinks. Web documents also contain graphics, sounds, text and video.
The Web is just one of the ways that information can be disseminated over the Internet. The Internet, not the Web, is also used for e-mail, which relies on SMTP, Usenet news groups, instant messaging and FTP. So the Web is just a portion of the Internet, albeit a large portion, but the two terms are not synonymous and should not be confused.

XHTML
eXtensible HyperText Markup Language; a reformulation of HTML and the successor to it, allowing a true separation between the content of a Web page and its manner of presentation.
It is a hybrid between HTML and XML specifically designed for Net device displays.
XHTML is a markup language written in XML; therefore, it is an XML application.

HTML
HTML (Hypertext Mark-up Language) is the simple programming language inserted in a file intended for display on the World Wide Web. The mark-up tells a web browser how to format and display a web page's content.
HyperText Markup Language (HTML) is a markup language designed for the creation of web pages with hypertext and other information to be displayed in a web browser. HTML is used to structure information — denoting certain text as headings, paragraphs, lists and so on — and can be used to describe, to some degree, the appearance and semantics of a document.
HyperText Markup Language, the authoring language used to create documents on the World Wide Web. HTML defines the structure and layout of a Web document by using a variety of tags and attributes.

Paging
The action of transferring instructions, data, or both between real storage and external page storage.
A technique used by virtual memory operating systems to help ensure that the data you need is available as quickly as possible. The operating system copies a certain number of pages from your storage device to main memory. When a program needs a page that is not in main memory, the operating system copies the required page into memory and copies another page back to the disk. One says that the operating system pages the data. Each time a page is needed that is not currently in memory, a page fault occurs.
Paging memory allocation algorithms divide computer memory into small partitions, and allocates memory using a page as the smallest building block.
A key advantage that this method has is that the memory allocated to a program does not have to be contiguous, and because of that, there is very little external fragmentation - thus little memory is wasted.
Because programs rarely use all parts of their code and data at one point in time, the concept of virtual memory can be implemented by writing pages to disk, and reading pages from disk when they are needed. This is another advantage of paging over other memory allocation techniques.
This type of virtual memory is called paged virtual memory. Another form of virtual memory is segmented virtual memory.

Virtual memory
An imaginary memory area supported by some operating systems (for example, Windows but not DOS) in conjunction with the hardware. You can think of virtual memory as an alternate set of memory addresses. Programs use these virtual addresses rather than real addresses to store instructions and data. When the program is actually executed, the virtual addresses are converted into real memory addresses. The purpose of virtual memory is to enlarge the address space, the set of addresses a program can utilize. For example, virtual memory might contain twice as many addresses as main memory. A program using all of virtual memory, therefore, would not be able to fit in main memory all at once. Nevertheless, the computer could execute such a program by copying into main memory those portions of the program needed at any given point during execution. To facilitate copying virtual memory into real memory, the operating system divides virtual memory into pages, each of which contains a fixed number of addresses. Each page is stored on a disk until it is needed. When the page is needed, the operating system copies it from disk to main memory, translating the virtual addresses into real addresses. The process of translating virtual addresses into real addresses is called mapping. The copying of virtual pages from disk to main memory is known as paging or swapping.

Indexing
The process of converting a collection of data into a database suitable for easy search and retrieval. Often used to refer to the automatic selection and compilation of ‘meaningful’ words from a website into a list that can be used by a search system to retrieve pages. This list is more properly called a concordance. As this procedure involves no intellectual effort indexers distinguish their own work by calling it intellectual indexing, manual indexing, human indexing, or back-of-book-style indexing.

Differences between XML and HTML







Multitasking
A mode of operation offered by an operating system in which a computer works on more than one task or application at a time. Also can describe people who excel at juggling several tasks at once, as opposed to those who work from task to task in a linear fashion.
The ability to execute several parts of a program in parallel (or apparently in parallel).
The ability of an operating system to run more than one program simultaneously, allowing the user to easily switch and share information between applications.

Multithreading
A process that allows a multitasking operating system to multitask subportions (threads) of an application smoothly.
A form of parallelism where multiple threads run concurrently and communicate via shared memory.
A capability of a processor core to switch to another processing thread, i.e. a set of logically connected instructions that make up a (part of) a process. This capability is used when a process thread stalls, for instance because necessary data are not yet available. Switching to another thread that has instructions that can be executed will yield a better processing utilization.

Multiprocessing
Refers to a computer system's ability to support more than one process (program) at the same time. Multiprocessing operating systems enable several programs to run concurrently. UNIX is one of the most widely used multiprocessing systems, but there are many others, including OS/2 for high-end PCs. Multiprocessing systems are much more complicated than single-process systems because the operating system must allocate resources to competing processes in a reasonable manner. Involves more than one processor within a computer for processing more than one program simultaneously.

Globalization Testing
Describes how globalization testing ensures the application can function in any culture/locale. The goal of globalization testing is to make sure that the code can handle all international support without breaking functionality that would cause either data loss or display problems. Globalization testing checks proper functionality of the product with any of the culture/locale settings using every type of international input possible.

Localizability Testing
Describes how localizability testing verifies that you can easily translate the user interface of the program to any target language without re-engineering or modifying code.

Localization Testing
Localization translates the product UI and occasionally changes some initial settings to make it suitable for another region. Localization testing checks the quality of a product's localization for a particular target culture/locale. This test is based on the results of globalization testing, which verifies the functional support for that particular culture/locale. Localization testing can be executed only on the localized version of a product. Localizability testing does not test for localization quality.

BYTECODE
Machine-independent code generated by the Java compiler and executed by the Java interpreter.The compiled format for Java programs. Once a Java program has been converted to bytecode, it can be transferred across a network and executed by Java Virtual Machine (VM). Bytecode files generally have a .class extension.
A name given to a class of language intended for easy evaluation by a software interpreter. Bytecodes are most common in interpreted languages (such as Prolog, elisp, perl and many of the variants of ML), and get their name from the common practice of encoding their instructions as single bytes, to allow the interpreter to quickly look up an instruction's meaning. ...

Overloading
Giving multiple meanings to the same name, but making them distinguishable by context. For example, two procedures with the same name are overloading that name as long as the compiler can determine which one you mean from contextual information such as the type and number of parameters that you supply when you call it.


Overriding
Providing a declaration which matches another declaration of the same name, thereby hiding the existing declaration.
Providing a different implementation of a method in a subclass of the class that originally defined the method.
Overriding occurs when a method definition in the class definition of a subclass redefines a method that would otherwise be inherited from a superclass definition. The overriding method must have the same identifier and signature (including return type) as the method in the superclass definition.

Apache
Apache is an open-source (source code is freely available and can be shared) HTTP Web server software. It is currently the most popular web server on the Net. It is usually run on Unix operating system versions like Linux or BSD, but it can also be run on Windows. It is a full-featured server with many powerful add-ons freely available. Apache's major competitor is Microsoft's IIS.
Apache is a freely available Unix based web server. It is currently the most commonly used server on Internet connected sites. Its genesis was in early 1995 when developers of some high visibility web sites decided to pool their patches and enhancements to the NCSA/1.3 server to create a patchy server. The project has since gained considerable momentum.It supports the PERL and PHP languages.

IP (Internet Protocol)
A data-oriented protocol used for communicating data across a packet-switched internetwork.
The Internet Protocol (IP) is the method or protocol by which data is sent from one computer to another on the Internet. Each computer (known as a host) on the Internet has at least one IP address that uniquely identifies it from all other computers on the Internet. When you send or receive data (for example, an e-mail note or a Web page), the message gets divided into little chunks called packets. Each of these packets contains both the sender's Internet address and the receiver's address. Any packet is sent first to a gateway computer that understands a small part of the Internet. The gateway computer reads the destination address and forwards the packet to an adjacent gateway that in turn reads the destination address and so forth across the Internet until one gateway recognizes the packet as belonging to a computer within its immediate neighborhood or domain. That gateway then forwards the packet directly to the computer whose address is specified.

Gateway
A gateway is a network point that acts as an entrance to another network. On the Internet, a node or stopping point can be either a gateway node or a host (end-point) node. Both the computers of Internet users and the computers that serve pages to users are host nodes. The computers that control traffic within your company's network or at your local Internet service provider (ISP) are gateway nodes.
In the network for an enterprise, a computer server acting as a gateway node is often also acting as a proxy server and a firewall server. A gateway is often associated with both a router, which knows where to direct a given packet of data that arrives at the gateway, and a switch, which furnishes the actual path in and out of the gateway for a given packet.



IP ADDRESS
Each machine connected to the Internet has an address known as an Internet Protocol address (IP address). The IP address takes the form of four numbers separated by dots, for example: 123.45.67.890
An IP address is a 32-bit number that identifies each sender or receiver of information that is sent in packets across the Internet.
An IP address has two parts: the identifier of a particular network on the Internet and an identifier of the particular device (which can be a server or a workstation) within that network. To be part of the Internet, an organization needs an Internet network number, which it can request from the Network Information Center (NIC). This unique network number is included in any packet sent out of the network onto the Internet.
In addition to the network address or number, information is needed about which specific machine or host in a network is sending or receiving a message. So the IP address needs both the unique network number and a host number (which is unique within the network). (The host number is sometimes called a local or machine address.)
Part of the local address can identify a subnetwork or subnet address, which makes it easier for a network that is divided into several physical subnetworks (for examples, several different local area networks or ) to handle many devices.
Effectively, the IP address then contains three parts: the network number, the subnet number, and the machine number.
IP Address Classes and Their Formats
Since networks vary in size, there are four different address formats or classes to consider when applying to NIC for a network number:
• Class A addresses are for large networks with many devices.
• Class B addresses are for medium-sized networks.
• Class C addresses are for small networks (fewer than 256 devices).
• Class D addresses are multicast addresses.
The first few bits of each IP address indicate which of the address class formats it is using
What is a firewall?
A system designed to prevent unauthorized access to or from a private network. Firewalls can be implemented in both hardware and software, or a combination of both. Firewalls are frequently used to prevent unauthorized Internet users from accessing private networks connected to the Internet, especially intranets. All messages entering or leaving the intranet pass through the firewall, which examines each message and blocks those that do not meet the specified security criteria.
There are several types of firewall techniques:
• Packet filter: Looks at each packet entering or leaving the network and accepts or rejects it based on user-defined rules. Packet filtering is fairly effective and transparent to users, but it is difficult to configure. In addition, it is susceptible to IP spoofing.
• Application gateway: Applies security mechanisms to specific applications, such as FTP and Telnet servers. This is very effective, but can impose performance degradation.
• Circuit-level gateway: Applies security mechanisms when a TCP or UDP connection is established. Once the connection has been made, packets can flow between the hosts without further checking.
• Proxy server: Intercepts all messages entering and leaving the network. The proxy server effectively hides the true network addresses.
In practice, many firewalls use two or more of these techniques in concert.
A firewall is considered a first line of defense in protecting private information. For greater security, data can be encrypted.
A firewall is a hardware or software solution to enforce security policies. In the physical security analogy, a firewall is equivalent to a door lock on a perimeter door or on a door to a room inside of the building
- A gateway which permits only authorized users such as those with a key or access card to enter. A firewall has built-in filters that can disallow unauthorized or potentially dangerous material from entering the system. It also logs attempted intrusions. Gateway that limits access between networks in accordance with local security policy.

Difference between firewall and proxy in networking?
The word proxy means "to act on behalf of another," and a proxy server acts on behalf of the client and the server. All requests from the clients to the Internet go to the proxy server first. The proxy evaluates them, and if allowed, re-establishes the requests on the outbound side to the Internet. Likewise, responses or initial requests coming from the Internet go to the proxy server to be evaluated. The proxy then talks to the client. Both client and server think they are communicating with one another, but, in fact, are dealing only with the proxy.
Whereas a firewall is a piece of hardware and/or software which functions in a networked environment to prevent some communications forbidden by the security policy.
Proxy may refer to something which acts on behalf of something else.
Proxy servers have two main purposes:
• Improve Performance: Proxy servers can dramatically improve performance for groups of users. This is because it saves the results of all requests for a certain amount of time.
• Filter Requests: Proxy servers can also be used to filter requests. For example, a company might use a proxy server to prevent its employees from accessing a specific set of Web sites.

What’s the difference between a proxy ip address and my comp address?
For some people, when they connect to the Internet, they have to connect through a proxy server. This server has its own address on the Internet, the proxy address.
Behind this is your computer, which has its own address.
It happens that some sites that "suggest" they tell you what your IP address is, actually report back what your proxy's IP address is and not your computer. This 'can' break all sorts of software and forwarding techniques for you.
There is no way for us, the public to get hold of an IP address from an email. We can see who it was routed through but other than that you need to ask the originating ISP and the only people with the power to do that are government agencies.

Subnet
A subnet (short for "subnetwork") is an identifiably separate part of an organization's network. Typically, a subnet may represent all the machines at one geographic location, in one building, or on the same local area network (LAN). Having an organization's network divided into subnets allows it to be connected to the Internet with a single shared network address. Without subnets, an organization could get multiple connections to the Internet, one for each of its physically separate subnetworks, but this would require an unnecessary use of the limited number of network numbers the Internet has to assign. It would also require that Internet routing tables on gateways outside the organization would need to know about and have to manage routing that could and should be handled within an organization.



Cache
A memory area where frequently accessed data can be stored for rapid access.
Memory that holds copies of recently accessed data. Several Web browsers keep recently viewed pages in a cache so users can return to them quickly without suffering network delays. (See also)

Cookie
A very small text file placed on your hard drive by a Web Page server. It is essentially your identification card, and cannot be executed as code or deliver viruses. It is uniquely yours and can only be read by the server that gave it to you.
A message given to a Web browser by a Web server. The browser stores the message in a text file. The message is then sent back to the server each time the browser requests a page from the server.
The main purpose of cookies is to identify users and possibly prepare customized Web pages for them. When you enter a Web site using cookies, you may be asked to fill out a form providing such information as your name and interests. This information is packaged into a cookie and sent to your Web browser which stores it for later use. The next time you go to the same Web site, your browser will send the cookie to the Web server. The server can use this information to present you with custom Web pages. So, for example, instead of seeing just a generic welcome page you might see a welcome page with your name on it. The name cookie derives from UNIX objects called magic cookies. These are tokens that are attached to a user or program and change depending on the areas entered by the user or program.

session cookie
Also called a transient cookie, a cookie that is erased when the user closes the Web browser. The session cookie is stored in temporary memory and is not retained after the browser is closed. Session cookies do not collect information from the user’s computer. They typically will store information in the form of a session identification that does not personally identify the user.

persistent cookie
Also called a permanent cookie, or a stored cookie, a cookie that is stored on a user’s hard drive until it expires (persistent cookies are set with expiration dates) or until the user deletes the cookie. Persistent cookies are used to collect identifying information about the user, such as Web surfing behavior or user preferences for a specific Web site.

Q. How to See the Code in a Cookie:
A. Just click on a cookie to open it. You'll see a short string of text and numbers. The numbers are your identification card, which can only be seen by the server that gave you the cookie.
Q. A Cookie's Purpose is:
A. To tell the server that you returned to that Web page.

History
(Internet Browser) - Stores the internet addresses (URLs) of the web sites you have visited.


Spyware
Spyware refers to a broad category of malicious software designed to intercept or take partial control of a computer's operation without the informed consent of that machine's owner or legitimate user. In simpler terms, Spyware is a type of program that watches after what users do with their computer and then send this information to a hacker over the internet. Spyware can collect many different types of information about a user. More benign programs can attempt to track what types of websites a user visits and send this information to an advertisement agency. More malicious version can try to record what a user types to try to intercept passwords or credit card numbers. Yet other versions simply launch popups with advertisements.
Spyware differs from viruses and worms in that it does not usually self-replicate. Like many recent viruses, however, spyware – by design – exploits infected computers for commercial gain. Typical tactics furthering this goal include delivery of unsolicited pop-up advertisements; theft of personal information (including financial information such as credit card numbers); monitoring of Web-browsing activity for marketing purposes; or routing of HTTP requests to advertising sites.

Webserver
The term web server can mean one of two things:
1. A computer responsible for serving web pages, mostly HTML documents, via the HTTP protocol to clients, mostly web browsers.
2. A software program that is working as a daemon serving web documents.


Virus
In computer security technology, a virus is a self-replicating program that spreads by inserting copies of itself into other executable code or documents.
A virus is a program written to cause mischief or damage to a computer system. A mild virus might only be a slight nuisance, or even amusing. However, most viruses do damage, whether to your files, your registry, or even your hardware.


Worm
A software program capable of reproducing itself that can spread from one computer to the next over a network; "worms take advantage of automatic file sending and receiving features found on many computers"

Trojan
A program that appears desirable but actually contains something harmful;
The program pretends to do one thing (like claim to be a picture) but actually does damage when you start it (it can completely erase your files). Trojan horses cannot replicate automatically.

Process
A process is a running instance of a program, including all variables and other state. It consists of a virtual memory address space, state (registers, stack, variables, etc), program code, and other operating system resources.
A process can have several threads running concurrently

Thread
The basic unit of program execution. A process can have several threads running concurrently, each performing a different job, such as waiting for events or performing a time-consuming job that the program doesn't need to complete before going on. When a thread has finished its job, the thread is suspended or destroyed. Threads are a way for a program to split itself into two or more simultaneously running tasks. The distinctions between threads and processes differ from one operating system to another, but in general, threads are created and share resources in a different way than processes. Threads are distinguished from traditional multi-tasking operating system processes in that processes are typically independent, carry considerable state information, have separate address spaces, and interact only through system-provided inter-process communication mechanisms. Multiple threads, on the other hand, typically share the state information of a single process, and share memory and other resources directly. Context switching between threads in the same process is typically faster than context switching between processes.

What is the difference between WAVE and MP3 files?
An older music format, WAV was designed by Microsoft to play short snippets of sound on any audio-enabled computer. Since Windows 3.1, WAV has been the native format for sound within the Windows environment. As a result, WAV files abound on the Web, and almost every browser has built-in WAV playback support.
The WAV file format is very basic. Unlike MP3 and other compressed formats, WAVs are just digitized sound samples. They're bulky, but simple; any computer can play them, and they sound fine.
MP3 stands for MPEG-1 Audio Layer 3. The MPEG process compresses a sound sequence into a very small file, while retaining its original quality. How? By being very selective and eliminating certain sound frequencies that can't be heard by the human ear. The format compresses the file to approximately 1/12 the size of the original file, making it quicker to download or share with a friend.
Though they both sound fine, the differences between the two file formats are quite profound. WAVs are much bulkier than MP3s, but require no additional software to play. MP3s require special players such as Napster or WinAmp. MP3s are better suited for swapping songs over the Web, while WAVs work better for audio-enhanced web sites. The choice is yours.


The Windows System Registry

What Is a Windows System Registry?
The system registry is one of the most important parts of a Windows-based computer system. Not to be tampered with lightly, the registry is a system-defined database used by the Windows operating system to store configuration information. Most Windows applications write data to the registry during installation and system components store and retrieve configuration data through the registry. The data stored in the registry varies according to the version of Microsoft Windows.

Registry Structure: The Tree, Nodes and Keys
The data is stored in the registry in a tree structure format, for those who have never opened the Registry Editor, you'd find its layout is similar to what you would see when you open your Windows Explorer. Each node within the registry tree contains a key which may have both subkeys and data entries (called values). Depending on the application you run, the application may need only the associated key while others may need the value data set for that specific key. A hive in the registry is a group of keys, subkeys, and values in the registry that has a set of supporting files containing backups of its data. The Windows boot process automatically retrieves data from these supporting files.

Key
A key is a field that you use to sort data. It can also be called a key field, sort key, index, or key word. For example, if you sort records by age, then the age field is a key. Most database management systems allow you to have more than one key so that you can sort records in different ways. One of the keys is designated the primary key, and must hold a unique value for each record. A key field that identifies records in a different table is called a foreign key.
Registry
A database used by the Windows operating system (Windows 95 and NT ) to store configuration information. The Registry consists of the following major sections:
HKEY_Classes_Root - file associations and OLE information
HKEY_Current_User - all preferences set for current user
HKEY_User - all the current user information for each user of the system
HKEY_Local_Machine - settings for hardware, operating system, and installed applications
HKEY_Current_Configuration - settings for the display and printers
HKEY_Dyn_Data - performance data

Most Windows applications write data to the Registry, at least during installation. You can edit the Registry directly by using the Registry Editor (regedit.exe) provided with the operating system. However, you must take great care because errors in the Registry could disable your computer.

How Applications Use the Registry
Applications use the registry in several ways. They can add data to your registry by creating or opening existing keys. When applications add to the registry, the data is sorted by computer-specific data or user-specific data. Through this distinction applications can support multiple users and locate user profile data. An application can close a key and write the data it contains into the registry and applications can delete a value from a key or delete a key. Applications can also save specific data, or parts of the system registry in a file to load that file into the registry which is common when large amounts of data is being handled, or when multiple entries are being added to the registry.
Driver
A program that controls a device. Every device, whether it be a printer, disk drive, or keyboard, must have a driver program. Many drivers, such as the keyboard driver, come with the operating system. For other devices, you may need to load a new driver when you connect the device to your computer. In DOS systems, drivers are files with a.SYS extension. In Windows environments, drivers often have a.DRV extension.
A driver acts like a translator between the device and programs that use the device. Each device has its own set of specialized commands that only its driver knows. In contrast, most programs access devices by using generic commands. The driver, therefore, accepts generic commands from a program and then translates them into specialized commands for the device

Problems Associated With the Registry
Users can experience computer problems caused by system registry errors for several reasons. Problems with the computer itself will usually occur because of invalid or missing keys in the Windows registry. Some signs of trouble include computer system crashes, stalls, or even a noticeably slower operating speed. Of course knowing what causes errors in your system registry can go a long way to avoiding registry problems in the future. In most cases, problems with your registry occur from user actions mainly involving the installation or removal of software and hardware on your computer. If you frequently install or uninstall programs, delete startup programs, change hardware and do not remove old drivers (or have corrupted hardware drivers), delete software which was not properly uninstalled, or have installed a program with embedded spyware on your computer, then you may experience problems with your Windows system registry.

Editing a Registry
You can edit the Registry directly by using the Registry Editor provided with the operating system. However you must take great care because causing errors in the Registry could disable your computer. You should not edit registry data that does not belong to your application unless it is absolutely necessary. If there is an error in the registry, your system may not function properly. If this happens, you can restore the registry to the state it was in when you last started the computer successfully. Editing a registry can be a difficult task and you should read through the help files for your specific Windows operating system before giving any further thought to editing the registry yourself.

Registry Backup and Restore
Some versions of Windows operating systems such as Windows 98, will create a backup of your system registry for you everyday provided your computer was rebooted during that calendar day. Unfortunately, the problems you may wish to fix with a registry restore may be included in the most recent backup, so it is advisable to start making your own registry backups instead of relying on those generated by Windows. It is important to note that the process for backing up and restoring a registry will differ between versions of Windows, and you should search the Microsoft Web site for exact instructions pertaining to your version of Windows.

Windows ME and Windows XP make system restore a bit easier as both have a System Restore feature that securely stores data that can later be used to put your system back to a previous state when it was known to function correctly.

If your last restore point had problems — for example a virus or worm, you'll face the probability that this information will also be restored to your system. It is important to remember that achieving a good system registry restore is dependant on you having taken the proactive steps to creating a good, usable backup to restore from. It is also important to read help files and search the Microsoft online Knowledgebase for registry backup and restore information for the version of windows you are running.

Registry Cleaner and Restore Utilities
For many, the process of cleaning and restoring a system registry is made easy with the use of third-party software utilities. A simple Google Web search for registry cleaning utilities will provide you with a plethora of results. For the most part, all registry repair and cleaner utilities provide you with an easy way to create registry backups, clean out your registry, and repair problems with your Windows system registry — some will provide additional features, but those are the basics to look for. Once you have installed your registry cleaner of choice, you will then set-up the basic options offered by the software (such as directories to store logs, backups, choose between automatic repair or to see the checklist of problems and confirm repair of each item. The cleaner utility will check areas storing information related to custom controls, software locations, shared DLLs, Startup programs, add/remove programs, and more.

You will have an option to create a system registry backup from the current state before making any changes to your Windows system registry as recommended by the cleaning utility. It is very important to create this backup, just incase something goes wrong when problems in the registry are repaired.

If you've make the decision to use a registry cleaning and repair utility to fix existing problems with your Windows System registry, you'll find you don't necessarily have to clean your registry frequently. But since you have the utility on your system creating registry backups is easily done with just a few clicks and can save you from total reformats and loss or corruption of your system in the future.

Did You Know...
Even spyware can leave behind keys in your system registry that may not be removed by all anti-spyware software. This is why some pop-ups and other spyware activities will persist on your computer after a system reboot. The good news is that "registry scanning" is a feature being included in many newer anti-spyware products.





Well Known Ports
Port
No. Description
1 TCP Port Service Multiplexer (TCPMUX)
5 Remote Job Entry (RJE)
7 ECHO
18 Message Send Protocol (MSP)
20 FTP -- Data
21 FTP -- Control
22 SSH Remote Login Protocol
23 Telnet
25 Simple Mail Transfer Protocol (SMTP)
29 MSG ICP
37 Time
42 Host Name Server (Nameserv)
43 WhoIs
49 Login Host Protocol (Login)
53 Domain Name System (DNS)
69 Trivial File Transfer Protocol (TFTP)
70 Gopher Services
79 Finger
80 HTTP
103 X.400 Standard
108 SNA Gateway Access Server
109 POP2
110 POP3
115 Simple File Transfer Protocol (SFTP)
118 SQL Services
119 Newsgroup (NNTP)
137 NetBIOS Name Service
139 NetBIOS Datagram Service
143 Interim Mail Access Protocol (IMAP)
150 NetBIOS Session Service
156 SQL Server
161 SNMP
179 Border Gateway Protocol (BGP)
190 Gateway Access Control Protocol (GACP)
194 Internet Relay Chat (IRC)
197 Directory Location Service (DLS)
389 Lightweight Directory Access Protocol (LDAP)
396 Novell Netware over IP
443 HTTPS
444 Simple Network Paging Protocol (SNPP)
445 Microsoft-DS
458 Apple QuickTime
546 DHCP Client
547 DHCP Server
563 SNEWS
569 MSN
1080 Socks



What is the difference between SSH and SSL?
SSH (Secure Shell) and SSL (Secure Sockets Layer) can both be used to secure communications across the Internet.
SSL was designed to secure web sessions; it can do more, but that's the original intent.
SSH was designed to replace telnet and FTP; it can do more, but that's the original intent.
SSL is a drop-in with a number of uses. It front-ends HTTP to give you HTTPS. It can also do this for POP3, SMTP, IMAP, and just about any other well-behaved TCP application. It's real easy for most programmers who are creating network applications from scratch to just grab an SSL implementation and bundle it with their app to provide encryption when communicating across the network via TCP.
SSH is a swiss-army-knife designed to do a lot of different things, most of which revolve around setting up a secure tunnel between hosts. Some implementations of SSH rely on SSL libraries - this is because SSH and SSL use many of the same encryption algorithms (i.e. TripleDES).
SSH is not based on SSL in the sense that HTTPS is based on SSL. SSH does much more than SSL, and they don't talk to each other - the two are different protocols, but have some overlap in how they accomplish similar goals.
SSL by itself gives you nothing - just a handshake and encryption. You need an application to drive SSL to get real work done.
SSH by itself does a whole lot of useful stuff that allows users to perform real work. Two aspects of SSH are the console login (telnet replacement) and secure file transfers (ftp replacement), but you also get an ability to tunnel (secure) additional applications, enabling a user to run HTTP, FTP, POP3, and just about anything else THROUGH an SSH tunnel.
Without interesting traffic from an application, SSL does nothing. Without interesting traffic from an application, SSH brings up an encrypted tunnel between two hosts which allows you to get real work done through an interactive login shell, file transfers, etc.
Last comment: HTTPS does not extend SSL; it uses SSL to do HTTP securely. SSH does much more than SSL and you can tunnel HTTPS through it! Just because both SSL and SSH can do TripleDES doesn't mean one is based on the other.

What is the difference between Inner Join and Outer Join?
An inner join gets data from both tables where the specified data exists in both tables. For example, if you wanted a list of students in your database that were absent on December 4, 2003, you would use an inner join between the two examples tables "Student" and "Attendance":
SELECT Student.ID, Student.FirstName, Student.LastName,
Attendance.AttendanceCode,
Attendance.MinutesAbsent FROM Student INNER JOIN Attendance
ON Student.ID=Attendance.ID
WHERE Attendance.AttendanceDate='12/4/2003'
The above statement will only return students with attendance information on the specified date. Students who do not have attendance would not display.
Like so:
ID FirstName LastName AttendanceCode MinutesAbsent
10 Steve Bartman Tardy 22
32 Dale Thropmorton ExcAbsent 200
(maybe there are 200 kids in the database, but only Steve and Dale where absent on 12/4/2003. They are the only students to display)
An outer join gets data from the source table at all times, and returns data from the outer joined table ONLY if it matches the criteria. You would use this type of join using my examples tables if you wanted a list of all students in a specified course, and you wanted attendance information if it existed. You would use an inner join between Student and StudentSchedule to only get the students in the speicified course (for example 'ENGLISH 9'), but you would use an outer join against Attendance because you want ALL students in the course, not just students with attendance information on 12/4/2003.
When using outer joins, fields will be set to NULL if data does not exist in the outer-joined table.
SELECT Student.ID, Student.FirstName, Student.LastName,
Attendance.AttendanceCode,Attendance.MinutesAbsent FROM Student
INNER JOIN StudentSchedule ON StudentSchedule.ID=Student.ID
LEFT OUTER JOIN Attendance ON Student.ID=Attendance.ID AND
Attendance.AttendanceDate='12/4/2003' WHERE studentSchedule.Course='ENGLISH 9'
ID FirstName LastName AttendanceCode MinutesAbsent
10 Steve Bartman Tardy 22
32 Dale Thropmorton ExcAbsent 200
44 Jennifer Lopez NULL NULL
(Steve, Dale, and Jennifer all all in English. Steve and Dale were absent but Jennifer was not)
Notice how the AttendanceDate filter is in the ON clause instead of the WHERE clause. This is because joins are processed first and then filter information is applied afterwords. If "Attendance.AttendanceDate='12/4/2003'" was put into the WHERE clause of the statement, the outer join would basically turn back into an inner join.

Normalization
The process of efficiently organizing data in a database.
There are two goals of the normalization process: eliminate redundant data (for example, storing the same data in more than one table) and ensure data dependencies make sense (only storing related data in a table). Both of these are worthy goals as they reduce the amount of space a database consumes and ensure that data is logically stored.
The database community has developed a series of guidelines for ensuring that databases are normalized. These are referred to as normal forms and are numbered from one (the lowest form of normalization, referred to as first normal form or 1NF) through five (fifth normal form or 5NF). In practical applications, you'll often see 1NF, 2NF, and 3NF along with the occasional 4NF. Fifth normal form is very rarely seen and won't be discussed in this article.
Before we begin our discussion of the normal forms, it's important to point out that they are guidelines and guidelines only. Occasionally, it becomes necessary to stray from them to meet practical business requirements. However, when variations take place, it's extremely important to evaluate any possible ramifications they could have on your system and account for possible inconsistencies. That said, let's explore the normal forms.

First normal form (1NF) sets the very basic rules for an organized database:
• Eliminate duplicative columns from the same table.
• Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).
Second normal form (2NF) further addresses the concept of removing duplicative data:
• Meet all the requirements of the first normal form.
• Remove subsets of data that apply to multiple rows of a table and place them in separate tables.
• Create relationships between these new tables and their predecessors through the use of foreign keys.
Third normal form (3NF) goes one large step further:
• Meet all the requirements of the second normal form.
• Remove columns that are not dependent upon the primary key.
Finally, fourth normal form (4NF) has one additional requirement:
• Meet all the requirements of the third normal form.
• A relation is in 4NF if it has no multi-valued dependencies.
Remember, these normalization guidelines are cumulative. For a database to be in 2NF, it must first fulfill all the criteria of a 1NF database.

First Normal form
A relation is said to be in first normal from when every attribute is atomic i.e. each attribute should contain only one value.
First normal form (otherwise known as 1NF).
1NF sets the very basic rules for an organized database:
• Eliminate duplicative columns from the same table.
• Create separate tables for each group of related data and identify each row with a unique column (the primary key).
The first rule dictates that we must not duplicate data within the same row of a table. Within the database community, this concept is referred to as the atomicity of a table. Tables that comply with this rule are said to be atomic. Let’s explore this principle with a classic example – a table within a human resources database that stores the manager-subordinate relationship. For the purposes of our example, we’ll impose the business rule that each manager may have one or more subordinates while each subordinate may have only one manager.
Intuitively, when creating a list or spreadsheet to track this information, we would draw up something like this:
Manager Subordinate1 Subordinate2 Subordinate3 Subordinate4
Bob Jim Mary Beth
Mary Mike Jason Carol Mark
Jim Alan
However, recall the first rule imposed by 1NF: eliminate duplicative columns from the same table. Clearly, the Subordinate1-Subordinate4 columns are duplicative. Take a moment and ponder the problems raised by this scenario. Jim only has one subordinate – the Subordinate2-Subordinate4 columns are simply wasted storage space (a precious database commodity). Furthermore, Mary already has 4 subordinates – what happens if she takes on another employee? The whole table structure would require modification.
At this point, a second bright idea usually occurs to database novices: We don’t want to have more than one column and we want to allow for a flexible amount of data storage. Let’s try something like this:

Manager Subordinates
Bob Jim, Mary, Beth
Mary Mike, Jason, Carol, Mark
Jim Alan
This solution is closer, but it also falls short of the mark. The subordinates column is still duplicative and non-atomic. What happens when we need to add or remove a subordinate? We need to read and write the entire contents of the table. That’s not a big deal in this situation, but what if one manager had one hundred employees? Also, it complicates the process of selecting data from the database in future queries.
Here’s a table that satisfies the first rule of 1NF:
Manager Subordinate
Bob Jim
Bob Mary
Bob Beth
Mary Mike
Mary Jason
Mary Carol
Mary Mark
Jim Alan
Now, what about the second rule: identify each row with a unique column or set of columns (the primary key)? You might take a look at the table above and suggest the use of the subordinate column as a primary key. In fact, the subordinate column is a good candidate for a primary key due to the fact that our business rules specified that each subordinate may have only one manager. However, the data that we’ve chosen to store in our table makes this a less than ideal solution. What happens if we hire another employee named Jim? How do we store his manager-subordinate relationship in the database?
It’s best to use a truly unique identifier (like an employee ID or SSN) as a primary key. Our final table would look like this:
Manager Subordinate
182 143
182 201
182 123
201 156
201 041
201 187
201 196
143 202
Now, our table is in first normal form!


2nd Normal Form
In order to be in Second Normal Form, a relation must first fulfill the requirements to be in First Normal Form. Additionally, each nonkey attribute in the relation must be functionally dependent upon the primary key.
Example: The following relation is in First Normal Form, but not Second Normal Form:



Order # Customer Contact Person Total
1 Acme Widgets John Doe $134.23
2 ABC Corporation Fred Flintstone $521.24
3 Acme Widgets John Doe $1042.42
4 Acme Widgets John Doe $928.53
In the table above, the order number serves as the primary key. Notice that the customer and total amount are dependent upon the order number -- this data is specific to each order. However, the contact person is dependent upon the customer. An alternative way to accomplish this would be to create two tables:
Customer Contact Person
Acme Widgets John Doe
ABC Corporation Fred Flintstone

Order # Customer Total
1 Acme Widgets $134.23
2 ABC Corporation $521.24
3 Acme Widgets $1042.42
4 Acme Widgets $928.53
The creation of two separate tables eliminates the dependency problem experienced in the previous case. In the first table, contact person is dependent upon the primary key -- customer name. The second table only includes the information unique to each order. Someone interested in the contact person for each order could obtain this information by performing a JOIN operation.

3rd Normal Form
In order to be in Third Normal Form, a relation must first fulfill the requirements to be in Second Normal Form. Additionally, all attributes that are not dependent upon the primary key must be eliminated.
Examples: The following table is NOT in Third Normal Form:
Company City State ZIP
Acme Widgets New York NY 10169
ABC Corporation Miami FL 33196
XYZ, Inc. Columbia MD 21046
In this example, the city and state are dependent upon the ZIP code. To place this table in 3NF, two separate tables would be created -- one containing the company name and ZIP code and the other containing city, state, ZIP code pairings.
This may seem overly complex for daily applications and indeed it may be. Database designers should always keep in mind the tradeoffs between higher level normal forms and the resource issues that complexity creates.



DLL (dynamic link library)
A dynamic link library (DLL) is a collection of small programs, any of which can be called when needed by a larger program that is running in the computer. The small program that lets the larger program communicate with a specific device such as a printer or scanner is often packaged as a DLL program (usually referred to as a DLL file). DLL files that support specific device operation are known as device drivers.
The advantage of DLL files is that, because they don't get loaded into random access memory (RAM) together with the main program, space is saved in RAM. When and if a DLL file is needed, then it is loaded and run. For example, as long as a user of Microsoft Word is editing a document, the printer DLL file does not need to be loaded into RAM. If the user decides to print the document, then the Word application causes the printer DLL file to be loaded and run.
A DLL file is often given a ".dll" file name suffix. DLL files are dynamically linked with the program that uses them during program execution rather than being compiled with the main program. The set of such files (or the DLL) is somewhat comparable to the library routines provided with programming languages such as C and C++.
Dynamic Link Library - it is a library file which is linked at runtime (i.e. dynamically) rather than at compile-time (i.e. statically).

exe is an executable file.
A file in a format that the computer can directly execute. Unlike source files, executable files cannot be read by humans. To transform a source file into an executable file, you need to pass it through a compiler or assembler.
In DOS systems, executable files have either a.COM or.EXE extension and are called COM files and EXE files, respectively.

Differences between Image File Types
JPEG
JPEG images are the most common image type that you will come across in your travels around the web. JPEG stands for "Joint Photographic Experts Group". What this means is the specific way that the image is compressed has been approved by the photo graphics expert group to be the best format for an internet-displayed photographic image. There are reasons why you should use JPEG compression and reasons not to, such as:
Benefits
• Small image size
• Viewable from the internet
• Uses millions of colors
• Perfect for most images
Downfalls
• High compression loses quality
• Every time a JPEG is saved, it loses more and more of the picture

GIF
GIF images are truly the internet standard for any type of small, simple file. GIF stands for Graphics Interchange Format. The most common use for a GIF is for menu buttons or icons for a webpage. The reason being that GIFs are extremely tiny in file size and have no complex colors, so they load almost instantly on any webpage. Also, any other file which is made up of only use a few basic, flat colors will want to use GIF compression.
Benefits
• Supported by all web browsers
• Very small file size
• Quick to load
• Useful for Transparencies, Animations or Image Maps
Downfalls
• Only basic colors can be used
• Makes complex pictures look horrible
• No detail allowed in images

BMP - Bitmap
Bitmap files (signified by .BMP extension) are the standard in basic image editing. Bitmaps are exactly as the name says, a map containing many bits of an image that when put together, looks like a picture. Since scanners and digital cameras take pictures in this same way (by capturing a group of pixels) most image editing programs will use BMP files for a true 1:1 copy of the file.
Benefits
• High image quality
• Easy to edit and change
• No image loss through process
Downfalls
• Not usually displayable on internet
• Large file size


What is the difference between ‘C’ structure and ‘C++’ structure?
1. Members of a struct in C are by default public, in C++ private
2. The definition of the structure in C is limited to within the module and cannot be initialized outside its scope. Where as in C++ you can initialize the objects anywhere within the boundaries of the project.
3. The on more deference is, in C++ structure can have methods (procedures) but C cannot have methods in structure

No comments: