What is Hard Disks,and how it works ?




What is Hard Disk

Nearly every desktop computer and server in use today contains one or more hard-disk drives. Every mainframe and supercomputer is normally connected to hundreds of them. You can even find VCR-type devices and camcorders that use hard disks instead of tape. These billions of hard disks do one thing well -- they store changing digital information in a relatively permanent form. They give computers the ability to remember things when the power goes out.

In this article, we'll take apart a hard disk so that you can see what's inside, and also discuss how they organize the gigabytes of information they hold in files!

Hard Disk Basics

Hard disks were invented in the 1950s. They started as large disks up to 20 inches in diameter holding just a few megabytes. They were originally called "fixed disks" or "Winchesters" (a code name used for a popular IBM product). They later became known as "hard disks" to distinguish them from "floppy disks." Hard disks have a hard platter that holds the magnetic medium, as opposed to the flexible plastic film found in tapes and floppies.

At the simplest level, a hard disk is not that different from a cassette tape. Both hard disks and cassette tapes use the same magnetic recording techniques described in How Tape Recorders Work. Hard disks and cassette tapes also share the major benefits of magnetic storage -- the magnetic medium can be easily erased and rewritten, and it will "remember" the magnetic flux patterns stored onto the medium for many years.


Cassette Tape vs. Hard Disk

Let's look at the big differences between cassette tapes and hard disks:

  • The magnetic recording material on a cassette tape is coated onto a thin plastic strip. In a hard disk, the magnetic recording material is layered onto a high-precision aluminum or glass disk. The hard-disk platter is then polished to mirror-type smoothness.

  • With a tape, you have to fast-forward or reverse to get to any particular point on the tape. This can take several minutes with a long tape. On a hard disk, you can move to any point on the surface of the disk almost instantly.

  • In a cassette-tape deck, the read/write head touches the tape directly. In a hard disk, the read/write head "flies" over the disk, never actually touching it.

  • The tape in a cassette-tape deck moves over the head at about 2 inches (about 5.08 cm) per second. A hard-disk platter can spin underneath its head at speeds up to 3,000 inches per second (about 170 mph or 272 kph)!

  • The information on a hard disk is stored in extremely small magnetic domains compared to a cassette tape's. The size of these domains is made possible by the precision of the platter and the speed of the medium.

­ Because of these differences, a modern hard disk is able to store an amazing amount of information in a small space. A hard disk can also access any of its information in a fraction of a second.

Capacity and Performance

A typical desktop machine will have a hard disk with a capacity of between 10 and 40 gigabytes. Data is stored onto the disk in the form of files. A file is simply a named collection of bytes. The bytes might be the ASCII codes for the characters of a text file, or they could be the instructions of a software application for the computer to execute, or they could be the records of a data base, or they could be the pixel colors for a GIF image. No matter what it contains, however, a file is simply a string of bytes. When a program running on the computer requests a file, the hard disk retrieves its bytes and sends them to the CPU one at a time.

There are two ways to measure the performance of a hard disk:

  • Data rate - The data rate is the number of bytes per second that the drive can deliver to the CPU. Rates between 5 and 40 megabytes per second are common.

  • Seek time - The seek time is the amount of time between when the CPU requests a file and when the first byte of the file is sent to the CPU. Times between 10 and 20 milliseconds are common.
The other important parameter is the capacity of the drive, which is the number of bytes it can hold.

Inside: Electronics Board

The best way to understand how a hard disk works is to take a look inside. (Note that OPENING A HARD DISK RUINS IT, so this is not something to try at home unless you have a defunct drive.)

Here is a typical hard-disk drive:


It is a sealed aluminum box with controller electronics attached to one side. The electronics control the read/write mechanism and the motor that spins the platters. The electronics also assemble the magnetic domains on the drive into bytes (reading) and turn bytes into magnetic domains (writing). The electronics are all contained on a small board that detaches from the rest of the drive:
Inside: Beneath the Board

Underneath the board are the connections for the motor that spins the platters, as well as a highly-filtered vent hole that lets internal and external air pressures equalize:



Removing the cover from the drive reveals an extremely simple but very precise interior:
In this picture you can see:
  • The platters - These typically spin at 3,600 or 7,200 rpm when the drive is operating. These platters are manufactured to amazing tolerances and are mirror-smooth (as you can see in this interesting self-portrait of the author... no easy way to avoid that!).

  • The arm - This holds the read/write heads and is controlled by the mechanism in the upper-left corner. The arm is able to move the heads from the hub to the edge of the drive. The arm and its movement mechanism are extremely light and fast. The arm on a typical hard-disk drive can move from hub to edge and back up to 50 times per second -- it is an amazing thing to watch!
Inside: Platters and Heads

In order to increase the amount of information the drive can store, most hard disks have multiple platters. This drive has three platters and six read/write heads:



The mechanism that moves the arms on a hard disk has to be incredibly fast and precise. It can be constructed using a high-speed linear motor.


Many drives use a "voice coil" approach -- the same technique used to move the cone of a speaker on your stereo is used to move the arm.

Storing the Data

Data is stored on the surface of a platter in sectors and tracks. Tracks are concentric circles, and sectors are pie-shaped wedges on a track, like this:

A typical track is shown in yellow; a typical sector is shown in blue. A sector contains a fixed number of bytes -- for example, 256 or 512. Either at the drive or the operating system level, sectors are often grouped together into clusters.

The process of low-level formatting a drive establishes the tracks and sectors on the platter. The starting and ending points of each sector are written onto the platter. This process prepares the drive to hold blocks of bytes. High-level formatting then writes the file-storage structures, like the file-allocation table, into the sectors. This process prepares the drive to hold files.

What are .INF files ??


INF file

