text:
Ecology/Invasive Species Glossary

<< Chapter 9 | Glossary 2 |

A Glossary of Terms Related to Invasive Species Ecology

Alien species: Less commonly used in scientific literature but often included in population publications, public information displays, and educational literature. This term refers to species that spread beyond their native range, not necessarily harmful, or species introduced to a new range that establish themselves and spread; similar terms include exotic species, foreign species, introduced species, non indigenous species, and non native species (Jeschke and Strayer 2005).

Aquatic nuisance species:  Less commonly used in most literature. 1. A nonindigenous species that threatens the diversity or abundance of native species or the ecological stability of infested waters, or commercial, agricultural, aquacultural or recreational activities dependent on such waters (EPA 1990). 2. Aquatic species that causes economic or environmental harm to humans (Heutte and Bella 2003). 3. An aquatic species with adverse effects on humans, either directly (e.g. species that produce toxins that are harmful to humans) or indirectly (e.g. species that infest nature reserves) (Colautti and MacIsaac 2004).

Biological control or biocontrol: 1. In general, the control of the numbers of one organism as a result of natural predation by another or others. Specifically, the human use of natural predators for the control of pests or weeds. Also applied to the introduction of large numbers of sterilized males of the pest species, whose matings result in the laying of infertile eggs (Allaby, 1998). 2. The release of one species to control another (Carlton, 2001). 3. The management of weeds using introduced herbivores (often insects) as biological control agents (Booth et al., 2003). 4. Control method involving a biological control agent that is a natural enemy of a target pest (Heutte and Bella, 2003).

Biological invasion or bioinvasion: A broad term that refers to both human-assisted introductions and natural range expansions (Carlton, 2001).

Biological diversity or biodiversity: Used to describe species richness, ecosystem complexity, and genetic variation (Allaby 1998).

Bioregion: A biological subdivision of the earth’s surface delineated by the flora and fauna of the region (Allaby 1998).

Biota: The plants and animals of a specific region or period, or the total aggregation of organisms in the biosphere (Allaby 1998). Casual species: This term is becoming less common in usage. A non native species that does not form self-replacing populations (Booth et al. 2003). Similar terms include introduced species, non indigenous species, and non native species.

Chemical control: Control method that employs herbicides to control exotic plants (Heutte and Bella 2003).

Community: Any grouping of populations of different organisms that live together in a particular environment (Allaby 1998).

Cryptogenic species: Species that are neither clearly native nor exotic (Cohen and Carlton 1988).

Cultivar: A variety of a plant produced and maintained by horticultural techniques and not normally found in wild populations (Allaby 1998).

Disturbance: An event or change in the environment that alters the composition and successional status of a biological community and may deflect succession onto a new trajectory, such as a forest fire or hurricane, glaciation, agriculture, and urbanization (Art 1993).

Ecosystem: A discrete unit, or community of organisms and their physical environment (living and non-living parts), that interact to form a stable system (Allaby 1998).

Endemic: A species or taxonomic group that is restricted to a particular geographic areas because of such factors as isolation or response to soil or climatic conditions; this species is said to be endemic to the place (Allaby 1998) and would be native.

Exotic species: This term is commonly used in publications and literature, and is similar to the terms alien species, foreign species, introduced species, non indigenous species, and non native species (Heutte and Bella 2003). Other definitions include: 1. An introduced, non native species, or a species that is the result of direct or indirect, deliberate or accidental introduction of the species by humans, and for which introduction permitted the species to cross a natural barrier to dispersal (Noss and Cooperrider 1994). 2. In North America, often refers to those species not present in a bioregion before the entry of Europeans in the 16th century, or present in later parts of that region and later introduced to an ecosystem by human-mediated mechanisms (Cohen and Carlton 1988).

Fauna: The animal life of a region or geological period (Allaby 1998).

Foreign species: A species introduced to a new area or country. Similar terms include alien species, exotic species, introduced species, non indigenous species, and non native species.

Flora: Plant or bacterial life forms of a region or geological period (Allaby 1998).

Habitat: The place, including physical and biotic conditions, where a plant or an animal usually occurs (Allaby 1998).

Herbicide: Pesticide that specifically targets vegetation (Heutte and Bella 2003).

Indigenous: A species that occurs naturally in an area; a synonym for native species (Allaby 1998), although see "endemic".

Injurious species: An introduced species that causes economic or environmental harm to humans. Similar terms include aquatic nuisance species, noxious weed, and invasive species (Heutte and Bella 2003).

Intentional introduction: A species that is brought to a new area, country, or bioregion for a specific purpose, such as for a garden or lawn; a crop species; a landscaping species; a species that provides food; a groundcover species; for soil stabilization or hydrological control; for aesthetics or familiarity of the species; or other purposeful reasons (Booth et al. 2003).

Introduced species: This term, along with the terms introduced species and nonindigenous species, is one of the most commonly used terms to describe a plant or animal species that is not originally from the area in which it occurs. This terms means those species that have been transported by human activities, either intentionally or unintentionally, into a region in which they did not occur in historical time and are now reproducing in the wild (Carlton 2001). Similar terms include alien species, exotic species, foreign species, non indigenous species, and non native species.

Invasibility: The ease with which a habitat is invaded (Booth et al. 2003).

Invasion: The expansion of a species into an area not previously occupied by it (Booth et al. 2003).

Invasive species:  This term is subject to the most confusion and debate within invasion biology terminology. Generally, this term refers to a subset of plants or animals that are introduced to an area, survive, and reproduce, and causes harm economically or environmentally within the new area of introduction. 1. An alien species whose introduction does or whose introduction is likely to cause economic or environmental harm or harm to human health (Executive Order 1999). 2. An adjective for native or nonindigenous species that have colonized natural areas; 3. Discrimination of nonindigenous species established in cultivated habitats (as ‘noninvasive’) from those established in natural habitats; 4. Nonindigenous species that are widespread; or 5. Widespread nonindigenous species that have adverse effects on the invaded habitat (Colautti and MacIsaac 2004). Other definitions include the following: 5. Species that spread beyond their native range, not necessarily harmful, or species introduced to a new range that establish themselves and spread (Jeschke and Strayer 2005). 6. Species that displace native species and have the ability to dominate an ecosystem, or a species that enters an ecosystem beyond its natural range and causes economic or environmental harm (Heutte and Bella 2003).

IPM: Integrated Pest Management. IPM focuses on long-term prevention or suppression of pests. The integrated approach to weed management incorporates the best suited cultural, biological and chemical controls that have minimum impact on the environment and on people (Heutte and Bella 2003).

Manual control: Removal that involves the use of tools such as shovels, axes, rakes, grubbing hoes, and hand clippers to expose, cut, and remove flowers, fruits, stems, leaves, and/or roots from target plants (Heutte and Bella 2003).

Mechanical control: Removal that involves the use of motorized equipment such as mowers, “weed-whackers”, and tractor-mounted plows, disks, and sweepers. Burning is also categorized here (Heutte and Bella 2003).

