text:
X Window Programming/SDL

Introduction
Simple DirectMedia Layer (SDL) is a cross-platform multimedia library written in C that creates an abstraction over various platforms' graphics, sound, and input APIs, allowing a developer to write a computer game or other multimedia application once and run it on many operating systems including GNU/Linux, Microsoft Windows and MacOS X. It manages video, events, digital audio, CD-ROM, sound, threads, shared object loading, networking and timers.

History
Sam Lantinga created the library, first releasing it in early 1998, while working for Loki Software. He got the idea while porting a Windows application to Macintosh. He then used SDL to port Doom to BeOS. Several other free libraries appeared to work with SDL, such as SMPEG and OpenAL.

The SDL library has bindings with almost every programming language there is, from the popular (C++, Perl, Python (through pygame), Pascal etc.) to the less known (such as Euphoria or Pliant). This and the fact that it is open-source and licensed under the LGPL make SDL a common choice for a lot of multimedia applications.

SDL itself is very simple; it merely acts as a thin, cross-platform wrapper, providing support for 2D pixel operations, sound, file access, event handling, timing, threading, and more. OpenGL is often used with SDL to provide fast 3D rendering. It is often thought of as a cross-platform DirectX, although it lacks some of its more advanced functionality. SDL instead has a huge number of third party extensions that make it easy to do more advanced functions.