An INF file (or Setup Information file) is a plain text file used by Microsoft Windows for installation of software and drivers. INF files are most commonly used for installing device drivers for hardware components. Windows includes IExpress.exe for the creation of INF-based installations. INF files are part of the Windows Setup API.

Structure of an INF file

The structure of an INF file is very similar to that of an INI file; it contains various sections that specify the files to be copied, changes to the registry etc. All INF files contain a [version] section with a Signature value specifying the version of Windows that the INF file is meant for. The signature is commonly $CHICAGO$ (for Windows 9x) or $WINDOWS NT$ (for Windows NT/2K/XP) Most of the remaining sections are user-defined and contain information specific to the component being installed.

Purpose of .INF Files

Ask just about any device driver writer, "What is the worst part of writing Windows device drivers?" and most will reply, "Writing .INF files!" The reason for this is that the documentation on .INF files in the DDK has not provided a procedural approach to describing .INF files, such as, "If you want to accomplish X, then do Y followed by Z".

This article will describe the basics of .INF files and how they are used in the installation of a device driver.

An .INF file can do many things; however, 97% of all .INF files really only perform three tasks:

1.)Identify the driver for a particular device. This is done using one or more Hardware IDs or Compatible IDs. The system device installer will take the Hardware IDs and Compatible IDs that were reported for a device (by its bus driver), and try and find an exact character for character match in an .INF file. When a match is found, then the system device installer knows that the .INF file describes the driver(s) for the device.

2.)Copy files from the installation medium to the system. In addition to the driver binary (the .SYS file), driver packages may also include DLLs, co-installers, applications, or any other type of file.

3.)Add entries to the registry. This describes the device and its relationship to other devices, provides for device or driver specific configuration information, and describes the driver "service" to the service control manager.

Thats it. Sounds simple, doesnt it? Actually, it is pretty simple (no, Im not kidding!).

"Youre right", replied the little bear, "even a Bear of Little Brain understands that"

The two most confusing aspects of .INF files are usually:

1.)The .INF file is not 'run from the beginning to the end; individual sections in the .INF file are 'run based upon the phase of the installation process.

2.)Most of the sections in the .INF file are actually part of a well-defined hierarchy. This fact is obscured by the squashing of the hierarchy into a flat text file.


Creating International INF Files

An INF that will be used in an international market should use %strkey% tokens for all user-viewable text. The string tokens are defined in a [Strings] section, which is typically at the end of the INF file.

To create a single international INF file, the INF can have a set of locale-specific Strings.LanguageID sections, as described in the reference page for the INF Strings Section in the Windows 2000 DDK documentation.

Alternatively, you can create a separate INF for each locale. To reduce duplication and ease maintenance, you can create a main INF file with all the necessary sections and entries, except for the Strings section. Then create a second set of files, where each file contains just the Strings section for a supported locale. Concatenate the main file with each strings file to generate the locale-specific INF files.

If an INF contains characters outside the ASCII range (outside the range 0-127), the INF should be in Unicode format. To create such a file, for example, save the INF as a Unicode file from an application like Notepad. If the INF is not in Unicode format, Setup uses the current locale to translate characters. If the INF is in Unicode format, Setup uses the full character set.

commonly used sections


General Syntax Rules for INF Files

An INF file is a text file organized into named sections. Some sections have system-defined names and some sections have names determined by the writer of the INF file.

Each section contains section-specific entries, which are interpreted by Setup software (class installers, co-installers, SetupAPI). Some entries begin with a predefined keyword. These entries are called directives.

Some INF file entries are essentially pointers from one section to another, for a specific purpose. For example, an INF AddReg directive identifies a section containing entries that instruct Setup to modify the registry. These entries sometimes include additional arguments (required or optional) for Setup to interpret during installation.

Other INF file entries do not point to other sections, but simply supply information that Setup uses during installation, such as file names, registry values, hardware configuration information, flags, and so on. For example, an INF DriverVer directive supplies driver version information.

When Setup begins an installation, it first looks for an INF Version section to verify the validity of the INF file and to determine where installation files are located. It then starts the installation by finding an INF Manufacturer section, which will contain directives to INF Models sections, which in turn provide directives leading to various INF DDInstall sections, based on the hardware ID of the device being installed.

The following syntax rules govern the required and optional contents of INF files, the format of section names by using string tokens, and line format, continuation, and comments.

Sample INF File


The following is a sample INF file that demonstrates the syntax understood by the Internet Component Download service.

_________________________


;Sample INF file for CIRC3.OCX
[Add.Code]
circ3.ocx=circ3.ocx
random.dll=random.dll
mfc40.dll=mfc40.dll
example.ocx=example.ocx

[circ3.ocx]
; Lines below specify that the specified circ3.ocx (clsid, version)
; needs to be installed on the system. If it doesn't exist already,
; it can be downloaded from the given location (a .cab file).
; Note: if "thiscab" is specified instead of the file location,
; it is assumed that the desired file is present in the same .cab
; cabinet that the INF originated from. Otherwise, if the location
; pointed to is a different .cab, the new cabinet is also downloaded
; and unpacked in order to extract the desired file.
file=http://www.code.com/circ3/circ3.cab
clsid={9DBAFCCF-592F-101B-85CE-00608CEC297B}
; Note that the {}s are required when entering a in the INF file.
; This is slightly different from the HTML syntax for inserting CLSIDs
; in an tag.
FileVersion=1,0,0,143

[random.dll]
; Lines below specify that the random.dll needs to be installed in
; the system.
; If this doesn't exist already, it can be downloaded from the given
; location.
file=http:// www.code.com/circ3/random.dll
; Note that the FileVersion is optional, and it can also be left
; empty, meaning that any version is ok.
FileVersion=
DestDir=10