Native range: The ecosystem that a species inhabits (Booth et al. 2003).

Native species: 1. A synonym for indigenous species 2. A species that occurs naturally in an area, and has not been introduced by humans either intentionally or unintentionally (Allaby 2005). 3. In North America, a species established before the year 500 (Jeschke and Strayer 2005)

Native weed (invasive native): A species that is native to an area or bioregion that has increased in number dramatically. In cases of disturbance or change to a landscape, a ruderal species can increase in cover and compete with other native plants, threatening^ members^ the diversity of a community. In other cases, landscape level changes can cause the increase of the population of a species, such as white-tailed deer in the northeastern part of the United States, which are at the highest levels historically and cause damage to humans, crops, and structures, suffer high disease levels, and pose threats to humans through interactions on roads (Foster and Sandberg 2004).

Naturalized species: 1. A species that was originally introduced from a different country, a different bioregion, or a different geographical area, but now behaves like a native species in that it maintains itself without further human intervention and now grows and reproduces in native communities (Allaby 1998). 2. A non native species that forms self-sustaining populations but is not necessarily an invasive species (Booth et al. 2003).

Niche opportunity: Defines conditions that promote invasions in terms of resources, natural enemies, the physical environment, interactions between these factors, and the manner in which they vary in time and space (Shea and Chesson 2002).

Nonindigenous species: This is a common term used along with non native species and introduced species in current literature and publications; other similar terms include alien species, exotic species, and foreign species. 1. Any species or other viable biological material that enters an ecosystem beyond its historic range, including any such organism transferred from one country into another (EPA 1990). 2. A plant or animal that is not native to the area in which it occurs which was either intentionally or unintentionally introduced (Williams and Meffe 2005).

Non native species:  This term, along with the terms introduced species and nonindigenous species, is one of the most commonly used terms to describe a plant or animal species that is not originally from the area in which it occurs. Similar terms also include alien species, exotic species, and foreign species. This term has also been defined as: 1. A species whose presence is due to intentional or unintentional introduction as a result of human activity (Booth et al. 2003). 2. A species that has been introduced to an area or bioregion (Heutte and Bella 2003).

Noxious weed: This term is frequently a legal term in state code, denoting a special status of the plant as, for example, prohibited or restricted. 1. Native or non-native plants, or plant products, that injure or cause damage to interests of agriculture, irrigation, navigation, natural resources, public health, or the environment (Heutte and Bella 2003). 2. Implies a species’ adverse effects on humans, either directly (e.g. species that produce toxins that are harmful to humans) or indirectly (e.g. species that infest nature reserves) (Colautti and MacIsaac 2004). 3. Any species of plants, either annual, biennial, or perennial; reproduced by seed, root, underground stem, or bulblet; which when established is or may become destructive and difficult to control by ordinary means of cultivation or other farm practices (Heutte and Bella 2003).

Pathway: 1. Used to mean vector, purpose (the reason why a species is moved), and route (the geographic corridor from one point to another) (Carlton 2001). 2. Mode by which a species establishes and continues to exist in a new environment (Heutte and Bella 2003).

Pest: 1. An animal that competes with humans by consuming or damaging food, fiber, or other materials intended for human consumption or use, such as an insect pest on a cropfield (Allaby 1998) 2. Synonymous to invasive species (Jeschke and Strayer 2005).

Pesticide: A chemical or biological agent intended to prevent, destroy, repel, or mitigate plant or animal life and any substance intended for use as a plant regulator, defoliant, or desiccant, including insecticides, fungicides, rodenticides, herbicides, nematocides, and biocides (Heutte and Bella 2003).

Population: A group of potentially inter-breeding individuals of the same species found in the same place at the same time (Booth et al. 2003).

Prohibited weed: A specific legal term applied to a plant or plant part that may not be brought into a state (Heutte and Bella 2003).

Restricted weed: A specific legal term applied to a plant or plant part that may only be brought into a state in limited quantities (Heutte and Bella 2003).

Ruderal species: A plant associated with human dwellings, construction, or agriculture, that usually colonizes disturbed or waste ground. Ruderals are often weeds which have high demands for nutrients and are intolerant of competition. See also native weed or invasive native (Allaby 1998).

Seed bank: Seeds that become incorporated into the soil (Booth et al. 2003).

Species:  A group of organisms formally recognized as distinct from other groups; the taxon rank in the hierarchy of biological classification below genus; the basic unit of biological classification, defined by the reproductive isolation of the group from all other groups of organisms (Allaby 1998).

Status or distributional statrus:

