text:
First Aid/Suspected Spinal Injury

The spinal cord is a thick nerve that runs down the neck and back; it is protected by bones called vertebrae. If the spinal cord is injured, this can lead to paralysis. Since the vertebrae protect the spinal cord, it is generally difficult to cause such an injury. Note that only an x-ray can conclusively determine if a spinal injury exists. If a spinal injury is suspected, the victim must be treated as though one does exist.

Recognition

 * Mental confusion (such as paranoia or euphoria)
 * Dizziness
 * Head, neck or back pain
 * Paralysis
 * Any fall where the head or neck has fallen more than two metres (just over head height on an average male)
 * Cerebrospinal fluid in the nose or ears
 * Resistance to moving the head
 * Pupils which are not equal and reactive to light
 * Head or back injury
 * Priapism (painful erection for males)

Treatment
The victim should not be moved unless absolutely necessary. Without moving the victim, check if the victim is breathing. If they are not, CPR must be initiated; the victim must be rolled while attempting to minimize movement of the spine. If the victim is breathing, immobilize their spine in the position found. The easiest way to immobilize the spine in the position found is sandbagging. Despite the name, it does not necessarily require bags of sand. Simply pack towels, clothing, bags of sand etc. around the victim's head such that it is immobilized. Be sure to leave their face accessible, since you will need to monitor their breathing.

If you must roll the victim over to begin CPR, take great care to keep their spine immobilized. You may want to recruit bystanders to help you. Hands-on training is the only way to learn the various techniques which are appropriate for use in this situation.

Aquatic Spinal Injury Management
Many spinal injuries are the result of a dive into shallow water. Lifeguards and lifesavers receive specialized training to manage spinal injuries in the water. Such hands-on training is the only way to learn the various techniques which are appropriate for use in such situations. If you see a victim in the water and did not witness what happened to the victim or are unsure if the victim has a spinal injury, immediately get the attention of a lifeguard or other trained responder.

title: First Aid/Suspected Spinal Injury


text:
First Aid/Cold-Related Illness & Injury

Frostbite
Frostbite is when tissues freeze. If the frozen tissue is more than skin deep, this is considered deep frostbite.

Treatment for frostbite is as follows:

 * Notify EMS as soon as possible or be prepared to transport victim to a medical facility, even after treatment of frostbite.
 * Make sure there is no risk of re-freezing. Skin that re-freezes after thawing will have more damage.
 * Remove victim from cold environment, ensure there is no possibility of hypothermia. (If there is, see below.)
 * Fill a shallow container with enough water to cover the frostbitten body part. Make sure the water is at room temperature. The water does not have to be cool, but it cannot be too warm. The warmer the water, the worse the pain.
 * Immerse the injured area, ensure that the skin does not come into contact with anything but the water!
 * Repeat the above step by refreshing the water as it cools until the skin is back to a normal color and texture. This may take several hours depending on the severity of the injury.

Remember to transport the victim to a medical assistance for further assessment after the above steps.

Hypothermia
Hypothermia is when the body's core temperature drops so low the body can no longer warm itself back up. Severe hypothermia is classified as when the body drops below 95 degrees Fahrenheit.

Treatment for victims of hypothermia is as follows:

 * Remove the victim from the cold environment.
 * For cases of extreme hypothermia, where the patient is showing signs of confusion, slurred speech, fumbling hands, or go unconscious, notify EMS.
 * Remove wet clothing from the victim and replace with dry clothing. (A dry hat is recommended to be worn.)
 * Wrap victim in blankets.
 * Use heat packs to warm the patient. Do not allow the packs to touch naked skin.
 * Victims who are alert may drink warm liquids, however, do not give any drinks containing alcohol, caffeine, or give a drink that is too hot.

Warning: Victims of hypothermia may become worse as they warm, this is due to cold blood moving towards the core of the body. If a patient goes unconscious, check their ABCs and notify EMS.

"Nobody's dead until they're warm and dead" First aid procedures must therefore continue until professional help is available.

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

title: First Aid/Cold-Related Illness & Injury


text:
First Aid/Poisoning

Introduction
Specific information concerning treatment can be obtained from accompanying labels or written documentation such as the MSDS (Material Safety Data Sheet). Expert advice (poison control) and rapid transport to advanced medical care (EMS) is urgently needed in poisoning cases.

A poisoning victim may require basic life support at any moment; monitor the victim's ABCs throughout.

Background
Absorbed poisons are taken into the body through unbroken skin. Absorbed poisons are especially dangerous as they may not only cause local damage, but they can enter the bloodstream and cause widespread damage. It is important to note that certain poisons such as agricultural chemicals or insecticides may enter the bloodstream through absorption while leaving the skin undamaged.

Treatment
As with any type of poisoning, EMS should be immediately called and the rescuer should always start with the initial assessment and treat any life-threatening problems before continuing. Once all life-threats are taken care of, then the poison should be removed carefully. Failure to do so may lead to the rescuer succumbing to the poison as well. Rescuers should always wear at least one and possibly two sets of gloves. Filter masks should also be worn to prevent inhalation.

Topical poisons tend to be in either a powder or liquid form. The treatment for either form is the same. First, remove any excess poison from the affected area, being careful not to inhale or touch it. This will decrease the potential for harm and make the next step exponentially easier. If possible, capture the poison in a clean secure container for identification purposes. Next, irrigate the affected area for at least 20 minutes to dilute the poison.

Background
Inhalation injuries can come from a variety of sources including the inhalation of smoke, gasses, and chemicals. Inhaling poisons can result in issues like difficulty breathing, airway burns, and cell death.

Treatment
Get the victim to fresh air. Use caution in giving rescue breathing to a person overcome by hazardous chemicals, as you may be contaminated in so doing. Alert EMS and contact the poison control center. Depending on what kind of gas or chemical the poison is, specially trained personnel may need to be called to help the victim out of the contaminated area. Rescuers should not go into an area that appears to contain, or smells like chemicals or gasses, as they may face the same problems as the victim, and become victims themselves.

Background
Poisoning by ingestion can occur by eating or drinking poisons. Medications and cleaning chemicals are poisons that are often ingested, especially by little children. Little children are often curious and like to investigate colorful looking containers and little items that look like candy or food. It can also occur by accident or intentionally in adults and older children.

Treatment
Internal poisoning may not be immediately apparent. Symptoms, such as vomiting are sufficiently general that an immediate diagnosis cannot be made. The best indication of internal poisoning may be the presence of an open container of medication or toxic household chemicals. Check the label for specific first aid instructions for that specific poison.

Call for help immediately as advanced medical care will be required. If possible contact a poison control center and provide information about the suspected poison. Depending on the type of poison, the poison control center may suggest additional first aid measures pending the arrival of emergency medical technicians. These might include dilution with water or milk, administration of syrup of ipecac or activated charcoal, or the use of other common household products as improvised emergency antidotes.

Appropriate first aid measures vary depending on the type of poison. Induced vomiting may do more harm than good, because the poison may harm the alimentary canal or esophagus. Vomit may also block the airway. However, induced vomiting may be necessary with some poisons to save the victim's life. Only induce vomiting if directed by the poison control center or EMS.

Background
An injection poisoning can occur from a variety of sources, including drug abuse, animal bites, insect stings, and plants. Injection poisoning is when an object breaks intact skin, and pushed poison into the body, often directly into the bloodstream.

Treatment
Poison Control Centers will provide the best information for first aiders. Basic treatment involves monitoring the patient's ABCs, treating for shock, observing the patient for an allergic reaction, and calming the patient.

To help EMS, gain as much information about the poison as you can. What it was, when it was injected, how it was injected, and if the person has any allergies to the injection. (For example a bee sting causing anaphylaxis.)

Always take steps to keep yourself safe. If needles were used to inject the poison, be careful to avoid touching or stepping on them, as there could still be poison in/on those needles. Be aware of bees, wasps, and animals in the area, as they could also harm you in the same way they harmed the victim.

title: First Aid/Poisoning


text:
First Aid/Critical Incident Stress & Victim Death

What is Critical Incident Stress?
Any emergency that involves a severe injury or death is a critical incident. This incident could be amplified should the emergency involve a family member or friend. The stress that these incidents cause may overwhelm a first aider and shut down their ability to cope. This is what is known as critical incident stress (CIS). This condition may have a great impact on the first aider suffering from it, and if left un-treated, this stress may lead to a more serious condition known as post-traumatic stress syndrome.

Signs of CIS

 * May not perform well at their job.
 * May seem pre-occupied.
 * Confusion
 * Poor concentration
 * Denial
 * Guilt
 * Anger
 * Change in appetite
 * Unusual behavior

Treatment
CIS requires professional help to avoid Post-Traumatic Stress Syndrome. However, there are supplements to professional treatment that will help such as:

 * Relaxation techniques
 * Avoiding drugs and alcohol
 * Eating a balanced diet
 * Getting enough rest
 * Talking with peers

More information can be found at the International Critical Incident Stress Foundation http://www.icisf.org/


text:
User talk:208.190.24.3

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. Iamunknown 19:05, 28 March 2007 (UTC)

title: User talk:208.190.24.3


text:
User talk:205.221.1.56

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. Iamunknown 19:21, 28 March 2007 (UTC)

title: User talk:205.221.1.56


text:
User talk:24.86.1.17

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. Iamunknown 19:22, 28 March 2007 (UTC)

title: User talk:24.86.1.17


text:
User:BrightStar~enwikibooks

Hi, Welcome, from WikiBooks member/user : BrightStar.

I will be contributing as much possible.

Thanks.

title: User:BrightStar~enwikibooks


text:
User:Tarikash

Hello / Hi,

I'm also at w:User:Tarikash.

title: User:Tarikash


text:
Talk:Irish/Reference/Pronunciation

Untitled
It is surprising that there is no mention of the difference in pronunciation between the different dialects. I myself do not speak Irish, although I aspire to; however, this is one thing that I do know. Does anyone here have particular expertise in this area? Thanks! ~chainedwind

Pronunciation IPA, etc.
To try and help with the IPA, I will first note I have little or no knowledge of Irish Gaelic, but hopefully can shine some light on the pronunciation.

Broad d: [d] Slender d: [dʒ] (as in judge) Broad s: [s] (does this voice to become [z] or similar in any notable case?) Slender s: [ʃ] Broad t: [t] Slender t: [tʃ] (from hatch)

I will try to find a better source of information & reference in the morning, as these are just assumed from the information on the page. I have not made the edits because of my unfamiliarity with the language & it's phonology/pronunciation. Hope this helps. --Tavy 05:02, 5 October 2007 (UTC)

To Do
Moving from page to talk:

--Thereen (discuss • contribs) 23:56, 18 January 2011 (UTC)
 * TO DO: 'discuss the other consonants''
 * TO DO: 'indicate the consonants where the distinction between broad and slender is most critical (e.g., s), so the beginner can focus on perfecting those sounds first''
 * TO DO: (one day!) add sound files to demonstrate pronunciation

 * TO DO: (one day!) add sound files to demonstrate pronunciation - yes please, please, please.
 * Asking three times makes it irresistible to you Irish, right?
 * (Is Ísiltirach me) Jcwf (discuss • contribs) 20:56, 23 January 2012 (UTC)

title: Talk:Irish/Reference/Pronunciation


text:
OpenGL Programming/3D/Matrices

