text:
User:John Carter of Mars

Hello. I am a new editor here, who first arrived seeing the notice in wikipedia for the deletion of the Tennis book. Being constitutional incapable of doing any one thing for more than a few minutes, I decided to drop what I was doing and do this instead.

w:User:John Carter ==Making Contact=

Hi John I am starting in the world of wikipedia so everything is new for me, teacher Thelmadatter give us your user name to contact you, because she says you are very good here, so it would be great if you help us out in this new experience, guillermo7777

title: User:John Carter of Mars


text:
Tennis/The court

The tennis court is a flat rectangle surface with a low net stretched across the center. It is generally covered in grass, clay, concrete, or a synthetic compound. The courts dimensions are 78 feet by 27 feet for singles courts, and 78 feet by 36 feet for doubles courts.

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

title: Tennis/The court


text:
Ada Programming/Libraries/Ada.Direct IO

is a unit of the Predefined Language Environment since Ada 95.

Specification
Element_Type File_Type File_Mode In_File Inout_File Out_File Count      0  implementation_defined Positive_Count Count  1  Count Create File   File_Type Mode  File_Mode  Inout_File Name  String  "" Form  String  "" Open File   File_Type Mode  File_Mode Name  String Form  String  "" Close File   File_Type Delete File   File_Type Reset File   File_Type Mode   File_Mode Reset File   File_Type Mode  File   File_Type  File_Mode Name  File   File_Type  String Form  File   File_Type  String Is_Open File  File_Type  Boolean Read File  File_Type Item   Element_Type From   Positive_Count Read File  File_Type Item   Element_Type Write File  File_Type Item   Element_Type To    Positive_Count Write File  File_Type Item   Element_Type Set_Index File  File_Type To   Positive_Count Index File  File_Type  Positive_Count Size File  File_Type  Count End_Of_File File  File_Type  Boolean Status_Error   IO_ExceptionsStatus_Error Mode_Error     IO_ExceptionsMode_Error Name_Error     IO_ExceptionsName_Error Use_Error      IO_ExceptionsUse_Error Device_Error   IO_ExceptionsDevice_Error End_Error      IO_ExceptionsEnd_Error Data_Error     IO_ExceptionsData_Error File_Type AdaDirect_IO

Wikibook

 * Ada Programming/Libraries/Ada
 * Ada Programming/Input Output

title: Ada Programming/Libraries/Ada.Direct IO


text:
User talk:Sxresearchr

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 17:31, 7 February 2008 (UTC)

title: User talk:Sxresearchr


text:
User talk:Patnaik

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 17:31, 7 February 2008 (UTC)

title: User talk:Patnaik


text:
User talk:Ali.dormady

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 17:31, 7 February 2008 (UTC)

title: User talk:Ali.dormady


text:
User talk:Lsmit087

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 17:31, 7 February 2008 (UTC)

title: User talk:Lsmit087


text:
User talk:John Carter of Mars

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * Make sure to sign your posts and comments with four tildes, like this: ~~~~
 * There is a box at the top of the edit window (if javascript is enabled on your browser) that will insert it too (looks like part of a signature). This will let others know who left it, and make it easy to reply back to you.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * Wikibooks is a collection of open-source textbooks. (What is Wikibooks).
 * If you are 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 (requests for importation) 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 Reading Room with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Help us by participating in policy and guideline creation.
 * 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 Reading Room, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add that page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic (talk) 17:31, 7 February 2008 (UTC)

title: User talk:John Carter of Mars


text: User talk:90.194.117.220

title: User talk:90.194.117.220


text: Wikibooks:Requests for deletion/Creating a jewel in Blender


text: Wikibooks:Requests for deletion/How to win heart of your wife


text: Wikibooks:Requests for deletion/Io and CGI


text: Wikibooks:Requests for deletion/Liberty BASIC


text: Wikibooks:Requests for deletion/Physiology & pharmacology - 3 years of study


text: Wikibooks:Requests for deletion/Rewriting the Bible


text: Wikibooks:Requests for deletion/Rewriting the Myth of King Arthur


text: Wikibooks:Requests for deletion/Advanced Interactive Media Class


text: User talk:169.139.185.1

title: User talk:169.139.185.1


text:
Talk:Chess Opening Theory/1. e4/1...e6/2. d4/2...d5/3. e5/3...c5/4. c3

Page URL is incorrect.
 * Now corrected ChessCreator (talk) 09:15, 15 February 2008 (UTC)


text: User talk:86.131.140.60

title: User talk:86.131.140.60


text: User talk:84.87.90.121

title: User talk:84.87.90.121


text:
User talk:Windauer

Welcome!
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 21:27, 7 February 2008 (UTC)

title: User talk:Windauer


text: User talk:68.36.52.169

title: User talk:68.36.52.169


text: Category:Book:X Window Programming

title: Category:Book:X Window Programming


text:
Chess Opening Theory/1. d4/1...g6/2. c4

= Queen's Pawn: Modern =

2. c4
Playing the standard Queen's pawn formation controlling the center.

Black's options are still many, but likely to be a King's Indian or Grunfeld Defence, but possible is a transposition into the Dutch Defense.

Theory table
.

'''1. d4 g6 2. c4'''

title: Chess Opening Theory/1. d4/1...g6/2. c4


text:
Khepera III Toolbox/Network Setup

USB
The USB port on the Khepera III robot can be used to establish a network connection between the robot and a Linux computer. Start by connecting your robot and your computer with a USB cable.

Connecting for the first time
If you just bought your Khepera III robot, the USB network interface is disabled. To enable it, connect your robot with a serial cable (using a KoreConnect, for example), log in with username "root" and type: modprobe g_ether ifconfig usb0 192.168.1.2 The first line loads the driver, while the second line configures an IP address. On your computer, you can now set a corresponding IP address by typing sudo ifconfig usb0 192.168.1.1 in a terminal, or using your network configuration program. (Note that "usb0" might be called differently on some computers. To get a list of all network endpoints, simply type "ifconfig".)

Connecting after the install scripts have been run
On a Khepera III robot on which the install scripts have been run, the USB network interface will automatically appear with IP address 192.168.1.2 when you connect the cable. Hence, you only need to configure your computer by typing sudo ifconfig usb0 192.168.1.1 in a terminal, or using your network configuration program. (Note that "usb0" might be called differently on some computers. To get a list of all network endpoints, simply type "ifconfig".)

Testing the connection
To test if the connection works, type ping 192.168.1.1 on your robot, or ping 192.168.1.2 on your computer. Ping should work in both directions.

Wireless LAN (802.11)
If you are working with more than one robot, or if you want to communicate with your Khepera III while it is running an experiment, you will probably put a WLAN card in the available CompactFlash slot. This adds a new network interface, which is not configured by default. There is an install script, however, which automatically adds the necessary configuration and configures the interface with an IP address 192.168.141.ID, where ID corresponds to the robot ID.

title: Khepera III Toolbox/Network Setup


text:
Khepera III Toolbox/The Toolbox/Install Scripts

The folder InstallScripts in the top folder of the Khepera III Tools contains scripts to set up a couple of useful things on the robot. These scripts require a Khepera III robot to be connected via USB to the computer.

Before launching the install scripts, we suggest you to set up SSH public key authentication between your computer and the robot. This can be done with one of the Khepera III Toolbox scripts: cd Scripts ./k3-ssh-keysetup +usb cd .. To launch all install scripts, type cd InstallScripts/Kernel-2.6 ./install If you are launching this install procedure for the first time with your robot, the script will first ask you to give your robot an ID. This ID is used to assign a WLAN IP address for the robot, and may also be used by programs running on the robot as a unique identifier of the robot. Needless to say that this ID must be unique among your fleet of robot. If the robot has been given an ID before, the same robot ID will be used.

If your robot is not connected via USB, but some other mechanism, invoke the install script with the IP address of the robot, e.g.: ./install 192.168.141.200

Default Install Scripts
The install script will invoke the following three install scripts (which can also be executed separately if necessary):

 * install_robotid SSHHOST ROBOTID: Sets up the robot ID. Invoke this script separately if you wish to change the robot ID of a robot which already has an ID.
 * install_profile SSHHOST ROBOTID: Copies a bash profile with a bunch of useful aliases (l, .., ...) onto the robot.
 * install_network SSHHOST ROBOTID: Sets up the WLAN network interface. The IP address assigned to the interface is 192.168.141.ROBOTID.

Creating Your Own Install Scripts
In some circumstances, you may want to install your own things in addition to the default install scripts. To do that, take a copy of install_my_own_stuff.template and write your install commands in there. Do not forget to add your script to install.


text:
Khepera III Toolbox/The Toolbox/Scripts

The Scripts folder in the Khepera III Toolbox contains a series of scripts that simplify working with a Khepera III robot, or with a fleet of such robots. These scripts simplify common and often-used tasks, such as copying files onto robots, setting up SSH public key authentication, or shutting down robots. Rare and complicated tasks can always be performed using ssh, scp and other commands directly.

Using the Scripts and Getting Help
All scripts start with the letters k3.... Hence, if you type k3 in a bash shell, followed by pressing the tab key twice, all scripts are listed. This is especially useful for those scripts that you do not use daily. In addition, all scripts print a short help text when called with the -h option, e.g. k3put -h