Tens rule: 1. Describes how approximately ten percent of species pass through each transition from being imported to becoming casual to becoming established, and finally becoming a weed (Booth et al. 2003). 2. Ten percent of the introduced species establish themselves in the non native continent and ten percent of these, in turn, spread or are pests (Jeschke and Strayer 2005). {note that J&S found exceptions to the 10's rule}.

Time lag: 1. Time between introduction, establishment, and spread (Jeschke and Strayer 2005). 2. The time between when a species is introduced and when its population growth explodes (Booth et al. 2003).

Unintentional introduction: An introduction of nonindigenous species that occurs as the result of activities other than the purposeful or intentional introduction of the species involved, such as the transport of nonindigenous species in ballast or in water used to transport fish, mollusks or crustaceans for aquaculture or other purposes (EPA 1990).

Vector: The physical means or agent by which a species is transported, such as ballast water, ships’ hulls, boats, hiking boats, cars, vehicles, packing material, or soil in nursery stock (Carlton 2001). See also Pathway.

Weed: 1. A plant in the wrong place, being one that occurs opportunistically on land or in water that has been disturbed by human activities (see also ruderal species and native weed or invasive native), or on cultivated land, where it competes for nutrients, water, sunlight, or other resources with cultivated plants such as food crops. Under different circumstances the weed plant itself may be cultivated for beneficial purposes (Allaby, 1998). 2. A native or introduced species that has a perceived negative ecological or economic effect on agricultural or natural ecosystems (Booth et al., 2003). 3. A plant growing in an area where it is not wanted (Royer and Dickinson, 1999).

title: Ecology/Invasive Species Glossary


text:
Handbook of Genetic Counseling/Robin Sequence

Robin Sequence

Introduction

 * Robin sequence was named after the French stomatologist Pierre Robin.
 * It has typically been regarded as the association of micrognathia, wide, U-shaped cleft palate, and upper airway obstruction.
 * Robin sequence is a heterogenous disorder that most often occurs as a sequence of other syndromes.

Incidence

 * Incidence has been estimated to be approximately 1 in 2,000 live births.
 * Some babies with Robin sequence die shortly after birth because of severe airway obstruction or a variety of underlying syndromes incompatible with life (such as trisomy 13).
 * Therefore, population prevalence is slightly lower than birth incidence.

Diagnostic Criteria

 * The large majority of cases of Robin sequence are associated with other multiple-anomaly syndromes.
 * The majority of syndromes that result in Robin sequence are single-gene disorders, often inherited in an autosomal dominant manner.
 * There are also several X-linked recessive disorders and recessive disorders.
 * The most common teratogenic disorder is fetal alcohol syndrome, although phenytoin and retinoic acid have been implicated as well.
 * In one study, only 17% of Robin sequence cases were isolated.
 * Stickler syndrome and velocardiofacial syndrome are the first and second most commonly associated diagnoses.
 * An initial diagnosis of Robin sequence should be regarded as a starting point in the diagnostic search.
 * Robin sequence may be associated with mandibular anomalies other than micrognathia, including retrognathia and mandibular asymmetry.
 * It may also be caused by macroglossia and severe muscle weakness.
 * Most clinicians cite micrognathia, U-shaped cleft palate, and upper airway obstruction as the criteria for Robin sequence, but some may use only two of the features.
 * Many other anomalies may exist with this triad because Robin sequence is most often secondary to another syndrome.

Diagnostic Testing

 * There is no specific testing for Robin sequence other than observation of clinical features
 * Micrognathia and cleft palate can be detected with sonography in the fetus
 * Because Stickler syndrome and VCF account for nearly half of all cases of Robin sequence, it is appropriate to screen all newborns with Robin sequence for these disorders.

Etiology

 * Robin sequence is a sequence, not a syndrome:
 * The term syndrome is used when multiple anomalies in a single individual are caused by a single etiology.
 * The term sequence is used when an individual has multiple anomalies caused secondarily by a single known or presumed structural anomaly or error in morphogenesis; that is, it is a cascade of events.
 * The primary anomaly in Robin sequence which interrupts the normal developmental process is micrognathia or occasionally retrognathia.
 * This mandibular anomaly is present at the time that palate fusion is to begin. As a result, the tongue is not free to descend from between the vertical palatal shelves, preventing them from growing toward fusion.
 * Although the tongue may eventually descend in the oral cavity, it may do so after lateral head growth is too great for the remaining palatal growth to overcome or the period of programmed growth may be over.
 * After birth, micrognathia persists. With the mouth closed and a small or retruded mandible present, the tongue is retrodisplaced in the pharynx (glossoptosis_ which causes airway obstruction and failure to thrive.
 * The most common occurrence of a short mandibular body is in positional mandibular deformation, and extrinsic mechanical force
 * This may occur as a result of fetal crowding caused by the presence of multiple fetuses, abnormal fetal position, or uterine anomalies.
 * Associated deformations may include clubfoot, crumpled ear, or limb contractures.
 * One would not expect to find other anomalies that were not related to mechanical constriction.
 * The most common cause of retrognathia is platybasia, which draws the glenoid fossa and the temporomandibular joint backward away from the maxilla.
 * Platybasia has been observed in a number of craniofacial syndromes, most commonly is VCF.

Management

 * Growth and Feeding:
 * Babies may have marginal airways that permit sufficient respiration to sustain life, but there is difficulty maintaining the airway while feeding.
 * Failure to thrive becomes evident in the neonatal period.
 * Failure to thrive and long-term feeding problems occur in over 50% of babies with Robin sequence.
 * Respiratory sounds should be assessed by stethoscope during feeding.
 * In most cases, resolution of the airway problem results in resolution of the feeding problem.
 * Respiratory:
 * Robin sequence is typically evident at birth because of the potentially life-threatening effects of upper airway obstruction.
 * Apneic events are typically silent because the neonatal lung capacity cannot create the high negative pressures that would prompt loud noises or snoring.
 * Glossoptosis associated with micrognathia is typically suspected to be the cause of airway obstruction and apnea.
 * Other types of upper airway obstruction are hypotonic pharynx, absence of adequate muscle tone, laryngeal anomalies, or tracheomalacia.
 * Treatment depends upon the severity of the airway obstruction, which can be variable in Robin sequence.

Resources & References

 * Pierre Robin Network www.pierrerobin.org
 * American Cleft Palate-Craniofacial Association (ACPA) www.cleft.com
 * www.geneclinics.org
 * Management of Genetic Syndromes (2001) Suzanne B. Cassidy & Judith E. Allanson. pp. 323-336

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


text:
Talk:Signals and Systems/Engineering Functions/Unit Step Function

I want to try and go a bit more in depth with the basics, since they're so useful for Fourier analysis. I've added a picture for a shifted unit step function. Next, I'm going to go into function combinations to create box functions.

What about digital signals? Do you think those should be addressed in the same section or should digital signals be a whole different portion of the text?

--RedDragonAkai 04:24, 9 December 2005 (UTC)


text:
Ruby Programming/Syntax/Classes

Classes are the basic templates from which object instances are created. A class is made up of a collection of variables representing internal state and methods providing behaviours that operate on that state.

Class Definition
Classes are defined in Ruby using the  keyword followed by a name. The name must begin with a capital letter and by convention names that contain more than one word are run together with each word capitalized and no separating characters (CamelCase). The class definition may contain method, class variable, and instance variable declarations as well as calls to methods that execute in the class context at read time, such as attr_accessor. The class declaration is terminated by the  keyword.

Example:

Instance Variables
Instance variables are created for each class instance and are accessible only within that instance. They are accessed using the @ operator. Outside of the class definition, the value of an instance variable can only be read or modified via that instance's public methods.

Example:

Surprisingly, this outputs:

nil 2

This happens (nil in the first output line) because @one defined below class MyClass is an instance variable belonging to the class object (note this is not the same as a class variable and could not be referred to as @@one), whereas @one defined inside the do_something method is an instance variable belonging to instances of MyClass. They are two distinct variables and the first is accessible only in a class method.

Accessor Methods
As noted in the previous section, an instance variable can only be directly accessed or modified within an instance method definition. If you want to provide access to it from outside, you need to define public accessor methods, for example

Note that ruby provides a bit of syntactic sugar to make it look like you are getting and setting a variable directly; under the hood

are calls to the foo and foo= methods

Since this is such a common use case, there is also a convenience method to autogenerate these getters and setters:

does the same thing as the above program. The attr_accessor method is run at read time, when ruby is constructing the class object, and it generates the foo and foo= methods.

However, there is no requirement for the accessor methods to simply transparently access the instance variable. For example, we could ensure that all values are rounded before being stored in foo:

Class Variables
Class variables are accessed using the @@ operator. These variables are associated with the class hierarchy rather than any object instance of the class and are the same across all object instances. (These are similar to class "static" variables in Java or C++).

Example:

Outputs:

1 2  2

Class Instance Variables
Classes can have instance variables. This gives each class a variable that is not shared by other classes in the inheritance chain.

For more details, see MF Bliki: ClassInstanceVariables

Class Methods
Class methods are declared the same way as normal methods, except that they are prefixed by, or the class name, followed by a period. These methods are executed at the Class level and may be called without an object instance. They cannot access instance variables but do have access to class variables.

Example:

Outputs:

something

Instantiation
An object instance is created from a class through the process called instantiation. In Ruby this takes place through the Class method.

Example:

This function sets up the object in memory and then delegates control to the initialize function of the class if it is present. Parameters passed to the new function are passed into the  function.

Declaring Visibility
By default, all methods in Ruby classes are public - accessible by anyone. There are, nonetheless, only two exceptions for this rule: the global methods defined under the Object class, and the initialize method for any class. Both of them are implicitly private.

If desired, the access for methods can be restricted by public, private, protected object methods.

It is interesting that these are not actually keywords, but actual methods that operate on the class, dynamically altering the visibility of the methods, and as a result, these 'keywords' influence the visibility of all following declarations until a new visibility is set or the end of the declaration-body is reached.

Private
Simple example:

If private is invoked without arguments, it sets access to private for all subsequent methods. It can also be invoked with named arguments.

Named private method example:

Here  was invoked with an argument, and set the visibility of   to private.

Note that class methods---those declared using ---must be set to private using the   function.

A common usage of  is to make the constructor method   inaccessible, forcing access to an object through some getter function. A typical Singleton implementation is an obvious example:

The following is another popular way to write the same declaration:

Whereas  means "private to this class" in C++, it means "private to this instance" in Ruby. This means that C++ allows access to the private methods of any object in a given class by any code which is also in that class. In Ruby, on the other hand, private methods are local to the instantiated objects to which they belong.

The fact that  methods cannot be called with explicit receivers is illustrated by the following code.

Here,  is the "receiver" that method   is invoked on. For private methods, it does not work. However, that is what "protected" visibility will allow.

Public
The default visibility level for a method is "public", and this visibility level can be manually specified using the  method.

I am not sure why this is specified - maybe for completeness, maybe so that you could dynamically make some method private at some point, and later - public.

In Ruby, visibility is completely dynamic. You can change method visibility at runtime!

Protected
Now, “protected” deserves more discussion. Those of you coming from Java or C++ have learned that in those languages, if a method is “private”, its visibility is restricted to the declaring class, and if the method is “protected”, it will be accessible to children of the class (classes that inherit from parent) or other classes in that package.

In Ruby, “private” visibility is similar to what “protected” is in Java. Private methods in Ruby are accessible from children. You can’t have truly private methods in Ruby; you can’t completely hide a method.

The difference between protected and private is subtle. If a method is protected, it may be called by any instance of the defining class or its subclasses. If a method is private, it may be called only within the context of the calling object---it is never possible to access another object instance's private methods directly, even if the object is of the same class as the caller. For protected methods, they are accessible from objects of the same class (or children).

So, from within an object "a1" (an instance of Class A), you can call private methods only for instance of "a1" (self). And you cannot call private methods of object "a2" (that also is of class A) - they are private to a2. But you can call protected methods of object "a2" since objects a1 and a2 are both of class A.

Ruby FAQ gives following example - implementing an operator that compares one internal variable with a variable from the same class (for purposes of comparing the objects):

If age is private, this method will not work, because other.age is not accessible. If "age" is protected, this will work fine, because self and other are of same class, and can access each other's protected methods.

To think of this, protected actually reminds me of the "internal" accessibility modifier in C# or "default" accessibility in Java (when no accessibility keword is set on method or variable): method is accessible just as "public", but only for classes inside the same package.

Instance Variables
Note that object instance variables are not really private, you just can't see them. To access an instance variable, you need to create a getter and setter.

Like this (no, don't do this by hand! See below):

Luckily, we have special functions to do just that: attr_accessor, attr_reader, attr_writer. attr_accessor will give you get/set functionality, reader will give only getter and writer will give only setter.

Now reduced to:

Inheritance
A class can inherit functionality and variables from a superclass, sometimes referred to as a parent class or base class. Ruby does not support multiple inheritance and so a class in Ruby can have only one superclass. The syntax is as follows: Outputs:

a  b

All non-private variables and methods are inherited by the child class from the superclass.

If your class overrides a method from parent class (superclass), you still can access the parent's method by using 'super' keyword. Outputs: b  a

(because a_method also did invoke the method from parent class).

If you have a deep inheritance line, and still want to access some parent class (superclass) methods directly, you can't. super only gets you a direct parent's method. But there is a workaround! When inheriting from a class, you can alias parent class method to a different name. Then you can access methods by alias.

Outputs

hello helloy helloz

Mixing in Modules
First, you need to read up on modules Ruby modules. Modules are a way of grouping together some functions and variables and classes, somewhat like classes, but more like namespaces. So a module is not really a class. You can't instantiate a Module, and a module cannot use Self to refer to itself. Modules can have module methods (as classes can have class methods) and instances methods as well.

We can, though, include the module into a class. Mix it in, so to speak.

Outputs:

Modules can be mixed into classes in a few different ways. Before diving into this section, it's important to understand the way that objects resolve messages into method names.

Include
Outputs:

When using include the methods provided by the class are searched before the methods provided by the module. This means that the method from the class will be found first and executed.

Prepend
Outputs:

When using prepend the methods provided by the module are searched before the methods provided by the class. This means that the method from the prepended module will be found first and executed.

The code shows Multiple Inheritance using modules.

Ruby Class Meta-Model
In keeping with the Ruby principle that everything is an object, classes are themselves instances of the class Class. They are stored in constants under the scope of the module in which they are declared. A call to a method on an object instance is delegated to a variable inside the object that contains a reference to the class of that object. The method implementation exists on the Class instance object itself. Class methods are implemented on meta-classes that are linked to the existing class instance objects in the same way that those classes instances are linked to them. These meta-classes are hidden from most Ruby functions.

|

title: Ruby Programming/Syntax/Classes


text:
User:Demipomme

Welcome
Welcome to Wikibooks, Demipomme. I hope you like the place and decide to stay. Here are a few good links for newcomers: I hope you enjoy editing here. By the way, you can sign your name on Talk and vote pages using four tildes, like this: ~~~~. If you have any questions, see the help pages, add a question to the Community Portal or ask me on my Talk page. Again, welcome to Wiki Books.
 * The Five Pillars of Wikipedia
 * How does one edit a page
 * Editing tutorial
 * Picture tutorial
 * How to write a great article / How to write a great module
 * Manual of Style

I think you were looking for a better way to save the raw wikitext and/or edit and preview the wikitext while offline and/or upload images. (See Staff_lounge). If you ever find out, I would also like to know. --DavidCary 04:22, 3 December 2005 (UTC)

title: User:Demipomme


text:
General Mechanics/Fundamental Principles of Kinematics

The fundamental idea of kinematics is the discussion of the movement of objects, without actually taking into account what caused the movement to occur. By using simple calculus, we can find all of the equations for kinematics. To simplify the learning process, we will only consider objects that move with constant acceleration. For the first few parts, we will also assume that there is no friction or air resistance acting on the objects.

=Straight Line Motion (SLM)= The name of this section Straight Line Motion means that we begin learning about the subject of kinematics by observing motion in one dimension. This means that we will only take one axis of a 3D $$(x,y,z)$$ coordinate system into account. We will be using the $$x$$ axis as our axis of motion.

Throughout our discussion, we will look at the motion of a rigid body, one that does not deform as it moves. We idealize the rigid body by assuming that it has no dimensions and is infinitely small. This way we can talk about the entire body instead of saying, "The front of the body is at this point while the rear of the body is at some other point". Also, subscripts on the variables in our equations will indicate the initial value, $$i$$, and the final value, $$f$$, of that variable.

Displacement
To start off with we will define the term displacement. Displacement is basically the shortest route of getting from one place to another, basically it is a straight line from the starting point of motion to the ending point of motion. No matter how much movement takes place in between and what sort of things come inbetween, we only care about the first location and the second location. We will use the variable, $$x$$, to stand for the locations of the rigid body that we are discussing. It is a vector quantity i.e. it has both magnitude and direction, if we want to define displacement for some movement then it would be like - '50 km due North'.

In order to define motion we first must be able to say how far an object has moved. This is done by subtracting the final value of the displacement by the initial value of the displacement. Or, in other words, we subtract the initial position of the object on our coordinate system from the final position of the object on our coordinate system. It is necessary to understand that the values which you receive for this variable can be either positive or negative depending on how the object is moving and where your coordinates start:

 * $$x=x_f-x_i\,\!$$

Velocity
The term velocity, $$v$$, is often mistaken as being equivalent to the term speed. The basic difference between speed and velocity is that, velocity is a vector quantity, whereas speed is a scalar quantity. The term velocity refers to the displacement that an object traveled divided by the amount of time it took to move to its new coordinate. From the above discussion you can see that if the object moves backwards with respect to our coordinate system, then we will get a negative displacement. Since we cannot have a negative value for time, we will then get a negative value for velocity (Here the negative sign shows that the body has moved in the backward direction to the coordinates system adopted). The term speed, on the other hand refers to the magnitude of the velocity, so that it can only be a positive value. We will not be considering speed in this discussion, only velocity. By using our definition of velocity and the definition of displacement from above, we can express velocity mathematically like this:

 * $$\bar v={(x_f-x_i) \over (t_f-t_i)}$$

The line over the velocity means that you are finding the average velocity, not the velocity at a specific point. This equation can be rearranged in a variety of ways in order to solve problems in physics dealing with SLM. Also, by having acceleration as a constant value, we can find the average velocity of an object if we are given the initial and final values of an object's velocity:

 * $$\bar v={(v_f+v_i) \over 2}$$

These equations can be combined with the other equations to give useful relationships in order to solve straight line motion problems. For example, to find the initial position of an object, if we are given its final position and the times that the object began moving and finished moving, we can rearrange the equation like this:

 * $$x_i=x_f-\bar v(t_f-t_i)\,\!$$

Acceleration
The term acceleration means the change in velocity of an object per unit time. It is a vector quantity. We use the variable, $$a$$, to stand for acceleration. Basically, the sign of acceleration tells us whether the velocity is increasing or decreasing, and its magnitude tells us how much the velocity is changing. In order for an object that is initially at rest to move, it needs to accelerate to a certain speed. During this acceleration, the object moves at a certain velocity at a specific time, and travels a certain distance within that time. Thus, we can describe acceleration mathematically like this:

 * $$a={(v_f-v_i) \over (t_f-t_i)}$$

Again, we can rearrange our formula, this time using our definition for displacement and velocity, to get a very useful relationship:

 * $$x_f=x_i+v_i(t_f-t_i)+{1 \over 2}a(t_f-t_i)^2$$

Motion with Constant Acceleration
This is the simplest kind of accelerated motion. The velocity changes at the same rate for entire duration of the motion. The displacement-time graph for motion with constant acceleration is always a parabola.

The equations of motion with constant acceleration are:
 * $$   v_{x}=v_{0x} + a_{x} t$$

 * $$      v_{av} = v_{0x}t + \frac{1}{2}a_{x}t^{2}$$

 * $$v_{x}^2 = v_{0x}^2 + 2a_{x}(x - x_{0})$$

 * $$x - x_{0} = \frac{1}{2}(v_{0x} + v_{x})t$$


text:
X86 Assembly/Machine Language Conversion

Relationship to Machine Code
X86 assembly instructions have a one-to-one relationship with the underlying machine instructions. This means that essentially we can convert assembly instructions into machine instructions with a look-up table. This page will talk about some of the conversions from assembly language to machine language.

CISC and RISC
The x86 architecture is a complex instruction set computer (CISC) architecture. Amongst other things, this means that the instructions for the x86 architecture are of varying lengths. This can make the processes of assembly, disassembly and instruction decoding more complicated, because the instruction length needs to be calculated for each instruction.

x86 instructions can be anywhere between 1 and 15 bytes long. The length is defined separately for each instruction, depending on the available modes of operation of the instruction, the number of required operands and more.

8086 instruction format (16 bit)
This is the general instruction form for the 8086 sequentially in main memory:

 * Prefixes: Optional prefixes which change the operation of the instruction
 * D:  (1 bit) Direction. 1 = Register is Destination, 0 = Register is source.
 * W:  (1 bit) Operation size. 1 = Word, 0 = byte.
 * Opcode: the opcode is a 6 bit quantity that determines what instruction family the code is
 * MOD (Mod): (2 bits) Register mode.
 * Reg: (3 bits) Register. Each register has an identifier.
 * R/M (r/m): (3 bits) Register/Memory operand

Not all instructions have W or D bits; in some cases, the width of the operation is either irrelevant or implicit, and for other operations the data direction is irrelevant.

Notice that Intel instruction format is little-endian, which means that the lowest-significance bytes are closest to absolute address 0. Thus, words are stored low-byte first; the value 1234H is stored in memory as 34H 12H. By convention, most-significant bits are always shown to the left within the byte, so 34H would be 00110100B.

After the initial 2 bytes, each instruction can have many additional addressing/immediate data bytes.

Mod / Reg / R/M tables
Note the special meaning of MOD 00, r/m 110. Normally, this would be expected to be the operand [BP]. However, instead the 16-bit displacement is treated as the absolute address. To encode the value [BP], you would use mod = 01, r/m = 110, 8-bit displacement = 0.

Example: Absolute addressing
Let's translate the following instruction into machine code:

XOR CL, [12H]

Note that this is XORing CL with the contents of address 12H – the square brackets are a common indirection indicator. The opcode for XOR is "001100dw". D is 1 because the CL register is the destination. W is 0 because we have a byte of data. Our first byte therefore is "00110010".

Now, we know that the code for CL is 001. Reg thus has the value 001. The address is specified as a simple displacement, so the MOD value is 00 and the R/M is 110. Byte 2 is thus (00 001 110b).

Byte 3 and 4 contain the effective address, low-order byte first, 0012H as 12H 00H, or (00010010b) (00000000b)

All together,

XOR CL, [12H] = 00110010 00001110 00010010 00000000 = 32H 0EH 12H 00H

Example: Immediate operand
Now, if we were to want to use an immediate operand, as follows:

XOR CL, 12H

In this case, because there are no square brackets, 12H is immediate: it is the number we are going to XOR against. The opcode for an immediate XOR is 1000000w; in this case, we are using a byte, so w is 0. So our first byte is (10000000b).

The second byte, for an immediate operation, takes the form "mod 110 r/m". Since the destination is a register, mod is 11, making the r/m field a register value. We already know that the register value for CL is 001, so our second byte is (11 110 001b).

The third byte (and fourth byte, if this were a word operation) are the immediate data. As it is a byte, there is only one byte of data, 12H = (00010010b).

All together, then:

XOR CL, 12H = 10000000 11110001 00010010 = 80 F1 12

x86 Instructions (32/64 bit)
The 32-bit instructions are encoded in a very similar way to the 16-bit instructions, except (by default) they act upon dword quantities rather than words. Also, they support a much more flexible memory addressing format, which is made possible by the addition of an SIB "scale-index-base" byte, which follows the ModR/M byte.

Continuing the previous absolute addressing example, we take this input:

XOR CL, [12H]

...and we arrive at the 32-bit machine code like so:

Beginning with the opcode byte first, it remains the same, 32H. Consulting the Intel IA-32 manual, Volume 2C, Chapter 5, "XOR"--we see this opcode defines that a) it requires 2 operands, b) the operands have a direction, and the first operand is the destination, c) the first operand is a register of 8-bits width, d) the second operand is also 8-bit but can be either a register or memory address, and e) the destination register CL will be overridden to contain the result of the operation. This fits our case above, because the first operand is CL ("L" meaning lower 8-bits of the "C" register), and the second operand is a reference to the value stored in memory at 12H (a direct/absolute pointer or address reference). It doesn't look like we need any prefix bytes to get the operand sizes we want.