Understanding Transformation Matrices
The concepts behind building a transformation matrix are easy enough to understand, but what does that matrix actually represent? This section describes a mechanism of interpreting a composite transformation matrix with multiple translations, rotations, and scalings in terms of transitions between reference frames. It provides a model for organizing primitive transformations into a hierarchical system of nested reference frames.

The Reference Frame
We normally think of objects as moving "forward and backwards", "up and down", or "left and right"; we do not normally consider their motion with respect to an arbitrary reference frame. They "turn around" (yaw), "look up" (pitch), and "cartwheel" (roll), "move forward", "strafe left", and "jump up". So how do we compose transformations to create objects that behave symbolically more like they do in the real world?

Let us define an object's reference frame as its position and orientation. This can be uniquely defined by two orthogonal vectors specifying the object's "forward" and "up" directions (implying a third, "right" == forward cross up), and a vertex specifying the object's position.

When the parameters of the child reference frame are specified by vectors/vertices in the parent reference frame's coordinates, we can create a matrix that transforms a vector from the child's reference frame to the parent's reference frame by creating the matrix out of the four column vectors (right, up, forward, position), where right == forward cross up.

Let us make this more concrete.

The Reference Frame of the Universe, or The Ether Revisited
We will first look at the identity matrix:

$$ frame_{universe} = \left[ \begin{array}{ c c c c } 1.00 & 0.00 & 0.00 & 0.00\\   0.00 & 1.00 & 0.00 & 0.00\\    0.00 & 0.00 & 1.00 & 0.00\\    0.00 & 0.00 & 0.00 & 1.00 \end{array} \right] $$

By our definition, we interpret the first column ({1,0,0,0}) as the "right" direction, the second ({0,1,0,0}) as "up", the third ({0,0,1,0}) as "forward" (or "backward", if you prefer), and the fourth ({0,0,0,1}) as the "position" vertex. Note that the position vertex has a w coordinate of 1, whereas the direction vectors (which are really the differences between two vertices) have a w coordinate of 0.

This example appears trivial, but it provides us with a foundation. We can call this the "universe" reference frame. Right is +x, up is +y, forward (or backward, if you prefer) is +z, and the origin is located at {0,0,0,1}.

Now, we can look at the example of a child object within the universe. We can specify this object's reference frame via the matrix:

$$ frame_{child} = \left[ \begin{array}{ c c c c } right_x & up_x & forward_x & position_x\\ right_y & up_y & forward_y & position_y\\ right_z & up_z & forward_z & position_z\\ right_w & up_w & forward_w & position_w \end{array} \right] $$

where right, up, and forward are the frame's normalized direction vectors and position is the frame's position vertex, specified in the frame of the parent (or 'universe') object. This is easiest understood when the 'w' coordinate of all directions is 0 and the 'w' coordinate of the position vertex is 1, as per the "fourth-dimensional hack" convention.

To demonstrate: We have vertex v = {2, 0, 0, 1} in the coordinates of framechild. Multiplying framechild by v, we get:

$$frame_{child} \times \left[ \begin{array}{ c } 2\\ 0\\ 0\\ 1\end{array} \right] = \left[ \begin{array}{ c } 2 \times right_x + position_x\\ 2 \times right_y + position_y\\ 2 \times right_z + position_z\\ 2 \times right_w + position_w\end{array} \right]$$

Note that 2*rightw + positionw = 1 when rightw = 0 and positionw = 1. We see that the vertex v in framechild is equivalent to 2*frameright + frameposition, which is precisely the description of v in the parent reference frame. Also note that in the case of a direction-without-position (w=0), the rotations are applied but position is not accumulated - the direction is reoriented without falsely being assigned a position.

Each "frame" matrix is a transformation from the reference frame that the coordinate is specified in to the reference frame of the parent object, so that ultimately we have: frameparent*framechild*framenested_child*vertex_in_nested_child_coords == frameparent*framechild*vertex_in_child_coords == frameparent*vertex_in_parent_coords == vertex_in_universe_coords

This matrix (frameparent*framechild*framenested_child), when post-multiplied to the universe's reference frame matrix, will transform a coordinate from the nested_child's coordinates to the universe's coordinates. These reference frames may be nested indefinitely.

An example reference frame hierarchy: universe -> galaxy -> solar system -> earth -> position on earth The motions of each reference frame may be considered "independent" of each other. When the galaxy moves, the solar system moves with it, and with that the earth, and with that your position on earth.

Scaling Operations
While it is this author's opinion that scaling operations should generally be avoided, since they butcher vertex normals, sometimes they are needed anyway. Fortunately, this is easy to accomplish. Let us consider the scaling transformation: | αx  0  0   0  | scale_xform = | 0  αy  0   0  | | 0  0   αz  0  | | 0  0   0   αw | where αw == 1 unless you are insane.

Typically, we will want to scale the vertices as the first operation performed; when we "scale" x by a factor of 3, we typically do not want to scale its orientation and position (i.e., the columns of the transformation matrix), since they are specified in the coordinates of the parent reference frame. As such, scaling is the last operation appended to the matrix in the "reference frame" transformation model.

When we multiply framechild by scale_xform, we get: | αx*rightx αy*upx  αz*forwardx  αw*positionx | final_xform = | αx*righty αy*upy  αz*forwardy  αw*positiony | | αx*rightz αy*upz  αz*forwardz  αw*positionz | | αx*rightw αy*upw  αz*forwardw  αw*positionw |

The scale factors simply show up as the magnitudes of the orientation vectors.

The "Camera" Transformation
FIXME: I have only proven this, and have not demonstrated whether it works.

The transformation from the reference frame of the universe to that of the camera is subtly but critically different from those described above. Unlike the previous discussion, the 'camera' (parent reference frame) is typically specified in 'universe' (child reference frame) coordinates. Using the conventional logic of a camera moving freely through a universe requires extra consideration.

To convert between the universe and camera reference frames, we need to create a set of "fixed" coordinates which represent the 'universe' as a child of the 'camera'; we need the universe's reference frame in camera coordinates.

FIXME: needs illustrations, badly. Thinking out this problem:
 * 1) If the camera is facing the same direction as the universe: No transformation.
 * 2) If the camera is cocked to the left, then the universe needs to be cocked to the right.
 * 3) If the camera is pitched upwards, then the universe needs to be pitched downwards.
 * 4) If the camera is facing the opposite direction as the universe, the universe needs to face the other way.
 * 5) If the camera is upside-down with respect to the universe, the universe needs to be flipped over.

These are characteristics of reflections; the entire "camera" reference frame matrix is the composition of the column vectors of the reflections of the camera's 'universe' coordinates about the universe's axes. Defining c = camera reference frame in universe coordinates u = universe reference frame (identity) refl(a, b) = reflection of a over b = 2*dot(a,b)*b - a: we can build the camera's reference frame matrix as: framecamera = { refl(cright, uright), refl(cup, uup), refl(cforward, uforward), refl(cposition, uposition) }

Interestingly, this includes the position vertex, which is "reflected" through the origin.

This applies to all reference frames where the 'parent' reference frame is stored in the coordinates of the 'child' reference frame. The author cannot think of any other examples of this scenario.

The Projection Transformation
The projection transformation should be used only to fit the camera into the viewport. glOrtho*, glFrustum, and gluPerspective are typically used to accomplish this goal.

The 'camera' frame -- either as specified above, or via gluLookAt -- will normally be the "bottom" frame on the modelview matrix stack. This matrix converts from universe to camera coordinates. The projection matrix precedes the modelview matrix in multiplication order, so that the projection matrix may be considered the transformation to screen coordinates from camera coordinates.

Using the 'camera' frame is indistinguishable from using gluLookAt (FIXME: Check for congruence), though the parameterization of the two operations is somewhat different.

Summary
By viewing the transformation matrix as a reference frame composed of four column vectors { c0, c1, c2, c3 } decompose the matrix into more usable properties:
 * The "right" axis: c0.direction
 * The "up" axis: c1.direction
 * The "forward" axis: c2.direction
 * The "position": c3
 * The "x" scale: c0.magnitude
 * The "y" scale: c1.magnitude
 * The "z" scale: c2.magnitude
 * The "w" scale: c3.magnitude

We can use these properties to implement motion more intuitively: and so forth.
 * Move forward distance β: xform += { 0, 0, 0, β*c2 }
 * Move up distance γ: xform += {0, 0, 0, γ*c1 }
 * Turn to the left 30 degrees: xform *= rotation_matrix(axis = c1, angle = π/6.0)

We can transform from the "current" reference frame (ie, the one represented by the Modelview matrix in the context of OpenGL) to a "child" reference frame by simply multiplying the reference frame matrix (constructed as above) to the current matrix. A complete drawing operation may be performed by:

glMatrixMode(GL_MODELVIEW); glLoadMatrixd(camera_refframe_matrix); glPushMatrix; glMultMatrixd(object_refframe_matrix); draw_object; glPushMatrix; glMultMatrixd(subobject_refframe_matrix); draw_sub_object; glPopMatrix; glPopMatrix; glFlush;

title: OpenGL Programming/3D/Matrices


text:
Talk:OpenGL Programming/3D/Matrices

Please discuss all changes! This is an interpretation of the modelview matrix/matrix stack that I have found very useful in understanding what goes on with these transforms. Haven't seen it before, so I thought I'd post something about it. I am new to wiki-ing, so please correct my etiquette if it's inappropriate, and I appreciate all input! Lyngvi 23:04, 28 March 2007 (UTC) -
 * I think it's a little bit confusing as for the beginner in OpenGL and 3d graphics 213.184.8.92 08:16, 29 March 2007 (UTC)

- Understandable. Maybe it should be an appendix - it really should be placed after all explanations of the translation-rotation-scaling operations at least.

While somewhat confusing, its purpose is to put those transformations into perspective (no pun intended) for use in more complex systems - the first projects I did ended up completely hosed as I had trouble figuring out where my "camera" was and where things were in the world, and didn't know how to properly build the modelview matrix to represent them. This intends to answer that question (do you feel it does?)

It should also definitely be after the "Deadly 3D Math" section, which hasn't been written yet. Not sure of the math background of readers of this wikibook... Lyngvi 09:15, 29 March 2007 (UTC)

title: Talk:OpenGL Programming/3D/Matrices


text:
Proteomics/Protein Separations - Centrifugation/History of the Centrifuge

History of the Centrifuge
Centrifuges were first used in the mid-1400s for processes such as separation of milk. These early machines were hand driven and could reach speeds up to 3000rpm. By 1912, new centrifuges were developed which ran on electrical power.

Svedberg and the Ultracentrifuge
In 1926 Theodor Svedberg (1884-1971) received a Nobel Prize for his work in colloid chemistry and invention of the ultracentrifuge. During the 1920’s-30’s his group built a number of ultracentrifuges capable of reaching 900,000kg. These models had very small rotors. Larger rotors were used for routine work. Svedberg used his centrifuge to determine the molecular weights and subunit structure of highly complex proteins such as hemoglobin. The results of these studies shaped new ideas about the structures of proteins. His later work in nuclear chemistry helped improvements of the cyclotron. Svedberg also aided in the development of electrophoresis by one of his students, Arne Tiselius (see Protein Separations– Electrophoresis).