Selecting Robots
Most scripts require you to specify the robots you are working with. This is done with +... arguments on the command line. Four methods for selecting robots are available:
 * By robot ID, e.g. +203 (which translates into the IP address 192.168.141.203)
 * By a range of robot IDs, e.g. +203-205 (which is the same as +203 +204 +205)
 * By IP address, e.g. +192.168.141.203
 * By the name of a robot or a fleet, e.g. +bob (which looks up the IP addresses or robot IDs in the environment variable K3_BOB)

A special robot is '+usb' which always translates to 192.168.1.2, the address of a robot connected via USB.

Working with a Fleet of Robots
If you are frequently working with a whole fleet of robots, it is Pinnacle Hip Lawsuit advantageous to give this fleet a name and define it as an environment variable. For instance, if you are working with robots 203, 204, 209, 210, 211 and 212, add the following line to your .bashrc file: export K3_MYFLEET=+203 +204 +209-212 and reload that file (source ~/.bashrc). From now on, you can select these robots using +myfleet as script argument. For instance, to copy the infrared_proximity program onto these robots, type k3put +myfleet infrared_proximity

Core Scripts
The following scripts are often used:

Development Scripts
The following scripts are used for developing new programs and modules:

Administration Scripts
The following scripts help with a couple of administrative tasks and are less frequently needed:

Filter Scripts
The following scripts convert program output into another format:

title: Khepera III Toolbox/The Toolbox/Scripts


text:
Khepera III Toolbox/The Toolbox/Programs

The Programs folder contains a series of useful programs and algorithms that run on the Khepera III robot, and interact with its sensors and actuators (motors). These programs are also useful templates to implement your own algorithms. In this chapter, we briefly explain how to use these programs.

Program List
Infrared sensors (including the two infrared floor sensors):
 * infrared_ambient: Measures the ambient infrared light with all infrared sensors.
 * infrared_proximity: Measures the proximity to obstacles with all infrared sensors.

Motors:
 * motor_initialize: Initializes both motors. This program must be launched after switching on the robot.
 * motor_setspeed: Sets the motor speed.
 * motor_stop: Stops both motors immediately.
 * motor_setposition: Sets the current position of the motor encoders.
 * motor_gotoposition: Drives the motor to a specific motor encoder position.
 * motor_getposition: Returns the current position of the motor encoders.
 * motor_configuration: Prints the complete configuration (registers) of both motors.
 * motor_setspeedprofile: Sets the trapezoidal speed profile.

Ultrasound:
 * ultrasound_enable: Enables or disables the ultrasound sensors.
 * ultrasound: Measures the proximity to obstacles with the ultrasound sensors.

Battery:
 * battery: Returns the current state of the battery.

General:
 * firmware_version: Returns the firmware version of the dsPIC and the motor PICs.
 * test_math: Tests a couple of mathematical functions. This program serves more as a template rather than a useful program.
 * tcp_server: Demonstrates how to write a program which accepts a TCP connection.
 * i2c: General I2C utility.
 * i2c_readstream*: Reads a data stream from an I2C device.

Motion:
 * motion_braitenberg: Implements object following, obstacle avoidance and wall following using the Braitenberg algorithm.
 * motion_arrowkeys: Allows to drive the robot around using the keyboard.
 * motion_followline: Makes the robot follow a line on the ground.
 * motion_forwardbackward: Makes the robot continuously move forward and backward.
 * motion_random: Drives the robot randomly around.
 * motion_spiral: Makes the robot move along a spiral.

Odometry:
 * odometry_track: Tracks the position of the robot based on differential-drive odometry using the encoder values.
 * odometry_goto: Drives the robot to a given target position, while keeping track of its position using odometry.

Programs marked with an asterisk (*) are currently incomplete and need some reworking to be done.

Launching a Program
Each program is stored - with its source code, a Makefile, a compiled binary and possibly additional material - in a subfolder of Programs. The binaries are compiled for the Korebot platform (ARM processor running a Linux kernel 2.4) and therefore only run on the Korebot.

To use a program, copy it onto your robot first: cd Programs k3put +usb infrared_proximity (If your robot is connected via WLAN, replace the +usb by +RobotID.) Then, log on to your robot by typing k3go +usb and launch the program there cd your_username ./infrared_proximity The program will write its output directly in the terminal window.

Getting Help
Each program prints a little help text when launched with the -h option, e.g. ./infrared_proximity -h

Redirecting the Output of a Program to a File
In some cases, you may want to write the output of a program (e.g. infrared proximity measures) to a file instead of displaying it on the screen. The standard Linux tools offer several ways to achieve that:

To write the output to a file on the robot, simply redirect the output to a file when launching the program: ./infrared_proximity > my_infrared_proximity_measures Note that there is only about 1 MB of space available on the robot.

To write the output to a file on your computer, launch your program via SSH and redirect the output to a file. For those not so familiar with SSH, this may get a bit tricky. But fortunately, there is a Khepera III script which does all that for you automatically: k3run +usb -o my_output_file /root/your_username/infrared_proximity -r If your robot is connected via WLAN, replace the +usb by +RobotID. This transfers the output of the program over the network connection and stores it in the file my_output_file in the folder k3-192.168.1.2 on the computer. This is actually faster than writing the output to a file on the robot (even if this sounds counter-intuitive), because WLAN transmission is usually faster than writing to the flash memory on the robot.

Running Multiple Programs at the Same Time
You can run several programs on the robot at the same time. This can make sense, for instance, if you want to steer your robot with the keyboard (motion_arrowkeys) and log infrared sensor measurements at the same time (infrared_ambient, infrared_proximity), or track the path of the robot (odometry_track). This is also useful for monitoring the battery level with a program running in the background.

To achieve that, you can log in several times on the same robot (k3go), run one program in the background (e.g. ./infrared_ambient > my_measures &), or launch some programs from the computer (k3run).

There are a few things to keep in mind, however:
 * It does not make sense to run two programs which both set motor speeds. Each time one programs sets the speed, the old speed is overwritten, resulting in quite unpredictable behavior.
 * One program may slow down the other program. The CPU is a shared and limited resource (use top to check CPU usage), but even more so is the I2C bus which is used to communicate with the sensors and actuators of the robot. You should therefore avoid reading the same sensor value with several programs in parallel.

Important note: If you are running programs based on the libkorebot library from K-Team, you should never run any other program accessing the sensors or actuators in parallel, as this may cause such programs to obtain wrong sensor values or crash.


text:
Khepera III Toolbox/Writing your Own Programs

Even though the standard programs allow you to interact with all sensors and actuators of the robot, you probably want to implement your own algorithms. The Khepera III Toolbox provides you with a nice and easy-to-use API for accessing the sensors and actuators of the robot, and several hundred lines of sample code in C. In addition, a Makefile is available.

Linux for Korebot
First of all, make sure that make is available on your computer by typing make -h If the computer complains that he could not find make, install it using the package management system of your Linux distribution.

Next, you need to install the ARM compiler toolchain. Download the file korebot-tools-i386-0.1.2.tar.gz (KoreBot Compilation Toolchain for Linux i386 host) from the K-Team website and unzip it somewhere in your home directory, or in /usr/local/ tar -xfz korebot-tools-i386-0.1.2.tar.gz Add the bin directory to your PATH environment variable, preferably by adding the following line to your .bashrc file: export PATH=$PATH:/path/to/your/arm/toolchain/bin and restarting your bash shell (terminal).

At this point, your computer should not complain any more if you just type arm-linux-gcc --help

Linux for Korebot 2
First of all, make sure that make is available on your computer by typing make -h If the computer complains that he could not find make, install it using the package management system of your Linux distribution.

Next, you need to install the ARM compiler toolchain. Download the file korebot2-oetools-light-1.0-kb1.2.tar.bz2 from the K-Team website and unzip it somewhere in /usr/local/. Doing it in /usr/local is necessary so the compiler can find the libraries. wget http://ftp.k-team.com/KorebotII/software/light_toolchain/korebot2-oetools-light-1.0-kb1.2.tar.bz2 tar xvjf korebot2-oetools-light-1.0-kb1.2.tar.bz2 sudo mv korebot2-oetools-1.0/ /usr/local/

Add the bin directory to your PATH environment variable, preferably by adding the following line to your .bashrc file: export PATH=$PATH:/usr/local/korebot2-oetools-1.0/tmp/cross/bin/ and restarting your bash shell (terminal).

At this point, your computer should not complain any more if you just type arm-angstrom-linux-gnueabi-gcc --help

Mac OS X
At the time of writing, we are not aware of any ARM compiler toolchain for Mac OS X, although I'm pretty sure there must be one out there. All other steps should be the same as on Linux (see above).

Creating a New Program
To create a new program, type cd my_khepera3_project_directory k3-create-program my_new_program where my_new_program denotes the name of your program. This creates a folder my_new_program and copies a sample main.c file as well as a Makefile in there.

To check if everything is all right, try to compile the new program: cd my_new_program make This should create a binary executable my_new_program which you can copy onto the robot and execute there.

You can now edit the file main.c and implement your algorithm there. In case you have a complex algorithm to implement, you can of course create additional *.c and *.h files. All *.c in the project folder will automatically be passed to the compiler when launching make.

Renaming a Program
The name of the binary executable can be changed in the Makefile by modifying the line TARGET := my_new_program Note that by convention, the executable should always have the same name as the project folder. (The script k3put relies on that when specifying a program folder.)

Including Modules
The Makefile also contains a list of modules that must be compiled with your program. Most programs will use the following modules: MODULES := khepera3 commandline i2cal If your program needs another modules (e.g. measurement), simply add these modules to that line.