Now we know we need a ModR/M byte, because the opcode requires it; a) it requires more than zero operands, and b) they are not defined within the opcode or any prefix, and c) there is no Immediate operand. So again we consult the Intel manual, Volume 2A, Chapter 2, Section 2.1.5 "Addressing-Mode Encoding of ModR/M and SIB Bytes", Table 2-2 "32-Bit Addressing Forms with the ModR/M Byte". We know the first operand is going to be our destination register. CL, so we see that maps to REG=001b. Next we look for an Effective Address formula which matches our second operand, which is a displacement with no register (and therefore no segment, base, scale, or index). The nearest match is going to be disp32, but reading the table is tricky because of the footnotes. Basically our formula is not in that table, the one we want requires a SIB byte noted as [--][--], which tells us we need to specify Mod=00b, R/M=100b to enable the SIB byte. Our second byte is therefore 00001100b or 0CH.

We know the SIB byte, if it is used, always follows the ModR/M byte, so we continue to the next Table 2-3 "32-Bit Addressing Forms with the SIB Byte" in the Intel manual, and look for the combination of Scale, Index, and Base values which will give us the disp32 formula we need. Notice there is a footnote [*], this basically tells us to specify Scale=00b, Index=100b, Base=101b which means disp32 with no index, no scale, and no base. So our third byte is now 25H.