Isolating Cellular Components
During the early 1930s Martin Behrens worked to improve density gradient techniques involving centrifugation. He has been credited with the introduction of density gradient centrifugation as a means of separating and isolating cells and subcellular components. His approaches to tissue fractionation, as well as those of Bensley and others, had a major aim the isolation from disrupted cells of one or more identifiable components that could then be physically and chemically characterized. The principal method of analysis was light microscopy. In this sense, their approach was strictly preparative and is to be contrasted with the more analytical procedures of Claude and his successors who were concerned with the purity of centrifugally isolated fractions, examining their enzymatic activities and questioning whether certain properties were unique to specific types of sub-cellular particles or were more broadly distributed. In 1942 Dr. Albert Claude and Dr. James S. Potter published a paper entitled “Isolation of Chromatin Threads from the Resting Nucleus of Leukemic Cells”. In this landmark work they outlined a process involving a series of centrifugation steps. During these steps either the supernate or the sediment was collected until the finally “chromatin threads” were retrieved from the final sediment.

Modern Centrifuges
In 1940 SPINCO produced the first commercial ultracentrifuge. Beckman Instruments bought out Spinco in 1954 and continued making ultracentrifuges. This company is now known as Beckman Coulter and is still a major manufacturer of centrifuges today. A picture of a Beckman Coulter Avanti J-E centrifuge can be seen below. Many improvements in the design of these machines lead to the tool used today. The drive system was upgraded to high speed motors and the material used for the rotor was updated. Original rotors, such as those built by Svedberg, were made of tensile steel. Today materials such as aluminum alloys and titanium are used to withstand high centrifugal forces. Vacuum systems were added to reduce friction and maintain temperature control. The development of other tools, such as electron microscopes, allowed researchers to better examine the particles being centrifuged. Scientists were then able to visualize organelles separated with the ultracentrifuge and characterize their structure-functional relationships.

Many different centrifuges are available today. They range in size from bench top centrifuges basket volumes of 1.2 liters and maximum loads of 1.5 kg like the eppendorf becnhtop centrifuge seen below to large free standing centrifuges with basket volume of 5 liters and maximum loads of 6 kg or larger. Some of the smaller centrifuges have maximum rotational speeds of less than 300rpms while the larger machines can reach up to powers of 10,000rpms at a time.

Next section: How the Centrifuge Works

Subscription Based References
Future Listing of Subscription Based References

Open Access References

 * 1) Buckley, Nancy. "Lecture 5: Centrifugation" Biological Sciences Department, California State Polytechnic University.
 * 2) "Centrifuge, Centrifuges & Centrifugation" Fronine Laboratory Supplies.
 * 3) Claude, A. & Potter, J. S. "Isolation of Chromatin Threads from the Resting Nucleus of Leukemic Cells" Journal of Experimental Medicine.
 * 4) De Duve, C. & Beuafay, H. "A Short History of Tissue Fractionation" The Journal of Cell Biology: Volume 91, No. 3, PT. 2 December 1981, p. 293-299.
 * 5) "Meischer's Discovery: A DNA Adaptive Laboratory" The Institute for Genomic Research
 * 6) "Peeler Centrifuges, Basket Centrifuges and Solvent Extraction Equipment for Chemical and Pharmaceutical Industries" Rousselet Robatel Catalog.
 * 7) "Theodor Svedberg Definition" From Answers.com.
 * 8) "Wikipedia: Theodor Svedberg"


text:
User talk:Ater012

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. -- Jim Thomas (aka Jomegat) 23:50, 28 March 2007 (UTC)

title: User talk:Ater012


text:
Radiation Oncology/NSCLC/LCNEC

Large Cell Neuroendocrine Carcinoma

Epidemiology

 * Incidence: 2-3.5% in resected lung specimens; probably higher in inoperable patients due to its aggressive nature
 * Etiology: Smoking probably causative; 85-95% of patients have history of heavy tobacco use
 * Median age at diagnosis: 66 years
 * Present predominately in lung periphery (cough, hemoptysis, or post-obstructive PNA are not common presenting symptoms)

Histology

 * Historically grouped under neuroendocrine tumors of the lung (small cell, atypical carcinoid (LCNEC), typical carcinoid)
 * In 1999 reassigned by WHO to Large Cell Carcinoma group, which includes several other unrelated but large cell histologies
 * Cell size is typically 3X larger than for small cell CA
 * Mitotic index is high, approaching that of small cell CA
 * Cells contain neurosecretory granules, and typically stain positive for either neural cell adhesion molecule, chromogranin A, or synaptophysin
 * Molecular markers suggest similarity of LCNEC and SCC, and difference from other large cell histologies (Ki-67+, p53+, Rb-)

Survival

 * 5-year OS of resected patients: ~30-40%
 * Stage-adjusted survival is significantly worse than NSCLC

Treatment Overview

 * Most series reported are surgical
 * Currently no definitive survival advantage for adjuvant chemotherapy
 * Octreotide may have activity, and appears to control metastatic disease

 * Washington University, 2005 (1988-2002) PMID 15999058 -- "Large cell neuroendocrine carcinoma: an aggressive form of non-small cell lung cancer." (Battafarano RJ, J Thorac Cardiovasc Surg. 2005 Jul;130(1):166-72.)
 * Retrospective. 2099 resected patients in database, 82 (4%) had large cell histology. LCNEC 45 patients, 50% Stage IA
 * 5-year OS: overall 47%; LCNEC 30%, mixed neuroendocrine 30%, large cell carcinoma 71% (SS). Stage I LCNEC 5-year OS 32%
 * Conclusion: LCNEC significantly worse survival after resection, even in Stage I disease

Review

 * 2006 PMID 17075564 -- "Large-cell neuroendocrine carcinoma of the lung." (Fernandez FG, Cancer Control. 2006 Oct;13(4):270-5.)
 * Recommend classifying separately from NSCLC as Grade III neuroendocrine carcinoma, large-cell type

title: Radiation Oncology/NSCLC/LCNEC


text: File:CGimage.jpg

title: File:CGimage.jpg


text:
Advanced Interactive Media/3-D Products Maya, Lightwave, SoftImage, and 3D Studio Max

Here are some links to a few unbiased reviews (is such a concept possible?) regarding a few of the leading 3D and Animation software products.

3D requires such a commitment to master, that most users become religiously committed to their product. It's rare to find someone who is qualified to make a fair comparison of competing products.


text:
Advanced Interactive Media/3-D Products

Below are links to a few unbiased reviews (is such a concept possible?) regarding a some of the leading 3D and Animation software products. 3D requires such a commitment to master, that most users become religiously committed to their product. It's rare to find someone who is qualified to make a fair comparison of competing products.

These gallery links might interest students considering a commitment to 3D learning http://forums.cgsociety.org/forumdisplay.php?f=132

3D models can be viewed and downloaded from dozens of excellent sites: http://www.3d02-ae.com/html_Gallery/gallery_index_page1.asp

The Society of Digital Artists provides an excellent technical comparison of 3D tools for those already using a product. http://wiki.cgsociety.org/index.php/Comparison_of_3d_tools

title: Advanced Interactive Media/3-D Products


text:
Advanced Interactive Media/Post Discussions From Facebook Here That Don't Fit Under Existing Chapter Titles

Student's written responses on the last exam that are worth thinking about:

Below are comments from thoughtful people in response to Podcast topics that can be found at Don Eland's Podcast site: http://web.archive.org/20100703122442/web.mac.com/elandinteractive/iWeb/elandinteractive/Podcast/Podcast.html

Titles for Podcasts:
 * PODCASTING: A CONDENSED PRESENTATION FOR FACULTY
 * A TWO MINUTE FACULTY DEVELOPMENT REPORT
 * NEW YORK DIGITAL MEDIA CONFERENCE

"Income and education are driving the technology revolution, not youth culture as is assumed by most people"


text:
OpenGL Programming/Installation/Linux

OpenGL Installation on Linux
Most Linux distributions rely on the Mesa3D project to provide their OpenGL implementation. This supplies libraries for regular OpenGL as well as OpenGL ES 1.x and 2.0.

The exact names of the packages you need to install are highly dependent on distribution. Referring to your distro's packages can save you a lot of time and headache in installation. Use your favorite package manager and search for the package name. You may need to install packages that come with a dev suffix, these are development packages (usually header files). Also look for packages with a lib prefix, which refer to libraries.

Install the GCC C/C++ compilers and associated tools such as make.

All in all, install Mesa, Make and GCC/g++:

Libraries
In this wikibooks, we'll make great use of GLEW, SDL2 (+SDL2_Image), GLM and FreeType. Make sure you install the development libraries:

If GLM is not available in your distribution repository, you have the option to install it manually. Make sure the headers end in the  directory. Since it's a headers-only library, you do not need to compile a .so library - just copy the code there.

Drivers
OpenGL is the primary 3D graphics API on GNU/Linux-based systems. If your device supports 3D acceleration on GNU/Linux, it probably includes an OpenGL distribution.

OpenGL is included in drivers, so you'll have to make sure drivers are properly installed if you want to enjoy programs using OpenGL. Open source drivers actually make use of Mesa's OpenGL implementation. Proprietary drivers embed their own OpenGL library.

Proprietary options
Nvidia provides generally excellent but non-open source drivers via the nvidia driver from their website. fglrx drives many modern AMD devices; it is also closed-source, and available from AMD's website.

Free/Open-Source options
If your CPU is an Intel one with built-in graphics, then the necessary open-source drivers come as a standard part of the Linux kernel.

If you have one of the newest chips, you may be forced to use the mediocre fglrx driver. However since AMD released the specifications for their chips, the open source 'radeon' made its way to become a full-featured 2D and 3D driver.

As of June 2013, most AMD chips will run well with the open source 'radeon' driver. 3D performance is still better with the AMD Catalyst driver on modern cards, but this may change in the future. Check the feature matrix for a completion status.

The open-source nouveau driver supports nVidia chipsets, but at the time of writing is not as complete as nVidia's closed-source drivers, 3D support may not be satisfactory.

The OpenGL driver on Linux systems consists of two files:
 * libGL.so for the GL itself; libGL.so must be accessible to the Linux library loader (refer to man pages for ldconfig);
 * glx.so (this name may vary) for Xorg support for OpenGL; glx.so will be in Xorg's extensions path and must be loaded by xorg.conf (refer to man pages for xorg.conf).

Many OpenGL applications require libGLU.so as well; GLU operations are not hardware-accelerated, so the implementation provided by Mesa is an excellent option.

Check your OpenGL installation
Type this in a terminal to get much info about your OpenGL driver, including supported extensions:

IDEs
The tutorials will mostly rely on simple s to build the code, and let you edit the source with your favorite text editor, such as Emacs, vim, gedit, kwrite, etc.

Several IDEs exist for GNU/Linux, such as:
 * Code::Blocks
 * Anjuta
 * KDevelop
 * Eclipse CDT (can interface with Make)

It is very simple to adapt the Makefiles to these environments.

title: OpenGL Programming/Installation/Linux


text:
Uzbek

General Stuff

 * Introduction to the course
 * The Alphabet — Alphabet Pronunciation
 * Before You Begin — Simple Grammar points

Lessons

 * Lesson One — Greetings, Introductions, Goodbyes
 * Lesson Two — Classroom Orientation
 * Lesson Three — not sure yet
 * Lesson Four — Food
 * Lesson Five — Directions
 * Lesson Six — Transportation
 * Lesson Seven —
 * Lesson Eight — Communication
 * Lesson Nine — not sure yet
 * Lesson Ten — Shopping
 * Lesson Eleven — Medical
 * Lesson Twelve — not sure yet