; DestDir can be set to 10 or 11 ( LDID_WIN or LDID_SYS by INF
; convention).
; This places files in \Windows or \Windows\System, respectively.
; If no dest dir is specified (typical case), code is installed in
; the occache directory.

[mfc40.dll]
; Leaving the file location empty specifies that the installation
; needs mfc40 (version 4,0,0,5), but it should not be downloaded.
; If this file is not already present on the client machine, component
; download fails.
file=
FileVersion=4,0,0,5

[example.ocx]
; Leaving the file location empty specifies that the installation
; needs the specified example.ocx (clsid, version), but it should not
; be downloaded.
; If this file is not already present on the client machine, component
; download fails.
file=clsid={DEADBEEF-592F-101B-85CE-00608CEC297B}
FileVersion=1,0,0,143

_______________________

Order of Processing and Execution of INF Files

The [Add.Code] section is processed in the order listed, but the files are installed and set up in reverse order. This means that typically you would list the main OCX file first in the INF file, followed by dependent DLLs. The dependent DLLs are guaranteed to be installed and available at registration time of the main OCX.

Unconditional hooks, those hooks in the [Setup Hooks] section in the INF file, are executed in the order listed in that section (Hook1 executes before Hook2). Conditional hooks, those hooks in the file sections referenced by file names in the [Add.Code] section, are executed in the order of the [Add.Code] section. Between conditional hooks and file section installation/setup, conditional hooks always get executed before file section installations/setups in the same .cab file. Between two file section installations/setups, the order of file installation and setup is the reverse of the listing in the [Add.Code] section. Between two conditional hooks, the order is the same as that listed in the [Add.Code] section. Note this different ordering rule between conditional hooks and file section installation and setup.


INF Size Limits

* A Windows 9x/Me INF file cannot be larger than 64 kilobytes. There is no practical limit to the size of an INF file for NT-based systems.
* The maximum length, in characters, of an INF file field, before string substitution and including a terminating NULL character, is 4096 (Windows Vista and later versions of Windows) and 512 (Windows Server 2003, Windows XP, and Windows 2000).
* After string substitution, the maximum length, in characters, of an INF file string is 4096, including a terminating NULL character.
* Note, however, that Plug and Play may impose a more restrictive limit for certain INF file fields that it recognizes or uses, such as device description, driver provider, and device manufacturer.

Autorun.inf, What is it?

Autorun.inf is the primary instruction file associated with the Autorun function. Autorun.inf itself is a simple text-based configuration file that tells the operating system which executable to start, which icon to use, and which additional menu commands to make available. In other words, autorun.inf Windows how to deal open the presentation and treat the contents of the CD.

The entire sequence is initiated when the "disk change notifcation" polling discovers a new disk in the CD or DVD ROM drive. Then, if the "Auto insert notification" feature is enabled (it is by default), Windows checks in the new disk's root directory for the existence of an "autorun.inf" file. If found, Windows then reads and follows the specific instructions this file defines. If no autorun.inf file is found, then Windows refers to the new disk by its serial number and executes the default actions associated with the (data or audio) content on the disk.


Autorun.inf Defines the following:


**The process or application that will automatically run when a disk is inserted Automatically run when CD is inserted
**Optionally, one can define the process or application that will run for specific Operating environments. Icon Representing CD or DVD
**The icon that will represent your application's CD or DVD when the drive is viewed with My Computer or Explorer.
**Menu Commands when CD-ROM is clicked Menu commands displayed when the user right-clicks the CD-ROM icon from My Computer or Explorer.


A simple Autorun.inf example:

[autorun]
open=autorun.exe
icon=autorun.ico

A complex Autorun.inf example:

This example is used in the following section for complete definition and descriptions.
________________________________________

[autorun]
open=filename.exe /argument1
icon=\foldername\filename.dll,5
[autorun.mips]
open=filenam2.exe
icon=filename.ico
[autorun.alpha]
open=filenam3.exe
icon=filename.ico
[autorun.ppc]
open=filenam4.exe
icon=filename.ico
shell\install = &Install
shell\install\command = setup.exe
shell\uninstall = &UnInstall
shell\uninstall\command = Uninstall.exe
shell\readme = &Read Me
shell\readme\command = notepad readme.txt
shell\help = &Help
shell\help\command = helpfilename.hlp


_________________________________________

Example Autorun File: Description:

[autorun] [autorun] is the primary, required section name.
open=filename.exe /argument1

Open is the keyword to determine what action to take upon insert notification.

filename.exe is the value defining the application that will be automatically started.
/argument1 is the argument, parameter or switch passed to the application being run. Logically, any command line parameters used must be supported by the application.
icon=\foldername\filename.dll,5

Icon is the keyword to determine the icon used for the disk.

filename.dll is the value defining the file containing the icon.
,5 is the argument to the icon resource defining which icon to display.



Note: By default, the system looks for the file in the root directory of the inserted disk. If you want to access a file located in a specific folder or subdirectory, specify a path relative to the root.

Example: open = foldername\filename.exe This will not change the current directory.

Although AutoPlay is the default menu item, you can define a different command to be the default by including the following line. shell = verb

When the user double-clicks on the icon, the command associated with this entry will be carried out.
Note: a more common method of defining the icon resouce is an explicit reference to a .ico file. Example: icon=autorun.ico

Note: The icon defined representing your application's CD or DVD is the drive icon as viewed with My Computer or Explorer. Valid file types containing icons include .ICO .BMP .EXE .DLL If the file includes more than one icon, by default, the second icon in the files icon resource will be displayed.