We know the Displacement byte, if used, always follows the ModR/M and SIB byte, so here we simply specify our 32-bit unsigned integer value in little-endian, meaning our next four bytes are 12000000H.

Finally, we have our machine code:

XOR CL, [12H] = 00110010 00001100 00100101 00010010 00000000 00000000 00000000 = 32 0C 25 12 00 00 00 This instruction works in both 32-bit Protected mode and 64-bit Long mode.


text:
Radiation Oncology/RTOG Trials/7605

RTOG 76-05 (LIVER)
 * Title: Pilot Study of Radiotherapy for Palliation of Symptomatic Hepatic Metastases
 * Objective:
 * I. Evaluate the frequency and duration of symptom relief, frequency and duration of normalization of (a) liver tests and (b) of abnormal liver scans, as a function of dose schedules, varying fraction size and overall time.
 * II. Evaluate the above responses according to site and histopathology of the primary.
 * III. Evaluate the above objectives with respect to survival times.
 * IV. Evaluate, via histopathologic correlation, the frequency of radiation hepatitis as a function of dose schedule and concomitant chemotherapy.
 * Protocol: RT for patients with solitary vs. multiple mets
 * Eligibility: hepatic metastases documented by liver scan
 * Enrolled:
 * Conclusion:
 * PMID 6168623 -- The palliation of hepatic metastases: results of the Radiation Therapy Oncology Group pilot study. (1981 Borgelt BB, Int J Radiat Oncol Biol Phys. 1981 May;7(5):587-91.)
 * Publications:
 * PMID 2180867 -- Accelerated fractionation radiation therapy for liver metastases: selection of an optimal patient population for the evaluation of late hepatic injury in RTOG studies. (1990 Leibel SA, Int J Radiat Oncol Biol Phys. 1990 Mar;18(3):523-8.)