Appendix
Coat of Arms of Uzbekistan
 * Glossary of words in Dialogues
 * Numerals and Fractions
 * /Nominal and Verbal Words/

Oʻzbek Dictionaries

 * Uzbek - English Dictionary (Inglizcha - Oʻzbekcha lugʻat) (from William Dirks)
 * Online Dictionary (Uzbek <=> English) (user edited)

Oʻzbek Language Related Wiki

 * Oʻzbek Wiktionary
 * Oʻzbek Wikipedia

우즈베크어 Özbekçe Мова людства/Узбецька

title: Uzbek


text:
Adventist Youth Honors Answer Book/Household Arts/Quilting (North American Division)

2. Who introduced quilts to North America?
The patchwork quilt was introduced to North America by the colonial British.


text:
Uzbek/Lesson One

 << Previous Section - Index - Next Lesson >>

This lesson is divided up into several sections. After your done you'll be ready to have your very first conversation in Uzbek. Sure, it'll be real simple—but you'll know how to greet somebody, introduce yourself, ask some polite questions, and say goodbye. If you want to do it intensive (which I'd recommend) you can do this all as one lesson. If you don't have much time the dialogues are broken up into four sections—just do one. (Eventually I think we'll merge all four tiny dialogues)

Cultural Notes
Uzbeks make up over 70 percent of the population of the Central Asian country called Uzbekistan. Many Uzbeks also live in neighboring regions of Tajikistan, Afghanistan, Kyrgyzstan, Kazakhstan, and Turkmenistan. Even today Uzbeks live close to the land, most of the engaged in farming and other rural occupations.

The extended family and neighborhood play extremely important roles in the lives of the Uzbeks. Senior family members, elders of the neighborhood, and older people in general are shown great respect. Although many social activities are organized in Uzbek neighborhoods and villages, men and woman are segregated by sex at many of them. Under Soviet rule, some Uzbeks had considerable contact with Russians, but few have experience with individuals from the West. Nonetheless, they are thrilled to meet individuals who wish to learn about and appreciate their rich culture.

Even Uzbeks of modest means are extremely generous toward their guests. When a stranger arrives at an Uzbek household, he is first invited and offered tea and other refreshments. Only then does the host ask who the guest is and why he has come.

Uzbek etiquette is very elaborate. For example, it is considered impolite to enter or exit a room before a person of higher status. Frequently a group of Uzbeks will pause before entering a building to insist that someone else enter first. The intricacies of such courtesies may take a long time to learn.

When Uzbek men meet, they greet each other with their right hand on their chest. Generally, the younger man initiates the greeting and then the senior one responds. The senior man may extend a hand for a handshake, but it is not the custom for the younger one to do so first.

When Uzbek women meet they often use a different form of greeting than do men. When adult women greet each other or youths they place their right hand on the left shoulder of the other person. But when a woman greets an adult man she places her right hand on her chest and generally maintains a distance from him.

Upon greeting a woman, an Uzbek man does not extend his hand to her. If the woman reaches out to the man in such encounters, he may respond by extending his hand for a handshake.

Such customs are more strictly observed in rural areas. In big cities, especially in Tashkent, many Uzbeks have adopted Russian habits. For example, women in larger cities are more likely to shake a man's hand. The Russian ways are especially common among younger people.

Vocabulary
*(is Qaytaman "I will go", or "I will return")

For Dialogue 1
The greeting Assalomu Alaykum! is a very common expression throughout the Muslim world, among Uzbeks it is especially common in the more conservative rural areas. It is from an Arabic greeting meaning peace be upon you! The invariable response must be Vaalaykum Assalom! which is also from an Arabic greeting meaning I also wish you peace!

Uzbeks also have other greetings used for different times of day. The most appropriate response for any of these greetings is to repeat the greeting.

Omonmisiz! is mostly used by women.

For Dialogue 2
From Previous Lessons:

Standard Uzbek has both singular and plural pronouns:

The second person pronoun sen is used to address one or more friends and equals or those who are younger or familiar. Siz must be used to address those who are older or unfamiliar, and also to address more than one person.

The third person pronoun u can refer to males, females, or things. Gender can be determined from context.

Mening ('my') is a possessive form of the personal pronoun men. The singular and plural possessive forms of the personal pronouns are:

The possessive forms of the personal pronouns can be omitted when a noun already reflects possession.

The suffix -man 'I am', expresses person and is a noun predicate. The singular and plural noun suffixes in standard Uzbek are:

The subject pronoun may be omitted in a sentence where one of these predicate suffixes are used.

For Dialogue 3
The plural suffix is -lar. It is added to the stem of the noun:

When the Uzbeks ask someone about his well-being they usually use expressions like Ishlaringiz qanday? (How are you?), Ishlaringiz yaxshimi? (How are things?). The response may be Yaxshi (Good), Ishlarim Yaxshi (Everything is fine), or Rahmat (Thanks).

The question particle is -mi. In order to form an interrogative sentence this particle is added only to the predicate of a sentence:

Pronunciation
Questions formed with the help of the particle -mi are pronounced with a rising intonation. In the sentence Ishlaringiz yaxshimi? (How are things?), the peak of intonation is on the second syllable of yaxshi.

Questions formed with the help of the interrogative words like qanday (how) are pronounced with falling intonation. In the sentence Ishlaringiz qanday? (How are you?), the low point of intonation is on the second syllable of qanday.

For Dialogue 4
As Uzbeks take leave of one another, they commonly exchange a series of expressions meaning goodbye. Some of these are:

The parting expression Xayr! may be used at any time of day. The expression Xayr, yaxshi qoling! is used by a guest or by the person taking leave. The expression Xayr, yakshi boring! is used by a host or by the person staying.

The Uzbek word xoʻp has many meanings, including 'fine,' 'very well,' 'agreed,' 'all right,' and 'O.K.' Uzbeks use xoʻp and yaxshi much as English speakers use 'fine', and 'good'.

Recap
Congratulations! You can know have your first ever conversation in Uzbek—and that wasn't that hard either? Was it?

In future editions of this book we might have exercises and such, so that you can practice what you learned, and really get it to soak in—and also so you can double check and make sure you know it. But they aren't available just yet :)

 << Previous Section - Index - Next Lesson >>

title: Uzbek/Lesson One


text:
Radiation Oncology/Cervix/Overview

Epidemiology

 * 3rd most common gynecologic malignancy in US. 10,370 cases/yr and 3,710 deaths/yr in US (in 2005).
 * Worldwide, is the second most common cancer and second leading cause of cancer mortality in women.
 * Was the most common cause of cancer deaths in US women in the 1930s, but due to improved screening incidence decreased from 32.6/100,000 in 1940's to 8.3/100,000 in 1980's
 * Increased risk: HPV 16/18, HSV2, early age at initiation of sexual activity, tobacco, DES, lower socioeconomic status, current use of oral contraceptives
 * Presence of cervical Ca in the setting of HIV denotes AIDS status

Oral contraceptives
 * Meta-analysis; 2007 PMID 17993361 -- "Cervical cancer and hormonal contraceptives: collaborative reanalysis of individual data for 16,573 women with cervical cancer and 35,509 women without cervical cancer from 24 epidemiological studies." (Appleby P, Lancet. 2007 Nov 10;370(9599):1609-21.)
 * Central review of 16,573 women with cervical CA compared with 35,509 women without
 * Outcome: current users had 1.9x risk compared to never use. Risk declined after stopping, and returned to baseline by 10 years

Prevention
HPV Vaccine
 * Stanford, 2007 PMID 17617529 -- "Impact of the human papilloma vaccine on cervical cancer." (Chan JK, J Clin Oncol. 2007 Jul 10;25(20):2975-82.)
 * Review

Anatomy

 * Inferior portion of the uterus. Has supravaginal (endocervix) and vaginal (ectocervix) portions
 * Barrel-shaped; measures 2.5-3 cm in adult multigravida female
 * Composed of:
 * Ectocervix - intravaginal portion
 * External os - opening of the cervix into the vagina
 * Endocervix - cervical canal, which connects external os with the internal os
 * Internal os - opening of the cervix into the uterine cavity

Lymphatic Drainage
 * Cervix (3 separate routes)
 * Laterally, along uterine artery to external iliac LNs
 * Posterolaterally, behind ureters to internal iliac LNs
 * Posteriorly, into common illac and lateral sacral LNs

 * Fundus of uterus
 * Mainly to internal iliac LNs via broad ligament
 * Some to para-aortics via ovarian vessels
 * Some to external iliac and inguinal LNs via round ligament

 * Upper third vagina
 * Laterally to both internal and external iliac LNs

 * Middle third vagina
 * Internal iliac LNs alone

 * Lower third vagina
 * Merge with vulva into superficial inguinal

 * Perez, Principles and Practice of GYN ONC (1st Ed), 1992
 * Likelihood of PA LN+
 * IB2: 6%
 * IIB: 19%
 * IIIB: 29%

Histology

 * Ectocervix (vaginal cervix) is typically squamous cell (nonkeratinizing, stratified)
 * Endocervix (endocervical canal) is typically adeno (columnar epithelium, mucin-secreting)
 * Transformation zone (ectropion) is where the tall columnar cells are transformed into flat squamous cells. This is the site of origin for squamous cell dysplasia and carcinoma, and may be located outside the os or within the canal

Screening
On exam, a barrel-shaped cervix is defined as an expanded cervix > 4 cm diameter and indicates an endocervical tumor.

Screening test (Pap):
 * 2001 Bethesda System:
 * PMID 11966386 — "The 2001 Bethesda System: terminology for reporting results of cervical cytology." Solomon D et al. JAMA. 2002 Apr 24;287(16):2114-9.
 * Epithelial abnormalities:
 * Atypical squamous cells (ASC) - divided into ASC-US ("of undetermined significance") and ASC-H ("cannot exclude high-grade squamous intraepithelial lesion")
 * LSIL - low-grade squamous intraepithelial lesion (includes HPV, mild dysplasia, CIN 1)
 * HSIL - high-grade squamous intraepithelial lesion (includes moderate and severe dysplasia, carcinoma in situ, CIN 2 and CIN 3)
 * Squamous cell carcinoma
 * Glandular abnormalities:
 * Atypical glandular cells (AGC)
 * Endocervical adenocarcinoma in situ (AIS)
 * Adenocarcinoma

Management of an abnormal pap result:
 * 2001 Consensus Guidelines (ASCCP)
 * Guidelines (PDF) - Algorithm from the ASCCP
 * PMID 11966387 Full text — "2001 Consensus Guidelines for the management of women with cervical cytological abnormalities." Wright TC Jr et al. JAMA. 2002 Apr 24;287(16):2120-9.
 * Management of biopsy-confirmed CIN1 and CIN2-3.

Management of abnormal histology:
 * 2001 Consensus Guidelines (ASCCP)
 * Guidelines (PDF) - Algorithm from the ASCCP
 * PMID 12861176 Full text — "2001 consensus guidelines for the management of women with cervical intraepithelial neoplasia." Wright TC Jr et al. Am J Obstet Gynecol. 2003 Jul;189(1):295-304.