Example Autorun File: Description:
[autorun.mips] Defining the autorun items for a mips machine
open=filenam2.exe The platform specific application to run
icon=filename2.ico The platform specific autorun icon
[autorun.alpha] Defining the autorun items for a DEC Alphamachine
open=filenam3.exe The platform specific application to run
icon=filename3.ico The platform specific autorun icon
[autorun.ppc] Defining the autorun items for a Power PC
open=filenam4.exe The platform specific application to run
icon=filename4.ico The platform specific autorun icon
shell\install = &Install The Keyword defining a menu item and the Hot key for that item
shell\install\command = setup.exe The keyword defining the operation to perform when the user selects this item
shell\uninstall = &UnInstall Additional menu item example
shell\uninstall\command = Uninstall.exe Additional menu item example
shell\readme = &Read Me Additional menu item example
shell\readme\command = notepad readme.txt Additional menu item example
shell\help = &Help Additional menu item example
shell\help\command = helpfilename.hlp Additional menu item example


About Internet search engine


Introduction:

The good news about the Internet and its most visible component, the World Wide Web, is that there are hundreds of millions of pages available, waiting to present information on an amazing variety of topics. The bad news about the Internet is that there are hundreds of millions of pages available, most of them titled according to the whim of their author, almost all of them sitting on servers with cryptic names. When you need to know about a particular subject, how do you know which pages to read? If you're like most people, you visit an Internet search engine.

Internet search engines are special sites on the Web that are designed to help people find information stored on other sites. There are differences in the ways various search engines work, but they all perform three basic tasks:

  • They search the Internet -- or select pieces of the Internet -- based on important words.
  • They keep an index of the words they find, and where they find them.
  • They allow users to look for words or combinations of words found in that index.
Early search engines held an index of a few hundred thousand pages and documents, and received maybe one or two thousand inquiries each day. Today, a top search engine will index hundreds of millions of pages, and respond to tens of millions of queries per day.


Looking at the web:

Before a search engine can tell you where a file or document is, it must be found. To find information on the hundreds of millions of Web pages that exist, a search engine employs special software robots, called spiders, to build lists of the words found on Web sites. When a spider is building its lists, the process is called Web crawling.

In order to build and maintain a useful list of words, a search engine's spiders have to look at a lot of pages.

How does any spider start its travels over the Web? The usual starting points are lists of heavily used servers and very popular pages. The spider will begin with a popular site, indexing the words on its pages and following every link found within the site. In this way, the spidering system quickly begins to travel, spreading out across the most widely used portions of the Web.

Each spider could keep about 300 connections to Web pages open at a time. At its peak performance, using four spiders, their system could crawl over 100 pages per second, generating around 600 kilobytes of data each second.

When the Google spider looked at an HTML page, it took note of two things:

  • The words within the page
  • Where the words were found

Words occurring in the title, subtitles, meta tags and other positions of relative importance were noted for special consideration during a subsequent user search. The Google spider was built to index every significant word on a page, leaving out the articles "a," "an" and "the." Other spiders take different approaches.

These different approaches usually attempt to make the spider operate faster, allow users to search more efficiently, or both. For example, some spiders will keep track of the words in the title, sub-headings and links, along with the 100 most frequently used words on the page and each word in the first 20 lines of text. Lycos is said to use this approach to spidering the Web.

Other systems, such as AltaVista, go in the other direction, indexing every single word on a page, including "a," "an," "the" and other "insignificant" words. The push to completeness in this approach is matched by other systems in the attention given to the unseen portion of the Web page, the meta tags.

Meta tags:

Meta tags allow the owner of a page to specify key words and concepts under which the page will be indexed. This can be helpful, especially in cases in which the words on the page might have double or triple meanings -- the meta tags can guide the search engine in choosing which of the several possible meanings for these words is correct. There is, however, a danger in over-reliance on meta tags, because a careless or unscrupulous page owner might add meta tags that fit very popular topics but have nothing to do with the actual contents of the page. To protect against this, spiders will correlate meta tags with page content, rejecting the meta tags that don't match the words on the page.

Building the index:

Once the spiders have completed the task of finding information on Web pages (and we should note that this is a task that is never actually completed -- the constantly changing nature of the Web means that the spiders are always crawling), the search engine must store the information in a way that makes it useful. There are two key components involved in making the gathered data accessible to users:

  • The information stored with the data
  • The method by which the information is indexed

In the simplest case, a search engine could just store the word and the URL where it was found. In reality, this would make for an engine of limited use, since there would be no way of telling whether the word was used in an important or a trivial way on the page, whether the word was used once or many times or whether the page contained links to other pages containing the word. In other words, there would be no way of building the ranking list that tries to present the most useful pages at the top of the list of search results.

To make for more useful results, most search engines store more than just the word and URL. An engine might store the number of times that the word appears on a page. The engine might assign a weight to each entry, with increasing values assigned to words as they appear near the top of the document, in sub-headings, in links, in the meta tags or in the title of the page. Each commercial search engine has a different formula for assigning weight to the words in its index. This is one of the reasons that a search for the same word on different search engines will produce different lists, with the pages presented in different orders.

Regardless of the precise combination of additional pieces of information stored by a search engine, the data will be encoded to save storage space. For example, the original Google paper describes using 2 bytes, of 8 bits each, to store information on weighting -- whether the word was capitalized, its font size, position, and other information to help in ranking the hit. Each factor might take up 2 or 3 bits within the 2-byte grouping (8 bits = 1 byte). As a result, a great deal of information can be stored in a very compact form. After the information is compacted, it's ready for indexing.

An index has a single purpose: It allows information to be found as quickly as possible. There are quite a few ways for an index to be built, but one of the most effective ways is to build a hash table. In hashing, a formula is applied to attach a numerical value to each word. The formula is designed to evenly distribute the entries across a predetermined number of divisions. This numerical distribution is different from the distribution of words across the alphabet, and that is the key to a hash table's effectiveness.