Including the libkorebot Library
Even though the Khepera III Toolbox does not need the libkorebot library (and implements nearly its whole functionality), you may have code that needs to be compiled against that library. To do that, add the following lines to your Makefile: LIBKOREBOT := /path/to/libkorebot-1.10/build-korebot/ INCS_ADD  := -I $(LIBKOREBOT)/include LIBS_ADD  := -L $(LIBKOREBOT)/lib -lkorebot Note that the compiled programs will only work if the library libkorebot.so is available on the robot.

Programming Style
Programming style is an art rather than an exact science. The Khepera III Toolbox uses a rather compact programming style, but does not follow any specific convention. For your own programs, you are of course free to stick to your own coding style.

There are tools available to automatically format your source code conforming to some rules. One of these tools is Artistic Style, a very easy to use open source program. After installing this program, the following command applies minimal formatting (even spacing between the operators and indentation using tabs): astyle -p --indent=tab main.c A copy of the original file will be saved as main.c.orig.

SVN / Versioning System Issues
We strongly suggest using a versioning system such as SVN (Subversion) to store your Khepera III programs. SVN is probably the most prominent system today, and easy to set up and use.

If you are using a versioning system, you should check in the following files of your program:
 * All source files (*.c, *.h)
 * The Makefile
 * The compiled program (such that a compiled copy is available for those who don't have a compiler set up)
 * Any additional files that the program needs

You should not check in:
 * Intermediate compilation files (*.o, *.d)


text: User talk:203.105.166.2

title: User talk:203.105.166.2


text:
Chess Opening Theory/1. d4/1...Nf6/2. c4/2...g6/3. Nf3/3...Bg7

=Indian Defence=

3...Bg7
The Bishop moves to its ideal square, bearing down on the central dark squares. Black has so far kept the options open by not committing a central pawn move. White can now take control of e4 ready for occupation or develop in a more passive way, the most common is to play g3 and fianchetto the kingside Bishop.

Theory table
.

'''1. d4 Nf6 2. c4 g6 3. Nf3 Bg7'''


text: User talk:24.90.166.236

title: User talk:24.90.166.236


text:
Talk:Chess Opening Theory/1. e4/1...a5

Also known as Wade defence??
The Wade defence already exists http://en.wikibooks.org/wiki/Opening_theory_in_chess/1._d4/1...d6 but is a different move. Do these two rare openings really have the same name or is this a mistake? ChessCreator (talk) 01:06, 8 February 2008 (UTC)
 * It's WARE not Wade. Ware Opening is 1. a4. ChessCreator (talk) 01:08, 14 February 2008 (UTC)

title: Talk:Chess Opening Theory/1. e4/1...a5


text:
Erlang Programming/Expressions

Expressions
Erlang statements look a little like sentences. One statement is a series of comma separated expressions ending with a period. Erlang expressions can either be ignored, stored, or returned depending on their position and structure in a statement.

4+3, H=6-2, lists:reverse([3,4,5]). [5,4,3]

In this Erlang example the expression: 4+3 is computed, the expression H=6-2 is computed, and the reverse of the list [3,4,5] is computed and returned. The results of 4+3 are ignored and the pattern 4 is matched to the variable H. For ever after H will have the unchangeable value 4. "lists" is the name of a standard module (library) that provides list utility functions. The result shown from the above expression is the value of the last statement so the repl will only show [5, 4, 3] as indicated above.

Problems:

1) Write an expression that matches the pattern H2 to the reverse of the list [{1,2},{2,1}].

2) Write an expression that matches the pattern H3 to the length of the list [{1,2},{2,1}].

3) Write an expression that matches the pattern H4 to the length of the flattened version of the list [{1,2},{2,1}].

title: Erlang Programming/Expressions


text:
Iranian History/The Early Arsacids

With the fall of the Achaemenid Empire in 330 BC, Iran became the target of semi-barbarous hordes and Central Asian adventurers. The Seleucids, the Kushans, the Sakas and the Huns each in turn ruled Persia for a period of time. Eventually, they were all superseded by the Parthians or the Pahlavas a Northern Iranian tribe which had conquered the whole of Persia by the 1st century BC.

Origin of the Parthians
Following the death of Alexander, Persia partially recovered her former glory under the Parthians also called Parthva or Pahlava. They were the residents of Parthia a country to the south of Hyrcania and around the present-day Mashhad in the province of Khorasan. Parthia had been one of the satrapies of the Achaemenid Empire and the Greeks.

Arsaces (Arshaka) I 250 - 247 BC
Arcases I was the first major ruler of the Arsacid dynasty of Parthia. He declared his independence from the Seleucids and ruled from 250 BC to 247 BC. He was eventually speared to death in 247 BC and was succeeded by his brother Tiridates who ascended the throne as Arsaces II.

Tiridates 247 - 214 BC
Tiridates succeeded his brother Arsaces I as Arsaces II. He is credited with having consolidated the kingdom established by his brother. However, in 245 BC Ptolemy Euergetes the Ptolemian ruler of Egypt invaded and occupied Syria and proceeded to ravage the Empire upto the frontiers of Parthia. However, fortunately, Parthia was spared as Euergetes had to rush back to quell an insurrection back home. But the invasion of Ptolemy Euergetes have dealt a severe jolt to the crumbling seleucid Empire and Tiridates took advantage of this to liberate Hyrcania. The Seleucid king, Seleucus II responded by invading Parthia in 237 BC in alliance with Diodotus the king of Bactria. Tiridates resorted to strategem and won the king of Bactria to his side. Isolated, Seleucus II was never going to be a formidable force and was defeated by Tiridates in league with Bactria and the Central Asian tribe of the Aspasiacae. Meanwhile, as Selucus II was planning a second invasion of Parthia there arose problems back home due to the insurrection of his brother Antiochus Hierax forcing him to leave for Syria. Tiridates was left unmolested for the rest of his reign and he used this opportunity to consolidate his empire.

Tiridates built a new capital city in the vicinity of the modern-day Mashhad and called it Dara (Dareium to the Greeks). He spent the remained of his reign adorning his new capital and improving it to the state of a world metropolis.

Tiridates died in 214 BC and was succeeded by his son Artabanus I.

Artabanus I 214 - 196 BC
As soon as he ascended the throne, Artabanus I captured the entire tract between Hyrcania and the Zagros Mountains taking advantage of a civil war in Syria. He even took the imperial city of Ecbatana. However, soon after the civil war had concluded, Antiochus III the Great of Syria set out for Parthia at the head of a large army and easily retook Ecbatana which was undefended. He then proceeded all the way north to Parthia and conquered the capital Hecatompylos forcing Artabanus to take shelter in Hyrcania. The Parthian monarch's hopes were dashed when Antiochus III completely surrounded Hyrcania with his troops. Artabanus was forced to surrender and conclude peace with the Seleucids. Artabanus I proceeded further eastward and fought a battle with the Bactrians. Finally, in 206, his eastern campaign having come to a conclusion, he returned unmolested to Antioch.

Phraates I
Priapatius was succeeded by his son Phraates I (Old Persian:Farhaud). During his seven year long reign, Phraates invaded the Mardians and defeated them. He then invaded the western district of Media and conquered it. The conquest of Media brought the Girduni Sudurrah pass under Phraates' control. This pass was of great strategic importance and its conquest by the Parthians brought Persia within Parthia's grasp. Phraates was succeeded by his brother Mithridates.

Mithridates I
Mithridates I (Old Persian: Mithradatha; New Persian:Mehrdad) ruled for thirty-seven years and was singularly responsibl;e for elevating Parhtia from the status of a minor principality to a powerful Empire.

War with Bactria
Eucratidas, the monarch of Bactria and his predecessor Demetrius had expanded the Bactrian kingdom beyond the limits of Afghanistan into North-west India and had added the Punjab to the kingdom. To the south, the kingdom extended almost upto the mouths of the Indus. However, not satisifed, Eucratidas wanted to expand further to the East and conquer the rich plains of India. Hence he was involved in constantr wars with the East. Taking advantage of the king'd eastern campaign the north-western provinces of the Empire began to break off one by one. Mithridates took advantage of the situation prevailing in Bactria and attacked the kingdom annexing the country of the Turanians and that of the Aspasiacae.

Invasion of the Seleucid Empire
During this time, Syria was ruled by Antiochus Epiphanes who was infamous for his religious fanaticism and intolerance. He fought a three-year long war with the Egypt over the disputed south-western frontiers of the kingdom. He tried to suppress Judaic culture and tried to impose Hellenism and Hellenic Gods upon the Jewish people. This evoked widespread reaction and provoked civil war. He died a few years later and was succeeded by his son Antiochus Eupator a boy of nine who ruled for a short period before being deposed by his cousin and rival claimant to the throne Demetrius. Soon after his accession, he began concentrating his energies on controlling internal rebellion in the kingdom.

Finding the king busy with his campaign in Judea, soon after the successful invasion of Bactria, Mithridates invaded the Seleucid kingdom and occupied Media Magna. However a rebellion in Hyrcania forced Mithridates to return immediately.

Second War with Bactria
In about 150 BC, Eucratidas was succeeded by his son Heliocles who initiated war with Parthia to recover the provinces his father had lost. However, Mithridates easily defeated him and carried the Parthian arms as far as the frontiers of India.