HPV testing vs Pap smear

 * Finland (2003-2005) -- HPV DNA screen vs conventional cytology
 * 2010 PMID 20423964 Full Text -- "Rate of cervical cancer, severe intraepithelial neoplasia, and adenocarcinoma in situ in primary HPV DNA screening with cytology triage: randomised study within organised screening programme" (Anttila A, BMJ 2010;340:c1804)
 * Randomized. 58,076 women, age 30-60, routine population-based screening program. Arm 1) HPV DNA test vs Arm 2) conventional cytological screening. Primary outcome cervical cancer, CIN-III and carcinoma in situ (both reported as CIN-III+)
 * Outcome: CIN-III+ HPV 76 cases (6 cervical CA) vs cytology 53 cases (8 cervical CA)
 * Conclusion: Primary HPV screening more sensitive than conventional cytology in detecting CIN-III+ lesions; number cervical cancer small

Surgical staging

 * GOG 49, 1990 (1981-84)
 * 732 pts, Stage I and > 3 mm invasion (currently IA2), of which 645 pts were treated with radical hyst + paraaortic and pelvic lymphadenectomy. Pts with paraaortic mets were excluded.
 * 1990 PMID 2227547 — "Prospective surgical-pathological study of disease-free interval in patients with stage IB squamous cell carcinoma of the cervix: a Gynecologic Oncology Group study." Delgado G et al. Gynecol Oncol. 1990 Sep;38(3):352-7.
 * Worse DFS for pts with microscopically positive pelvic LN (3-yr DFI 74.4% vs 85.6%) but no difference in OS. DFI correlated with depth of invasion (94% vs 84% vs 74% by thirds), tumor size (94% occult, 85% <3cm, 68% >3cm), capillary-lymphatic invasion (88% vs 77%), grade (90% vs 86% vs 76%), parametrial involvement (85% vs 70%). For margin status, 84.3% vs 69.1% but N.S. Pelvic LN+ is not prognostic.
 * Conclusion: Tumor size, depth of invasion, and CLS invasion (LVI) were independent factors for DFS
 * 1989 PMID 2599466 — "A prospective surgical pathological study of stage I squamous carcinoma of the cervix: a Gynecologic Oncology Group Study." Delgado G et al. Gynecol Oncol. 1989 Dec;35(3):314-20.
 * Risk factors for pelvic LN+: capillary-lymphatic space involvement, depth of invasion, parametrial involvement, age.
 * Comment: prognostic factors allow patients to be classified as low, intermediate, or high risk. Led to the risk factors used in Sedlis's paper. See below.

Para-aortic nodes:
 * GOG 19, 1980 (1973-76)
 * PMID 7353805 (no abstract) — "Results and complications of operative staging in cervical cancer: experience of the Gynecologic Oncology Group." Lagasse LD et al. Gynecol Oncol. 1980 Feb;9(1):90-8.
 * 290 pts, Stage IB-IVB. Underwent surgical exploration with sampling of bilateral paraaortic lymph nodes either in conjunction with radical hystectomy (IB) or a separate procedure (II-IV).
 * Squamous (89%), adenosquamous (6%), adenocarcinoma (4%). About half were Stage IB. 36% of pts were upstaged by surgical exploration.
 * Positive para-aortic nodes in: Stage IB (5.6%), Stage II-IV (29.3%). Grade was not predictive of number with +PA LN. For adenocarcinoma, 33% had +PA (even though most had Stage IB).
 * Conclusion: implication for pts who have disease outside of standard RT field. Importance of surgical staging.

Use of PET in staging

 * Chang Gung University, Taiwan (2002-2006) -- pretreatment PET vs no PET
 * Randomized. 129 patients, Stage I-IVA cervical cancer, positive pelvic but negative PALN by MRI. Arm 1) pretreatment PET vs Arm 2) no PET. Treated with chemo-RT, standard pelvic fields. If PET+, extended to include PALN
 * 2010 PMID 19464824 -- "A prospective randomized trial to study the impact of pretreatment FDG-PET for cervical cancer patients with MRI-detected positive pelvic but negative para-aortic lymphadenopathy." (Tsai CS, Int J Radiat Oncol Biol Phys. 2010 Feb 1;76(2):477-84. Epub 2009 May 21.)
 * Outcome: PET identified 11% extra-pelvic mets; of these 57% remained disease free after modified fields. 4-year DFS PET+ 75% vs. PET- 77% (NS); 4-year OS 79% vs 85% (NS)
 * Conclusion: Pretreatment PET can improve detection of pelvic mets, but may not translate into survival benefit

 * Washington University
 * 2001 PMID 11533097 — "Lymph node staging by positron emission tomography in patients with carcinoma of the cervix." Grigsby PW et al. J Clin Oncol. 2001 Sep 1;19(17):3745-9.
 * Retrospective, 101 patients. Pts underwent CT and PET. +pelvic LN in 20% (CT) vs 67% (PET), +para-aortic LN in 7% vs 21%. 2-yr progression free status in (CT-/PET-): 64%, (CT-/PET+):18%, (CT+/PET+):14%.
 * Conclusion: PET is better at detecting abnormal lymph nodes than CT and is a better predictor for survival.
 * SUV; 2010 (2003-2008) PMID 20108309 -- "Pelvic lymph node F-18 fluorodeoxyglucose uptake as a prognostic biomarker in newly diagnosed patients with locally advanced cervical cancer." (Kidd EA, Cancer. 2010 Mar 15;116(6):1469-75.)
 * Retrospective. 83 patients, Stage IB1 to IIIB cervical cancer. Average SVU cervix 14.0 (3.2-38.4), average SUV PLN 5.9 (2.1-33), average PLN size 2.1 cm (0.6-7.9)
 * Outcome: SUV PLN correlated with increased risk of persistent disease (SS), pelvic recurrence (SS), DSS (SS) and OS (SS)
 * Conclusion: SUV of pelvic LNs is predicts for outcome
 * 2010 (2000-2009) PMID 20308664 -- "Lymph node staging by positron emission tomography in cervical cancer: relationship to prognosis." (Kidd EA, J Clin Oncol. 2010 Apr 20;28(12):2108-13. Epub 2010 Mar 22.)
 * Retrospective. 560 patients, Stage IA1-IVB, pretreatment PET staging.
 * Outcome: LN+ 47%, increasing with stage. Recurrence stratified by none, pelvic+ (HR 2.4), para-aortic+ (HR 5.9), or SCV+ (HR 30.3). If P+, 35% PA+, and 12% SCV+. All patients with PA+ had P+, all patients with SCV+ had PA+
 * Conclusion: Nodal involvement by PET stratified patient recurrence and survival

Prognostic Molecular Markers

 * PMID 15936552 -- Coexpression of cyclooxygenase-2 and thymidine phosphorylase as a prognostic indicator in patients with FIGO stage IIB squamous cell carcinoma of uterine cervix treated with radiotherapy and concurrent chemotherapy. (Pyo H, Int J Radiat Oncol Biol Phys. 2005)
 * Conclusion : "Thymidine phosphorylase expression or COX-2/TP coexpression may be used as a molecular prognostic marker for squamous cell carcinoma of the uterine cervix. TP appears to be an important downstream molecule of COX-2 during angiogenesis and may be a new target for the treatment of uterine cervical cancer."

Surgical treatment

 * Radical trachelectomy - removes all cancer with margin, but leave internal os. This is stitched closed, leaving a small opening for menses to escape. This arrangement can support a pregnancy, with baby born via C-section

Classes of hysterectomy:
 * Piver classification, 1974 - PMID 4417035 — "Five classes of extended hysterectomy for women with cervical cancer." Piver MS et al. Obstet Gynecol. 1974 Aug;44(2):265-72.
 * All classes (I-V) extend beyond the excision boundaries of a standard hysterectomy, such that all cervical tissue is removed
 * Class I - Simple Extrafascial Hysterectomy - removes just the uterus and a small rim of vaginal cuff.
 * Class II - Modified Radical Hysterectomy - removes uterus, a 1-2 cm cuff of vagina, wide excision of parametrial and paravaginal tissues (median half of cardinal and uterosacral ligaments). The ureters and uterine arteries and only partially mobilized (as in Class III). Ligates uterine artery at ureter. (Limited to cervical cancers with invasion up to 5 mm).
 * Class III - Radical Hysterectomy (Wertheim-Meigs procedure) - classic operation. Removes uterus and upper 2/3 of vagina. Dissection of paravaginal and parametrial tissues to the pelvic sidewalls. Ligates uterine artery at its origin at the internal iliac A. Pelvic lymphadenectomy.
 * Class IV - Extended Radical Hysterectomy - same as Class III but adds full mobilization of the ureters past the bladder (which is the point to which they are mobilized in the Class II and Ill procedures). Removes more paracervical tissue medial to the uteter.
 * Class V - Pelvic Exenteration - Anterior exenteration removes uterus, tubes, ovaries, vagina, and bladder. Posterior exenteration removes uterus, tubes, ovaries, and rectosigmoid.  Total exenteration removes all pelvic organs.

Treatment of the pregnant patient and fertility-sparing treatment

 * Abstract Full Text — Dargent et al. "Laparoscopic vaginal radical trachelectomy: A treatment to preserve the fertility of cervical carcinoma patients" Cancer. 2000 Apr 15;88(8):1877-82.
 * Trachelectomy is a conservative surgery that is designed to spare the function of the organ. Uses laparascopic (for LN dissection) and transvaginal approaches. Used on patients < 40 yrs old who have Stage Ia lesions with low risk of LN involvement or small volume Stage IB1-IIA lesions

 * Abstract Full Text (Case Report) — Ben-Arie et al. "Conservative treatment of stage IA2 squamous cell carcinoma of the cervix during pregnancy." Obstet Gynecol. 2004 Nov;104(5 Pt 2):1129-31.

Benefit of chemotherapy

 * Meta-analysis shows benefit

Meta-Analysis
 * MRC UK PMID 19001332 -- "Reducing uncertainties about the effects of chemoradiotherapy for cervical cancer: a systematic review and meta-analysis of individual patient data from 18 randomized trials." (Vale C, J Clin Oncol. 2008 Dec 10;26(35):5802-12. Epub 2008 Nov 10.)
 * Individual patient data analysis. 15 trials with 3,452 patients
 * 2 chemo-RT + chemo vs RT trials: 5-year OS 79% vs. 60% (HR 0.46, SS): 19% absolute improvement
 * 13 chemo-RT vs. RT trials: 5-year OS 66% vs. 60% (HR 0.81, SS): 6% absolute improvement
 * No difference between platinum-based (HR 0.83) and non-platinum-based (HR 0.77) chemo. Benefit by stage I-IIA 10%, IIB 7%, III-IVA 3%
 * Conclusion: There is a survival benefit for chemo-RT over RT alone

 * Canada, 2002 - PMID 12109823 — "Concurrent cisplatin-based chemotherapy plus radiotherapy for cervical cancer--a meta-analysis." Lukka H et al. Clin Oncol (R Coll Radiol). 2002 Jun;14(3):203-12.
 * Relative risk of death for chemotherapy, 0.74; 0.78, for advanced stage; 0.56, for high-risk early stage disease.

 * Liverpool, 2001 (UK) - PMID 11564482 — "Survival and recurrence after concomitant chemotherapy and radiotherapy for cancer of the uterine cervix: a systematic review and meta-analysis." Green JA et al. Lancet. 2001 Sep 8;358(9284):781-6.
 * 4580 pts from randomized studies.
 * Pts most likely to benefit from concurrent chemotherapy are those with: positive pelvic lymph nodes, large cervical lesions. Concurrent chemotherapy reduced incidence of distant mets