In English, there are some letters that begin many words, while others begin fewer. You'll find, for example, that the "M" section of the dictionary is much thicker than the "X" section. This inequity means that finding a word beginning with a very "popular" letter could take much longer than finding a word that begins with a less popular one. Hashing evens out the difference, and reduces the average time it takes to find an entry. It also separates the index from the actual entry. The hash table contains the hashed number along with a pointer to the actual data, which can be sorted in whichever way allows it to be stored most efficiently. The combination of efficient indexing and effective storage makes it possible to get results quickly, even when the user creates a complicated search.

Building a search:

Searching through an index involves a user building a query and submitting it through the search engine. The query can be quite simple, a single word at minimum. Building a more complex query requires the use of Boolean operators that allow you to refine and extend the terms of the search.

The Boolean operators most often seen are:

  • AND - All the terms joined by "AND" must appear in the pages or documents. Some search engines substitute the operator "+" for the word AND.
  • OR - At least one of the terms joined by "OR" must appear in the pages or documents.
  • NOT - The term or terms following "NOT" must not appear in the pages or documents. Some search engines substitute the operator "-" for the word NOT.
  • FOLLOWED BY - One of the terms must be directly followed by the other.
  • NEAR - One of the terms must be within a specified number of words of the other.
  • Quotation Marks - The words between the quotation marks are treated as a phrase, and that phrase must be found within the document or file.

What is WIKI ??



A wiki is a page or collection of Web pages designed to enable anyone who accesses it to contribute or modify content (excluding blocked users), using a simplified markup language. Wikis are often used to create collaborative websites and to power community websites. The collaborative encyclopedia Wikipedia is one of the best-known wikis. Wikis are used in business to provide intranet and knowledge management systems. Ward Cunningham, the developer of the first wiki software, WikiWikiWeb, originally described it as "the simplest online database that could possibly work." "Wiki" (/wiːkiː/) is a Hawaiian word for "fast". "Wiki Wiki" is a reduplication. "Wiki" can be expanded as "What I Know Is," but this is a backronym.

History of WIKI


WikiWikiWeb
was the first site to be called a wiki. Ward Cunningham started developing WikiWikiWeb in 1994, and installed it on the Internet domain c2.com on March 25, 1995. It was named by Cunningham, who remembered a Honolulu International Airport counter employee telling him to take the "Wiki Wiki" shuttle bus that runs between the airport's terminals. According to Cunningham, "I chose wiki-wiki as an alliterative substitute for 'quick' and thereby avoided naming this stuff quick-web." Cunningham was in part inspired by Apple's HyperCard. Apple had designed a system allowing users to create virtual "card stacks" supporting links among the various cards. developed CunninghamVannevar Bush's ideas by allowing users to "comment on and change one another's text". In the early 2000s, wikis were increasingly adopted in enterprise as collaborative software. Common uses included project communication, intranets, and documentation, initially for technical users. Today some companies use wikis as their only collaborative software and as a replacement for static intranets. There may be greater use of wikis behind firewalls than on the public Internet.

Characteristics of WIKI :


Ward Cunningham, and co-author Bo Leuf, in their book The Wiki Way: Quick Collaboration on the Web described the essence of the Wiki concept as follows:

* A wiki invites all users to edit any page or to create new pages within the wiki Web site, using only a plain-vanilla Web browser without any extra add-ons.

*
Wiki promotes meaningful topic associations between different pages by making page link creation almost intuitively easy and showing whether an intended target page exists or not.

* A wiki is not a carefully crafted site for casual visitors. Instead, it seeks to involve the visitor in an ongoing process of creation and collaboration that constantly changes the Web site landscape.

* A
wiki enables documents to be written collaboratively, in a simple markup language using a Web browser. A single page in a wiki website is referred to as a "wiki page", while the entire collection of pages, which are usually well interconnected by hyperlinks, is "the wiki". A wiki is essentially a database for creating, browsing, and searching through information.

A defining characteristic of
wiki technology is the ease with which pages can be created and updated. Generally, there is no review before modifications are accepted. Many wikis are open to alteration by the general public without requiring them to register user accounts. Sometimes logging in for a session is recommended, to create a "wiki-signature" cookie for signing edits automatically. Many edits, however, can be made in real-time and appear almost instantly online. This can facilitate abuse of the system. Private wiki servers require user authentication to edit pages, and sometimes even to read them.

Editing WIKI Pages

Ordinarily, the structure and formatting of wiki pages are specified with a simplified markup language, sometimes known as "
wikitext". For example, starting a line of text with an asterisk ("*") is often used to enter it in a bulleted list. The style and syntax of wikitexts can vary greatly among wiki implementations, some of which also allow HTML tags.

The reason for taking this approach is that HTML, with its many cryptic tags, is not very legible, making it hard to edit. Wikis therefore favour plain text editing, with fewer and simpler conventions than HTML, for indicating style and structure.



Although limiting access to HTML and cascading style sheets (CSS) of wikis limits user ability to alter the structure and formatting of wiki content, there are some benefits. Limited access to CSS promotes consistency in the look and feel and having JavaScript disabled prevents a user from implementing code, which may limit access for other users.

Increasingly, wikis are making "WYSIWYG" ("What You See Is What You Get") editing available to users, usually by means of JavaScript or an ActiveX control that translates graphically entered formatting instructions, such as "bold" and "italics", into the corresponding HTML tags or wikitext. In those implementations, the markup of a newly edited, marked-up version of the page is generated and submitted to the server transparently, and the user is shielded from this technical detail. However, WYSIWYG controls do not always provide all of the features available in wikitext.