Demetrius' Campaign
In 142 BC, when the civil war in Syria came to an end, Demetrius II invaded the Parthian Empire in order to recover lost territories. His campaign was initially successful as the Greek citizens of the Parthian welcomed him as their deliverer. But Mithridates took recourse to strategem and successfully vanquished him and captured him. The Seleucid Emperor Demetrius II became a hostage of the Parthian king Mithridates I and was allotted a residence in Hyrcania.

Mithridates I died soon after the victory over Demetrius II.

Administration under Mithridates I
The king was assisted in his duties by an advisory body made up of members of the Royal House on one hand and the Magi and the wise men on the other. In the event of a monarch passing away with no rightful heir to succeed him, his successor would be nominated by this assembly. This assembly also held the power to depose monarchs.

The Parthians followed the very system of governance practised by the Achaemenids. The country was divided into satrapies governed by satraps. Besides, there were a number of kingdoms and dependencies which pledged allegiance to the Parthians. They are Persia, Elymaiis, Adiabene, Osrhoene, Armenia and Media Atropatene. The satraps were fourteen or fifteen in number.

The king styled himself "Shahenshah" or "Kings of Kings" and "brother of the sun and the moon".

Character of Mithridates
Though the Parthian kingdom was founded by Arsaces I, Mithridates I is credited with having transformed the kingdom into an Empire. He was brave and fearless and was quick to grab opportunities. At the same time, history describes him as a mild and clement monarch who pardoned defeated monarchs and treated them graciously. He is undoubtedly, one of the greatest monarchs of the Arsacid dynasty.

Phraates II
Mithridates I was succeeded by his son Phraates II in about 134 BC.

War with Syria
After the capture of Demetrius by the Parthians, Antiochus Sidetus had been crowned the Seleucid Emperor at Antioch. Soon afterwards he was locked in a deadly conflict with Tryphon a pretender to the throne whom he defeated and killed. After the death of Tryphon, Antiochus Sidetus ravaged Palestine and forced them to submit to his authority which they did in 133 BC. Following the subjugation of Palestine, he turned his attention towards Parthia and invaded the Parthian Empire in 129 BC.

With a contingent of over 100,000 fighting men, Sidetus conquered Babylonia and Assyria and advanced with great speed upon Parthia. However, just as he approaching the frontiers of Babylonia, winter broke out forcing the Seleucid troops to scatter. Phraates, meanwhile, was actively abetting rebellion in the conquered provinces, inciting the discontented people of Babylonia and Assyria to rebel against Sidetus and his Syrian troops. On an appointed date, insurrection broke out on a massive scale. Local people revolted against the haughtiness and arrogance of Syrian soldiers and fell upon them. They were offered all aid by the Parthian frontier garrisons. Sidetus and his army were eventually cut to pieces before they cross the border into Syria. '''This would be the last attempt made by the Seleucids to reclaim their lost territory. Never again, would the Seleucids even come close to fighting a war with the powerful Parthian Empire. This war also spelt the end of the Seleucid Empire as a major power in Asia'''.

Rebellion of the Greeks and Phraates' Death
Soon after the defeat of Antiochus Sidetus, Phraates II desired to invade Syria. However, he had to call off the campaign when the Scythian contingent of the Parthian army rebelled demanding more pay. When Phraates II refused, they ravaged Parthia itself forcing Phraates II to shift the capital to Babylon. Having established his seat at Babylon, Phraates II set out with a Greek contingent to fight the Scythians and drive them off. In the ensuing battle, the Greeks deserted Phraates and joined the Scythians. Phraates and his army suffered a crushing defeat and a large number of them were slaughtered. Phraates himself was among the slain and was succeeded by his uncle Artabanus.

Artabanus II
Phraates was succeeded by his uncle Artabanus, a son of Priapatius who ascended the throne as Artabanus II.

Artabanus ascended the throne when the kingdom was in peril. The Greeks and Scythians were advancing upon Babylon to finish off the Parthian Empire. However, Artabanus II was saved by by the fortunate turn of events. The Greeks had lost interest in invading Parthian territories while the Sakas were satisfied with the plunder they had made. So, the victorious forces dispersed soon after satisfying their thirst for plunder. The Parthian Empire was saved.

Artabanus swore revenge and soon afterwards, attacked the Tochari, one of the Scythian (Saka) tribes. However, in the clash that followed, Artabanus was defeated and killed.

Mithridates II
Artabanus II died in about 124 BC and was succeeded by his son Mithridates II, also known as Mithridates the Great.

Conflict with the Scythians or Sakas
Mithridates fought the Scythians and completely routed them. He even seized portions of Bactria which the Scyths had taken. With this, the Sakas abandoned all plans to invade the Parthian Empire and began to concentrate on Sistan and India.

First Armenian War
Armenia had been first conquered by the Assyrians in the 8th century BC. Since then, it had been a part of sccessive empires which ruled Persia -- the Mede, the Achaemenid, the Greek and the Seleucid. In 190 BC, when Antiochus was defeated by the Romans Armenia declared its independence. Bt it was reconquered by Antiochus Epiphanes in 165 BC and its king Artaxias made prisoner.

During the rule of Mithridates I when Parthian power was established all over Asia, Armenia became independent under an Arsacid prince. When Mithridates II ascended the throne he invaded Armenia. The Armenians pleaded for peace when their defeat became imminent and war came to an end by a treaty advantageous to the Parthians. Ortoadistus, the Parthian king was replaced by his son Tigranes who ceded large chunks of territory to Parthia.

Alliance with Rome and the Second Armenian War
In around 96 BC, Tigranes, the king of Armenia allied with Pontus with the intention of conquering Cappadocia. The Roman republic was alarmed at the rise of a new power along its eastern frontiers and sent Sulla in 92 BC with a large army to fight this emerging power. Sulla invaded Asia Minor and inflicted a crushing defeat on Pontus and Armenia.

At about the same time, Tigranes invaded Parthia in order to break Parthian power and recover lost territories. Tigranes rapidly overran Upper Mesopotamia and threatened Parthia, forcing Mithridates to conclude an alliance with Rome.

Mithridates II died soon afterwards.

Gotarzes
Mithridates II was succeeded by Gotarzes. His original name might have been Gudarz which had been Hellenized to Gotarzes.

Sinatroces
In around 76 BC, Orodes I was succeeded by Sinatroces a son of Mithridates I and a cousin of Phraates II. He was over eighty years old at the time of his accession.

Meanwhile, Armenia had reached the zenith of its power under its king Tigranes.Even in the reign of Mithridates II, he had waged a successful war against Parthia and conquered Northern Mesopotamia. By 83 BC, he had established his suzerainty all over Syria, Cilicia, Palestine and Sophene. The Armenian kingdom was at its greatest extent when Tigranes shifted the capital to Gordyene in Northern Mesopotamia.

In 72 BC, Rome launched a second war against Armenia. Sinatroces remained neutral and had to face-off the invasion of the Roman general Lucullus which followed. Lucullus invaded the Parthian Empire but faced a determined resistance from the garrison at Nisibis which blocked his advance.

At this juncture, Sinatroces passed away and was succeeded by his son Phraates III.