title: Radiation Oncology/RTOG Trials/7605


text:
Radiation Oncology/RTOG Trials/8823

RTOG 88-23 (LIVER)
 * Title: Phase I/II Study of Integrated Intra-Arterial CDDP and Intravenous I131-Antiferritin in the Treatment of Nonresectable Hepatocellular Cancer
 * Objective:
 * I. Determine the response rate and toxicity produced by combined intra-arterial cisplatin and intravenous I131-antiferritin in patients with unresectable hepatocellular cancer.
 * Protocol:
 * Induction Phase: Intravenous Cisplatin followed by EBRT
 * Treatment Phase: Intra-arterial cisplatin + I-131-Antiferritin.
 * Eligibility: hepatic metastases documented by liver scan
 * Enrolled:
 * Conclusion:
 * PMID 9612600 -- Survival results among patients with alpha-fetoprotein-positive, unresectable hepatocellular carcinoma: analysis of three sequential treatments of the RTOG and Johns Hopkins Oncology Center. (Abrams RA, Cancer J Sci Am. 1998 May-Jun;4(3):178-84.) Conclusion : "Patients with unresectable alpha-fetoprotein-positive hepatocellular carcinoma experienced improved survival and decreased toxicity when managed with post-induction cycles of intra-arterial cisplatin as compared with intravenous doxorubicin and 5-FU. Intravenous 131I-polyclonal antiferritin did not improve survival when added to either post-induction regimen but dramatically increased hematologic toxicities."
 * Publications:

title: Radiation Oncology/RTOG Trials/8823


text:
User:JedOs~enwikibooks

I am a college student working on my Bachealors for Biology

title: User:JedOs~enwikibooks


text:
User talk:Flux~enwikibooks

Copyright problem with Image:Soprano-sax.jpg
--Derbeth talk 08:24, 9 December 2005 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Flux. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Flux~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:12, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 04:59, 19 April 2015 (UTC)

title: User talk:Flux~enwikibooks


text: User talk:12.27.44.19

title: User talk:12.27.44.19


text:
User:Swapnil durgade/NX Terminal Server on Fedora Core 3

A. Setup NX Server on Fedora Core 3 machine
From a windows machine, use putty to login as root to Fedora Core 3 machine

1. run command rpm -q nc expect