Many implementations (for example MediaWiki) allow users to supply an "edit summary" when they edit a page. This is a short piece of text (usually one line) summarizing the changes. It is not inserted into the article, but is stored along with that revision of the page, allowing users to explain what has been done and why; this is similar to a log message when committing changes to a revision control system.
Most wikis keep a record of changes made to wiki pages; often every version of the page is stored. This means that authors can revert to an older version of the page, should it be necessary because a mistake has been made or the page has been vandalized.


Navigation

Within the text of most pages there are usually a large number of hypertext links to other pages. This form of non-linear navigation is more "native" to wiki than structured/formalized navigation schemes. That said, users can also create any number of index or table of contents pages, with hierarchical categorization or whatever form of organization they like. These may be challenging to maintain by hand, as multiple authors create and delete pages in an ad hoc manner. Wikis generally provide one or more ways to categorize or tag pages to support the maintenance of such index pages.

Most wikis have a backlink feature, which displays all pages that link to a given page. It is typical in a wiki to create links to pages that do not yet exist, as a way to invite others to share what they know about a subject new to the wiki.

Linking and creating pages

Links are created using a specific syntax, the so-called "link pattern" (also see CURIE).

Originally, most wikis used CamelCase to name pages and create links. These are produced by capitalizing words in a phrase and removing the spaces between them (the word "CamelCase" is itself an example). While CamelCase makes linking very easy, it also leads to links which are written in a form that deviates from the standard spelling. CamelCase-based wikis are instantly recognizable because they have many links with names such as "TableOfContents" and "BeginnerQuestions." It is possible for a wiki to render the visible anchor for such links "pretty" by reinserting spaces, and possibly also reverting to lower case. However, this reprocessing of the link to improve the readability of the anchor is limited by the loss of capitalization information caused by CamelCase reversal. For example, "RichardWagner" should be rendered as "Richard Wagner," whereas "PopularMusic" should be rendered as "popular music." There is no easy way to determine which capital letters should remain capitalized. As a result, many wikis now have "free linking" using brackets, and some disable CamelCase by default.

Searching

Most wikis offer at least a title search, and sometimes a full-text search. The scalability of the search depends on whether the wiki engine uses a database. Indexed database access is necessary for high speed searches on large wikis. Alternatively, external search engines such as Google can sometimes be used on wikis with limited searching functions in order to obtain more precise results. However, a search engine's indexes can be very out of date (days, weeks or months) for many websites.

WIKI uses :

In entertainment


* WIKI (computer game), a 2006 massively multiplayer online role-playing game
* WIKI (FM) a country music radio station in Carrollton, Kentucky, United States
* Wiki Dankowska, a fictional character
* Wiki, a sidekick character in the video game Zack & Wiki: Quest for Barbaros' Treasure
* Wiki Wiki, a phrase made popular in "Wild Wild West" (Will Smith song)
* W1K1, pronounced "wiki", a mini-robot from the 1970s Filmation sci-fi show Jason of Star Command
* Vicky the Viking (also Wikki or Wickie), a 1970s animated cartoon character
* Loeki, Rieki, Wieki, three living dolls from a series of story-albums (singles) for children, sold with Biotex detergent in the early seventies.

Other uses:

* Wiki wiki dollar, a 1960s gasoline give-away promotion
* Wiki Wiki Shuttle, a Hawaiian airport bus system
* WikiWikiWeb, the original wiki website (about computer programming)





What is wiki ---Video


some of the WIKI sites:

About Adobe an Macromedia Flash



What is FLASH

Adobe Flash
(previously called Macromedia Flash) is a multimedia platform originally acquired by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate video into web pages, and more recently, to develop rich Internet applications.






A simple flash document

Flash can manipulate vector and raster graphics and supports bi-directional streaming of audio and video. It contains a scripting language called ActionScript. Several software products, systems, and devices are able to create or display Flash content, including Adobe Flash Player, which is available for most common web browsers, some mobile phones and other electronic devices (using Flash Lite). The Adobe Flash Professional multimedia authoring program is used to create content for the Adobe Engagement Platform, such as web applications, games and movies, and content for mobile phones and other embedded devices.

Files in the SWF format, traditionally called "ShockWave Flash" movies, "Flash movies" or "Flash games", usually have a '.swf ' file extension and may be an object of a web page, strictly "played" in a standalone Flash Player, or incorporated into a Projector, a self-executing Flash movie (with the .exe extension in Microsoft Windows). Flash Video (FLV) files have a .flv file extension and are either used from within .swf files or played through a flv aware player, such as VLC, or QuickTime and Windows Media Player with external codecs added.

History Of FLASH

The program Flash was the Brainchild of Jonathan Gay, who developed the idea while in college and extended it while working for Silicon Beach Software and its successors.

In January 1993, Jonathan Gay, Charlie Jackson, and Michelle Welsh started a small software company called FutureWave Software and created their first product, SmartSketch. A drawing application for pen computers running the PenPoint OS, SmartSketch was designed to make creating computer graphics as simple as drawing on paper. When PenPoint failed in the marketplace, SmartSketch was ported to Microsoft Windows and Mac OS. As the Internet began to thrive, however, FutureWave began to realize the potential for a vector-based web animation tool that might easily challenge Macromedia's Shockwave technology. In 1995, FutureWave modified SmartSketch by adding frame-by-frame animation features and re-released it as FutureSplash Animator on Macintosh and PC. By that time, the company had added a second programmer Robert Tatsumi, artist Adam Grofcsik, and PR specialist Ralph Mittman. Tatsumi focused on writing the authoring tool's user interface, while Gay wrote the graphics renderer, curve and shape math code and the browser plug-in. The product was offered to Adobe and used by Microsoft in its early work with the Internet (MSN). In December 1996, Macromedia acquired the vector-based animation software and later released it as Flash, contracting "Future" and "Splash" of the FutureWave name.


Versions of Flash Released in past:

1.)
FutureSplash Animator (April 10, 1996): initial version of Flash with basic editing tools and a timeline