Phraates III`
Phraates III is notable for his alliance with the Roman general Pompey against Tigranes. To tackle Armenia, he fomented disunity and civil war by aiding Tigranes' son Tigranes against his father. The latter was banished from Armenia and returned with a body of Parthian troops to challenge his father. In the battle that followed, the Parthian troops had to face defeat. However, Armenia submitted to a Roman invasion which had worsted Mithridates of Pontus. Parthia took advantage o this defeat to recover the provinces that it had earlier lost to Armenia.

However, from the very beginning, Pompey was not much inclined towards having an alliance wit Parthia whom he perceived as a potential rival to Rome. He allowed the Parthians to take Adiabene but he handed over Gordyene to Ariobarzanes, the Cappadocian monarch. Soon war broke out between Tigranes and Phraates III over the disputed region of Gordyene. Pompey switched sides and supported the Armenians against the Parthians and drove them off. He even refused to address the Parthian monarch as "king of kings". Peace was however soon concluded between Parthia and Armenia.

Phraates III was assassinated by his two sons Mithridates and Orodes in 62 BC.

Mithridates III
Mithridates III ruled for a short span of three years. During his reign, the Parthians recovered the province of Gordyene which they had lost to Armenia. However, three years after his accession, trouble broke out in the Empire forcing him to flee. He sought the assistance of Rome to recover his throne. But an internal rebellion in Parthia had already placed his younger brother Orodes on the throne. Mithridates was captured and killed and succeeded by Orodes.

Orodes II
Mithridates III was succeeded by his brother Orodes II.

title: Iranian History/The Early Arsacids


text:
Iranian History/The Later Arsacids

The kingdom of Parthia entered a new stage in the early years of the Christian Era. From 51 AD onwards, Parthian kings took names such as Vologasses (Valkhash) which the earlier Parthian kings had never used.

Artabanus III
Artabanus III was the first Parthian monarch to ascend the Parthian throne since the commencement of the Christian era. In 12 AD, the Parthian nobles, weary of the Latinized monarch Vonones deposed him and chose Artabanus, the Arsacid king of Media Atropatene as their King-Emperor. Artabanus accepted and at once pursued Vonones who first fled to Armenia and then Syria. After a short war, Armenia was taken by the Parthians forcing Vonones to seek permanent refuge in the Roman province of Syria.

The Roman Emperor Tiberius dispatched his nephew Germanicus to negotiate with the Armenians and Parthians. He imbibed in him all power, glory and grandeur, in short making him the de facto "King of all Roman provinces to the east of the Hellespont". Germanicus arrived in Armenia and supported the candidature of one Zeno who, unlike Vonones, was acceptable to the Armenians. He was also able to successfully negotiate with the Parthian Emperor. Vonones was moved to Cilicia virtually a Roman prisoner and was killed while trying to escape.

In 34, when Zeno died, Artabanus III, foreseeing little resistance before him now that Tiberius was too old, invaded Armenia and placed his son Arsaces on the throne. However, Tiberius responded by abetting a conspiracy against Artabanus. Artabanus acted swiftly and responded by diverting the attention of one of the conspirators and poisoning another.

In 36, Pharasmanes the King of Iberia killed Arsaces and raised his own brother Mithridates on the Armenian throne with help from Albania and Rome. Artabanus sent his son Orodes to fight the invaders and secure Armenia but the Parthians were defeated by the combined forces of Rome, Iberia, Armenia and Albania and tens of thousands were slain. Artabanus then personally marched against Armenia but the threat of a Roman invasion of Mesopotamia forced him to retreat and retire to the safety of Hyrcania leaving the Persian capital undefended.

Artabanus ruled from 12 to 38 and for the most part of his reign, his kingdom was afflicted by civil war and internal strife. Artabanus, himself, was deposed twice and twice reinstated. He died soon after his second reinstatement.

Gotarzes II and Vardanes
Gotarzes II a son of Artabanus III ascended the throne on the death of his father. According to Tacitus, immediately after his accession he was deposed and replaced with his brother Vardanes who ruled for about three years. During his short reign, Vardanes seems to have indulged in the subjugation of Seleucia. His brother Gotarzes rebelled and with support from Hyrcania, plotted to capture the throne. But the brothers set aside their differences and concluded peace once they realized that there was a conspiracy to make a non-Arsacid the Emperor of Parthia. Soon after this conspiracy was quelled, Vardanes planned to invade Armenia but was opposed in his designs by Izates the ruler of Mesopotamia. Frustrated, Vardanes declared war against Izates but was drawn to the north-east by a rebellion in Hyrcania and was assassinated on the way.

Immediately after the death of Vardanes, Gotarzes was crowned king. Once again his conduct hadf become som ubearable that the nobles schemed to do away with him. They contacted the Roman Emperor Claudius who sent Mithridates, a grandson of Phraates IV and a son of Vonones, with a formidable force to claim the throne of the Arsacids. Mithridates penetrated Mesopotamia with aid from the king of Osrhoene and Izatus of Adiabene but was let down by his allies in the course of the final battle and defeated. Gitarzes died soon afterwards and was succeeded by Vonones II who ruled for a few months. Vonones was succeeded by Vologesses I.

Vologasses I
Vonones II had three sons Vologasses, Tiridates and Paeorus of whom Vologasses succeeded him. His name in Old Persian would have been Valkhash and Balas in Middle Persian.

First Invasion of Armenia
In 47, Pharasmanes the king of Armenia had a nephew named Rhadamistus who killed him and ascended the throne. The rule of an usurper was highly resented by the people of Armenia. Vologasses took advantage of the situation to invade the country. Artaxata the capital and Tigranocerta were easily taken. Rhadamistus was deposed and Tiridates the brother of the Parthian Emperor was made king of Armenia. However, no sooner had he ascended the throne that winter and pestilence broke out forcing the Parthians to withdraw their contingent allowing Rhadamistus to reclaim his throne.

Rebellion of Izatus
Izatus, the king of Adiabene had greatly increased in strength and stature that he now contrived to overthrow the Parthian yoke and establish himself as an independent monarch than a Parthian feudatory. At length, Vologasses invaded Adiabene but met with little success as Izatus applied the scorched-earth policy and laid waste the whole countryside. At this juncture, an attack of the Scuythians briefly drew Vologasses to the northern frontiers of the Emnpire. By the time the Scythian war came to an end, Izatus had died. His brother Monobazus who succeeded him submitted to Vologasses and ascended the throne as a feudatory of Parthia.

Second Invasion of Armenia and the War with Rome
In 54, when Rhadamistus was in the third year of his reign, Tiridates, brother of Vologasses, invaded Armenia forcing him to flee. The latter soon took over as the king of Armenia. This precipitated in a war with Rome whose interests in Armenia were being threatened. Corbulo, regarded as the best general of the time, was sent with Ummidius to fight the Parthians. Both, however, on taking their position, sent emissaries to negotiate with Vologasses, who agreed to a temporary peace.

Vologasses was in a perilous situation when Rome had sent its legions to invade Parthia. Vardanes, the crown prince, was in rebellion. The temporary peace however enabled him to devote his attention to the civil war raging in his own country. In about 58, Vardanes was finally defeated and killed. However, no sooner had the civil war come to an end than a rebellion broke out in Hyrcania. Devoid of support, Tiridates and the small Parthian contingent in Armenia were easily overpowered and forced to flee. By 61, the whole of Armenia was under the Romans, who entrusted the government to one Tigranes, a grandson of the King of Cappadocia.

In 61, when the war in Hyrcania had come to an end, Vologasses sent two armies under Monseses and Monobazus to invade Armenia and capture Tigranocerta the capital while he stationed himself at the junction of Armenia and Syria. Monseses and Monobazus invaded Armenia but the siege of Tigranocerta failed. Vologasses proceeded as far as Nisibis but a plague of locusts forced him to withdraw. The hostilities came to an end when peace was concluded between the warring armies.

However, at this juncture, Rome made a strategic error of judgement when it appointed Cassinius Paetus to take command in Armenia. Paetus was thoroughly incompetent, At first, he entered Armenia from Cappadocia but was surrounded and defeated. Vologasses proposed peace with Rome. However, Nero rejected Vologasses' terms and sent Corbulo with a large army to invade Parthia.

Corbulo invaded Armenia at the head of 80,000 men forcing the Parthians to withdraw. Tiridates surrendered and accepted the Roman Emperor Nero as his overlord. He was, in turn, sent to Rome to receive the diadem at the hands of the Roman emperor. In a ceremony which was a showpiece of Rome's imperial authority, Nero placed the diadem on the head of Tiridates and crowned him king of Armenia.

In around 72, Paetus, the proconsul of Syria, deposed the king of Cappadocia suspecting him of negotiating an accommodation with Parthia. However, his son was reinstated by Vespasian when he was convinced that they were innocent.

Vologasses I died in around 79 succeeded by his son Pacorus.

Pacorus II
Pacorus ascended the throne as Pacorus II in 79 and ruled till 108. He supported a pretender of Nero in Rome. He is also credited with expanding and beautifying Ctesiphon. He also sold Osrhoene to a prince from Edessa. He must have passed away in around 108 and was succeeded by his son.

Vologasses II
In 133, a vast horde of the Alanni invaded the Parthian Empire at the instigation of Pharasmanes, king of Iberia who was a vassal of Rome. Vologasses made a formal complaint at Rome but instead of chastising Pharasmanes, the Roman Emperor Hadrian honored him. Vologasses was furious but barely made a complaint. Hadrian died in 138 and was succeeded by Antoninus Pius. Vologasses at once sent a message of congratulations requesting the restitution of the golden throne which Trajan had captured during his expedition. But Antoninus Pius flatly refused.

Vologasses II died in around 148.

Vologasses III
In 148, Vologasses II was succeeded by Vologasses III who must have probably been his son.

War with Rome
In 161, the Roman Emperor Antoninus was succeeded by his adopted son Marcus Aurelius. Taking advantage of the presence of a minor on the throne of Rome, Vologasses invaded Armenia and expelled the Armenian king Sosemus whom the Romans had raised on the throne. Severianus, the prefect of Cappadocia and Attidius Cornelianus opposed him but were defeated by a huge army under Khusro which crossed the Euphrates into Syria and ravaged the Roman provinces. Marcus Aurelius responded by sending an army under the command of Cassius to recover the lost provinces. Cassius defeated Vologasses in a great battle at Europus in 163 and drove the Parthians back across the Euphrates. Armenia was invaded by Statius Priscus who conquered the capital Artaxata and restored Sosemus on the throne.

Cassius, meanwhile, crossed the Euphrates into Mesopotamia and ravaged the country. Seleucia, which had a population of 400,000 was burnt to the ground. Ctesiphon on the other side of the Tigris was also occupied and the summer palace of the Parthian king destroyed along with its temples and monuments.The Roman army even crossed the Zagros mountains into Media and conquered a portion of the province. However, soon afterwards pestilence broke out and the Romans contended with the successes they had achieved did not press any further. Thus, the war came to an end in 165.

Vologasses died in 192 and was succeeded by his eldest son Vologasses IV.

Vologasses IV
Vologasses IV succeeded his father Vologasses III in 192. During his accession Rome was in turmpil. Three individual Roman commanders, Clodius Albinus, in Britain; Severus, in Pannonia and Pescennius Niger, in Syria, had declared themself Emperor of Rome. Meanwhile, Pescennius Niger hoped to garner support amongst the small kingdoms on the either side of the Euphrates which might be beneficial in the event of an invasion by Severus. So, he sent emissaries to Parthia, Armenia and Hatra in retrn for support. Vologasses IV did not himself involve in the war or offer troops but encouraged his dependent kingdoms to do the same. So when, Armenia and Hatra supported the cause of Niger Vologasses did not chastise them but instead, encouraged them.

No sooner had the kingdoms resolved to support Niger that Severus invaded Asia plunging the Asian Empire of Rome in turmoil. Supported by Adiabene, Northern Mesopotamia rebelled. The Roman garrisons stationed in Mesopotamia were cut to pieces and soon afterwards, Nisibis itself was besieged. Severus established himself in Syria and rushed to the scene rescuing Nisibis and retaking Mesopotamia. He even crossed the Euphrates into Parthian territory and conquered the Parthian feudatory of Adiabene. But civil war in Rome triggered by the claim to the throne by Clodius Albinus forced Severus to quit the newly occupied territories and return to Rome. Soon after his departure, Vologasses invaded and conquered Adiabene and Northern Mesopotamia and penetrated deep into Syria. Severus, after settling the issue in Rome in his favor, rushed to scene and soon recovered all the lands lost in the preceding months. He then crossed over to the other side of the Euphrates into Babylonia and besieged the capital city of Ctesiphon which fell after a brief resistance. The inhabitants were massacred and the treasury was plundered by the invading Romans. After accumulating an enormous spoil, the Roman army recrossed the Euphrates largely unmolested. Hatra was the only province which offered a stout resistance thereby forcing the Roman Emperor to call of its invasion. But it was a resounding win for the Romans overall and greatly diminished the reputation of Parthia as a major world power.

Vologasses IV died in around 207. His death was followed by a war of succession and the rise of Vologasses V.

Vologasses V
Vologasses held supremacy in Parthia over his brother Artabanus from 207 to around 213 and ruled the kingdom during a period when it was engrossed in civil war. The Roman Emperor Caracallus, who in 211 succeeded his father, Severus, as Emperor of Rome, congratulated the Senate in 212 on the strife still going on in Parthia, which could not fail (he said) to inflict serious injury on that hostile state. Starting from 213 onwards he rapidly lost ground in the western parts of the Empire yielding sovereignty to his brother Artabanus. He, however, continued to exercise sovereignty over the eastern parts till 223.

Artabanus V
In around 213, Artabanus gained control over the capital Ctesiphon and the western provinces from his brother Vologasses V. Soon after his accession to the throne, the Roman Emperor Caracallus sent an emissary to him demanding the hand of his daughter which Artabanus politely refused.

In order to avenge the insult, Caracallus invaded Parthia at the head of a huge army. The invasion was swift as the invading troops entered the Parthian Empire through Babylonia and laid waste the country. Arbela fell after a brief resistance and the Roman avenged his insult by ordering the desecration of the sepultures of the Parthian monarchs. However, the Roman troops soon withdrew by way of Adiabene and Upper Mesopotamia and wintered at Edessa. On April 8, 217, while Caracallus was on way to pay obeisance at the famous temple of the Moon God at Carrhae, he was treacherously murdered by one of his guards Julius Marcialis. Caracallus was succeeded as the Roman Emperor by Macrinus who was not favorably inclined towards continuing the war. Macrinus proposed peace to Artabanus which was rejected by the latter. The Parthian cavalry attacked the Romans at Nisibis precipitating war. The battle which was fought at Nisibis was extremely fierce and resulted in the defeat of the invading Romans who were compelled to pay a huge ransom for their safe return.

Fall of the Parthian Empire
In about 220, Ardeshir, the feudatory king of Persia, rose against his Parthian overlord and declared independence from Parthia. Artabanus led a large body of troops into Persia to quell the insurrection but was defeated in a series of three battles in the last of which he was slain. Ardeshir crowned himself the independent king of Persia and conquered the outlying Parthian provinces one by one culminating in the conquest of Parthia itself. The Arsacids made one last stand in Armenia under Artavasdes, an uncle of Artabanus who ruled from 227 to 229 but by 229, Ardeshir had conquered most of Armenia hastening the demise of the Parthian Empire.

Parthians after the fall of the Empire
Even after the demise of the Parthian Empire, Parthians continued to play a major part in Asian politics. The seven Parthian families maintained their status, power and influence intact right up to the Arab conquest of Iran. One of them, the Qarens established a Zoroastrian principality in Taraistan and exercised regal authority till the 16th century AD.

The Pahlavi Dynasty
In 1925, Reza Khan, an officer in the Persian army established the Pahlavi dynasty and ruled from Tehran. He claimed to be a descendant of the Parthians or Pahlavas of yore. The rule of the Pahlavis from 1925 to 1979 saw a resurgence of ancient Persian traditions and was characterized by the emergence of a new found love for Iran's Zoroastrian past. In 1979, Reza Khan's son Mohammad Reza Shah Pahlavi was forced into exile by the 1979 revolution and an Islamic republic was established.

title: Iranian History/The Later Arsacids


text:
Iranian History/Last Remnants of Sassanian Rule

After the defeat of Yazdegerd at Nehavend, Persia literally came under Arab rule. However, the Arabs were not in control of far flung corners of the Sassanid Empire which resisted Arab expansion for a long time after the end of the Sassanians.

Yazdegerd after the Battle of Nehavend
According to certain accounts, after the defeat of Yazdegerd at the Battle of Nehavend in 642, he fled to Persepolis and made it his capital. He then fled to Khorasan and settled over there. According to the Bundahis, he wanted to get the assistance of Indians to tackle the Arabs. However, he was killed by a greedy miller for the costly clothes and ornaments he wore. With this, ended the Sassanian Empire. According to another version, Yazdegerd was killed at Merv in 690 AD even while the Second Court at Istakhr survived the Arab onslaught. According to this account, Yazdegerd's advisor Farokhzad crowned himself king and issued coins and continued to negotiate with the Arabs. We are not sure of the Farokhzad and the Second Courts' end, but it is probable that it was eventually taken over by the Arabs. But then, if Yazdegerd had died in 690 he would have been 76 years of age by then. However, lack of evidences make it highly doubtful whether he ever lived beyond his thirty-seventh year.

Piruz
When Yazdegerd III died, his son Piruz fled to the east. According to The Old Book of the Tang, in around 661, he appealed to the Chinese for help. Shortly afterwards, he settled in Tang China and was made 'Martial Leader and Guard of the Right Flank'. He was instrumental in the expansion of the western frontiers of Tang China to Kyrgyzstan and even Bactria. In 678, during Tang China's successful invasion of Zaranj in western Afghanistan by Pei Xingjan, Piruz was sent escorted by an army. He served as the Chinese Governor of Zaranj for thirty years till his death in 709. The Zoroastrian holy book Bundahis claims that a son of Yazdegerd III went to the land of the Hindus (India) to seek their help and that he returned with an "Army of Champions" to reclaim his throne. This is possibly a reference to Piruz's flight to China and his return to his homeland as the commander of a Chinese battalion in the invasion of Zaranj. However, the Bundahis wrongly states that the "Army of Champions" dispersed upon reaching Afghanistan. The Chinese army did not disperse. On the contrary they established a permanent garrison at Zaranj.

Narsieh
Piruz's son Narsieh also served with distinction in the Chinese army. However with his passing in the middle of the 8th century AD, the Persian as well as the Chinese chronicles become silent on the fate of the Sassanians. It could either be that Narsieh did not have children of his own. It is also quite possible that his children adopted Chinese customs and intermarried with the Chinese thereby losing their Persian identity. Either way, it spelt the end of the Sassanian dynasty.

In 728, a descendant of Yazdegerd named Khosro was mentioned fighting alongside Soghdians and Turks against the Islamic forces besieging Bokhara. This is, possibly, the last reference to any direct descendant of Yazdegerd III.

The last Sassanian Principalities
Even with the extinction of the Empire in the 7th century AD a few principalities pledging allegiance to the defunct Sassanian Empire did manage to survive the Empire itself.

Deyleman
When Yazdegerd III was fighting the Arabs, Gil Gaubareh, a distant cousin of Khusro Perviz and the Sassanid Governor of Gilan established the kingdom of Deyleman by annexing Tabaristan and uniting Gilan with Tabaristan. The Sassanian Empire fell but the Arabs were unable to conquer Tabaristan. Gil was succeeded by his son Dabuy whose influence was spread throughout the Tabarestan, Kohestan, Royan, and even parts of Ray and western Khorasan. Dabuy ruled from 660 to 676 and was succeeded by his brother Padhuspani, the governor of Royan who consolidated the Empire. In 759, Khurshed II, the great-grandson of Dabuy was defeated by the Arabs and unable to bear the humiliation, he consumed poison and thus ended his life. His successors converted to Islam and ruled Deyleman for the next 800 years. The last Padhuspani king, Espahbodh of Shemiran, was removed by Shah Abbas I in the 16th century AD.

Bavandi
Bav a son of Shapur and grand-newphew of Khusro I fled from Ctesiphon and established an empire in Tabaristan and Kohistan. His successors established the Bavandi dynasty. The descendants of Bav stretched their territory to include parts of Shemiran, Qazvin, and even Taleshan. In 679, Bav was killed by Valash. But the Bavandi synastry was reinstated eight years later by Suhrab a son of Bav who married into the house of Ziyar.

Padeshkargar
Padeshkargar was partially held by the Qarens who were one of the Seven Families. In 537, Khusro Anushirvan made Zarmihr of the House of Qaren the Governor of Tabaristan and Padeshkargar. In about 650, Tabaristan was conquered by the Sassanid Governor of Gilan Dabuy who established the independent kingdom of Deyleman. Soon afterwards, however, the Qarens managed to break off from the shackles of the Padhuspanis. In 783, Vindad-Ormuzd of the House of Qaren allied with Shervin I, the Bavandi and the Padhuspani prince Shahriyar I and defeated the Arabs. However, he had to surrender to Hadi and was deported to Baghdad where he remained till 785. His grandson Maziyar broke into a full-scale revolt against the Arabs. He was captured after prolonged warfare and executed by the Arabs in 839. He was often seen as a symbol of Iranian resistance to Arab rule by later Iranian nationalists. Maziyar was also the last Zoroastrian ruler of Tabaristan. The kingdom was integrated into the Caliphate after his death and was placed under the viceroyalty of the Tahirids.

Abu Muslim
Abu Muslim was a soldier of Persian origin who was responsible for the establishment of the Abbasid Caliphate. He hailed from Balkh in Khorasan (Afghanistan) and was a second generation convert to Islam. He led the anti-Omayyad movement playing a major role in the conquest of Merv in December 747 and served as the Abbasid governor of Khorasan after defeating the Omayyad representative in the area. In Battle of the Zab in 750, he led the Abbasid forces against the Omayyads. The battle resulted in a resounding win for the Abbasids and the establishment of the Abbasid Caliphate. It also heralded the fall of the Omayyad Caliphate in its stronghold Damascus. Following this victory, Abu Al Abbas became the Caliph replacing the last Umayyad Caliph Marwan II. Later, however, Abu Muslim was killed by the second Abbasid Caliph Al Mansur who feared his rising influence and popularity amongst the masses. He, along with Babak Khoramdin, is universally regarded as the symbol of Persian nationalism and identity. With the establishment of the Abbasid Caliphate ended the century-long period of persecution and discrimination against non-Arab people introduced by the Omayyad regime.

Sunpadh
Sunpadh or Sinbad was a Zoroastrian magi or priest and a close associate of Abu Muslim. On his execution in 755, Sunpadh swore to destroy the Holy Kaaba. He also preached that Abu Muslim was mahdi, the Messiah of the Muslims. Soon he had rallied a considerable body of troops against the Caliph. Consequently, revolts broke out in Ray, Herat and Sistan.

The rebellion subsided within a few days. Sunpadh's forces were crushed within a period of 70 days by Juhar ibn Murad, an Arab general and Sunpadh was captured and slain.

Al Muqanna
Al Muqanna or the veiled one was a Persian revolutionary from Merv named Hashim ibn Hakim who fought the Arab Caliphate. He was a contemporary of Abu Muslim and Sunpadh. Al Muqanna was reputed to wear a veil in order to cover up his beauty; however, the Abbasids claimed that he wore a veil to hide his ugliness, being one-eyed, and bald. His followers wore white clothes as the Abbasids who were their enemies wore black.

Al Muqanna's followers started raiding towns and mosques of other Muslims and looting their possessions. The Abbasids sent sev4eral armies against him and finally succeeded in besieging and burning his house. Al Muqanna took poison to avoid capture.

The Khorramdin Movement
The Khorramdin or Khurramite Movement was a socio-religious and political movement which originated in the 8th century AD. Its birth was the result of public discontent in Iran following Abu Muslim's execution in 755. The movement was actually founded by Sunpadh, a close associate of Abu Muslim.

Under the leadership of Babak, the Khurammites proclaimed the breakup and redistribution of all the great estates and the abolition of Islam. In 816 they began making attacks on Muslim forces in Iran and Iraq. The Abbasid Caliph Al-Mamun sent four armies to deal with the problem, but they were defeated each time with Byzantine support.The sect continued to attract followers until the sixteenth century when the Safavids took control of Iran.

Babak Khorramdin
Babak Khorramdin was one of the main leaders of the Khorramdin Movement. He was born in around 795 near the modern-day Ardabil in the Azerbaijan province of Northern Iran. He was a neo-Mazdakite. According to Waqed, Babak's father was a Persian from Madā'īn (formerly known as Ctesiphon, former capital of Sassanian Persian Empire. At the age of 18, Babak's father passed away and the young Khorramdin had to take charge of his family. He established himself in the city of Tabriz and traded in arms for a short while before plunging into the liberation movement.

Babak was adopted and mentored by one Shahrak who was a leader of the Khorramdin Movement. Soon Babak took over from Shahrak and lead the movement from 816 to 837. Babak earned huge support from Persians all over Isfahan, Azarbaijan, Ray, Hamadan, Armenia, Gorgan and the rest of Persia. In 836, Babak routed the forces of Bugha Al Kabir, a military officer of the Caliphate.

In 837-838 Al Mu'tasim, the Abbasid Caliph sent Afshin with clear military instructions to capture Babak. Afshin successfully captured Babak's stronghold of Badhdh. Babak sought refuge with the Armenian leader Sunbat. However, he was betrayed by Sunbat and handed over to the forces of the Caliphate. Babak was eventually executed. During Babak’s execution, the Caliph's henchmen first cut off his legs and hands in order to convey the most devastating message to his followers. The legend says that Babak bravely rinsed his face with the drained blood pouring out of his cuts, thus depriving the Caliph and the rest of the Abbasid army from seeing his pale face, a result of the heavy loss of blood

Maziar
Maziar was the grandson of the Padhuspani prince Shahriar I and a scion of the House of Karen. He was a contemporary of Afshin Kheydar and Babak Khorramdin. Maziar led the revolutionary troops at the height of the Persian nationalist struggle even defeating the forces of Caliph once.

According to the medieval historian Ibn Esfandyar in his Tarikh-e-Tabaristan, Maziar is said to have proclaimed: "Afshin Kheydar, son of Kavus and Babak, and I had made an oath and allegiance that we take the country back from the Arabs and transfer the government and the country back to the family of Kasraviyan(Sassanid)."

Maziar was eventually betrayed by his brother Kuhyar and handed over to the soldiers of the Caliphate. He was deported to Baghdad in 839. While some accounts say that he was executed, other say that he took poison to escape humiliation at the hands of the Arabs.

The Legacy of the Sassanians
The Sassanians have been remembered both for good and bad reasons. There was a revival of art and architecture during the Sassanian period. The reign of Khusro Anushirvan experienced a literary renaissance. Religion and religious literature which had grown moribund during the rule of the Parthians was actively revived by the Sassanians who were zealous Zoroastrians themselves. The Sassanians ruled over a vast Empire and had a well-organized army. The Sassanian Empire, at its zenith, was the only military power capable of challenging the Romans.

But the Sassanian rule has also been remembered for a fair share of negative reasons. Zoroastrian monarchs as Ardeshir Babagan, Yazdegerd II and Bahram V have gained an infamous reputation by indulging in zealous persecution of communities professing non-Zoroastrian creeds. The Manichean, Mazdakite and Christian minorities in the Empire were unhappy with the amount of religious freedom they had. Naturally, when the Arabs invaded Iran during the reign of Yazdegerd III they welcomed them with open arms.

With the end of Yazdegerd III's reign, the Sassanian Empire died a virtual death. However, small principalities which paid allegiance to the Sassanians or run by parallel branches of the Sassanid royal family survived for many centuries.


text: User talk:68.125.137.239

title: User talk:68.125.137.239


text:
Erlang Programming/Errors

Errors
We can deal with errors with throw and catch. In this example the value of an argument causes an error which causes an exception to be thrown. The function g is happy only when the argument is greater than 12. If the argument is less than 13 then an exception is thrown. We try to call g in start. If we run into trouble then the exception is caught in the "case catch" structure inside of start. Sample program listing:

-module(catch_it). -compile(export_all). % % An example of throw and catch % g(X) when X >= 13 -> ok; g(X) when X < 13 -> throw({exception1, bad_number}). % % Throw in g/1 % Catch in start/1 % start(Input) -> case catch g(Input) of       {exception1, Why} -> io:format("trouble is ~w ", [ Why ]); NormalReturnValue -> io:format("good input ~w ", [ NormalReturnValue ] ) end. % %============================================================== >%   % sample output: % 8> c(catch_it). {ok,catch_it} % 9> catch_it:start(12). trouble is bad_number ok                                                                 % 10> catch_it:start(13). good input ok ok

title: Erlang Programming/Errors


text: More C++ Idioms/Print Version

title: More C++ Idioms/Print Version


text:
Talk:C++ Programming/Code/Design Patterns/Creational Patterns

Code sample for singleton
what about memory leak? --84.237.120.178 (talk) 04:58, 8 February 2008 (UTC)

 * Can you be more specific ? --Panic (talk) 16:40, 8 February 2008 (UTC)

 * There is operator new in the function Instance. There is private destructor in the class StringSingleton. So, we cannot delete instance in the outer scope and there is no operator delete in the class StringSingleton. Memory leak? --84.237.120.178 (talk) 14:15, 13 February 2008 (UTC)

Memory Leak and Virtual destructor error.
Any virtual member, creates the need for a virtual destructor! Far Worse then just a memory leak...... IF any member function is virtual, then the destructor must be virtual! This is a rule! Otherwise, the derived class destructor is not called. If you ignore this rule, because this is trivial, you've created a silly error because there is a non-virtual default destructor (ouch), you are wrong...and likely on some systems, this will not compile! You are also "deleting" a pointer you do not own. You created the class, and get returns an internal pointer. "get" as a function, is WRONG. This allowed the other error, where someone was deleting an internal pointer! I'll try to correct, but it's going to be quite a bit of deleting. The factory implementation, returns a base class pointer, for a derived class. 75.107.140.75 (discuss) 01:23, 7 September 2014 (UTC)


text:
A Textbook of Community Medicine/Primary Health Care

Primary Health Care (PHC) includes a number of essential components

Health Education

 * Teaching people how to live healthy lives.
 * Teaching people services offered by the local healthcare system.
 * Ensuring knowledge of how to contact emergency services is commonplace.
 * Expanding first aid training to laypeople.
 * Spreading accurate and timely information about likely health threats to the community.
 * Dispelling myths, misinformation, and other social barriers to proper treatment.

Mother and Child Health

 * Ensuring safe pregnancy and childbirth
 * Ensuring children receive adequate medical care.

Nutrition

 * Encouraging healthy diets among the populace.
 * Preventing malnutrition.
 * Assist those currently suffering from undernutrition to ensure a safe recovery.
 * Simply feeding food to an undernourished patient can be dangerous.
 * Encourage active lifestyles in food rich communities to prevent overnutrition.
 * Assist those suffering from Diabetes or other medical conditions in finding a suitable diet.

Expanded Program of Immunization

 * Vaccination drives, particularly against diseases which are likely to threaten patient or community health.
 * Ensure access by considering cost, time, etc of the populace.

Safe water and Sanitation

 * Reduces or eliminates the spread of waterborne diseases.
 * Safe water generally increases community health.
 * Proper sanitation easily reduces or prevents a number of diseases.
 * A modern sewage system using technology such as contained sewage lines, treatment plants, or septic tanks will typically prevent the average person from having contact with potentially infectious sewage.

Control of Endemic Diseases

 * Contact Tracing
 * Vaccination when available.

Treatment of Endemic Diseases

 * Most epidemic diseases have established treatment practices.
 * In a novel disease, proper treatment practices may not be possible.
 * Even so, it is usually possible to reduce the pain or suffering of the patient.

Provision of Essential Drugs

 * A number of medicines are considered essential, and should be on hand in any community.
 * Local medical personnel should be versed in the correct application of these drugs.
 * A system should be in place to allow for 24/7 access to these drugs in the event of an emergency.
 * Ensure access by considering cost, time, etc of the populace.


text:
More C++ Idioms/Preface

Preface
More C++ Idioms/Preface

title: More C++ Idioms/Preface


text:
More C++ Idioms/Contents

Table of Contents
Note: synonyms for each idiom are listed in parentheses.

 * 1) Acyclic Visitor Pattern TODO
 * 2) Address Of
 * 3) Algebraic Hierarchy
 * 4) Attach by Initialization
 * 5) Attorney-Client
 * 6) Barton-Nackman trick
 * 7) Base-from-Member
 * 8) Boost mutant
 * 9) Calling Virtuals During Initialization
 * 10) Capability Query
 * 11) Checked delete
 * 12) Clear-and-minimize
 * 13) Coercion by Member Template
 * 14) Computational Constructor
 * 15) Concrete Data Type
 * 16) Construct On First Use
 * 17) Construction Tracker
 * 18) Copy-and-swap
 * 19) Copy-on-write
 * 20) Thread-safe Copy-on-write
 * 21) Intrusive reference counting (Counted Body)
 * 22) Covariant Return Types TODO
 * 23) Curiously Recurring Template Pattern (CRTP)
 * 24) Deprecate and Delete TODO
 * 25) Empty Base Optimization (EBO)
 * 26) enable-if
 * 27) Erase-Remove
 * 28) Execute-Around Pointer
 * 29) Exploding Return Type TODO
 * 30) Export Guard Macro TODO
 * 31) Expression-template
 * 32) Fake Vtable TODO
 * 33) Fast Pimpl  TODO
 * 34) Final Class
 * 35) Free Function Allocators
 * 36) Function Object TODO
 * 37) Function Poisoning TODO
 * 38) Generic Container Idioms
 * 39) Hierarchy Generation TODO
 * 40) Implicit conversions TODO
 * 41) Include Guard Macro
 * 42) Inline Guard Macro
 * 43) Inner Class
 * 44) Int-To-Type
 * 45) Interface Class
 * 46) Iterator Pair
 * 47) Making New Friends
 * 48) Metafunction
 * 49) Move Constructor
 * 50) Multi-statement Macro
 * 51) Member Detector
 * 52) Named Constructor
 * 53) Named External Argument TODO
 * 54) Named Loop (labeled loop)
 * 55) Named Parameter
 * 56) Named Template Parameters TODO
 * 57) Nifty Counter (Schwarz Counter)
 * 58) Non-copyable Mixin
 * 59) Non-member Non-friend Function  TODO
 * 60) Non-throwing swap
 * 61) Non-Virtual Interface (NVI, Public Overloaded Non-Virtuals Call Protected Non-Overloaded Virtuals)
 * 62) nullptr
 * 63) Object Generator
 * 64) Object Template TODO
 * 65) Parameterized Base Class (Parameterized Inheritance)
 * 66) Pimpl (Handle Body, Compilation Firewall, Cheshire Cat)
 * 67) Policy Clone (Metafunction wrapper)
 * 68) Policy-based Design TODO
 * 69) Polymorphic Exception
 * 70) Polymorphic Value Types
 * 71) Recursive Type Composition TODO
 * 72) Requiring or Prohibiting Heap-based Objects
 * 73) Resource Acquisition Is Initialization (RAII, Execute-Around Object, Scoped Locking)
 * 74) Resource Return
 * 75) Return Type Resolver
 * 76) Runtime Static Initialization Order Idioms
 * 77) Safe bool
 * 78) Scope Guard
 * 79) Substitution Failure Is Not An Error (SFINAE)
 * 80) Shortening Long Template Names TODO
 * 81) Shrink-to-fit
 * 82) Small Object Optimization TODO
 * 83) Smart Pointer
 * 84) Storage Class Tracker TODO
 * 85) Tag Dispatching
 * 86) Temporary Base Class
 * 87) Temporary Proxy
 * 88) The result_of technique TODO
 * 89) Thin Template
 * 90) Thread-Safe Interface TODO
 * 91) Traits
 * 92) Type Erasure
 * 93) Type Generator (Templated Typedef)
 * 94) Type Safe Enum
 * 95) Type Selection
 * 96) Virtual Constructor
 * 97) Virtual Friend Function

Advanced idioms
These are some more advanced C++ idioms.

 * 1) Envelope Letter  TODO

Deprecated idioms

 * 1)  Const auto_ptr

More C++ Idioms/Contents

title: More C++ Idioms/Contents


text:
More C++ Idioms/GNUFDL

= GNU Free Documentation License =

title: More C++ Idioms/GNUFDL


text:
User talk:91.194.220.7

Blocked
Play elsewhere -- Herby talk thyme 09:43, 8 February 2008 (UTC)

title: User talk:91.194.220.7


text:
User talk:91.194.220.8

Blocked
Play elsewhere -- Herby talk thyme 09:42, 8 February 2008 (UTC)

title: User talk:91.194.220.8


text: User talk:82.198.250.70

title: User talk:82.198.250.70


text:
User talk:212.219.59.241

Blocked
Like it says really. I know the school that your IP is registered to and even have the phone number. Contribute constructively when the block ends - thanks -- Herby talk thyme 12:18, 8 February 2008 (UTC)

 * Blocked again. Webaware talk 10:49, 14 February 2008 (UTC)

 * Seeing as this IP address is affiliated with a college, not a school, I know that you are bluffing. --212.219.59.241 (talk) 12:50, 14 February 2008 (UTC)

 * Try "Bridgwater College, Bath Road, Bridgewater, Somerset TA6 4PZ United Kingdom" - ring any bells -- Herby talk thyme 13:13, 14 February 2008 (UTC)
 * I thought you said it was a school?

Another Warning
Red4tribe (talk) 13:13, 23 May 2008 (UTC)

Blocked
You have been blocked for your recent vandalism, the block will expire in 1 day. Contribute constructively when the block ends. Thenub314 (talk) 13:08, 9 September 2009 (UTC)

Blocked
You have been blocked due to prolonged vandalism for a year. You can, however, create an account to edit. -- Adrignola talk contribs 15:10, 2 February 2010 (UTC)

title: User talk:212.219.59.241


text:
Talk:Write Yourself a Scheme in 48 Hours/Building a REPL

The repl doesn't allow me to correct input with backspace (much less editing it with the arrow keys, hitting C-p for previous input, etc). Is there an easy way to add readline functionality to this?

 * See the readline package, the editline package, or the Shellac package.
 * Alternatively, you can just use rlwrap to quickly get readline functionality without changing your code
 * -Phlogistique (discuss • contribs) 21:23, 20 October 2011 (UTC)

Very weak REPL
Although this is a wonderful wikibook in general, I have to say that this REPL is to all intents and purposes utterly useless, because it will only parse Scheme expressions that fit entirely on one line.

Obsolete provision?
import IO hiding (try) yields parse.hs:8:26: Module `System.IO' does not export `try' with GHC 7.0.3 -Phlogistique (discuss • contribs) 21:25, 20 October 2011 (UTC)


text:
Chess Opening Theory/1. d4/1...Nf6/2. c4/2...g6/3. Nc3/3...Bg7/4. Nf3

=Indian Defence=

4. Nf3
This Knight development is solid but leaves the options open for Black to either play The King's Indian or the Grunfeld Defence. If Black wishes to play the Grunfeld then responding immediately with d5 is required as white next move is likely to be 5. e4 which prevents d5 from being played.

Theory table
.

'''1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. Nf3'''


text: User talk:158.123.187.132

title: User talk:158.123.187.132