If you get error like "package expact is not installed" or "package nc is not installed", from fedora core  cds, copy expect-5.42.1-1.i386.rpm and nc-1.10- 22.i386.rpm to /root directory  and run commands cd /root rpm -ivh expect-5.42.1-1.i386.rpm rpm -ivh nc-1.10-22.i386.rpm

2. Then to download nx server, run command

wget http://fedoranews.org/contributors/rick_stout/freenx/nx-1.5.0-0.FC3.1.i386.rpm wget http://fedoranews.org/contributors/rick_stout/freenx/freenx-0.4.4-1.fdr.0.noarch.rpm

3. After download is finished, run command rpm -ivh nx-1.5.0-0.FC3.1.i386.rpm rpm -ivh freenx-0.4.4-1.fdr.0.noarch.rpm

4. create a user called testuser and set password for it with command

useradd testuser password testuser

Now your NX Server is UP and running

B. Setup NX Client on Windows machine
1. Download nx client for windows from following link

http://64.34.161.181/download/1.5.0/client/nxclient-1.5.0-132.exe

2. Run nxclient-1.5.0-132.exe to install nx client

3. Click on Start > Programs > NX Client for Windows > NX Connection Wizard

In “Session” type Linux

In “Host” type ip address of Fedora Core 3 Server

Click Next

4. Select "Unix", “Gnome”. Make sure that "Enable SSL encryption on all traffic" is checked and click "Next".

5. Check "Show the Advanced Configuration dialog" box and click "Finish".

6. Click on button "Key...". It will open General – Key Management window. Press Alt + Tab to go to putty

On putty, run command vi /etc/nxserver/client.id_dsa.key and copy the key (To copy, just select the key text on screen. The selected text gets copied on windows clipbord).

Press Alt + Tab to go General – Key Management window and paste it here.

Click "Save", "Save" and "Ok".

7. Now type your login name testuser that you created on Linux machine and your password and click on Login button

More information on http://fedoranews.org/contributors/rick_stout/freenx/ Enjoy !

-Swapnil (Friday, December 09, 2005) Email- swapnil_durgade@yahoo.com


text:
ZK/How-Tos

ZK: How-Tos

This article is a collection of how-tos for the ZK framework. ZK is an open source project that enables rich user interfaces for Web applications.

Thanks for your contributions.
 * ZK Home / Developer's Guide(html) / ZK Live Demo

Installation and Configuration

 * Tomcat
 * Resin
 * Jetty
 * JBoss
 * Oracle OC4J and Oracle OPMN Release 3
 * BEA WebLogic
 * IBM WebSphere
 * Liferay
 * Pluto
 * Eclipse

Basic Operations

 * /Frequently Asked Questions/

/Concepts and Tricks/

 * Concepts
 * Tricks

Patterns

 * Model View Controller Pattern
 * Model View View-Model (MVVM) Architecture

Sample Applications

 * ZK FoodToGo
 * Zlora

Integration with Other Frameworks

 * Spring
 * Hibernate
 * ZK 2.x.x + Spring 2.x.x + Hibernate 3.x + JUnit Test
 * Struts + Tiles + JSP (+ Spring)
 * Acegi Security for Spring
 * JasperReport
 * Grails

Data Binding

 * How do I apply annotated data-binding on a Regular Macro Component?
 * How do I dynamically render a grid from a collection of Java Objects?

Customize Look and Feel

 * CSS
 * Components

Component Development

 * Component Customization

Issues

 * Upgrade Issues
 * Server Issues
 * Browser Issues
 * OS Issues

title: ZK/How-Tos


text:
User talk:63.146.251.58

Don't vandalize pages. If you continue to do so, you will be banned from editing. Kellen T 13:41, 9 December 2005 (UTC)

title: User talk:63.146.251.58


text:
X86 Assembly/Protected Mode

This page is going to discuss the differences between real mode and protected mode operations in the x86 processors. It will also discuss how to enter protected mode, and how to exit protected mode. Modern Operating Systems (Windows, Unix, Linux, BSD, etc...) all operate in protected mode, so most assembly language programmers won't need this information. However, this information will be particularly useful to people who are trying to program kernels or bootloaders.

Real Mode Operation
When an x86 processor is powered up or reset, it is in real mode. In real mode, the x86 processor essentially acts like a very fast 8086. Only the base instruction set of the processor can be used. Real mode memory address space is limited to 1MiB of addressable memory, and each memory segment is limited to 64KiB. Real Mode is provided essentially for backwards-compatibility with 8086 and 80186 programs.

Protected Mode Operation
In protected mode operation, the x86 can address 4 GB of address space. This may map directly onto the physical RAM (in which case, if there is less than 4 GB of RAM, some address space is unused), or paging may be used to arbitrarily translate between virtual addresses and physical addresses. In Protected mode, the segments in memory can be assigned protection, and attempts to violate this protection cause a "General Protection" exception.

Protected mode in the 386, amongst other things, is controlled by the Control Registers, which are labelled CR0, CR2, CR3, and CR4.

Protected mode in the 286 is controlled by the Machine Status Word.

Long Mode
Long mode was introduced by AMD with the advent of the Athlon64 processor. Long mode allows the microprocessor to access 64-bit memory space, and access 64-bit long registers. Many 16 and 32-bit instructions do not work (or work correctly) in Long Mode. x86-64 processors in Real mode act exactly like 16 bit chips, and x86-64 chips in protected mode act exactly like 32-bit processors. To unlock the 64-bit capabilities of the chip, the chip must be switched into Long Mode.

Entering Protected Mode
The lowest 5 bits of the control register CR0 contain 5 flags that determine how the system is going to function. This status register has 1 flag that we are particularly interested in: the "Protected Mode Enable" flag (PE). Here are the general steps to entering protected mode:

 * 1) Create a Valid GDT (Global Descriptor Table)
 * 2) Create a 6 byte pseudo-descriptor to point to the GDT
 * 3) If paging is going to be used, load CR3 with a valid page table, PDBR, or PML4.
 * 4) If PAE (Physical Address Extension) is going to be used, set CR4.PAE = 1.
 * 5) If switching to long mode, set IA32_EFER.LME = 1.
 * 6) Disable Interrupts (CLI).
 * 7) Load an IDT pseudo-descriptor that has a null limit (this prevents the real mode IDT from being used in protected mode)
 * 8) Set the PE bit (and the PG bit if paging is going to be enabled) of the MSW or CR0 register
 * 9) Execute a far jump (in case of switching to long mode, even if the destination code segment is a 64-bit code segment, the offset must not exceed 32-bit since the far jump instruction is executed in compatibility mode)
 * 10) Load data segment registers with valid selector(s) to prevent GP exceptions when interrupts happen
 * 11) Load SS:(E)SP with a valid stack
 * 12) Load an IDT pseudo-descriptor that points to the IDT
 * 13) Enable Interrupts.
 * 1) Enable Interrupts.

Following sections will talk more about these steps.