Population Study
 * Ontario, 2007 (1992-2001) PMID 17557951 -- "Impact of adoption of chemoradiotherapy on the outcome of cervical cancer in Ontario: results of a population-based cohort study." (Pearcey R, J Clin Oncol. 2007 Jun 10;25(17):2383-8.)
 * Retrospective. 4069 women. Primary RT used for 42% patients. In 1992-1998 <10% concurrent RT, in 1999-2001 >60% concurrent RT
 * 3-year OS: RT alone 59% vs. CRT 70% (SS); no change over time in those with surgery only
 * Conclusion: Adoption of CRT significant improvement in OS at the population level, consistent with results from randomized trials

Patterns of failure
For RT alone:
 * PMID 1129485 (1964-69) - "Analysis of sites and causes of failures of irradiation in invasive squamous cell carcinoma of the intact uterine cervix."
 * 94% of failures in first 3 years. Stage I-IIA: 6% LRF, Stage IIB: 18%, Stage III: 33%. Main predictor of failure is massive disease.

Prognostic factors:
 * PMID 2025841, 1991 - "Carcinoma of the cervix treated with radiation therapy. I. A multi-variate analysis of prognostic variables in the Gynecologic Oncology Group." Cancer. 1991 Jun 1;67(11):2776-85.

Patterns of Care
ACR Patterns of Care studies:
 * Patterns of Care study (1978):''
 * PMID 2249184, 1990 — "The Patterns of Care Outcome Study for cancer of the uterine cervix. Results of the Second National Practice Survey." Coia L et al. Cancer. 1990 Dec 15;66(12):2451-6.

 * Patterns of Care study (1988-89), 1996
 * PMID 12118541, 1996 — "Treatment planning for carcinoma of the cervix: a patterns of care study report." Ling CC et al. Int J Radiat Oncol Biol Phys. 1996 Jan 1;34(1):13-9.
 * Recorded treatment planning information.

 * Patterns of Care study (1992-94), 1999
 * PMID 10030261, 1999 — "Patterns of radiotherapy practice for patients with squamous carcinoma of the uterine cervix: patterns of care study." Eifel PJ et al. Int J Radiat Oncol Biol Phys. 1999 Jan 15;43(2):351-8.

 * Patterns of Care study (1996-1999), 2004
 * PMID 15519786, 2004 — "Patterns of radiotherapy practice for patients with carcinoma of the uterine cervix: a patterns of care study." Eifel PJ et al. Int J Radiat Oncol Biol Phys. 2004 Nov 15;60(4):1144-53.
 * PMID 16099599, 2005 — "Patterns of brachytherapy practice for patients with carcinoma of the cervix (1996-1999): a patterns of care study." Erickson B et al. Int J Radiat Oncol Biol Phys. 2005 Nov 15;63(4):1083-92.

Combined analyses:
 * Patterns of care 1973 and 1978
 * PMID 2004942, 1991 — "Pretreatment and treatment factors associated with improved outcome in squamous cell carcinoma of the uterine cervix: a final report of the 1973 and 1978 patterns of care studies." Lanciano RM et al. Int J Radiat Oncol Biol Phys. 1991 Apr;20(4):667-76.

 * Patterns of care 1973, 1978, and 1983
 * PMID 7860414, 1995 — "Long-term results of treatment of cervical carcinoma in the United States in 1973, 1978, and 1983: Patterns of Care Study (PCS)." Komaki R et al. Int J Radiat Oncol Biol Phys. 1995 Feb 15;31(4):973-82.

Adenocarcinoma
Treatment results:
 * MDACC, 1990 (1965-85) - PMID 2337867 — "Adenocarcinoma of the uterine cervix. Prognosis and patterns of failure in 367 cases." Eifel PJ et al. Cancer. 1990 Jun 1;65(11):2507-14.
 * RT or RT + surgery. 367 pts.
 * 5-yr RFS 73% - Stage I, 32% - Stage II. No significant difference for primary RT vs RT + extrafascial hysterectomy.
 * Conclusion: Survival of Stage II adenocarcinoma is lower than that for squamous.

Outcome Nomograms

 * GOG/NRG data; 2015 PMID 25732170 -- "Nomograms Predicting Progression-Free Survival, Overall Survival, and Pelvic Recurrence in Locally Advanced Cervical Cancer Developed From an Analysis of Identifiable Prognostic Factors in Patients From NRG Oncology/Gynecologic Oncology Group Randomized Trials of Chemoradiotherapy. (Rose, PG, J Clin Oncol. 2015 Jul 1;33(19):2136-42. doi: 10.1200/JCO.2014.57.7122. Epub 2015 Mar 2.)
 * Retrospective. 2,042 patient with locally advanced cervical cancer, enrolled on GOG clinical trials
 * Nomogram developed. Variables: histology, race, PS, tumor size, tumor grade, FIGO stage, LN status, treatment with concurrent cisplatin
 * Conclusion: Nomogram can be used to better estimate individual outcomes

Radiation Use By Stage

 * Kingston, 2005 (Canada) PMID 15936156 -- "An evidence-based estimate of the appropriate rate of utilization of radiotherapy for cancer of the cervix." (Usmani N, Int J Radiat Oncol Biol Phys. 2005 Nov 1;63(3):812-27. Epub 2005 Jun 2.)
 * Review of literature for appropriateness of RT in cervical cancer
 * North American population: RT indication in 65% of cervical CA cases at some point; 63% as initial management, 2% for progressive/recurrent disease
 * Stage IA: 11%
 * Stage IB: 75%
 * Stage II/III: 100%
 * Stage IV: 97%

Other Resources

 * eContouring Webinar - Gynecological Cancers with Arno Mundt III, M.D.
 * ASTRO/ARRO Journal Club Webinar 2012 - "Image-guided brachytherapy for cervical cancer" with Beth Erickson, MD, FACR
 * ASTRO/ARRO Journal Club Webinar 2011 - "Chemoradiation for cervical cancer" with Patricia J. Eifel, MD

title: Radiation Oncology/Cervix/Overview


text:
Advanced Interactive Media/Discussions From Facebook

Student's written responses on the last exam that are worth thinking about:

Below are comments from thoughtful people in response to Podcast topics that can be found at Don Eland's Podcast site: http://web.archive.org/20100703122442/web.mac.com/elandinteractive/iWeb/elandinteractive/Podcast/Podcast.html

Video Downloader]

Titles for Podcasts:
 * PODCASTING: A CONDENSED PRESENTATION FOR FACULTY
 * A TWO MINUTE FACULTY DEVELOPMENT REPORT
 * NEW YORK DIGITAL MEDIA CONFERENCE

"Income and education are driving the technology revolution, not youth culture as is assumed by most people"


text:
Advanced Interactive Media/Other Topics

Define and Write About a New Topic

 * /The NAB Experience/
 * /The New Media Player/
 * /Worldwide Interactivity/
 * /Myspace Social Networking/
 * /Technorati.com/
 * /Interactive Media in Museums - Hotspot: Washington D.C./
 * /Awakening into the Interactive World/
 * /Interactivity Crosses Over Into Vegas Nightlife/
 * /Interactive Photography/
 * /A New Hope for Those with Sensory Handicaps/
 * /Competition for Wikipedia/
 * /Christian Perspectives on Producing Interactive Media/
 * /The Visual Story Network/

title: Advanced Interactive Media/Other Topics


text:
Radiation Oncology/Cervix/Early Stage Nonbulky

Cervical Cancer - Early Stage Non-bulky (IB1 and IIA <4cm)

Surgery vs. RT

 * No survival or DFS difference
 * Severe toxicity (Grade 2-3) significantly higher in surgery
 * Advantages to surgery: preserve gonadal function (and avoid early menopause), avoid shortening/fibrosis of vagina, assess LN status
 * Advantages to RT: easy to deliver if poor surgical candidate, lower risk of complications
 * Combined surgery + RT highest rate of complications

 * Milan (1986-91)
 * Randomized. 343 patients. Stage IB-IIA (IB1 61%, IB2 27%, IIA 12%). Squamous 83%, adenoCA 14%, small cell 3%. Treated with radical hysterectomy (Class III) vs. radical RT.
 * RT given: EBRT using 18 MV photon to median 47 Gy followed by LDR x 1 for Point A median dose 76 Gy. Adjuvant RT allowed for pts who were surgical stage IIB or greater, < 3 mm of safe cervical stroma, positive margins, or positive LN (62/114 IB1, 46/55 IB2).
 * 63% of pts in surgery arm received RT.
 * 5 years PMID 9284774 — "Randomised study of radical surgery versus radiotherapy for stage Ib-IIa cervical cancer." Landoni F, et al. Lancet. 1997 Aug 23;350(9077):535-40.
 * Median F/U 87 mo. Non-bulky: OS surgery 87% vs. RT 90% (NS), DFS surgery 80% vs. RT 82% (NS). Bulky: OS surgery 70% vs. RT 72% (NS), DFS surgery 63% vs. RT 57% (NS).
 * AdenoCA: significantly better outcomes with surgery; OS (70% vs. 59%), DFS (66% vs. 47%). Squamous not differ.
 * Complications (Grade 2-3): Surgery 28% vs RT 12% (SS). Severe leg edema surgery 0%, RT 1%, surgery + RT 9%
 * Conclusion: Surgery and RT are both acceptable treatments for early stage cervical ca; (for bulky, primary surgery not a good option)
 * 20 years PMID 28382797 — "Randomized study between radical surgery and radiotherapy for the treatment of stage IB-IIA cervical cancer: 20-year update." Landoni F, et al. J Gynecol Oncol. 2017 May;28(3):e34.
 * Shortest F/U 19 years. 20-year OS: surgery 72% vs. RT 77% (NS).
 * Squamous: RT better for whole cohort (OS 82% vs. 72%, SS); but subgroup showed that RT was not better for size <= 4 cm.
 * AdenoCA OS surgery 71% vs. RT 47% (NS)
 * Relapse 28% in both arms. No difference in pattern and timing. More likely to cure in RT arm (salvage surgery option available).
 * Complications: More hydroureteronephrosis and legs edema in surgery + adjuvant RT. Proctitis presence only in RT arm (8.8%).
 * Conclusion: No treatment of choice; should individualize based on histology, tumor size, etc.