The library is divided into several subsystems, namely the Video (handles both surface functions and OpenGL), Audio, CD-ROM, Joystick and Timer subsystems. Besides this basic, low-level support, there also are a few SDL-dependent libraries that provide some additional functionality. These include SDL_image (provides an easy way to load today's most common image formats), SDL_mixer (complex audio functions, mainly for sound mixing), SDL_net (networking support), SDL_ttf (TrueType Font rendering support), SDL_gfx (some additional graphical functions, such as image resizing and rotating) and SDL_rtf (simple Rich Text Format rendering).

Example C Code
A very basic SDL program. It loads SDL subsystems, pauses for 2 seconds, closes SDL, then exits the program.

Here is more advanced example :

That is easily compiled and ran under Linux with "gcc `sdl-config --cflags --libs` -O3 mandelbrot.c && ./a.out", on Windows it's the same, but you have to use MinGW to compile it.

Extensions

 * SMPEG - SDL MPEG Player Library
 * Guichan and ParaGUI - Widget Sets
 * GGI - a free cross-platform graphics interface

title: X Window Programming/SDL


text:
X Window Programming/OpenGL

Introduction
OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 3D computer graphics (and 2D computer graphics as well). The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL was developed by Silicon Graphics and is popular in the video games industry, where it competes with Direct3D on Microsoft Windows platforms. OpenGL is widely used in computer-aided design, virtual reality, scientific visualization, information visualization, flight simulation, and video game development.

Specification
At its most basic level, OpenGL is a specification, meaning it is simply a document that describes a set of functions and the precise behaviors that they must perform. From this specification, hardware vendors create implementations — libraries of functions created to match the functions stated in the OpenGL specification, making use of hardware acceleration where possible. Hardware vendors have to meet specific tests to be able to qualify their implementation as an OpenGL implementation.

Efficient vendor-supplied implementations of OpenGL (making use of graphics acceleration hardware to a greater or lesser extent) exist for Mac OS, Microsoft Windows, Linux, many Unix platforms, Wii and PlayStation 3. Various software implementations exist, bringing OpenGL to a variety of platforms that do not have vendor support. Notably, the open source library Mesa is a fully software-based graphics API which is code-compatible with OpenGL. However to avoid licensing costs associated with formally calling itself an OpenGL implementation, it claims merely to be a "very similar" API.

The OpenGL specification is currently overseen by the OpenGL Architecture Review Board (ARB), which was formed in 1992. The ARB consists of a set of companies with a vested interest in creating a consistent and widely available API. Voting members of the ARB as of April 2006 include 3D hardware manufacturers Silicon Graphics, 3Dlabs, ATI Technologies, NVIDIA and Intel, and computer manufacturers IBM, Apple Computer, Dell, and Sun Microsystems. Microsoft, one of the founding members, left in March 2003. Aside from these corporations, each year many other companies are invited to be part of the OpenGL ARB for one-year terms. With so many companies involved with such a diverse set of interests, OpenGL has become very much a general-purpose API with a wide range of capabilities.

According to current plans, control of OpenGL will pass to the Khronos Group by the end of 2006. This is being done in order to improve the marketing of OpenGL, and to remove barriers between the development of OpenGL and OpenGL ES.

Kurt Akeley and Mark Segal authored the original OpenGL specification. Chris Frazier edited version 1.1. Jon Leech edited versions 1.2 through the present version 2.0.

Design
OpenGL serves two main purposes:
 * To hide the complexities of interfacing with different 3D accelerators, by presenting the programmer with a single, uniform API.
 * To hide the differing capabilities of hardware platforms, by requiring that all implementations support the full OpenGL feature set (using software emulation if necessary).

OpenGL's basic operation is to accept primitives such as points, lines and polygons, and convert them into pixels. This is done by a graphics pipeline known as the OpenGL state machine. Most OpenGL commands either issue primitives to the graphics pipeline, or configure how the pipeline processes these primitives. Prior to the introduction of OpenGL 2.0, each stage of the pipeline performed a fixed function and was configurable only within tight limits but in OpenGL 2.0 several stages are fully programmable using GLSL.

OpenGL is a low-level, procedural API, requiring the programmer to dictate the exact steps required to render a scene. This contrasts with descriptive (aka scene graph or retained mode) APIs, where a programmer only needs to describe a scene and can let the library manage the details of rendering it. OpenGL's low-level design requires programmers to have a good knowledge of the graphics pipeline, but also gives a certain amount of freedom to implement novel rendering algorithms.

OpenGL has historically been influential on the development of 3D accelerators, promoting a base level of functionality that is now common in consumer-level hardware:

 * Rasterised points, lines and polygons as basic primitives
 * A transform and lighting pipeline
 * Z-buffering
 * Texture mapping
 * Alpha blending

Many modern 3D accelerators provide functionality far above this baseline, but these new features are generally enhancements of this basic pipeline rather than radical reinventions of it.

Example
We first clear the color buffer, in order to start with a blank canvas: glClear( GL_COLOR_BUFFER_BIT );

We now set the modelview matrix, which controls the position of the camera relative to the primitives we render. We move it backwards 3 units along the Z axis, which leaves it pointing towards the origin: glMatrixMode( GL_MODELVIEW );      /* Subsequent matrix commands will affect the modelview matrix */ glLoadIdentity;                  /* Initialize the modelview to identity */ glTranslatef( 0, 0, -3 );          /* Translate the modelview 3 units along the Z axis */

The projection matrix governs the perspective effect applied to primitives, and is controlled in a similar way to the modelview matrix: glMatrixMode( GL_PROJECTION );     /* Subsequent matrix commands will affect the projection matrix */ glLoadIdentity;                  /* Initialize the projection matrix to identity */ glFrustum( -1, 1, -1, 1, 1, 1000 ); /* Apply a perspective-projection matrix */

Finally, we issue a polygon - a green square oriented in the XY plane: glBegin( GL_POLYGON );             /* Begin issuing a polygon */ glColor3f( 0, 1, 0 );              /* Set the current color to green */ glVertex3f( -1, -1, 0 );           /* Issue a vertex */ glVertex3f( -1, 1, 0 );            /* Issue a vertex */ glVertex3f( 1, 1, 0 );             /* Issue a vertex */ glVertex3f( 1, -1, 0 );            /* Issue a vertex */ glEnd;                           /* Finish issuing the polygon */

Documentation
OpenGL's popularity is partially due to the excellence of its official documentation. The OpenGL ARB released a series of manuals along with the specification which have been updated to track changes in the API. These are almost universally known by the colors of their covers:

 * The Red Book - The OpenGL Programmer's guide. ISBN 0-321-33573-2
 * A readable tutorial and reference book - this is a 'must have' book for OpenGL programmers.
 * The Blue Book - The OpenGL Reference manual. ISBN 0-321-17383-X
 * Essentially a hard-copy printout of the man pages for OpenGL.
 * Includes a poster-sized fold-out diagram showing the structure of an idealized OpenGL implementation.
 * The Green Book - Programming OpenGL for the X Window System. ISBN 0-201-48359-9
 * A book about X11 interfacing and GLUT.
 * The Alpha Book (which actually has a white cover) - OpenGL Programming for Windows 95 and Windows NT. ISBN 0-201-40709-4
 * A book about interfacing OpenGL with Microsoft Windows.

Then, for OpenGL 2.0 and beyond:

 * The Orange Book - The OpenGL Shading Language. ISBN 0-321-33489-2
 * A readable tutorial and reference book for GLSL.

Extensions
The OpenGL standard allows individual vendors to provide additional functionality through extensions as new technology is created. Extensions may introduce new functions and new constants, and may relax or remove restrictions on existing OpenGL functions. Each vendor has an alphabetic abbreviation that is used in naming their new functions and constants. For example, NVIDIA's abbreviation (NV) is used in defining their proprietary function  and their constant. It may happen that more than one vendor agrees to implement the same extended functionality. In that case, the abbreviation EXT is used. It may further happen that the Architecture Review Board "blesses" the extension. It then becomes known as a standard extension, and the abbreviation ARB is used. The first ARB extension was, introduced in version 1.2.1. Following the official extension promotion path, multitexturing is no longer an optionally implemented ARB extension, but has been a part of the OpenGL core API since version 1.3.

Before using an extension a program must first determine its availability, and then obtain pointers to any new functions the extension defines. The mechanism for doing this is platform-specific and libraries such as GLEW and GLEE exist to simplify the process.

Specifications for nearly all extensions can be found at the official extension registry.

Associated utility libraries
Several libraries are built on top of or beside OpenGL to provide features not available in OpenGL itself. Libraries such as GLU can always be found with OpenGL implementations, and others such as GLUT and ../SDL/ have grown over time and provide rudimentary cross platform windowing and mouse functionality and if unavailable can easily be downloaded and added to a development environment. Simple graphical user interface functionality can be found in libraries like GLUI or FLTK. Still others libraries like AUX are deprecated libraries that have been superseded by functionality commonly available in more popular libraries, but code still exists out there particularly in simple tutorials. Other libraries have been created to provide OpenGL application developers a simple means of managing OpenGL extensions and versioning, examples of these libraries include GLEW "The OpenGL Extension Wrangler Library" and GLEE "The OpenGL Easy Extension library".

In addition to the aforementioned simple libraries other higher level object oriented scene graph retained mode libraries exist such as PLIB, OpenSG, OpenSceneGraph, and OpenGL Performer, these are available as cross platform Open Source or proprietary programming interfaces written on top of OpenGL and systems libraries to enable the creation of real-time visual simulation applications.

Mesa 3D is an Open Sourced implementation of OpenGL. It supports pure software rendering as well as providing hardware acceleration for several 3D graphics cards under Linux. As of February 2 2006 it implements the 1.5 standard, and provides some of its own extensions for some platforms.

Bindings
In order to emphasize its multi-language and multi-platform characteristics, various bindings and ports have been developed for OpenGL in many languages. Most notably, the Java 3D library can rely on OpenGL for its hardware acceleration. Direct bindings are also available like the Lightweight Java Game Library which has a direct binding of OpenGL for Java and other game related components. Very recently, Sun has released beta versions of the JOGL system, which provides direct bindings to C OpenGL commands, unlike Java 3D which does not provide such low level support. The OpenGL official page lists various bindings for Java, Fortran 90, Perl, Pike, Python, Ada, Delphi and Visual Basic. Bindings are also available for C++ and C#, see.

Higher level functionality
OpenGL was designed to be graphic output-only: it provides only rendering functions. The core API has no concept of windowing systems, audio, printing to the screen, keyboard/mouse or other input devices. While this seems restrictive at first, it allows the code that does the rendering to be completely independent of the operating system it is running on, allowing cross-platform development. However some integration with the native windowing system is required to allow clean interaction with the host system. This is performed through the following add-on APIs:

 * GLX - X11 (including network transparency)
 * WGL - Microsoft Windows

Additionally the GLUT and ../SDL/ libraries provide functionality for basic windowing using OpenGL, in a portable manner. MacOS X has three APIs to get OpenGL support: AGL for Carbon, NSOpenGL for Cocoa and CGL for lower-level access.

History
Today the digital generation of animated scenes in three dimensions is a regular fixture in everyday life. Scientists utilize computer graphics to analyze simulations of every possibility. Engineers and architects design virtual models using computer graphics. Movies employ computer graphics to create stunning special effects or entire animated films. And over the past few years, computer games have brought computer graphics technology to regular consumers, using graphics to bring their players into worlds that could never exist.

Bringing digital graphics technology to such widespread use was not without its challenges. Fifteen years ago, developing software that could function with a wide range of graphics hardware and all of their different interfaces was time consuming. Each team of programmers developed interfaces separately, and there was consequently much duplicated code. This was hindering the growing industry of computer graphics.

By the early 1990's SGI, a leader in 3D graphics, and its programming API, IrisGL, had become a defacto industry standard, over-shadowing the open-standards-based PHIGS. The IrisGL programming interface (API) was elegant, easy-to-use, and, importantly, supported immediate-mode rendering. By contrast, PHIGS was clunky, hard to use, and was several generations behind IrisGL in function and capability, primarily due to the dysfunctional PHIGS standardization process. None-the-less, competing vendors, including Sun Microsystems, Hewlett-Packard and IBM were able to bring to market credible 3D hardware, supported by proprietary extensions to PHIGS. By the early 90's, 3D graphics hardware technology was fairly well understood by a large number of competitors and was no longer a discriminating factor in computer systems purchases. Thus, rather than prolonging a contentious and dangerous fight between IrisGL and PHIGS, SGI sought to turn a defacto standard into a true open standard.

The IrisGL API itself wasn't suitable for opening (although it had been previously licensed to IBM and others), in part because it had accumulated cruft over the years. For example, it included a windowing, keyboard and mouse API, in part because it was developed before the X11 Window System versus Sun's NeWS battle had resolved. Thus, the API to be opened needed to be cleaned up. In addition, IrisGL had a large software vendor (ISV) portfolio; the change to the OpenGL API would keep ISV's locked onto SGI (and IBM) hardware for a few years while market support for OpenGL matured. Meanwhile, SGI would continue to try to maintain a vendor lock by pushing the higher-level and proprietary Iris Inventor and Iris Performer programming API's.

The result is known as OpenGL. OpenGL standardized access to hardware, and pushed the development responsibility of hardware interface programs, sometimes called device drivers, to hardware manufacturers and delegated windowing functions to the underlying operating system. With so many different kinds of graphic hardware, getting them all to speak the same language in this way had a remarkable impact by giving software developers a higher level platform for 3D-software development.

In 1992, SGI led the creation of the OpenGL architectural review board (OpenGL ARB), the group of companies that would maintain and expand the OpenGL specification for years to come. OpenGL evolved from (and is very similar in style to) SGI's earlier 3D interface, IrisGL. One of the restrictions of IrisGL was that it only provided access to features supported by the underlying hardware. If the graphics hardware did not support a feature, then the application could not use it. OpenGL overcame this problem by providing support in software for features unsupported by hardware, allowing applications to use advanced graphics on relatively low-powered systems.

In 1994 SGI played with the idea of releasing something called "OpenGL++" which included elements such as a scene-graph API (presumably based around their Performer technology). The specification was circulated among a few interested parties - but never turned into a product.

When Direct3D was released in 1995, Microsoft, SGI, and Hewlett-Packard initiated the Fahrenheit project, which was a joint effort with the goal of unifying the OpenGL and Direct3D interfaces - and again, adding a scene-graph API. It initially showed some promise of bringing order to the world of interactive 3D computer graphics APIs, but on account of financial constraints at SGI and general lack of industry support it was abandoned. The engineers involved at SGI held a beach party in celebration - complete with bonfires on which they burned piles of Fahrenheit documentation.

OpenGL 2.0
OpenGL 2.0 was conceived by 3Dlabs to address concerns that OpenGL was stagnating and lacked a strong direction. 3Dlabs proposed a number of major additions to the standard, the most significant of which was GLSL (the OpenGL Shading Language, also slang). This would enable the programmer to replace the OpenGL fixed-function vertex and fragment pipelines with shaders written in a C-like language, massively expanding the range of graphical effects possible. GLSL was notable for making relatively few concessions to the limitations of the hardware then available; this hearkened back to the earlier tradition of OpenGL setting an ambitious, forward-looking target for 3D accelerators rather than merely tracking the state of currently available hardware. The final OpenGL 2.0 specification includes support for GLSL, but omits many of the other features originally proposed which were deferred to later versions of OpenGL (although many are now available as extensions).

OpenGL 2.1
OpenGL 2.1 was released on August 2, 2006 and is backward compatible with all prior OpenGL versions. OpenGL 2.1 incorporates the following functionality:

 * OpenGL Shading Language revision 1.20
 * Commands to specify and query non-square matrix uniforms for use with the OpenGL Shading Language
 * Pixel buffer objects for efficient image transfers to and from buffer objects for commands such as glTexImage2D and glReadPixels.
 * This functionality corresponds to the ARB_pixel_buffer_object extension.
 * sRGB texture formats.
 * This functionality corresponds to the EXT_texture_sRGB extension.

OpenGL support libraries

 * GLUT - The OpenGL utility toolkit.
 * GLU - Some additional functions for OpenGL programs.
 * GLEW - The OpenGL Extension Wrangler Library.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: X Window Programming/OpenGL


text:
Operations Strategy/What is operations strategy?/Understanding the market

Market requirements and operations strategy
From what we've studied in the previous sections, we have come to establish a fact that operations, of whatever kind, are influenced by two major factors, the resources for the operations and the market requirements.

Authors like Slack call the market perspective on the operation strategy as  'outside-in'  where the outside influence tends to tailor the overall strategy of the operations from within.

'''If one is tempted to tailor needs in the operations to match a certain market's requirements, they need to study the market first in order to match the company's marketing efforts. Such decisiveness is called market segmentation.'''


text:
User:Dylan~enwikibooks

siamese fighting fish

title: User:Dylan~enwikibooks


text:
E-Commerce and E-Business/Acknowledgment

Acknowledgment
The author would like to thank her peer reviewers, Dr. Catherine Mann (Senior Fellow of the Institute for International Economics), Mr. Chris Coward (Director of the Center for Internet Studies) and Mr. Carter Eltzroth (Senior Vice President, Global Public Policy, MIH Group) for their valuable inputs to this primer.

Comercio y negocios electrónicos/Créditos


text:
User talk:61.88.131.189

This IP address has been blocked for 1 day because of vandalism and page blanking. --Whiteknight (talk) (projects) 03:01, 6 November 2006 (UTC)

title: User talk:61.88.131.189


text:
Template:PTPBox

Adds a sidebar box with Rodin's Thinker sculpture as a teaser image.
 * Purpose

The template presents the placeholder pass parameter inside it's box. The following UPPERCASE parameters act as overrides, if defined, for the templates default definitions:  ''' '''
 * Optional parameters
 * ALT— Alternative header title to default: 'Points to ponder'
 * B — border directive
 * BG— background color, default is #F9F9E9
 * CLR — the HTML clear parameter, default is right, so will nest under other right floated elements & allow text to wrap around it on it's left.
 * CO —Font Color of text passed to template
 * F  —float directive, defaults right edge.
 * FF, FS —Font Face and Font Size respectively, defaults are "Trebuchet MS" at 9pt.
 * M —margin directive
 * P —padding directive
 * OTHER —a named parameter to pass a style parameter that is not otherwise covered.
 * W —width directive, default is narrowish 250px
 * code peek

title: Template:PTPBox


text:
Bicycles/Equipment and Accessories/Cranksets

Cranksets comprise the chainrings and cranks, and sometimes the bottom bracket; never the pedals.

There are three main categories of cranksets, depending on how the chainrings are connected to the cranks. Firstly, the cheapest cranksets are made in one piece, with the chainrings welded to the cranks. More expensive and higher-quality ones are bolted on with either four or five bolts.

Notes to be incorporated in this page

 * Some very expensive cranksets are one piece.
 * What to look for when buying cranks and/or chainrings.


text: Bicycles/Equipment and Accessories/Frames


text:
Transwiki talk:Common chemicals

Caustic Soda is not sold as detergent, and I have no idea why it would be in a pool cleaning store. It is in fact the same thing as Sodium Hydroxide, mentioned elsewhere in the table.

title: Transwiki talk:Common chemicals


text:
IB Music/Music Theory/Scales

Keys
Learn to recognise the key that any given piece of music begins in. This starting key is called the tonic key, and can be found easily by looking at the key signature, and checking for the possible raised seventh note (leading note) which shows if the key is minor. This may require you to learn the "three semitones down" rule for finding the relative minor key, or the circle of 5ths. If you play an instrument you will find that you can learn key signatures pretty quickly by practicing recognition on each piece of music that you play.

Also learn to recognise if the piece has modulated into a different key - this can be seen by accidentals that make the notes of a different scale. Be careful here that the piece isn't simply chromatic, or that it hasn't become modal.

Modes
Learn to recognise when a piece of music becomes modal - 'sounds like medieval or church music' is probably the best description. There are different modes, although it's not necessary to be able to name the mode that the segment is in (it might help with points though)

title: IB Music/Music Theory/Scales


text:
User talk:Dporter

Welcome
Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page.

Good luck! --Derbeth talk 10:14, 6 November 2006 (UTC)

title: User talk:Dporter


text:
User talk:Annieyc 2002

Welcome
Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page.

Good luck! --Derbeth talk 10:16, 6 November 2006 (UTC)

Image copyright problem with Image:Adhoc.jpg
Thanks for uploading Image:Adhoc.jpg. However, the image may soon be deleted unless we can determine the copyright holder and copyright status. The Wikimedia Foundation is very careful about the images included in Wikibooks because of copyright law (see Wikibooks' Copyright policy).

The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Copyright information on images is signified using copyright templates. The three basic license types on Wikibooks are open content, public domain, and fair use. Find the appropriate template in Image copyright tags and place it on the image page like this:.

Please signify the copyright information on any other images you have uploaded or will upload. Remember that images without this important information or giving false information can be deleted by an administrator. If you have any questions, feel free to contact me, or ask them at the Study help desk. Thank you. Derbeth talk 10:16, 6 November 2006 (UTC)

title: User talk:Annieyc 2002


text:
User talk:Hameeeee

Images
You put fair use template to all images you upload but do not give source. Where do these images come from? --Derbeth talk 10:20, 6 November 2006 (UTC)

Orphaned fair use image
Your uploaded image Image:Dj 2.jpg is licensed under fair use but is not being used in any books. Please make use of it, or we will have to delete it. Thank you and regards. Mattb112885 (talk to me) 23:20, 24 July 2007 (UTC)

title: User talk:Hameeeee


text:
User talk:Wlung90703

Images
You haven't given any information on source and license of images you uploaded to Wikibooks. Where do they come from? --Derbeth talk 10:23, 6 November 2006 (UTC)

title: User talk:Wlung90703


text:
Parkour/Basic Moves/Precision Jump

A precision jump is essentially a jump from a one obstacle to another obstacle landing on your two feet. The word "precision" refers to the accuracy needed to land the jump, for example landing on a rail or bollard requires more precision than a large wall or rock.

The jump is usually performed from a stand-still position. Taking off with two legs and landing with two legs. Taking off from one leg (from a run up) is usually referred to as a "running precision".

When landing (either from a two footed or running take off) it is important that you land on the balls of your feet with your feet together and furthermore "stick" the jump meaning you do not fall forwards or backwards off of the obstacle. the larger distance/smaller the object you are landing on, then the better you are progressing.

When landing a precision jump many people stress the importance of the "90° rule" with an argument that if you bend your legs too much and sink down low into a crouched position, your knees can't and will not tolerate the impact, resulting in joint problems.

The 90° rule is a myth as if you are not strong enough to bend your legs more than 90° then you shouldn't be attempting the jump at all. Everyone can squat but not everyone is strong enough to do so when landing from a height. If you feel uncomfortable with a deep squatting motion then do not attempt any drop or precision jump that will force you into this position.

Having a strong and full range of motion in your legs, is vital when training Parkour, if you cannot go past 90° when landing without discomfort or feeling strong, then physical conditioning is needed to increase your capacity to withstand impact in the full range of motion.

Start with small, low level jumps. From this starting point and with regular practice you should get stronger and get more confidence with jumping and landing. This is transferable to other aspects of Parkour.

title: Parkour/Basic Moves/Precision Jump


text:
User talk:203.153.230.170

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. -- Herby talk thyme 11:15, 6 November 2006 (UTC)

Please stop adding nonsense to Wikibooks. It is considered vandalism. If you would like to experiment, use the sandbox. Thank you. -- Herby talk thyme 11:15, 6 November 2006 (UTC)

title: User talk:203.153.230.170


text:
Talk:Mac OS X Tiger/Appendix E

=Talk=

Content
Where's the rest of it?

UI
I tried making the page look similar to the "questions" section, I'm not quite sure how to best implement the template used there. I added "mistakes" primarily as a proof of concept, filling. They could use some change. Ericruud 07:53, 18 December 2006 (UTC)

title: Talk:Mac OS X Tiger/Appendix E


text:
User talk:Rustystcloud

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page.

Good luck! -- Herby talk thyme 13:21, 6 November 2006 (UTC)

title: User talk:Rustystcloud


text:
User talk:Sameerkale

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * If you're a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page.

Good luck! -- Herby talk thyme 13:23, 6 November 2006 (UTC)

title: User talk:Sameerkale


text:
Template:Wikijunior:Life/NavBox

See discussion page

title: Template:Wikijunior:Life/NavBox


text:
Talk:Future Teachers Meet Wiki/How will you use Wiki as a teacher?

"Future Teachers Meet Wiki"

Oh, allright!

Nguyenthephuc 16:21, 6 November 2006 (UTC)


text:
Category talk:Cuisines

Sort order of "Cuisine of ..." pages
Currently all the pages in this category titled "Cookbook:Cuisine of ..." appear under their default sort order. So they all appear under 'C'. I think it would be a better idea if they were sorted by country / region (i.e. by using and so on). Thoughts? --David Edgar 16:50, 6 November 2006 (UTC)
 * Hi David - you know my views on alpha cats already so off to have a look at this (& earlier found some delightful DIY pages - all under D!) regards -- Herby talk thyme 19:08, 6 November 2006 (UTC)
 * Hum - doesn't work like I thought it did - I'll get back to it but I do agree with you -- Herby talk thyme 19:11, 6 November 2006 (UTC)
 * I think you added "|Albania" to the "wikipedia" template tag. You should add it to the "cuisine" template tag instead (this is the one that places the page in this cat). I did it for Albania and it worked... --David Edgar 11:54, 7 November 2006 (UTC)
 * I realised afterwards what I had done wrong (usual "hands before brain" syndrome. Certainly what you have done works but not sure if it is the best way of doing it and equally I think you may have created a new category that is kind of a duplicate.  It would be worth running this past Kellen who has waay more experience than me - post on the user page maybe User talk:Kellen? -- Herby  talk thyme 12:10, 7 November 2006 (UTC)

title: Category talk:Cuisines


text:
Template talk:Wikijunior:Life/NavBox

/NavBox|^=Uplink|V=Downlink|<=Leftlink|>=Rightlink

/NavBox|^=Uplink|V=Downlink|<=Leftlink|>=Rightlink|^txt=Uptxt|Vtxt=Downtxt|txt=Righttxt

Rename?
This is not the same as Template:Navbox yet has the same name (only difference is the capitalization of B in "Box")... One or the other should be renamed and moved. Ross Uber -  Talk  -  Contributions  - 23:20, 30 March 2008 (UTC)
 * Adopted book-template naming scheme. --Pi zero (discuss • contribs) 03:15, 18 October 2017 (UTC)

title: Template talk:Wikijunior:Life/NavBox


text:
Wikibooks:Dealing with vandalism

For beginning vandal fighters

 * Here's how it works
 * First, you spot some vandalism, for example, someone replacing the entire page with profanity, or adding a page with useless or offensive content. So you revert the page to the last good version, or you mark the page as a candidate for speedy deletion. Congratulations, you have just successfully dealt with vandalism!

How to get a page deleted
Pages which are solely vandalism (and don't have a non-vandalism version to revert to) can be speedily deleted. Click the edit tab at the top of the page, and add at the top. Add "requesting speedy deletion" to the edit summary, and click save. Done! An administrator will come along and delete it shortly.

For experienced vandal fighters

 * 1) Revert their vandalism.
 * 2) Give them a warning on their talk page unless the vandalism is from an IP and over a few hours old.
 * 3) *If there's a warning already there, check when it was placed. It's only relevant if it's recent (maybe 1 or 2 weeks).
 * 4) *If they have a template or a recent warning (and have vandalized since that warning), grab an admin at this point, since they're a persistent vandal in need of a block.
 * 5) Otherwise, go to their contributions and look for other bad edits that haven't been reverted yet, and revert those.
 * 6) Check if they've stopped since the warning. If they have, great. If not, notify an admin.

Finding vandalism
If you're a dedicated vandal patroller, you can search for vandalism in four ways:
 * 1) Put many pages on your watchlist and review them periodically for vandalism. This is especially useful if you watchlist pages which are regular targets of vandalism.
 * 2) Comb through Special:Recentchanges for vandalism. Often, anonymous users are the worst vandals; you can hide logged-in users to narrow down your search. New users' contribs often contain edit tests, mistakes, and the like, which is not strictly vandalism but still needs to be dealt with. Don't bite the newbies!
 * 3) Join our counter-vandalism channel #cvn-wb-en, where a bot filters all edits to Wikibooks, presenting you with only suspicious edits.
 * 4) Go through the abuse filter log, and find edits that were saved.

Rollback
Users who are vandal fighters can now gain access to the MediaWiki rollback function, previously reserved for administrators only. To do so, make your request in the appropriate section of WB:RFP. The tool is likely to be given to active vandal fighters.

Rollback allows administrators and users with the reviewer permission to quickly revert vandalism. The rollback tool will revert all edits by the same user, starting from the top revision.

User Scripts
There are also several scripts which make vandal patrol easier. These are available on the Gadgets tab of Special:Preferences.
 * Revert using Twinkle:This allows all users to revert using the Twinkle script. This script does not work in Internet Explorer. (Configuration goes in your skin)
 * User Welcome Script:A script to semi-automagically new users with no talk page, leave  for anons with no talk page, or warn any user with.
 * Modify rollback:After using rollback, this script automatically forwards you to the user's contributions page to look for other edits to revert. Be careful, since this means you won't see if there's an error message after clicking rollback.

Reporting vandalism in progress
In cases of repeated or particularly malicious vandalism, take note of that person's IP address or username and report them to the administrators. Start a new section at Administrative Assistance, adding the person's IP address or username and a few examples of vandalistic edits; sign it with four tildes ( ~ ) to give the date and time, and hit save.

In cases of vandalism in progress, you may also want to report in #wikibooks. Don't wait to see if anyone's around; don't ask if you can report some vandalism - just tell us. If nobody seems to notice, say  and try again. Please note that in emergency situations, we may already be dealing with the situation, and are simply too busy repairing the damage to respond.

If no response is evident after a few attempts to get attention over the course of several minutes and there is massive, ongoing vandalism, you should report this to the stewards in #wikimedia-stewards by saying !steward in that channel. Stewards are permitted to take emergency action to stop vandals on any wiki.

Blocking vandals
Administrators have the ability, and the authorization, to block the IPs of persistent vandals. These blocks should be the shortest effective length.

If an ex-vandal evades an IP block by obtaining a new IP, and starts making genuine (non-vandalism) contributions to Wikibooks, then they will not be blocked or reverted simply because they used to be a vandal. We do not block vandals to punish them, but rather to preserve the integrity of Wikibooks. If an ex-vandal has reformed, then our aims are accomplished.

Types of vandalism

 * Blanking: Removing all or significant parts of pages (sometimes replacing the removed content with profanities) is a common vandal edit. However, significant content removals are usually not considered to be vandalism where the reason for the removal of the content is readily apparent by examination of the content itself, or where a non-frivolous explanation for the removal of apparently legitimate content is provided, linked to, or referenced in an edit summary. Due to the possibility of unexplained good-faith content removal, be cautious about treating anyone doing this like a vandal.

 * Childish vandalism: Some vandals spread the textual equivalent of graffiti over pages. They're extremely easy to detect, and are generally reverted in less than a minute.

 * Sneaky vandalism: Some vandals think they can outsmart contributors and add misinformation, change dates, or make other sensible-appearing substitutions and typos without anyone noticing, hiding vandalism, e.g., by making two bad edits and only reverting one, or reverting legitimate edits to hinder the improvement process. Can often be detected by looking at other edits by the same user, but be careful to avoid confusing sneaky vandalism with genuine corrections to a page.

 * Attention-seeking vandalism: (a type of internet troll). The opposite of sneaky vandalism, they want attention, and will do anything to get it, they will write insults, use offensive usernames, replace pages with jokes etc. just to make you message them, and when you do that, they will find that an excuse to replace your user page with a story about your mother. So when you recognize this type of attack, try not to feed the troll by flaming him or her - just deal with it calmly and unemotionally - or leave it for someone else if it's making you too angry.

 * Spam: Adding external links to a module or user page for promotional purposes is disruptive, and is considered to be spam. Although the specific links may be allowed under some circumstances, repeatedly adding links will in most cases result in all of them being removed. It is the behaviour in placing the links rather than the content of the site that may cause concerns.
 * Wikibooks is generally designed to not require excessive links to third-party websites, as the content is intended to be a permanent textbook reference. While some links may be necessary (such as where to obtain software required for the book), most of the links in question are not likely to add to a completed textbook.  An alternative site for external links would be the Open Directory Project, which serves as a directory of links to various websites.

 * Link vandalism: Rewriting links within a page so that they appear the same, but point to something completely different or ridiculous (e.g., France). Redirecting pages to nonsense titles is also vandalism.

 * Vandalbot (or spambot): A script or "robot" which creates nonsensical pages (like Wikibooks talk:Staff lounge/w/index.php/), adds external links, replaces page content, moves pages, or creates malicious usernames. Such attacks are rare, but administrator or CheckUser intervention is often required to stem the tide.

 * Page move vandalism: Moving pages to offensive or nonsensical names. For example, Willy on Wheels and his many imitators will move a page to PAGENAME on Wheels ("Cookbook" becomes "Cookbook on Wheels"). Generally such attacks are severe; get help from administrators ASAP.

 * Copyright vandalism: Knowingly using copyrighted material on Wikibooks in ways which violate Wikibooks's copyright policies is vandalism. Because users may be unaware that the information is copyrighted, or of Wikibooks policies on how such material may and may not be used, such action only becomes vandalism if it continues after the copyrighted nature of the material and relevant policy restricting its use have been communicated to the user. Repeatedly uploading images with no source and/or license information after notification that such information is required may also constitute vandalism.

 * Bad-faith vandalism: Bad-faith placing or removing of deletion and maintenance and other related tags on pages that do not meet such criteria, have not been settled or in order to conceal or avert deletion. Such templates are an important way for people to show that there are problems with a page. Do not remove them from a page unless you are sure that all stated reasons for the dispute are settled. As a general rule, do not remove other people's tags twice during a 24-hour period. Do not place tags improperly, as in when there is no dispute, and the reason for placing the tag is because a suggested edit has failed to meet consensus. Instead, follow the decision-making process and accept that some edits will not meet consensus. Please note that placing or removal of dispute tags does not count as simple vandalism and is often mistakenly done by new users who are unfamiliar with Wikibooks, and such users should be given the benefit of the doubt and pointed to the proper page to discuss the issue.

 * Talk page vandalism: Deleting or altering the comments of other users from Talk pages other than your own comments is generally considered vandalism, unless it is your user talk pages, you are removing personal attacks or are archiving an overly long talk page to a separate page and then removing the text from the main Talk page, which is often considered legitimate. Adding comments to the talk page as if signed or written by someone else is also generally considered vandalism, however adding the proper signature to a comment that someone may have forgotten to include is not vandalism.

 * Policy vandalism: Deleting or altering part of a Wikibooks policy or guideline with which the vandal disagrees, without any attempt to seek consensus or recognize an existing consensus. However, improving or clarifying policy wording in line with the clear existing consensus is not vandalism.

 * Hidden vandalism: Any of the above in the form of hidden text not visible to the final rendering of the page but visible during editing.

Vandalism should not be confused with
Vandalism is vandalism: these things are not, though they are sometimes called vandalism. They are therefore treated differently:

 * Newbie test: New users that discover the "Edit this page" button sometimes really want to know if they can edit any page, so they write something inside just to test it. This is not vandalism! On the contrary, these users should be warmly greeted, and given a reference to the Sandbox where they can keep making their tests (oftentimes they will even revert their own changes).

 * Extended newbie test: Some users (especially the young ones) want to check out if they can make a module look really stupid, or radically change it to become unreadable. They simply want to test the limits of the wiki, some of them will stop (at some point) when you revert their changes, and will feel embarrassed when you write them a message.

 * Learning Wiki Markup: Some users require some time to learn the wiki-based markup, and will spend a little time experimenting with the different ways to make external links, internal links, and other special characters. Rather than condemning them as vandals, perhaps point them towards Help or Sandbox.

 * NPOV violations: The neutral point of view is a difficult policy for many of us to understand, and even Wikibooks veterans occasionally accidentally introduce material which is non-ideal from an NPOV perspective. See NPOV dispute. Try to improve upon the edit rather than simply reverting it out-of-hand.

 * Bold edits: Wikibookians often make sweeping changes to modules in order to improve them—most of us aim to be bold when updating modules. While having large chunks of text you wrote removed, moved to talk, or substantially rewritten can sometimes feel like vandalism, it is the wiki way.

 * Mistakes: Sometimes, users will insert content into a module that is not necessarily accurate, in the belief that it is. By doing so in good faith, they are trying to contribute to Wikibooks and improve it. If you believe that there is inaccurate information in a module, ensure that it is, and/or discuss it with the user who has submitted it.

 * Unintentional Nonsense: While nonsense can be a form of vandalism, sometimes honest editors may not have expressed themselves correctly (there may be an error in the grammar, particularly for Wikibookians who use English as a second language, or mistakes using wiki markup). This is a type of mistake. Sometimes connection errors unintentionally produce the appearance of nonsense. In either case, assume good faith and help the user along.

 * New Patrollers: While page blanking can be a form of vandalism, sometimes new users may try to revert vandalism by blanking the page or taking other steps which may seem questionable. Instead of labelling a potential patroller a vandal, try to fix his or her mistake and point the person to this page, so they may learn how to better combat vandalism.

Templates

 * Main page: Templates/User notices & Category:User warning templates

title: Wikibooks:Dealing with vandalism


text:
Visual Basic .NET/Branch statements

A branch statement, or conditional statement, is code that allows you to test whether statements are true or false and then execute some code based on these comparisons.

The Branch Statements

 * 1) If/Endif
 * 2) If/Else/Endif
 * 3) If/ElseIf/Else/Endif
 * 4) Select Case/End Select

Statement
below an example of simple if statement:

Statement
Refer to these lines for the examples below:

The actual format of the IF statement is:

The IF statement ALWAYS tests the left condition or statement for a TRUE result: ie: is iJunk1 = 4 ........ TRUE ie: is iJunk1 = 5 ........ FALSE ie: is iJunk1 > 7 ........ TRUE ie: is iJunk1 < iJunk2 ... TRUE

If the condition or statement is true, the IF statement continues to process the top or next portion of the statement using the THEN operator.

If the THEN operation is a single statement, it can be written on the same line as the test condition:

If the THEN operation requires two or more statements you will find that the entire IF statement will be MUCH easier to read when written with each statement on its own line: As shown above, the IF statement does not require and can be used without the ELSE clause.

When your IF statement needs to process both a True and a False condition the use of the ELSE clause is required:

It is sometimes easier to read the condition or statement when you place it within paren's:

Statement
If/ElseIf statement is used to conditionally execute code based on more than one test condition or statement. If the condition provided in the If statement evaluates to true, the code in the block is executed. Otherwise, execution would proceed to the ElseIf condition or statement, or on to the Else or EndIf statement.

The ElseIf and Else clauses are not required parts of an If statement.

An example of the If/ElseIf/Else branch statement is:

Statement
Either strings or numbers can be used for a Select Case statement.

Select Case statements are usually used to avoid long chains of If/ElseIf/.../ElseIf/Else statements.

An example of a Select

Boolean Operators
Boolean operators in Visual Basic .NET now accommodate for short circuit boolean evaluation, most other languages always apply short circuit boolean evaluation by default (usually, this can be turned off with a compiler option), consider the following boolean statement:

functionA and functionB

With this statement, when short-circuit boolean evaluation is used, the second function will only be called if the first function returns true, this is because if functionA returns false it becomes irrelevant to the outcome of the statement whether functionB returns true or not.

However, when no short-circuit boolean evaluation is used, both of the functions will be called irrespective of whether the first part of the statement returns true or false.

Something to note with short-circuit boolean evaluation is that the order of the parameters can become important when it is used.

Due to previous versions of Visual Basic not having short circuit boolean evaluation, Microsoft has decided to preserve backward compatibility and add two new boolean logic identifiers which support short-circuit boolean evaluation, so in addition to the standard boolean operators:

Not And Or Xor

There are also two new operators which function using short-circuit boolean evaluation, and they are:

AndAlso OrElse

Visual Basic .NET/Conditions

title: Visual Basic .NET/Branch statements


text:
Talk:Organic Chemistry/Foundational concepts of organic chemistry/Electronegativity

"Ionization energy is the opposite of atomic radius"
this doesn't seem right to me. if it is true it should be explainerd--87.64.10.125 17:40, 6 November 2006 (UTC)

having read it again, it seems whoever wrote it meant "the trend of Ionization energy is the opposite of the trend atomic radius..." maybe?--87.64.10.125 17:54, 6 November 2006 (UTC)

Common nonpolar bonds
isn't C-H slightly polar, since C has electronegativity 2.5 and H has 2.1, negative towards carbon?--87.64.10.125 17:54, 6 November 2006 (UTC)

 * Carbon has an electronegativity of 2.55 and Hydrogen 2.20, giving them a difference of 0.35, which is non-polar. I've updated the article to resolve this confusion. Subwindow (talk)


text:
Pakistani Studies

Overview

 * /About/
 * /History/
 * /Politics/
 * /Geography/
 * /Economy/
 * /Culture/

title: Pakistani Studies


text:
User talk:Darkcora

Blanked pending response -- Herby talk thyme 08:19, 8 November 2006 (UTC)

Language
Your comment, above, has raised a few red flags. I would like to ask you to remove that statement on the basis that it is offensive to some readers. I would also like to point out that if you don't remove that comment yourself, it will likely be removed for you. --Whiteknight (talk) (projects) 19:25, 6 November 2006 (UTC)

title: User talk:Darkcora


text:
User talk:81.159.159.40

Welcome to Wikibooks. We invite everyone to contribute constructively to our collection. Take a look at the welcome page if you would like to learn more about contributing. However, unconstructive edits are considered vandalism, and if you continue in this manner you may be blocked from editing without further warning. Please stop, and consider improving rather than damaging the hard work of others. Thanks. -- Herby talk thyme 19:19, 6 November 2006 (UTC)

title: User talk:81.159.159.40


text:
User talk:85.101.95.18

If you want to try things out please use the Sandbox - thanks -- Herby talk thyme 20:02, 6 November 2006 (UTC)

title: User talk:85.101.95.18


text:
Talk:A-level English/Wise Children/Key Quotes

Untitled
It's all well and good having a list of key quotes, but its nigh on essential to know whereabouts in the book the quotes take place otherwise, these quotes are pretty useless...

well if you wsnt to prepare a list of quotations and page references feel free...

It may also be more useful if Nora and Dora's quotes are in two seperate lists.


text:
User:Jkatian~enwikibooks

Jkatian

I'm a simple enough middle-aged woman with 2 younger daughters and at least 1 adult son. I have a college degree and I homeschool my girls. I'm old enough to know I'm not always right, in fact I'm appalled at my ignorance in some areas. However, I love to learn. I came here to learn and didn't find what I wanted, therefore I'm contributing in the hopes of creating what needs to be here.

I don't care if anyone knows what I've contributed. I think the whole wiki system is exactly why the internet exists in the first place. Let's try to organize what's real and make it available to everyone.

My crisis is that we aren't allowed to use what's good on the web without copyright problems. Why write it again when it's already been done elsewhere except it's the only way to get it into this library comprehensively.

title: User:Jkatian~enwikibooks


text:
Pakistani Studies/Contents

Overview

 * About

title: Pakistani Studies/Contents


text:
Pakistani Studies/About

Pakistan, officially the Islamic Republic of Pakistan (اسلامی جمہوریۂ پاکستان), is a country located in South Asia that overlaps with the Greater Middle East. It has a thousand-kilometre coastline along the Arabian Sea in the south and borders Afghanistan and Iran to the west, India to the east and the People's Republic of China in the far northeast. The Kashmir region is claimed by India and Pakistan. Both countries and China separately administer parts of the region with the Indian- and Pakistani-held areas defined by the Line of Control. The Pakistan–China border is not recognized by India.

Pakistan is the sixth most populous country in the world and is the second most populous Muslim country. It was established as a modern state in 1947, as one of the two parts of the partitioned British India, but the region has a long history of settlement and civilisation including the Indus Valley Civilisation. The region was invaded by Persians, Greeks, Arabs, Turks, Mongols, Afghans, and was incorporated into the British Raj in the nineteenth century. Since independence, Pakistan has experienced times of significant military and economic growth, and periods of instability, with the secession of East Pakistan (present-day Bangladesh). Pakistan is a declared nuclear weapons state.

Etymology
The name "Pakistan" means "Land of the Pure" in Urdu and Persian. It was coined in 1933 by Choudhary Rahmat Ali, who published it in the pamphlet Now or Never as an acronym of the names of the "Muslim homelands" of western India — P for Punjab, A for Afghania (the Afghan (Pashtun) areas in the Northwest Frontier Province), K for Kashmir, S for Sindh and tan for Balochistan. The i was later added to the name since in Urdu, the national language of Pakistan, "istan" refers to "land of" while "pak" means pure. Officially, the nation was founded as the Dominion of Pakistan in 1947, and was renamed as the Islamic Republic of Pakistan in 1957.

title: Pakistani Studies/About


text:
User:Croese

Linkies I Need To Keep Track Of
Formal_Logic/Sentential_Logic/Expressibility Haskell/Variables_and_functions Discrete_mathematics Abstract_Algebra Mathematical_Logic Number_Theory Computer_Science/Logic

title: User:Croese


text:
The Computer Revolution/E commerce/Small Business

A couple years ago, I bought a distributor's license from Health and Wellness Company with a view to building a retail website. It was wildly held that the internet was capable of putting the small retailer on equal footing with the larger online retailers. The products were top of the line vitamins, protein shakes, and skin care products. The company, which is well known in the industry, had an extensive packaging and distribution network that would alleviate two of the most time consuming and burdensom aspects of running an online business. All I had to do was build a retail site, get orders, and money would begin to flow into my business account while I was sleeping! Ok, so I was a little naive. Here are some of the pitfalls that I encountered whilst attempting to put this futile business venture together.

Under Capitalization
The first revelation in this endeavor was that quality web design costs money and my meager budget of a few thousand dollars would not buy much.Retailers like Dell computers have multi million dollar budgets for their websites. Still, the catalogue could be done with Open Source software and a third party vendor ( i.e PayPal) to process payments would save a ton of money. I took it upon myself to study some basic HTML so that much of the tedious work on the catalogue could be done myself. The site was built at remarkably little cost about 4 thousand CDN $ but was completed far past the date that was stated for completion.We had agreed in the area of about 6 or 7 thousand at the beginning but the designer had struggled for months with complications with the Open Source software (he'd recommended) was willing to forfeit some of the cost because his tardiness and lack of experience. Questions about the software he posed on the forum sometimes took days to find answers for if they came at all.

After completion the designer informed me that the "bus loads" of traffic he'd promised to drive to the site would cost any where between $1,500 to 3,000 dollars per month. Keywords with reasonably high ranking on Google and Yahoo search engines were not cheap. His fee for maintaining the site (doing updates and addressing technical issues) was $100 per month, plus another $30 for the server.

After mulling this proposition over for a few days,I reasoned that the business of driving traffic to websites too, was new to the designer and that more money spent on this venture would be wasted. I logged onto the site and bought a hundred dollars of my own vitamins,(all I wanted by this time was one sale) called the designer and fired him.

No Standards
One of the first things I did when trying to decide on a reputable web design company was attend a seminar on internet retailing at the main branch of the public library. It was here that I was informed by an internet expert that there was no organization in the web design industry which measured the quality of work being done. The industry was new and choosing a reputable designer was hit and miss. One of the noteworthy items in my search for a reputable company was that only one of a dozen or so that I talked with actually had an office. All else were working out of their homes or on a part time basis. This first "company" I hired were a husband and wife team who were designing web sites away from their day jobs. They already had a number of web site clients but were taking on new clients regardless of already being overwhelmed by the work load. After the initial payment was made time for my site soon disappeared. Furthermore the quality of work proved suspect and tardy. After less than a month I let them go.

After conducting several interviews with local designers the gentlemen I decided on was working with a high profile design company and doing web sites away from work. This too proved a mistake, although technically and professionally he was leaps and bounds better than the first couple, he failed to deliver on his promises in a timely manner and was also guilty of making claims as to his expertise on web design that were false.


text:
User talk:69.181.238.2

Do not remove "unlicenced" tags from images. This is vandalism. -- SB_Johnny | talk 22:14, 6 November 2006 (UTC)

title: User talk:69.181.238.2


text:
Control Systems/Systems Introduction

Preface
This is the Systems Introduction version of the Control Systems wikibook. This book will serve as a general introduction to the topic of systems engineering, by reusing existing text from the "master book", and leaving out some of the more advanced mathematical material.

Systems Introduction

 * Control Systems/Introduction
 * Control Systems/System Identification
 * Control Systems/Digital and Analog
 * Control Systems/System Metrics
 * Control Systems/System Modeling

System Representation

 * Control Systems/System Identification
 * Control Systems/Digital and Analog
 * Control Systems/System Metrics
 * Control Systems/System Modeling

Glossary and Licenses

 * Control Systems/Glossary
 * Control Systems/Resources
 * Control Systems/Licensing

title: Control Systems/Systems Introduction


text:
Control Systems/Classical Controls

Preface
This is the Classical Controls version of the Control Systems wikibook. This book represents a subset of the topics covered in the parent book. Topics covered here will include a basic introduction to systems theory, integral transforms, and basic control techniques using classical control methods. This book should be suitable for a single semesters study, at the undergraduate level, in classical control engineering.

Systems Introduction

 * Control Systems/Introduction
 * Control Systems/System Identification
 * Control Systems/Digital and Analog
 * Control Systems/System Metrics
 * Control Systems/System Modeling

Transform Domain

 * Control Systems/Transforms
 * Control Systems/Transfer Functions
 * Control Systems/Sampled Data Systems
 * Control Systems/System Delays
 * Control Systems/Poles and Zeros

System Representation

 * Control Systems/Gain
 * Control Systems/Block Diagrams
 * Control Systems/Feedback Loops
 * Control Systems/Signal Flow Diagrams
 * Control Systems/Bode Plots
 * Control Systems/Nichols Charts

Stability

 * Control Systems/Stability
 * Control Systems/Routh-Hurwitz Criterion
 * Control Systems/Root Locus
 * Control Systems/Nyquist Stability Criteria
 * Control Systems/System Specifications

Controllers and Compensators

 * Control Systems/Controllers
 * Control Systems/Compensators

Appendices

 * Control Systems/Physical Models
 * Control Systems/Z Transform Mappings
 * Control Systems/Transforms Appendix
 * Control Systems/System Representations
 * Control Systems/Matrix Operations
 * Control Systems/MATLAB

Glossary, Resources, Licensing

 * Control Systems/Glossary
 * Control Systems/List of Equations
 * Control Systems/Resources
 * Control Systems/Licensing

title: Control Systems/Classical Controls


text:
Control Systems/Modern Controls

Preface
This is the Modern Controls version of the Control Systems book. This book represents a subset of the larger parent book. Topics included here will include a basic introduction to systems theory, an introduction to and an explanation of basic state-space methods of control engineering, and design/analysis techniques used with the state-space methods.

title: Control Systems/Modern Controls


text:
Control Systems/Time Variant System Solutions

General Time Variant Solution
The state-space equations can be solved for time-variant systems, but the solution is significantly more complicated than the time-invariant case. Our time-variant state equation is given as follows:

 * $$x'(t) = A(t)x(t) + B(t)u(t)$$

We can say that the general solution to time-variant state-equation is defined as:

 * $$x(t) = \phi(t, t_0)x(t_0) + \int_{t_0}^{t} \phi(t,\tau)B(\tau)u(\tau)d\tau$$

The function $$\phi$$ is called the state-transition matrix, because it (like the matrix exponential from the time-invariant case) controls the change for states in the state equation. However, unlike the time-invariant case, we cannot define this as a simple exponential. In fact, $$\phi$$ can't be defined in general, because it will actually be a different function for every system. However, the state-transition matrix does follow some basic properties that we can use to determine the state-transition matrix.

In a time-variant system, the general solution is obtained when the state-transition matrix is determined. For that reason, the first thing (and the most important thing) that we need to do here is find that matrix. We will discuss the solution to that matrix below.

State Transition Matrix
The state transition matrix $$\phi$$ is not completely unknown, it must always satisfy the following relationships:

 * $$\frac{\partial \phi(t, t_0)}{\partial t} = A(t)\phi(t, t_0)$$

 * $$\phi(\tau, \tau) = I$$

And $$\phi$$ also must have the following properties:

 * {| class="wikitable"

 * 1.||$$\phi(t_2, t_1)\phi(t_1, t_0) = \phi(t_2, t_0)$$
 * 2.||$$\phi^{-1}(t, \tau) = \phi(\tau, t)$$
 * 3.||$$\phi^{-1}(t, \tau)\phi(t, \tau) = I$$
 * 4.||$$\frac{d\phi(t_0, t_0)}{dt} = A(t)$$
 * }
 * 3.||$$\phi^{-1}(t, \tau)\phi(t, \tau) = I$$
 * 4.||$$\frac{d\phi(t_0, t_0)}{dt} = A(t)$$
 * }
 * }

If the system is time-invariant, we can define $$\phi$$ as:

 * $$\phi(t, t_0) = e^{A(t - t_0)}$$

The reader can verify that this solution for a time-invariant system satisfies all the properties listed above. However, in the time-variant case, there are many different functions that may satisfy these requirements, and the solution is dependent on the structure of the system. The state-transition matrix must be determined before analysis on the time-varying solution can continue. We will discuss some of the methods for determining this matrix below.

Time-Variant, Zero Input
As the most basic case, we will consider the case of a system with zero input. If the system has no input, then the state equation is given as:

 * $$x'(t) = A(t)x(t)$$

And we are interested in the response of this system in the time interval T = (a, b). The first thing we want to do in this case is find a fundamental matrix of the above equation. The fundamental matrix is related

Fundamental Matrix
Given the equation:

 * $$x'(t) = A(t)x(t)$$

The solutions to this equation form an n-dimensional vector space in the interval T = (a, b). Any set of n linearly-independent solutions {x1, x2, ..., xn} to the equation above is called a fundamental set of solutions.

A fundamental matrix FM is formed by creating a matrix out of the n fundamental vectors. We will denote the fundamental matrix with a script capital X:

 * $$\mathcal{X} = \begin{bmatrix}x_1 & x_2 & \cdots & x_n\end{bmatrix}$$

The fundamental matrix will satisfy the state equation:

 * $$\mathcal{X}'(t) = A(t)\mathcal{X}(t)$$

Also, any matrix that solves this equation can be a fundamental matrix if and only if the determinant of the matrix is non-zero for all time t in the interval T. The determinant must be non-zero, because we are going to use the inverse of the fundamental matrix to solve for the state-transition matrix.

State Transition Matrix
Once we have the fundamental matrix of a system, we can use it to find the state transition matrix of the system:

 * $$\phi(t, t_0) = \mathcal{X}(t)\mathcal{X}^{-1}(t_0)$$

The inverse of the fundamental matrix exists, because we specify in the definition above that it must have a non-zero determinant, and therefore must be non-singular. The reader should note that this is only one possible method for determining the state transition matrix, and we will discuss other methods below.

Other Methods
There are other methods for finding the state transition matrix besides having to find the fundamental matrix.

 * Method 1:If A(t) is triangular (upper or lower triangular), the state transition matrix can be determined by sequentially integrating the individual rows of the state equation.

 * Method 2:If for every τ and t, the state matrix commutes as follows:
 * $$A(t)\left[\int_{\tau}^{t}A(\zeta)d\zeta\right]=\left[\int_{\tau}^{t}A(\zeta)d\zeta\right]A(t)$$
 * Then the state-transition matrix can be given as:
 * $$\phi(t, \tau) = e^{\int_\tau^tA(\zeta)d\zeta}$$
 * The state transition matrix will commute as described above if any of the following conditions are true:
 * A is a constant matrix (time-invariant)
 * A is a diagonal matrix
 * If $$A = \bar{A}f(t)$$, where $$\bar{A}$$ is a constant matrix, and f(t) is a scalar-valued function (not a matrix).
 * If none of the above conditions are true, then you must use method 3.

 * Method 3:If A(t) can be decomposed as the following sum:
 * $$A(t) = \sum_{i = 1}^n M_i f_i(t)$$
 * Where Mi is a constant matrix such that MiMj = MjMi, and fi is a scalar-valued function. If A(t) can be decomposed in this way, then the state-transition matrix can be given as:
 * $$\phi(t, \tau) = \prod_{i=1}^n e^{M_i \int_\tau^t f_i(\theta)d\theta}$$

It will be left as an exercise for the reader to prove that if A(t) is time-invariant, that the equation in method 2 above will reduce to the state-transition matrix $$e^{A(t-\tau)}$$.

Time-Variant, Non-zero Input
If the input to the system is not zero, it turns out that all the analysis that we performed above still holds. We can still construct the fundamental matrix, and we can still represent the system solution in terms of the state transition matrix $$\phi$$.

We can show that the general solution to the state-space equations is actually the solution:

 * $$x(t) = \phi(t, t_0)x(t_0) + \int_{t_0}^{t} \phi(t,\tau)B(\tau)u(\tau)d\tau$$


text:
English as an Additional Language/Introduction

Welcome!

This book attempts to introduce prospective students to the English language. We hope to create a solid and well-done course to those who wish to learn how to speak, read, and write English. The benefits of learning this language are manifold: English is spoken in more countries than any other language, and is considered the "lingua franca," or international language of the world. It is the primary or major secondary language in the United States, the United Kingdom, Canada, Australia, New Zealand, India, South Africa, and many other countries, and is used by businesspeople, travelers, etc. across the world.

This book is intended for both non-native speakers learning English, and teachers trying to teach the English language. While it does not talk about the aspects of teaching, it contains content that should be useful.

Check back often for more content!


text:
English as an Additional Language/Introducing verbs

Every subject in a sentence must have a verb. There are two types of verb in English:
 * Active verbs
 * Stative verbs

Examples of Active Verbs
play, give, take, do, make, sing, sit, stand, eat, drink, sleep, walk, go

Examples of Stative Verbs
be, like, hate, enjoy, see, want, love


text:
Control Systems/Digital State Space

Digital Systems
Digital systems, expressed previously as difference equations or Z-Transform transfer functions, can also be used with the state-space representation. All the same techniques for dealing with analog systems can be applied to digital systems with only minor changes.

Digital Systems
For digital systems, we can write similar equations using discrete data sets:

 * $$x[k + 1] = Ax[k] + Bu[k]$$

 * $$y[k] = Cx[k] + Du[k]$$

Zero-Order Hold Derivation
If we have a continuous-time state equation:

 * $$x'(t) = Ax(t) + Bu(t)$$

We can derive the digital version of this equation that we discussed above. We take the Laplace transform of our equation:

 * $$X(s) = (sI - A)^{-1}Bu(s) + (sI - A)^{-1}x(0)$$

Now, taking the inverse Laplace transform gives us our time-domain system, keeping in mind that the inverse Laplace transform of the (sI - A) term is our state-transition matrix, Φ:

 * $$x(t) = \mathcal{L}^{-1}(X(s)) = \Phi(t - t_0)x(0) + \int_{t_0}^t\Phi(t - \tau)Bu(\tau)d\tau$$

Now, we apply a zero-order hold on our input, to make the system digital. Notice that we set our start time t0 = kT, because we are only interested in the behavior of our system during a single sample period:

 * $$u(t) = u(kT), kT \le t \le (k+1)T$$

 * $$x(t) = \Phi(t, kT)x(kT) + \int_{kT}^t \Phi(t, \tau)Bd\tau u(kT)$$

We were able to remove u(kT) from the integral because it did not rely on τ. We now define a new function, Γ, as follows:

 * $$\Gamma(t, t_0) = \int_{t_0}^t \Phi(t, \tau)Bd\tau$$

Inserting this new expression into our equation, and setting t = (k + 1)T gives us:

 * $$x((k + 1)T) = \Phi((k+1)T, kT)x(kT) + \Gamma((k+1)T, kT)u(kT)$$

Now Φ(T) and Γ(T) are constant matrices, and we can give them new names. The d subscript denotes that they are digital versions of the coefficient matrices:

 * $$A_d = \Phi((k+1)T, kT)$$
 * $$B_d = \Gamma((k+1)T, kT)$$

We can use these values in our state equation, converting to our bracket notation instead:

 * $$x[k + 1] = A_dx[k] + B_du[k]$$

Relating Continuous and Discrete Systems
Continuous and discrete systems that perform similarly can be related together through a set of relationships. It should come as no surprise that a discrete system and a continuous system will have different characteristics and different coefficient matrices. If we consider that a discrete system is the same as a continuous system, except that it is sampled with a sampling time T, then the relationships below will hold. The process of converting an analog system for use with digital hardware is called discretization. We've given a basic introduction to discretization already, but we will discuss it in more detail here.

Discrete Coefficient Matrices
Of primary importance in discretization is the computation of the associated coefficient matrices from the continuous-time counterparts. If we have the continuous system (A, B, C, D), we can use the relationship t = kT to transform the state-space solution into a sampled system:

 * $$x(kT) = e^{AkT}x(0) + \int_0^{kT} e^{A(kT - \tau)}Bu(\tau)d\tau$$
 * $$x[k] = e^{AkT}x[0] + \int_0^{kT} e^{A(kT - \tau)}Bu(\tau)d\tau$$

Now, if we want to analyze the k+1 term, we can solve the equation again:

 * $$x[k+1] = e^{A(k+1)T}x[0] + \int_0^{(k+1)T} e^{A((k+1)T - \tau)}Bu(\tau)d\tau$$

Separating out the variables, and breaking the integral into two parts gives us:

 * $$x[k+1] = e^{AT}e^{AkT}x[0] + \int_0^{kT}e^{AT}e^{A(kT - \tau)}Bu(\tau)d\tau + \int_{kT}^{(k+1)T} e^{A(kT + T - \tau)}Bu(\tau)d\tau$$

If we substitute in a new variable β = (k + 1)T + τ, and if we see the following relationship:

 * $$e^{AkT}x[0] = x[k]$$

We get our final result:

 * $$x[k+1] = e^{AT}x[k] + \left(\int_0^T e^{A\alpha}d\alpha\right)Bu[k]$$

Comparing this equation to our regular solution gives us a set of relationships for converting the continuous-time system into a discrete-time system. Here, we will use "d" subscripts to denote the system matrices of a discrete system, and we will use a "c" subscript to denote the system matrices of a continuous system.

 * {| class="wikitable"

 * $$A_d = e^{A_cT}$$
 * $$B_d = \int_0^Te^{A_c\tau}d\tau B_c$$
 * $$C_d = C_c$$
 * $$D_d = D_c$$
 * }
 * $$C_d = C_c$$
 * $$D_d = D_c$$
 * }
 * }

If the Ac matrix is nonsingular, then we can find its inverse and instead define Bd as:

 * $$B_d = A_c^{-1}(A_d - I)B_c$$

The differences in the discrete and continuous matrices are due to the fact that the underlying equations that describe our systems are different. Continuous-time systems are represented by linear differential equations, while the digital systems are described by difference equations. High order terms in a difference equation are delayed copies of the signals, while high order terms in the differential equations are derivatives of the analog signal.

If we have a complicated analog system, and we would like to implement that system in a digital computer, we can use the above transformations to make our matrices conform to the new paradigm.

Notation
Because the coefficient matrices for the discrete systems are computed differently from the continuous-time coefficient matrices, and because the matrices technically represent different things, it is not uncommon in the literature to denote these matrices with different variables. For instance, the following variables are used in place of A and B frequently:

 * $$\Omega = A_d$$
 * $$R = B_d$$

These substitutions would give us a system defined by the ordered quadruple (Ω, R, C, D) for representing our equations.

As a matter of notational convenience, we will use the letters A and B to represent these matrices throughout the rest of this book.

Solving for x[n]
We can find a general time-invariant solution for the discrete time difference equations. Let us start working up a pattern. We know the discrete state equation:

 * $$x[n+1] = Ax[n] + Bu[n]$$

Starting from time n = 0, we can start to create a pattern:

 * $$x[1] = Ax[0] + Bu[0]$$
 * $$x[2] = Ax[1] + Bu[1] = A^2x[0] + ABu[0] + Bu[1]$$
 * $$x[3] = Ax[2] + Bu[2] = A^3x[0] + A^2Bu[0] + ABu[1] + Bu[2]$$

With a little algebraic trickery, we can reduce this pattern to a single equation:

 * $$x[n] = A^nx[n_0] + \sum_{m=0}^{n-1}A^{n-1-m}Bu[m]$$

Substituting this result into the output equation gives us:

 * $$y[n] = CA^nx[n_0] + \sum_{m=0}^{n-1}CA^{n-1-m}Bu[m] + Du[n]$$

Time Variant Solutions
If the system is time-variant, we have a general solution that is similar to the continuous-time case:

 * $$x[n] = \phi[n, n_0]x[n_0] + \sum_{m = n_0}^{n-1} \phi[n, m+1]B[m]u[m]$$

 * $$y[n] = C[n]\phi[n, n_0]x[n_0] + C[n]\sum_{m = n_0}^{n-1} \phi[n, m+1]B[m]u[m] + D[n]u[n]$$

Where φ, the state transition matrix, is defined in a similar manner to the state-transition matrix in the continuous case. However, some of the properties in the discrete time are different. For instance, the inverse of the state-transition matrix does not need to exist, and in many systems it does not exist.

State Transition Matrix
The discrete time state transition matrix is the unique solution of the equation:

 * $$\phi[k+1, k_0] = A[k] \phi[k, k_0]$$

Where the following restriction must hold:

 * $$\phi[k_0, k_0] = I$$

From this definition, an obvious way to calculate this state transition matrix presents itself:

 * $$\phi[k, k_0] = A[k - 1]A[k-2]A[k-3]\cdots A[k_0]$$

Or,

 * $$\phi[k, k_0] = \prod_{m = 1}^{k-k_0}A[k-m]$$

MATLAB Calculations
MATLAB is a computer program, and therefore calculates all systems using digital methods. The MATLAB function lsim is used to simulate a continuous system with a specified input. This function works by calling the c2d, which converts a system (A, B, C, D) into the equivalent discrete system. Once the system model is discretized, the function passes control to the dlsim function, which is used to simulate discrete-time systems with the specified input.

Because of this, simulation programs like MATLAB are subjected to round-off errors associated with the discretization process.

title: Control Systems/Digital State Space


text:
Control Systems/Jurys Test

Routh-Hurwitz in Digital Systems
Because of the differences in the Z and S domains, the Routh-Hurwitz criteria can not be used directly with digital systems. This is because digital systems and continuous-time systems have different regions of stability. However, there are some methods that we can use to analyze the stability of digital systems. Our first option (and arguably not a very good option) is to convert the digital system into a continuous-time representation using the bilinear transform. The bilinear transform converts an equation in the Z domain into an equation in the W domain, that has properties similar to the S domain. Another possibility is to use Jury's Stability Test. Jury's test is a procedure similar to the RH test, except it has been modified to analyze digital systems in the Z domain directly.

Bilinear Transform
One common, but time-consuming, method of analyzing the stability of a digital system in the z-domain is to use the bilinear transform to convert the transfer function from the z-domain to the w-domain. The w-domain is similar to the s-domain in the following ways:

 * Poles in the right-half plane are unstable
 * Poles in the left-half plane are stable
 * Poles on the imaginary axis are partially stable

The w-domain is warped with respect to the s domain, however, and except for the relative position of poles to the imaginary axis, they are not in the same places as they would be in the s-domain.

Remember, however, that the Routh-Hurwitz criterion can tell us whether a pole is unstable or not, and nothing else. Therefore, it doesn't matter where exactly the pole is, so long as it is in the correct half-plane. Since we know that stable poles are in the left-half of the w-plane and the s-plane, and that unstable poles are on the right-hand side of both planes, we can use the Routh-Hurwitz test on functions in the w domain exactly like we can use it on functions in the s-domain.

Other Mappings
There are other methods for mapping an equation in the Z domain into an equation in the S domain, or a similar domain. We will discuss these different methods in the Appendix.

Jury's Test
Jury's test is a test that is similar to the Routh-Hurwitz criterion, except that it can be used to analyze the stability of an LTI digital system in the Z domain. To use Jury's test to determine if a digital system is stable, we must check our z-domain characteristic equation against a number of specific rules and requirements. If the function fails any requirement, it is not stable. If the function passes all the requirements, it is stable. Jury's test is a necessary and sufficient test for stability in digital systems.

Again, we call D(z) the characteristic polynomial of the system. It is the denominator polynomial of the Z-domain transfer function. Jury's test will focus exclusively on the Characteristic polynomial. To perform Jury's test, we must perform a number of smaller tests on the system. If the system fails any test, it is unstable.

Jury Tests
Given a characteristic equation in the form:

 * $$D(z) = a_0 + a_1z + a_2z^2 + \cdots + a_Nz^N$$

The following tests determine whether this system has any poles outside the unit circle (the instability region). These tests will use the value N as being the degree of the characteristic polynomial.

While you are constructing the Jury Array, you can be making the tests of Rule 4. If the Array fails Rule 4 at any point, you can stop calculating the array: your system is unstable. We will discuss the construction of the Jury Array below.

The Jury Array
The Jury Array is constructed by first writing out a row of coefficients, and then writing out another row with the same coefficients in reverse order. For instance, if your polynomial is a third order system, we can write the First two lines of the Jury Array as follows:

 * $$\overline{\underline{

\begin{matrix} z^0 & z^1 & z^2 & z^3 & \ldots & z^N \\ a_0 & a_1 & a_2 & a_3 & \ldots& a_N \\ a_N & \ldots & a_3 & a_2 & a_1 & a_0 \end{matrix}}}$$

Now, once we have the first row of our coefficients written out, we add another row of coefficients (we will use b for this row, and c for the next row, as per our previous convention), and we will calculate the values of the lower rows from the values of the upper rows. Each new row that we add will have one fewer coefficient then the row before it:

 * $$\overline{\underline{

\begin{matrix} 1) & a_0 & a_1 & a_2 & a_3 & \ldots & a_N                  \\ 2) & a_N & \ldots & a_3 & a_2 & a_1 & a_0 \\ 3) & b_0 & b_1 & b_2 & \ldots & b_{N-1}                  \\ 4) & b_{N-1}& \ldots & b_2 & b_1 & b_0 \\ \vdots & \vdots & \vdots & \vdots \\ 2N-3) & v_0 & v_1 & v_2      \end{matrix}}}$$ Note: The last file is the (2N-3) file, and always has 3 elements. This test doesn't have sense if N=1, but in this case you know the pole!

Once we get to a row with 2 members, we can stop constructing the array.

To calculate the values of the odd-number rows, we can use the following formulae. The even number rows are equal to the previous row in reverse order. We will use k as an arbitrary subscript value. These formulae are reusable for all elements in the array:

 * $$b_k = \begin{vmatrix} a_0 & a_{N-k}

\\ a_N & a_k \end{vmatrix}$$
 * $$c_k = \begin{vmatrix} b_0 & b_{N-1-k}

\\ b_{N-1} & b_k \end{vmatrix}$$
 * $$d_k = \begin{vmatrix} c_0 & c_{N-2-k}

\\ c_{N-2} & c_k \end{vmatrix}$$ This pattern can be carried on to all lower rows of the array, if needed.

title: Control Systems/Jurys Test


text:
Control Systems/Digital Systems

Preface
This is the Digital Systems version of the Control Systems book. This represents a subset of pages from that book that deal specifically with digital systems. Topics covered here will include digital systems, difference equations, Z-transforms, and other topics specific to digital systems.

title: Control Systems/Digital Systems


text: Control Systems/Digital Systems/Print version


text:
Genealogy/Archiving

It is of vital importance that your original photographs, letters, maps, documents and other artifacts are stored properly, with primary attention paid to the preservation of these things. An archiving policy must meet two key requirements: the archives must ensure the long-term physical preservation of the archives, and it also needs to facilitate access to the archives; at times, these two factors can be in opposition.

In this chapter, you can read more about how to preserve and catalogue your:
 * photographs; and
 * paper documents.

Notes to be added to this page

 * Accessioning: sequential/serial (former implies no gaps in numbering) accession numbers given to all artifacts (photos, documents, etc.), with no duplicates.
 * Don't fold or roll anything.
 * Accession things, in any order, and store correctly; then catalogue and re-order (most commonly chronologically—which is why there's no need to try and order at accessioning time).

title: Genealogy/Archiving


text:
Control Systems/Preface

This book will discuss the topic of Control Systems, which is an interdisciplinary engineering topic. Methods considered here will consist of both "Classical" control methods, and "Modern" control methods. Also, discretely sampled systems (digital/computer systems) will be considered in parallel with the more common analog methods. This book will not focus on any single engineering discipline (electrical, mechanical, chemical, etc.), although readers should have a solid foundation in the fundamentals of at least one discipline.

This book will require prior knowledge of linear algebra, integral and differential calculus, and at least some exposure to ordinary differential equations. In addition, a prior knowledge of integral transforms, specifically the Laplace and Z transforms will be very beneficial. Also, prior knowledge of the Fourier Transform will shed more light on certain subjects. Wikibooks with information on calculus topics or transformation topics required for this book will be listed below:

 * Calculus
 * Linear Algebra
 * Signals and Systems
 * Digital Signal Processing

title: Control Systems/Preface