Entering Long Mode
To enter Long Mode on a 64-bit x86 processor (x86-64):

 * 1) If paging is enabled, disable paging.
 * 2) If CR4.PAE is not already set, set it.
 * 3) Set IA32_EFER.LME = 1.
 * 4) Load CR3 with a valid PML4 table.
 * 5) Enable paging.
 * 6) At this point you will be in compatibility mode. A far jump may be executed to switch to long mode. However, the offset must not exceed 32-bit.

Using the CR Registers
Many bits of the CR registers only influence behavior in protected mode.

CR0
The CR0 32-bit register has 6 bits that are of interest to us. The low 5 bits of the CR0 register, and the highest bit. Here is a representation of CR0:

CR0: |PG|RESERVED|NE|ET|TS|EM|MP|PE|

 * PE: Bit 0. The Protected Environment flag. This flag puts the system into protected mode when set.
 * MP: Bit 1. The Monitor Coprocessor flag. This flag controls the operation of the "WAIT" instruction.
 * EM: Bit 2. The Emulate flag. When this flag is set, coprocessor instructions will generate an exception.
 * TS: Bit 3. The Task Switched flag. This flag is set automatically when the processor switches to a new task.
 * ET: Bit 4. The Extension Type flag. ET (also called "R") tells us which type of coprocessor is installed. If ET = 0, an 80287 is installed. if ET = 1, an 80387 is installed.
 * NE: Bit 5. New exceptions. If this flag is clear, FPU exceptions arrive as interrupts. If set, as exceptions.
 * PG: Bit 31. The Paging flag. When this flag is set, memory paging is enabled. We will talk more about that in a second.

CR2
CR2 contains a value called the Page Fault Linear Address (PFLA). When a page fault occurs, the address that access was attempted on is stored in CR2.

CR3
The upper 20 bits of CR3 are called the Page Directory Base Register (PDBR). The PDBR holds the physical address of the page directory.

CR4
CR4 contains several flags controlling advanced features of the processor.

Paging
Paging is a special job that microprocessors can perform to make the available amount of memory in a system appear larger and more dynamic than it actually is. In a paging system, a certain amount of space may be laid aside on the hard drive (or on any secondary storage) called the swap file or swap partition. The virtual memory of the system is everything a program can access like memory, and includes physical RAM and the swap space.

The total virtual memory is broken down into chunks or pages of memory, each usually being 4096 bytes (although this number can be different on different systems). These pages can then be moved around throughout the virtual memory, and all pointers inside those pages will be automatically directed to point to the new locations by referencing them to a global paging directory that the microprocessor maintains. The pointer to the current paging directory is stored in the CR3 register.

A page fault occurs when the system attempts to read from a page that is marked as "not present" in the paging directory/table, when the system attempts to write data beyond the boundaries of a currently available page, or when any number of other errors occur in the paging system. When a page fault occurs, the accessed memory address is stored in the CR2 register.

Other Modes
In addition to real, protected, and long modes, there are other modes that x86 processors can enter, for different uses :

 * Virtual 8086 Mode: This is a mode in which application software that was written to run in real mode is executed under the supervision of a protected-mode, multi-tasking OS.

 * System Management Mode: This mode enables the processor to perform system tasks, like power management, without disrupting the operating system or other software.

title: X86 Assembly/Protected Mode


text:
X86 Assembly/Advanced x86

These "Advanced x86" chapters all cover specialized topics that might not be of interest to the average assembly programmer. However, these chapters should be of some interest to people who would like to work on low-level programming tasks, such as boot loaders, device drivers, and Operating System kernels. A programmer does not need to read the following chapters to say they "know assembly", although they may be interesting. The topics covered in this section are:
 * High-Level Languages
 * Machine Language Conversion
 * Protected Mode
 * Global Descriptor Table
 * Advanced Interrupts
 * Bootloaders

title: X86 Assembly/Advanced x86


text:
X86 Assembly/Global Descriptor Table

The Global Descriptor Table (GDT) is a table in memory that defines the processor's memory segments. The GDT sets the behavior of the segment registers and helps to ensure that protected mode operates smoothly.

GDTR
The GDT is pointed to by a special register in the x86 chip, the GDT Register, or simply the GDTR. The GDTR is 48 bits long. The lower 16 bits tell the size of the GDT, and the upper 32 bits tell the location of the GDT in memory. Here is a layout of the GDTR:

|LIMIT|BASE|

LIMIT is the size of the GDT, and BASE is the starting address. LIMIT is 1 less than the length of the table, so if LIMIT has the value 15, then the GDT is 16 bytes long.

To load the GDTR, the instruction LGDT is used:

lgdt [gdtr]

Where  is a pointer to 6 bytes of memory containing the desired GDTR value. Note that to complete the process of loading a new GDT, the segment registers need to be reloaded. The CS register must be loaded using a far jump:

GDT
The GDT table contains a number of entries called Segment Descriptors. Each is 8 bytes long and contains information on the starting point of the segment, the length of the segment, and the access rights of the segment.

The following NASM-syntax code represents a single GDT entry:

struc gdt_entry_struct limit_low:  resb 2 base_low:   resb 2 base_middle: resb 1 access:     resb 1 granularity: resb 1 base_high:  resb 1 endstruc

LDT
Each separate program will receive, from the operating system, a number of different memory segments for use. The characteristics of each local memory segment are stored in a data structure called the Local Descriptor Table (LDT). The GDT contains pointers to each LDT.

title: X86 Assembly/Global Descriptor Table


text:
Radiation Oncology/Liver/Overview

Liver anatomy
The liver is divided anatomically into the left and right lobes, but surgically is divided into the left and right liver which does not correlate with the anatomic lobes. The left and right liver contain four segments each.
 * The left part of the liver contains segments I to IV:
 * caudate lobe (I)
 * lateral segment (II and III)
 * medial segment (IV). Division between lateral and medial segment is a line between the gallbladder and IVC, which is the same as dividing at the falciform ligament.
 * The right part of the liver consists of segments V to VIII:
 * anterior segment (V and VIII)
 * posterior segment (VI and VII). The division between the anterior and posterior segments is the right hepatic vein.  The division between the anterior segment from the left part of the liver is the middle hepatic vein.

Child-Pugh Scoring
The score employs five clinical measures of liver disease. Each measure is scored 1-3, with 3 indicating most severe derangement.

Chronic liver disease is classified into Child-Pugh class A to C, employing the added score from above.

Liver RT Tolerance
Whole liver radiation tolerance is ~30 Gy, which is not sufficient for "cure" but is sufficient for palliation of painful disease. Partial liver tolerance depends on the volume irradiated. Partial liver dose escalation to 70+ Gy has been reported, and there does appear to be some dose-response relationship. Similarly, efforts are underway to explore the role of stereotactic radiosurgery, with single doses as high as 26 Gy reported.

 * Please See: the Liver section under the Normal tissue tolerance page

Reviews

 * PMID 16250051, 2005 — "Management of hepatocellular carcinoma." Bruix J et al. Hepatology. 2005 Nov;42(5):1208-36.

title: Radiation Oncology/Liver/Overview