2.) Macromedia Flash 1
(November 1996): a Macromedia re-branded version of the FutureSplash Animator

3.) Macromedia Flash 2
(June 1997): Released with Flash Player 2, new features included: the object library

4.) Flash 3 (May 31, 1998): Released with Flash Player 3, new features included: the movieclip element, JavaScript plug-in integration, transparency and an external stand alone player

5.) Macromedia Flash 4 (June 15, 1999): Released with Flash Player 4, new features included: internal variables, an input field, advanced ActionScript, and streaming MP3

6.) Macromedia Flash 5
(August 24, 2000): Released with Flash Player 5, new features included: ActionScript 1.0 (based on ECMAScript, making it very similar to JavaScript in syntax), XML support, Smartclips (the precursor to components in Flash), HTML text formatting added for dynamic text

7.) Flash MX (ver 6) (March 15, 2002): Released with Flash Player 6, new features included: a video codec (Sorenson Spark), Unicode, v1 UI Components, compression, ActionScript vector drawing API

8.) Macromedia Flash MX 2004 (ver 7)
(September 9, 2003): Released with Flash Player 7, new features included: Actionscript 2.0 (which enabled an object-oriented programming model for Flash)(although it lacked the Script assist function of other versions, meaning Actionscript could only be typed out manually), behaviors, extensibility layer (JSAPI), alias text support, timeline effects

9.)Macromedia Flash MX Professional 2004 (ver 7
) (September 9, 2003): Released with Flash Player 7, new features included all Flash MX 2004 features plus: Screens (forms for non-linear state-based development and slides for organizing content in a linear slide format like PowerPoint), web services integration, video import wizard, Media Playback components (which encapsulate a complete MP3 and/or FLV player in a component that may be placed in an SWF), Data components (DataSet, XMLConnector, WebServicesConnector, XUpdateResolver, etc) and data binding APIs, the Project Panel, v2 UI components, and Transition class libraries.

10.) Macromedia Flash 8:

1.)Macromedia Flash Basic 8 (released on September 13, 2005):
A less feature-rich version of the Flash authoring tool targeted at new users who only want to do basic drawing, animation and interactivity. Released with Flash Player 8, this version of the product has limited support for video and advanced graphical and animation effects.

2.) Macromedia Flash Professional 8 (released on September 13, 2005): Released with the Flash Player 8, Flash Professional 8 added features focused on expressiveness, quality, video, and mobile authoring. New features included Filters and blend modes, easing control for animation, enhanced stroke properties (caps and joins), object-based drawing mode, run-time bitmap caching, FlashType advanced anti-aliasing for text, On2 VP6 advanced video codec, support for alpha transparency in video, a stand-alone encoder and advanced video importer, cue point support in FLV files, an advanced video playback component, and an interactive mobile device emulator.

11.) Flash CS3 Professional (as version 9, released on April 16, 2007): Flash CS3 is the first version of Flash released under the Adobe name. CS3 features full support for ActionScript 3.0, allows things to be converted into ActionScript, adds better integration with other Adobe products such as Adobe Photoshop, and also provides better Vector drawing behavior, becoming more like Adobe Illustrator and Adobe Fireworks.

12.) Adobe Flash CS4 Professional (as version 10, released on October 15, 2008): Contains inverse kinematics (bones), basic 3D object manipulation, object-based animation, an enhanced text engine, and further expansions to ActionScript 3.0.

Recent developments

Adobe Labs (previously Macromedia Labs) is a source for news and pre-release versions of emerging products and technologies from Adobe. Most innovations, such as Flash 9, Flex 3, and ActionScript 3.0 have all been discussed and/or trialled on the site. One area Adobe is focusing on (as of February 2009) is the deployment Rich InternetApplications (RIAs). To this end, they released Adobe Integrated Runtime (AIR), a cross-platform runtime environment which can be used to build, using Adobe Flash, rich Internet applications that can be deployed as a desktop application. It recently surpassed 100 million installations worldwide. Two additional components designed for large scale implementation have been proposed by Adobe for future releases of Flash. First the option to require an ad to be played in full before the main video piece is played. Secondly, Adobe has announced plans to add Digital Rights Management (DRM) capabilities into the new version of Flash. This way Adobe can give companies the option to link an advertisement with content and make sure that both are played and that they not be changed. The current status of these two projects is unclear. [dated info] Flash Player for smartphones is expected to be available to handset manufacturers at the end of 2009.

Format and plug-in

Compared to other plug-ins such as Java, Acrobat Reader, QuickTime, or Windows Media Player, the Flash Player has a small install size, quick download time, and fast initialization time. However, care must be taken to detect and embed the Flash Player in (X)HTML in a W3C compliant way.
In addition to a vector-rendering engine, the Flash Player includes a virtual machine called the ActionScript Virtual Machine (AVM) for scripting interactivity at run-time, support for video, MP3-based audio, and bitmap graphics.

As of Flash Player 8, it offers two video codecs:

On2 Technologies VP6 and Sorenson Spark, and run-time support for JPEG, Progressive JPEG, PNG, and GIF. In the next version, Flash is slated to use a just-in-time compiler for the ActionScript engine.

Use of computer resources

1.) It is argued that the performance of Adobe Flash Player on different platforms may not be optimal.
2.) Any flash player has to be able to animate on top of the video rendering, which makes hardware accelerated video rendering at least not as straightforward as with a purpose built multimedia player.[41] It is not uncommon for other multimedia players to play fine where Flash Player drops frames and skips audio.

Many popular web browsers now have extensions that prevent immediate Flash playback, but lets the user play it by clicking it first. Firefox has NoScript and Flashblock while a separate extension for Opera called Flashblock is available. One similar extension for Internet Explorer is Foxie, and contains a number of features, one of which is also named Flashblock. K-Meleon has a built-in Flash blocker.