Surgery +/- Post-op RT
25% of Stage IB pts may benefit from XRT because they have positive risk factors, which were originally delineated in a surgical series from GOG 49.

 * GOG 49, Delgado (1981-1984)
 * Prospective cohort study of 732 patients (645 evaluated) with stage 1 squamous cell carcinoma of the cervix with greater than or equal to 3mm of invasion required to undergo radical hysterectomy, paraaortic and pelvic lymphadenectomy and peritoneal cytology. Analysis was performed to identify independent prognostic factors associated with disease-free interval (DFI), or the time between study entry to physical or radiological evidence of disease recurrence or date last seen.
 * 1990 PMID 2227547 — "Prospective Surgical-Pathological Study of Disease-Free Interval in Patients with Stage IB Squamous Cell Carcinoma of the Cervix: A Gynecologic Oncology Group Study." Delgado, et al. GYNECOLOGIC ONCOLOGY 38, 352-357 (1990)
 * Disease free interval (DFI) correlated strongly with depth of tumor invasion (both in absolute mm and in fractional thirds), tumor size, and capillary-lymphatic space (CLS) invasion [ie, LVSI].
 * Depth of Invasion
 * DFI 94.1% for superficial third invasion
 * DFI 84.5% for middle third invasion
 * DFI 73.6% for deep third invasion
 * Tumor Size
 * DFI 94.8% for occult tumor
 * DFI 88.1% for tumor <=3cm
 * DFI 67.6% for tumor >3cm
 * CLS [LVSI]
 * DFI 77.0% if present
 * DFI 88.9% if absent

 * GOG 92, Sedlis, (1988-95)
 * 277 pts. Randomized. Stage IB, node negative, but with high estimated risk of recurrence (from GOG 49) s/p radical hysterectomy and lymphadenectomy randomized to +/- adjuvant pelvic XRT 46-50.4 Gy. Included pts with: 1) CLS involved, deep 1/3 stromal invasion, any size; 2) CLS involved, middle 1/3 invasion, size >= 2cm; 3) CLS involved, superficial 1/3 invasion, >= 5 cm; or 4) CLS not involved, deep or middle 1/3 invasion, >= 4 cm. These pts were estimated to have a 31% recurrence at 3 yrs.
 * 1999 PMID 10329031 — "A randomized trial of pelvic radiation therapy versus no further therapy in selected patients with stage IB carcinoma of the cervix after radical hysterectomy and pelvic lymphadenectomy: A Gynecologic Oncology Group Study." Sedlis A et al. Gynecol Oncol. 1999 May;73(2):177-83.
 * Recurrences in 15% (RT) vs 28% (no RT). 2-year recurrence free rate 88% vs 79%. Hazard ratio=0.53. Grade 3/4 adverse effects were 6% vs 2.1% Distant mets 2% (RT) vs 7% (no RT). Follow up too short for survival analysis.
 * 2006 PMID 16427212 — "A phase III randomized trial of postoperative pelvic irradiation in Stage IB cervical carcinoma with poor prognostic features: follow-up of a gynecologic oncology group study." Rotman M et al. Int J Radiat Oncol Biol Phys. 2006 May 1;65(1):169-76.
 * Decreased rate of recurrence by 46%; local recurrence 13.9% (RT) vs 20.7% (no RT), distant 2.9% vs 8.6%. Improved PFS by 42%. Decreased death rate by 30% (28.6% vs 19.7%) but not S.S. (p=0.07). RT has improved benefit for adenocarcinoma or adenosquamous histologies (8.8% vs 44% recurrence).

Sedlis criteria often simplified to needing 2 or more of these factors:
 * CLS (LVI) involvement
 * deep stromal invasion (middle or deep third); [i.e >1/3 stromal invasion]
 * Size > 4 cm

Surgery + Post-op RT vs. Post-op CRT
High risk features:
 * microscopic involvement of the parametrium (upstaged to IIB)
 * positive pelvic lymph nodes (upstaged to IIIB)
 * positive surgical margins

 * GOG 109 / Intergroup 0107 / SWOG 8797 / RTOG 9112 (1991-96)
 * Randomized, 268 patients. Post-operative clinical stage IA2, IB, and IIA, s/p radical hysterectomy and pelvic lymphadenectomy, with high risk features (positive pelvic lymph nodes, positive margins, or microscopic involvement of the parametrium). Randomized to RT vs RT+CT.  Chemotherapy consisted of cisplatin 70 mg/m^2 and a 96-hour infusion of fluorouracil 1,000 mg/m^2/d every 3 weeks x four cycles (1st and 2nd cycles concurrent with RT). RT 49.3 Gy in 29 fractions (1.7 Gy/fx). 45 Gy (1.5 Gy/fx) given to paraaortic area if positive common iliac LN.
 * 4-years; 2000 - PMID 10764420 — "Concurrent chemotherapy and pelvic radiation therapy compared with pelvic radiation therapy alone as adjuvant therapy after radical surgery in high-risk early-stage cancer of the cervix." (Peters WA 3rd et al. J Clin Oncol. 2000 Apr;18(8):1606-13.)
 * Outcome: 4-year OS RT 71% vs CRT 81%, HR=2.0 (SS); 4-year PFS 63% vs 80%, HR=2.0 (SS). Local failure 17% vs 6%. No difference in outcome based on histology (squamous vs adeno) for patients who underwent chemo-RT
 * Toxicity: Grade 4+ RT 4% vs CRT 17% (mainly hematologic)
 * Conclusion: Addition of cisplatin based chemotherapy to RT significantly improves progression free survival and overall survival following surgery for high-risk, early stage patients
 * LN; 2005 PMID 15721417 — "Rethinking the use of radiation and chemotherapy after radical hysterectomy: a clinical-pathologic analysis of a Gynecologic Oncology Group/Southwest Oncology Group/Radiation Therapy Oncology Group trial." Monk BJ et al. Gynecol Oncol. 2005 Mar;96(3):721-8.
 * Smaller benefit for chemo+RT when only 1 LN is positive (79% versus 83% OS at 5 years) or if tumor was ≤2 cm (77% versus 82%).

Adjuvant RT vs Adjuvant Chemo

 * Gachon University (Korea); 2008 PMID 18021218 -- "Comparison of adjuvant chemotherapy and radiation in patients with intermediate risk factors after radical surgery in FIGO stage IB-IIA cervical cancer." (Lee KB, Int J Gynecol Cancer. 2008 Sep-Oct;18(5):1027-31. Epub 2007 Nov 16.)
 * Retrospective. 80 patients, FIGO Stage IB-IIA cervical cancer, s/p radical hysterectomy and PLND, with intermediate risk factors (>50% stromal invasion, LVI, bulky, or close SM). Treated with RT (n=42) or chemo (n=38). Comparable risk factors
 * Outcome: No difference in DFS, OS not reached
 * Conclusion: Adjuvant chemo in Stage IB-IIA cervical cancer with intermediate risk factors after surgery may be effective


text:
ACE+TAO Opensource Programming Notes/Find a service on a naming server

After your naming service (and other services are running), the presence of your services can be tested for by trying the following: tao_nslist -ORBInitRef NameService=corbaloc:iiop:localhost:12345/NameService

This should then produce the following output: Naming Service: -

Where your named services appear below the dashed line.

Now to actually connect the two applications. To make our previous example Naming Service aware, we need to add in the code to attach to the Naming Service, then, resolve our service from within that context. The following code, put in place of the code to bring in the IOR from the command line resolves a reference to the factory object using a human readable URL from the command line which is persistent from reboot to reboot. Here's the code snippet we'll be applying:

Note that the code is potentially all boiler plate which can be placed in a reusable function. The only two original parts of the code are the URL pulled in from the command line, and the string representing the name of or remote class, "Widgets".

./client corbaloc::localhost:12345/NameService

In this example, everything is on one box, but in reality, none of these services need be running on the same hardware, they only need to be reachable by the indicated ports. Now, lets take a look at the client code.


text:
Write Yourself a Scheme in 48 Hours/Answers

=Chapter 1=

Exercise 1
main :: IO main = do args <- getArgs putStrLn ("Hello, " ++ args!!0 ++ " " ++ args!!1)

Exercise 2
main :: IO main = do args <- getArgs print ((read $ args!!0) + (read $ args!!1))

The  operator reduces the number of parentheses needed here. Alternatively you could write the function applications as.

Exercise 3
main :: IO main = do putStrLn "What do they call thee at home?" name <- getLine putStrLn ("Ey up " ++ name)

=Chapter 2=

Part 1
parseNumber :: Parser LispVal parseNumber = do x <- many1 digit (return . Number . read) x

Part 2
In order to answer this question, you need to do a bit of detective work! It is helpful to read up on do notation. Using the information there, we can mechanically transform the above answer into the following.

parseNumber = many1 digit >>= \x -> (return . Number . read) x

This can be cleaned up into the following:

parseNumber = many1 digit >>= return. Number. read

Exercise 2
We need to create a new parser action that accepts a backslash followed by either another backslash or a doublequote. This action needs to return only the second character.

escapedChars :: Parser Char escapedChars = do char '\\' -- a backslash x <- oneOf "\\\"" -- either backslash or doublequote                  return x -- return the escaped character

Once that is done, we need to make some changes to parseString.

parseString :: Parser LispVal parseString = do char '"'                 x <- many $ escapedChars <|> noneOf "\"\\" char '"'                 return $ String x

Exercise 3
escapedChars :: Parser Char escapedChars = do char '\\' x <- oneOf "\\\"nrt"                   return $ case x of                      '\\' -> x                     '"'  -> x                     'n'  -> '\n' 'r' -> '\r' 't' -> '\t'

Exercise 4
First, it is necessary to change the definition of symbol.

symbol :: Parser Char symbol = oneOf "!$%&|*+-/:<=>?@^_~"

This means that it is no longer possible to begin an atom with the hash character. This necessitates a different way of parsing #t and #f.

parseBool :: Parser LispVal parseBool = do    char '#' (char 't' >> return (Bool True)) <|> (char 'f' >> return (Bool False))

This in turn requires us to make changes to parseExpr.

parseExpr :: Parser LispVal parseExpr = parseAtom <|> parseString <|> parseNumber <|> parseBool

parseNumber need to be changed to the following.

parseNumber :: Parser LispVal parseNumber = parseDecimal1 <|> parseDecimal2 <|> parseHex <|> parseOct <|> parseBin

And the following new functions need to be added.

parseDecimal1 :: Parser LispVal parseDecimal1 = many1 digit >>= (return . Number . read)

parseDecimal2 :: Parser LispVal parseDecimal2 = do try $ string "#d" x <- many1 digit (return . Number . read) x

parseHex :: Parser LispVal parseHex = do try $ string "#x" x <- many1 hexDigit return $ Number (hex2dig x)

parseOct :: Parser LispVal parseOct = do try $ string "#o" x <- many1 octDigit return $ Number (oct2dig x)

parseBin :: Parser LispVal parseBin = do try $ string "#b" x <- many1 (oneOf "10") return $ Number (bin2dig x)

oct2dig x = fst $ readOct x !! 0 hex2dig x = fst $ readHex x !! 0 bin2dig = bin2dig' 0 bin2dig' digint "" = digint bin2dig' digint (x:xs) = let old = 2 * digint + (if x == '0' then 0 else 1) in                         bin2dig' old xs

Import the Numeric module to use the readOct and readHex functions.

Exercise 5
data LispVal = Atom String | List [LispVal] | DottedList [LispVal] LispVal | Number Integer | String String | Bool Bool | Character Char

parseCharacter :: Parser LispVal parseCharacter = do try $ string "#\\" value <- try (string "newline" <|> string "space") <|> do { x <- anyChar; notFollowedBy alphaNum ; return [x] } return $ Character $ case value of    "space" -> ' ' "newline" -> '\n' otherwise -> (value !! 0)

The combination of anyChar and notFollowedBy ensure that only a single character is read.

Note that this does not actually conform to the standard; as it stands, "space" and "newline" must be entirely lowercase;  the standard states that they should be case insensitive.

parseExpr :: Parser LispVal parseExpr = parseAtom <|> parseString <|> try parseNumber -- we need the 'try' because <|> try parseBool -- these can all start with the hash char <|> try parseCharacter

Exercise 6
A possible solution for floating point numbers:

parseFloat :: Parser LispVal parseFloat = do x <- many1 digit char '.' y <- many1 digit return $ Float (fst.head$readFloat (x++"."++y)) Furthermore, add try parseFloat before parseNumber in parseExpr and the line | Float Double to the LispVal type.