PHP language and its History




what is PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in standalone graphical applications.
While PHP was originally created by Rasmus Lerdorf in 1995, the main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification.PHP is free software released under the PHP License, however it is incompatible with the GNU General Public License (GPL), due to restrictions on the usage of the term PHP.
PHP is a widely-used general-purpose scripting language that is especially suited for web development and can be embedded into HTML. It generally runs on a web server, taking PHP code as its input and creating web pages as output. It can be deployed on most web servers and on almost every operating system and platform free of charge. PHP is installed on more than 20 million websites and 1 million web servers.

History of PHP

PHP originally stood for Personal Home Page. It began in 1994 as a set of Common Gateway Interface binaries written in the C programming language by the Danish/Greenlandic programmer Rasmus Lerdorf. Lerdorf initially created these Personal Home Page Tools to replace a small set of Perl scripts he had been using to maintain his personal homepage. The tools were used to perform tasks such as displaying his résumé and recording how much traffic his page was receiving. He combined these binaries with his Form Interpreter to create PHP/FI, which had more functionality. PHP/FI included a larger implementation for the C programming language and could communicate with databases, enabling the building of simple, dynamic web applications. Lerdorf released PHP publicly on June 8, 1995 to accelerate bug location and improve the code. This release was named PHP version 2 and already had the basic functionality that PHP has today.

This included Perl-like variables, form handling, and the ability to embed HTML. The syntax was similar to Perl but was more limited, simpler, and less consistent.

Zeev Suraski and Andi Gutmans, two Israeli developers at the Technion IIT, rewrote the parser in 1997 and formed the base of PHP 3, changing the language's name to the recursive initialism PHP: Hypertext Preprocessor. The development team officially released PHP/FI 2 in November 1997 after months of beta testing. Afterwards, public testing of PHP 3 began, and the official launch came in June 1998. Suraski and Gutmans then started a new rewrite of PHP's core, producing the Zend Engine in 1999. They also founded Zend Technologies in Ramat Gan, Israel.
On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released. On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II. PHP 5 included new features such as improved support for object-oriented programming, the PHP Data Objects extension (which defines a lightweight and consistent interface for accessing databases), and numerous performance enhancements. The most recent update released by The PHP Group is for the older PHP version 4 code branch. As of August, 2008 this branch is up to version 4.4.9. PHP 4 is no longer under development nor will any security updates be released.
In 2008, PHP 5 became the only stable version under development. Late static binding has been missing from PHP and will be added in version 5.3. PHP 6 is under development alongside PHP 5. Major changes include the removal of register_globals,[14] magic quotes, and safe mode.The reason for the removals was because register_globals had given way to security holes, and magic quotes had an unpredictable nature, and was best avoided. Instead, to escape characters, Magic quotes may be substituted with the addslashes() function, or more appropriately an escape mechanism specific to the database vendor itself like mysql_real_escape_string() for MySQL.
PHP does not have complete native support for Unicode or multibyte strings;Unicode support will be included in PHP 6. Many high profile open source projects ceased to support PHP 4 in new code as of February 5, 2008, due to the GoPHP5 initiative, provided by a consortium of PHP developers promoting the transition from PHP 4 to PHP 5.
It runs in both 32-bit and 64-bit environments, but on Windows the only official distribution is 32-bit, requiring Windows 32-bit compatibility mode to be enabled while using IIS in a 64-bit Windows environment. There is a third-party distribution available for 64-bit Windows.


Release History

Meaning
RedOld release; not supported
YellowOld release; still supported
GreenCurrent release
BlueFuture release


Major VersionMinor VersionRelease dateNotes
1.01.0.01995-06-08Officially called "Personal Home Page Tools (PHP Tools)". This is the first use of the name "PHP".
2.02.0.01996-04-16Considered by its creator as the "fastest and simplest tool" for creating dynamic web pages.
3.03.0.01998-06-06Development moves from one person to multiple developers. Zeev Suraski and Andi Gutmans rewrite the base for this version.
4.04.0.02000-05-22Added more advanced two-stage parse/execute tag-parsing system called the Zend engine.
4.1.02001-12-10Introduced 'superglobals' ($_GET, $_POST, $_SESSION, etc.)
4.2.02002-04-22Disabled register_globals by default. Data received over the network is not inserted directly into the globalnamespace anymore, closing possible security holes in applications.
4.3.02002-12-27Introduced the CLI, in addition to the CGI.
4.4.02005-07-11Added man pages for phpize and php-config scripts.
4.4.82008-01-03Several security enhancements and bug fixes. Was to be the end of life release for PHP 4. Security updates only until 2008-08-08, if necessary.
4.4.92008-08-07More security enhancements and bug fixes. The last release of the PHP 4.4 series.
5.05.0.02004-07-13Zend Engine II with a new object model.
5.1.02005-11-24Performance improvements with introduction of compiler variables in re-engineered PHP Engine.
5.2.02006-11-02Enabled the filter extension by default.
5.2.82008-12-08[26]Emergent bug fix
5.2.92009-02-26
5.3.0Second Quarter of 2009[27]Namespace support; Late static bindings, Jump label (limited goto), Closures, Native PHP archives (phar), Garbage collection, Persistent Connection with mysqli, sqlite3, Added fileinfo as a mime_magic replacement for better MIME support
6.06.0.0No date setUnicode support; removal of ereg extension, 'register_globals', 'magic_quotes' and 'safe_mode'; Alternative PHP Cache

Characteristics of PHP
  • Usage
  • Speed optimization
  • Security
  • Platform independent
Thus PHP had got succeeded in these days and even PHP is installed on more than 20 million websites and 1 million web servers.