Exercise 7
Ratio, using Haskell's Rational type:

parseRatio :: Parser LispVal parseRatio = do x <- many1 digit char '/' y <- many1 digit return $ Ratio ((read x) % (read y))

Additionally, import the Data.Ratio module, add try parseRatio before parseNumber in parseExpr and the line | Ratio Rational to the LispVal type.

Real is already implemented in the Float type from Exercise 6, unless I'm mistaken.

Complex using Haskell's Complex type: toDouble :: LispVal -> Double toDouble(Float f) = realToFrac f toDouble(Number n) = fromIntegral n

parseComplex :: Parser LispVal parseComplex = do x <- (try parseFloat <|> parseDecimal) char '+' y <- (try parseFloat <|> parseDecimal) char 'i'                    return $ Complex (toDouble x :+ toDouble y)

As before, import the Data.Complex module, add try parseComplex before parseNumber and parseFloat in parseExpr and the line | Complex (Complex Double) to the LispVal type.

Exercise 1
These two are analogous to parseQuoted: parseQuasiQuoted :: Parser LispVal parseQuasiQuoted = do     char '`' x <- parseExpr return $ List [Atom "quasiquote", x]

parseUnQuote :: Parser LispVal parseUnQuote = do     char ',' x <- parseExpr return $ List [Atom "unquote", x]

parseUnQuoteSplicing :: Parser LispVal parseUnQuoteSplicing = do     char ',' char '@' x <- parseExpr return $ List [Atom "unquote-splicing", x]

Also add <|> parseQuasiQuoted <|> parseUnQuote <|> parseUnQuoteSplicing

to parseExpr.

Exercise 2
I chose to go with Arrays as described in Data.Array and used list-array conversions for array construction. parseVector :: Parser LispVal parseVector = do arrayValues <- sepBy parseExpr spaces return $ Vector (listArray (0,(length arrayValues - 1)) arrayValues) In order to use this, import Data.Array and add the following to the LispVal type: | Vector (Array Int LispVal) Add the following lines to parseExpr; before the parser for Lists and DottedLists. <|> try (do string "#(" x <- parseVector char ')'                   return x)

Exercise 3
This took a fair amount of fiddling with,   and friends. I started by getting the  dotted list to work and then went from there. This code tolerates trailing and leading spaces.

parseAnyList :: Parser LispVal parseAnyList = do  P.char '('   optionalSpaces   head <- P.sepEndBy parseExpr spaces   tail <- (P.char '.' >> spaces >> parseExpr) <|> return (Nil )   optionalSpaces   P.char ')' return $ case tail of    (Nil ) -> List head otherwise -> DottedList head tail

Another implementation using more advanced functions from the Parsec library. is the one from this tutorial.

parseList :: Parser LispVal parseList = between beg end parseList1 where beg = (char '(' >> skipMany space)                 end = (skipMany space >> char ')')

parseList1 :: Parser LispVal parseList1 = do list <- sepEndBy parseExpr spaces maybeDatum <- optionMaybe (char '.' >> spaces >> parseExpr) return $ case maybeDatum of                  Nothing -> List list Just datum -> DottedList list datum

Alternative solution. is the spaces from Parsec and  is the spaces from this tutorial.

parseList :: Parser LispVal parseList = do char '(' >> spaces               head <- parseExpr `sepEndBy` spaces1                do char '.' >> spaces1                   tail <- parseExpr                   spaces >> char ')' return $ DottedList head tail <|> (spaces >> char ')' >> (return $ List head))

=Chapter 3=

Exercise 1
Here is one way of adding a few of them.

primitives :: [(String, [LispVal] -> LispVal)] primitives = [("+", numericBinop (+)) , ("-", numericBinop (-)) , ("*", numericBinop (*)) , ("/", numericBinop div) , ("mod", numericBinop mod) , ("quotient", numericBinop quot) , ("remainder", numericBinop rem) , ("symbol?", unaryOp symbolp) , ("string?", unaryOp stringp) , ("number?", unaryOp numberp) , ("bool?", unaryOp boolp) , ("list?", unaryOp listp)]

unaryOp :: (LispVal -> LispVal) -> [LispVal] -> LispVal unaryOp f [v] = f v

symbolp, numberp, stringp, boolp, listp :: LispVal -> LispVal symbolp (Atom _)  = Bool True symbolp _         = Bool False numberp (Number _) = Bool True numberp _         = Bool False stringp (String _) = Bool True stringp _         = Bool False boolp  (Bool _)   = Bool True boolp  _          = Bool False listp  (List _)   = Bool True listp  (DottedList _ _) = Bool False listp  _          = Bool False

Exercise 2
unpackNum :: LispVal -> Integer unpackNum (Number n) = n unpackNum _         = 0

Exercise 3
Add symbol->string and string->symbol to the list of primitives, then:

symbol2string, string2symbol :: LispVal -> LispVal symbol2string (Atom s)  = String s symbol2string _          = String "" string2symbol (String s) = Atom s string2symbol _         = Atom ""

This doesn't deal well with bad input, which is covered later.

=Chapter 5=

Exercise 1
eval env (List [Atom "if", pred, conseq, alt]) = do    result <- eval env pred case result of     Bool False -> eval env alt Bool True -> eval env conseq _         -> throwError $ TypeMismatch "bool" pred

Exercise 2
Define a helper function that takes the equal/eqv function as an argument:

eqvList :: ([LispVal] -> ThrowsError LispVal) -> [LispVal] -> ThrowsError LispVal eqvList eqvFunc [(List arg1), (List arg2)] = return $ Bool $ (length arg1 == length arg2) && (all eqvPair $ zip arg1 arg2) where eqvPair (x1, x2) = case eqvFunc [x1, x2] of                                     Left err -> False Right (Bool val) -> val

Now adjust the eqv clause:

eqv listPair@[List _, List _] = eqvList eqv listPair

And add clauses for List and DottedList to the equal function:

equal :: [LispVal] -> ThrowsError LispVal equal listPair@[List _, List _] = eqvList equal listPair equal [(DottedList xs x), (DottedList ys y)] = equal [List $ xs ++ [x], List $ ys ++ [y]] equal [arg1, arg2] = do     primitiveEquals <- liftM or $ mapM (unpackEquals arg1 arg2) [AnyUnpacker unpackNum, AnyUnpacker unpackStr, AnyUnpacker unpackBool] eqvEquals <- eqv [arg1, arg2] return $ Bool $ (primitiveEquals || let (Bool x) = eqvEquals in x) equal badArgList = throwError $ NumArgs 2 badArgList

cond
Room for improvement here!

eval (List ((Atom "cond"):cs))             = do    b <- (liftM (take 1. dropWhile f) $ mapM condClause cs) >>= cdr car [b] >>= eval where condClause (List [p,b]) = do q <- eval p                                       case q of                                          Bool _ -> return $ List [q,b] _     -> throwError $ TypeMismatch "bool" q            condClause v            = throwError $ TypeMismatch "(pred body)" v            f                       = \(List [p,b]) -> case p of                                                         (Bool False) -> True _           -> False

Another approach:

eval env (List (Atom "cond" : expr : rest)) = do    eval' expr rest where eval' (List [cond, value]) (x : xs) = do              result <- eval env cond case result of                   Bool False -> eval' x xs                    Bool True  -> eval env value otherwise -> throwError $ TypeMismatch "boolean" cond eval' (List [Atom "else", value]) [] = do               eval env value eval' (List [cond, value]) [] = do              result <- eval env cond case result of                   Bool True  -> eval env value otherwise -> throwError $ TypeMismatch "boolean" cond

Yet another approach, piggy-backing off of the already-implemented if:

eval form@(List (Atom "cond" : clauses)) = if null clauses then throwError $ BadSpecialForm "no true clause in cond expression: " form else case head clauses of    List [Atom "else", expr] -> eval expr List [test, expr]       -> eval $ List [Atom "if", test, expr, List (Atom "cond" : tail clauses)] _ -> throwError $ BadSpecialForm "ill-formed cond expression: " form

Yet another approach eval (List ((Atom "cond") : alts)) = cond alts

cond :: [LispVal] -> ThrowsError LispVal cond ((List (Atom "else" : value : [])) : []) = eval value cond ((List (condition : value : [])) : alts) = do     result <- eval condition boolResult :: Bool <- unpackBool result if boolResult then eval value else cond alts cond ((List a) : _) = throwError $ NumArgs 2 a cond (a : _) = throwError $ NumArgs 2 [a] cond _ = throwError $ Default "Not viable alternative in cond"

case
This solution requires LispVal to have a deriving (Eq) clause, in order to use the `elem` function.

eval form@(List (Atom "case" : key : clauses)) = if null clauses then throwError $ BadSpecialForm "no true clause in case expression: " form else case head clauses of    List (Atom "else" : exprs) -> mapM eval exprs >>= return. last List ((List datums) : exprs) -> do      result <- eval key equality <- mapM (\x -> eqv [result, x]) datums if Boolean True `elem` equality then mapM eval exprs >>= return. last else eval $ List (Atom "case" : key : tail clauses) _                    -> throwError $ BadSpecialForm "ill-formed case expression: " form

Exercise 4
Let's add string-length and string-ref:

primitives = [... ("string-length", stringLen),                                    │ ("string-ref", stringRef), ...]

stringLen :: [LispVal] -> ThrowsError LispVal stringLen [(String s)] = Right $ Number $ fromIntegral $ length s   stringLen [notString]  = throwError $ TypeMismatch "string" notString stringLen badArgList  = throwError $ NumArgs 1 badArgList

stringRef :: [LispVal] -> ThrowsError LispVal stringRef [(String s), (Number k)] | length s < k' + 1 = throwError $ Default "Out of bound error" | otherwise        = Right $ String $ [s !! k'] where k' = fromIntegral k   stringRef [(String s), notNum] = throwError $ TypeMismatch "number" notNum stringRef [notString, _]      = throwError $ TypeMismatch "string" notString stringRef badArgList          = throwError $ NumArgs 2 badArgList


text:
Talk:Uzbek

Credit where Credit is due
This book is based of Peace Corps' "Uzbek Language Competencies". A book made by the US Government, and therefore in the Public Domain. Below are a list of the people who worked on this project while it was a Peace Corps Project.

Department of Uralic and Altaic Studies - Indiana University
Professor William Fierman Professor Khayrulla Ismatulla Professor Larry Clark David Tyson

Other People (with Peace Corps)
Ms. Nancy Clair Tony Borge Janet Paz-Castillo Jerry Leach Douglas F. Gilzow

title: Talk:Uzbek


text:
Uzbek/Nominal and Verbal Words

There are two main types of words in Uzbek: nominals and verbals. Nominals are those words wich are equivalent to English nouns and adjectives, or which have a noun-like character; for example, қora, "black" and kўз 'eye'.

In Uzbek, nominals include classes of words that in English are called nouns, pronouns, adjectives, and some adverbs. An Uzbek "noun" may be equivalent to an English adjective or noun:

қора kўзларим My black eyes

Verbals are those words which are equivalent to English verbs and some adverbs; for example, қелмоқ 'to come' (infinitive)and бўлиб ыыас, беінгыы (герёнд).

In addition, there are a small number of particles, conjunctions, and similar words which do not take suffixes; for example учун forand ва and.

The last syllable of an Uzbek word receives the stress. however, certain endings and particles at the end of words are not stressed.

title: Uzbek/Nominal and Verbal Words