text:
Radiation Oncology/Penis

Epidemiology

 * US - 1500 cases annually, <2% of GU cancers
 * Incidence is dramatically higher in the developing world
 * US - 0.2 / 100,000
 * Bombay - 1.8 / 100,000 (10-fold increase)
 * Sao Paolo - 28 / 100,000 (another 15-fold increase)
 * Uganda - most common male malignancy
 * Risk factors
 * Phimosis - narrowed opening of the prepuce resulting in non-retractile foreskin. Odds ratio 10
 * Smegma
 * Circumcision - in Uganda, circumcised tribes 0.5 vs. uncircumcised tribes 2.9 / 100,000
 * HPV - primarily 16, prevalence 30-70%
 * Age - meadian age at diagnosis in US is 60
 * Tobacco
 * Premalignant lesions

HPV16
 * Amsterdam; 2007 PMID 17925550 -- "Human papillomavirus-16 is the predominant type etiologically involved in penile squamous cell carcinoma." (Heideman DA, J Clin Oncol. 2007 Oct 10;25(29):4550-6.)
 * Molecular and serologic analysis of HPV on 83 penile SCC vs. age-matched controls
 * Outcome: HPV DNA in 55% samples - HPV16 75%. HPV18 and HPV6 seropositivity associated, but not by molecular findings
 * Conclusion: HPV16 is the main HPV type associated with penile SCC

Histology

 * Squamous cell (95%)
 * Papillary
 * Basaloid
 * Warty
 * Sarcomatoid
 * Verrucous (up to 25%)
 * Melanoma
 * Lymphoma
 * Basal cell
 * Urethral

Grading
Differentiation grading systems for SCC
 * Broder's grading system
 * I - well differentiated with keratinization, prominent intercellular bridges, and keratin pearls
 * II to III - greater nuclear atypia, increased mitotic activity, and decreased keratin pearls
 * IV - deeply invasive, marked nuclear pleomorphism, nuclear mitoses, necrosis, lymphatic and perineural invasion, and no keratin pearls

 * Maiche’s system score
 * currently seems to be the most suitable staging system

AJCC Current Staging
AJCC 7th Edition (2009) Primary Tumor:
 * Tis - carcinoma in situ
 * Ta - non-invasive verrucous carcinoma
 * T1
 * T1a - invades subepithelial connective tissue without lymphovascular invasion and is not poorly differentiated (i.e. tumor is grade 1-2 of 4)
 * T1b - invades subepithelial connective tissue with lymphovascular invasion or is poorly differentiated (i.e. tumor is grade 3-4 of 4)
 * T2 - invades corpus spongiosum or cavernosum
 * T3 - invades urethra
 * T4 - invades other adjuacent structures (including prostate)

Regional Lymph Nodes: include superficial and deep inguinal, internal and external iliac, pelvic lymph nodes
 * Clinical assessment (based on palpation or imaging):

 * cN0 - none
 * cN1 - palpable mobile unilateral inguinal LN
 * cN2 - palpable mobile multiple or bilateral inguinal LN
 * cN3 - fixed inguinal nodal mass or pelvic lymphadenopathy

 * Regional Lymph Nodes (pathologic assessment):

 * pN0 - none
 * pN1 - metastasis in single inguinal LN
 * pN2 - multiple or bilateral inguinal lymph nodes
 * pN3 - extranodal extension or pelvic lymph node involvement

Distant Metastases:
 * M0 - no
 * M1 - yes

Stage Grouping:
 * 0 - Tis or Ta
 * I - T1a N0
 * II - T1b-T3 N0
 * IIIA - T1-3 N1
 * IIIB - T1-3 N2
 * IV - T4, N3, M1

Changes from 6th Edition:
 * T1 subdivided into T1a and T1b based on LVI and grade
 * Prostate invasion moved from T3 to T4. T3 limited to urethral invasion
 * Added new schemes for clinical vs pathologic lymph node assessment
 * T1b (new subdivision) becomes Stage II and T1a remains Stage I
 * Any LN+ is now at least Stage III. Divided into IIIA and IIIB.

Older staging systems
AJCC 6th Edition (2002) Primary Tumor:
 * Tis - carcinoma in situ
 * Ta - non-invasive verrucous carcinoma
 * T1 - invades subepithelial connective tissue
 * T2 - invades corpus spongiosum or cavernosum
 * T3 - invades urethra or prostate
 * T4 - invades other adjuacent structures

Regional Lymph Nodes:
 * N0 - none
 * N1 - single superficial inguinal lymph node
 * N2 - multiple or bilateral superficial inguinal lymph nodes
 * N3 - deep inguinal or pelvic lymph nodes (unilateral or bilateral)

Distant Metastases:
 * M0 - no
 * M1 - yes

Stage Grouping:
 * I - T1 N0
 * II - T1 N1, T2 N0-1
 * III - T1-2 N2, T3 N0-2
 * IV - T4, N3, M1

Other staging systems
Jackson's Staging

 * Stage I (A) - tumor is confined to glans, prepuce or both
 * Stage II (B) - tumor extends onto shaft of penis; no nodal or distant metastases
 * Stage III (C) - tumor has inguinal nodal metastases that are operable
 * Stage IV (D) - tumor involves adjacent structures and is associated with inoperable inguinal metastasis or distant metastasis

Spread
Lymph Nodes
 * Drainage to superficial inguinal -> deep inguinal -> external iliac
 * At presentation
 * 50% clinically enlarged
 * 50% disease
 * 50% reactive - so should treat first with a course of ABX
 * 50% clinically negative
 * 20% occult disease
 * Decision on who should undergo inguinal dissection one of the hardest in penile CA management. Sentinel LN reasonable option
 * Highly correlates with T-stage and grade (PMID 11342906)
 * T1 11%, T2 63%, T3 63%
 * G1 15%, G2 67%, G3 75%

 * LN+ correlates with 5-year survival:
 * N0 - 80-90%
 * N1 - 70%
 * N2-3 inguinal - 35%
 * N3 pelvic - 20%
 * Overall N+ 40-50%

Mets
 * <10% M+ at presentation

Sentinel Lymph Node

 * Netherlands Cancer Institute; 2009 PMID 19414668 -- "Two-center evaluation of dynamic sentinel node biopsy for squamous cell carcinoma of the penis." (Leijte JA, J Clin Oncol. 2009 Jul 10;27(20):3325-9. Epub 2009 May 4.)
 * Prospective. 323 patients (from 611 cN0 patients).
 * Outcome: Technical success rate 97%. LN+ in 24%. Inguinal recurrences (false-negative SLNB) 7%
 * Toxicity: 5% (mostly seroma/lymphocele and infections)
 * Conclusion: SLNB suitable procedure to stage clinically N0 penile cancer

Treatment Guidelines

 * NCI Guidelines are driven by TNM staging

 * European Association of Urologists guidelines are driven by TNM and by lesion grade

Surgery vs. RT

 * Lausanne, 2006 (Switzerland) PMID 16949770 -- "Treatment of penile carcinoma: To cut or not to cut?" (Ozsahin M, Int J Radiat Oncol Biol Phys. 2006 Nov 1;66(3):674-9.)
 * Retrospective. 60 patients, 5 surgery, 22 surgery + adjuvant RT, 29 primary RT. Mean F/U 62 months
 * 5-year OS: surgery 53% vs. RT 56% (NS). RT failures underwent surgical salvage
 * Local failure: Median time to LR failure 14 months; Surgery (+/- RT) 13% vs. RT 56% (SS)
 * Patients treated with RT: penis preservation 52%. 5-year probability of intact penis 43%
 * Conclusion: Surgery better LR rate, RT better penile preservation, OS same

Brachytherapy

 * Princess Margaret, 2005 (Canada) 1989-2003 PMID 15890588 -- "Penile brachytherapy: results for 49 patients." (Crook JM, Int J Radiat Oncol Biol Phys. 2005 Jun 1;62(2):460-7.)
 * Retrospective. 49 patients. T1 51%, T2 33%. G1 31%, G2 45%. RT treated 23 with PDR BT, 22 Iridium BT, 4 seeds BT to 60 Gy. Medium F/U 2.7 years
 * 5-year OS: 78%, CSS 90%
 * Local failure: 15%, all salvaged by surgery. Regional failure 20%. Distant failure 10%
 * 5-year penile preservation: 86%
 * Side effects: soft tissue necrosis 16%, urethral stenosis 12%

title: Radiation Oncology/Penis


text:
Teaching Assistant in France Survival Guide/Americans Traveling with Children

Inspired by the Wikibook Teaching Assistant in France Survival Guide, this page is geared towards Americans traveling to France with their child(ren) through the CIEP program.

If you would like to learn more about this program, please visit the Embassy of France in the U.S. web site: Teaching Assistant Program in France.

The process is more involved than for assistants traveling alone. We hope this page provides a wealth of information and resources for those of you who wish to include your family on this adventure!

For the purpose of continuity, this information is for bringing one child. Please adjust accordingly for multiple children.

Money
Assistants make approximately 900€ each month - before taxes. This amount is suitable for one person to live on (with the help of French government assistance such as the CAF), however it is not recommended that you count solely on this income to support your dependents while you are there.

It is highly recommended that you have some money saved up before leaving for France. How much? That's an excellent question, to which I don't yet have an answer.

Visa
Before applying for a Visa, your child must have a valid U.S. Passport.

Your child will need a Long Stay Visa. This generally takes 3 months to be processed but varies depending on the consulate and whether or not you apply in person.

The Visa fee for yourself is free, however in 2005 the Long Stay Visa for a child of a teaching assistant was $125. Please inquire as to the fee, as it is subject to change.

You must:
 * provide financial disclosure by showing how you intend on financially supporting your child during your stay (a signed statement from your bank)
 * prove that your child has health insurance for the duration of the visit
 * provide an address of residence for the time of your stay (most assistants will have this so use the address of the school)

Be prepared with as much information as possible if you apply in person. You may be asked for copies of plane tickets.

(more on these points later)

Paperwork
Photocopy, photocopy, and photocopy!!! Bring originals and photocopies of immunizations. The French schools want to see proof of a tuberculosis vaccination but proof of a tuberculosis test will be sufficient. Bring lots of wallet size photos (headshots) of every family member. Inquire about after school or additional child care available at the Mairie or school. Keep documentation about your salary and find out if you qualify for a reduction for school lunch.

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


text:
Control Systems/Introduction

This Wikibook
This book was written at Wikibooks, a free online community where people write open-content textbooks. Any person with internet access is welcome to participate in the creation and improvement of this book. Because this book is continuously evolving, there are no finite "versions" or "editions" of this book. Permanent links to known good versions of the pages may be provided.

What are Control Systems?
The study and design of automatic Control Systems, a field known as control engineering, has become important in modern technical society. From devices as simple as a toaster or a toilet, to complex machines like space shuttles and power steering, control engineering is a part of our everyday life. This book introduces the field of control engineering and explores some of the more advanced topics in the field. Note, however, that control engineering is a very large field and this book serves only as a foundation of control engineering and an introduction to selected advanced topics in the field. Topics in this book are added at the discretion of the authors and represent the available expertise of our contributors.

Control systems are components that are added to other components to increase functionality or meet a set of design criteria. For example:

This simple example can be complex to both users and designers of the motor system. It may seem obvious that the motor should start at a higher voltage so that it accelerates faster. Then we can reduce the supply back down to 10 volts once it reaches ideal speed.

This is clearly a simplistic example but it illustrates an important point: we can add special "Controller units" to preexisting systems to improve performance and meet new system specifications.

Here are some formal definitions of terms used throughout this book:

There are essentially two methods to approach the problem of designing a new control system: the Classical Approach and the Modern Approach.

Classical and Modern
Classical and Modern control methodologies are named in a misleading way, because the group of techniques called "Classical" were actually developed later than the techniques labeled "Modern". However, in terms of developing control systems, Modern methods have been used to great effect more recently, while the Classical methods have been gradually falling out of favor. Most recently, it has been shown that Classical and Modern methods can be combined to highlight their respective strengths and weaknesses.

Classical Methods, which this book will consider first, are methods involving the Laplace Transform domain. Physical systems are modeled in the so-called "time domain", where the response of a given system is a function of the various inputs, the previous system values, and time. As time progresses, the state of the system and its response change. However, time-domain models for systems are frequently modeled using high-order differential equations which can become impossibly difficult for humans to solve and some of which can even become impossible for modern computer systems to solve efficiently. To counteract this problem, integral transforms, such as the Laplace Transform and the Fourier Transform, can be employed to change an Ordinary Differential Equation (ODE) in the time domain into a regular algebraic polynomial in the transform domain. Once a given system has been converted into the transform domain it can be manipulated with greater ease and analyzed quickly by humans and computers alike.

Modern Control Methods, instead of changing domains to avoid the complexities of time-domain ODE mathematics, converts the differential equations into a system of lower-order time domain equations called State Equations, which can then be manipulated using techniques from linear algebra. This book will consider Modern Methods second.

A third distinction that is frequently made in the realm of control systems is to divide analog methods (classical and modern, described above) from digital methods. Digital Control Methods were designed to try and incorporate the emerging power of computer systems into previous control methodologies. A special transform, known as the Z-Transform, was developed that can adequately describe digital systems, but at the same time can be converted (with some effort) into the Laplace domain. Once in the Laplace domain, the digital system can be manipulated and analyzed in a very similar manner to Classical analog systems. For this reason, this book will not make a hard and fast distinction between Analog and Digital systems, and instead will attempt to study both paradigms in parallel.

Who is This Book For?
This book is intended to accompany a course of study in under-graduate and graduate engineering. As has been mentioned previously, this book is not focused on any particular discipline within engineering, however any person who wants to make use of this material should have some basic background in the Laplace transform (if not other transforms), calculus, etc. The material in this book may be used to accompany several semesters of study, depending on the program of your particular college or university. The study of control systems is generally a topic that is reserved for students in their 3rd or 4th year of a 4 year undergraduate program, because it requires so much previous information. Some of the more advanced topics may not be covered until later in a graduate program.

Many colleges and universities only offer one or two classes specifically about control systems at the undergraduate level. Some universities, however, do offer more than that, depending on how the material is broken up, and how much depth that is to be covered. Also, many institutions will offer a handful of graduate-level courses on the subject. This book will attempt to cover the topic of control systems from both a graduate and undergraduate level, with the advanced topics built on the basic topics in a way that is intuitive. As such, students should be able to begin reading this book in any place that seems an appropriate starting point, and should be able to finish reading where further information is no longer needed.

What are the Prerequisites?
Understanding of the material in this book will require a solid mathematical foundation. This book does not currently explain, nor will it ever try to fully explain most of the necessary mathematical tools used in this text. For that reason, the reader is expected to have read the following wikibooks, or have background knowledge comparable to them:

 * Algebra
 * Calculus
 * The reader should have a good understanding of differentiation and integration. Partial differentiation, multiple integration, and functions of multiple variables will be used occasionally, but the students are not necessarily required to know those subjects well. These advanced calculus topics could better be treated as a co-requisite instead of a pre-requisite.

 * Linear Algebra
 * State-space system representation draws heavily on linear algebra techniques. Students should know how to operate on matrices. Students should understand basic matrix operations (addition, multiplication, determinant, inverse, transpose). Students would also benefit from a prior understanding of Eigenvalues and Eigenvectors, but those subjects are covered in this text.

 * Ordinary Differential Equations
 * All linear systems can be described by a linear ordinary differential equation. It is beneficial, therefore, for students to understand these equations. Much of this book describes methods to analyze these equations. Students should know what a differential equation is, and they should also know how to find the general solutions of first and second order ODEs.

 * Engineering Analysis
 * This book reinforces many of the advanced mathematical concepts used in the Engineering Analysis book, and we will refer to the relevant sections in the aforementioned text for further information on some subjects. This is essentially a math book, but with a focus on various engineering applications. It relies on a previous knowledge of the other math books in this list.

 * Signals and Systems
 * The Signals and Systems book will provide a basis in the field of systems theory, of which control systems is a subset. Readers who have not read the Signals and Systems book will be at a severe disadvantage when reading this book.

How is this Book Organized?
This book will be organized following a particular progression. First this book will discuss the basics of system theory, and it will offer a brief refresher on integral transforms. Section 2 will contain a brief primer on digital information, for students who are not necessarily familiar with them. This is done so that digital and analog signals can be considered in parallel throughout the rest of the book. Next, this book will introduce the state-space method of system description and control. After section 3, topics in the book will use state-space and transform methods interchangeably (and occasionally simultaneously). It is important, therefore, that these three chapters be well read and understood before venturing into the later parts of the book.

After the "basic" sections of the book, we will delve into specific methods of analyzing and designing control systems. First we will discuss Laplace-domain stability analysis techniques (Routh-Hurwitz, root-locus), and then frequency methods (Nyquist Criteria, Bode Plots). After the classical methods are discussed, this book will then discuss Modern methods of stability analysis. Finally, a number of advanced topics will be touched upon, depending on the knowledge level of the various contributors.

As the subject matter of this book expands, so too will the prerequisites. For instance, when this book is expanded to cover nonlinear systems, a basic background knowledge of nonlinear mathematics will be required.

Versions
This wikibook has been expanded to include multiple versions of its text, differentiated by the material covered, and the order in which the material is presented. Each different version is composed of the chapters of this book, included in a different order. This book covers a wide range of information, so if you don't need all the information that this book has to offer, perhaps one of the other versions would be right for you and your educational needs.

Each separate version has a table of contents outlining the different chapters that are included in that version. Also, each separate version comes complete with a printable version, and some even come with PDF versions as well.

Take a look at the All Versions Listing Page to find the version of the book that is right for you and your needs.

Differential Equations Review
Implicit in the study of control systems is the underlying use of differential equations. Even if they aren't visible on the surface, all of the continuous-time systems that we will be looking at are described in the time domain by ordinary differential equations (ODE), some of which are relatively high-order.

Differential equations are particularly difficult to manipulate, especially once we get to higher-orders of equations. Luckily, several methods of abstraction have been created that allow us to work with ODEs, but at the same time, not have to worry about the complexities of them. The classical method, as described above, uses the Laplace, Fourier, and Z Transforms to convert ODEs in the time domain into polynomials in a complex domain. These complex polynomials are significantly easier to solve than the ODE counterparts. The Modern method instead breaks differential equations into systems of low-order equations, and expresses this system in terms of matrices. It is a common precept in ODE theory that an ODE of order N can be broken down into N equations of order 1.

Readers who are unfamiliar with differential equations might be able to read and understand the material in this book reasonably well. However, all readers are encouraged to read the related sections in Calculus.

History
The field of control systems started essentially in the ancient world. Early civilizations, notably the Greeks and the Arabs were heavily preoccupied with the accurate measurement of time, the result of which were several "water clocks" that were designed and implemented.

However, there was very little in the way of actual progress made in the field of engineering until the beginning of the renaissance in Europe. Leonhard Euler (for whom Euler's Formula is named) discovered a powerful integral transform, but Pierre-Simon Laplace used the transform (later called the Laplace Transform) to solve complex problems in probability theory.

Joseph Fourier was a court mathematician in France under Napoleon I. He created a special function decomposition called the Fourier Series, that was later generalized into an integral transform, and named in his honor (the Fourier Transform).

The "golden age" of control engineering occurred between 1910-1945, where mass communication methods were being created and two world wars were being fought. During this period, some of the most famous names in controls engineering were doing their work: Nyquist and Bode.

Hendrik Wade Bode and Harry Nyquist, especially in the 1930's while working with Bell Laboratories, created the bulk of what we now call "Classical Control Methods". These methods were based off the results of the Laplace and Fourier Transforms, which had been previously known, but were made popular by Oliver Heaviside around the turn of the century. Previous to Heaviside, the transforms were not widely used, nor respected mathematical tools.

Bode is credited with the "discovery" of the closed-loop feedback system, and the logarithmic plotting technique that still bears his name (bode plots). Harry Nyquist did extensive research in the field of system stability and information theory. He created a powerful stability criteria that has been named for him (The Nyquist Criteria).

Modern control methods were introduced in the early 1950's, as a way to bypass some of the shortcomings of the classical methods. Rudolf Kalman is famous for his work in modern control theory, and an adaptive controller called the Kalman Filter was named in his honor. Modern control methods became increasingly popular after 1957 with the invention of the computer, and the start of the space program. Computers created the need for digital control methodologies, and the space program required the creation of some "advanced" control techniques, such as "optimal control", "robust control", and "nonlinear control". These last subjects, and several more, are still active areas of study among research engineers.

Branches of Control Engineering
Here we are going to give a brief listing of the various different methodologies within the sphere of control engineering. Oftentimes, the lines between these methodologies are blurred, or even erased completely.

 * Classical Controls:Control methodologies where the ODEs that describe a system are transformed using the Laplace, Fourier, or Z Transforms, and manipulated in the transform domain.
 * Modern Controls:Methods where high-order differential equations are broken into a system of first-order equations. The input, output, and internal states of the system are described by vectors called "state variables".
 * Robust Control:Control methodologies where arbitrary outside noise/disturbances are accounted for, as well as internal inaccuracies caused by the heat of the system itself, and the environment.
 * Optimal Control:In a system, performance metrics are identified, and arranged into a "cost function". The cost function is minimized to create an operational system with the lowest cost.
 * Adaptive Control:In adaptive control, the control changes its response characteristics over time to better control the system.
 * Nonlinear Control:The youngest branch of control engineering, nonlinear control encompasses systems that cannot be described by linear equations or ODEs, and for which there is often very little supporting theory available.
 * Game Theory:Game Theory is a close relative of control theory, and especially robust control and optimal control theories. In game theory, the external disturbances are not considered to be random noise processes, but instead are considered to be "opponents". Each player has a cost function that they attempt to minimize, and that their opponents attempt to maximize.

This book will definitely cover the first two branches, and will hopefully be expanded to cover some of the later branches, if time allows.

MATLAB
MATLAB ® is a programming tool that is commonly used in the field of control engineering. We will discuss MATLAB in specific sections of this book devoted to that purpose. MATLAB will not appear in discussions outside these specific sections, although MATLAB may be used in some example problems. An overview of the use of MATLAB in control engineering can be found in the appendix at: Control Systems/MATLAB.

For more information on MATLAB in general, see: MATLAB Programming.

Nearly all textbooks on the subject of control systems, linear systems, and system analysis will use MATLAB as an integral part of the text. Students who are learning this subject at an accredited university will certainly have seen this material in their textbooks, and are likely to have had MATLAB work as part of their classes. It is from this perspective that the MATLAB appendix is written.

In the future, this book may be expanded to include information on Simulink ®, as well as MATLAB.

There are a number of other software tools that are useful in the analysis and design of control systems. Additional information can be added in the appendix of this book, depending on the experience and prior knowledge of contributors.

About Formatting
This book will use some simple conventions throughout.

Mathematical Conventions
Mathematical equations will be labeled with the eqn template, to give them names. Equations that are labeled in such a manner are important, and should be taken special note of. For instance, notice the label to the right of this equation:

 * $$f(t)

= \mathcal{L}^{-1} \left\{F(s)\right\} = {1 \over {2\pi i}}\int_{c-i\infty}^{c+i\infty} e^{st} F(s)\,ds$$

Equations that are named in this manner will also be copied into the List of Equations Glossary in the end of the book, for an easy reference.

Italics will be used for English variables, functions, and equations that appear in the main text. For example e, j, f(t) and X(s) are all italicized. Wikibooks contains a LaTeX mathematics formatting engine, although an attempt will be made not to employ formatted mathematical equations inline with other text because of the difference in size and font. Greek letters, and other non-English characters will not be italicized in the text unless they appear in the midst of multiple variables which are italicized (as a convenience to the editor).

Scalar time-domain functions and variables will be denoted with lower-case letters, along with a t in parenthesis, such as: x(t), y(t), and h(t). Discrete-time functions will be written in a similar manner, except with an [n] instead of a (t).

Fourier, Laplace, Z, and Star transformed functions will be denoted with capital letters followed by the appropriate variable in parenthesis. For example: F(s), X(jω), Y(z), and F*(s).

Matrices will be denoted with capital letters. Matrices which are functions of time will be denoted with a capital letter followed by a t in parenthesis. For example: A(t) is a matrix, a(t) is a scalar function of time.

Transforms of time-variant matrices will be displayed in uppercase bold letters, such as H(s).

Math equations rendered using LaTeX will appear on separate lines, and will be indented from the rest of the text.

title: Control Systems/Introduction


text:
Control Systems/System Identification

Systems
Systems, in one sense, are devices that take input and produce an output. A system can be thought to operate on the input to produce the output. The output is related to the input by a certain relationship known as the system response. The system response usually can be modeled with a mathematical relationship between the system input and the system output.

System Properties
Physical systems can be divided up into a number of different categories, depending on particular properties that the system exhibits. Some of these system classifications are very easy to work with and have a large theory base for analysis. Some system classifications are very complex and have still not been investigated with any degree of success. By properly identifying the properties of a system, certain analysis and design tools can be selected for use with the system.

The early sections of this book will focus primarily on linear time-invariant (LTI) systems. LTI systems are the easiest class of system to work with, and have a number of properties that make them ideal to study. This chapter discusses some properties of systems.

Later chapters in this book will look at time variant systems and nonlinear systems. Both time variant and nonlinear systems are very complex areas of current research, and both can be difficult to analyze properly. Unfortunately, most physical real-world systems are time-variant, nonlinear, or both.

An introduction to system identification and least squares techniques can be found here. An introduction to parameter identification techniques can be found here.

Initial Time
The initial time of a system is the time before which there is no input. Typically, the initial time of a system is defined to be zero, which will simplify the analysis significantly. Some techniques, such as the Laplace Transform require that the initial time of the system be zero. The initial time of a system is typically denoted by t0.

The value of any variable at the initial time t0 will be denoted with a 0 subscript. For instance, the value of variable x at time t0 is given by:

 * $$x(t_0) = x_0$$

Likewise, any time t with a positive subscript are points in time after t0, in ascending order:

 * $$t_0 \le t_1 \le t_2 \le \cdots \le t_n$$

So t1 occurs after t0, and t2 occurs after both points. In a similar fashion above, a variable with a positive subscript (unless specifying an index into a vector) also occurs at that point in time:

 * $$x(t_1) = x_1$$
 * $$x(t_2) = x_2$$

This is valid for all points in time t.

Additivity
A system satisfies the property of additivity if a sum of inputs results in a sum of outputs. By definition: an input of $$x_3(t) = x_1(t) + x_2(t)$$ results in an output of $$y_3(t) = y_1(t) + y_2(t)$$. To determine whether a system is additive, use the following test:

Given a system f that takes an input x and outputs a value y, assume two inputs (x1 and x2) produce two outputs:
 * $$y_1 = f(x_1)$$
 * $$y_2 = f(x_2)$$

Now, create a composite input that is the sum of the previous inputs:
 * $$x_3 = x_1 + x_2$$

Then the system is additive if the following equation is true:

 * $$y_3 = f(x_3) = f(x_1 + x_2) = f(x_1) + f(x_2) = y_1 + y_2$$

Systems that satisfy this property are called additive. Additive systems are useful because a sum of simple inputs can be used to analyze the system response to a more complex input.

Homogeneity
A system satisfies the condition of homogeneity if an input scaled by a certain factor produces an output scaled by that same factor. By definition: an input of $$ax_1$$ results in an output of $$ay_1$$. In other words, to see if function f is homogeneous, perform the following test:

Stimulate the system f with an arbitrary input x to produce an output y:
 * $$y = f(x)$$

Now, create a second input x1, scale it by a multiplicative factor C (C is an arbitrary constant value), and produce a corresponding output y1:

 * $$y_1 = f(Cx_1)$$

Now, assign x to be equal to x1:
 * $$x_1 = x$$

Then, for the system to be homogeneous, the following equation must be true:
 * $$y_1 = f(Cx) = Cf(x) = Cy$$

Systems that are homogeneous are useful in many applications, especially applications with gain or amplification.

Linearity
A system is considered linear if it satisfies the conditions of Additivity and Homogeneity. In short, a system is linear if the following is true:

Take two arbitrary inputs, and produce two arbitrary outputs:
 * $$y_1 = f(x_1)$$
 * $$y_2 = f(x_2)$$

Now, a linear combination of the inputs should produce a linear combination of the outputs:
 * $$f(Ax_1 + Bx_2) = f(Ax_1) + f(Bx_2) = Af(x_1) + Bf(x_2) = Ay_1 + By_2$$

This condition of additivity and homogeneity is called superposition. A system is linear if it satisfies the condition of superposition.

Memory
A system is said to have memory if the output from the system is dependent on past inputs (or future inputs!) to the system. A system is called memoryless if the output is only dependent on the current input. Memoryless systems are easier to work with, but systems with memory are more common in digital signal processing applications.

Systems that have memory are called dynamic systems, and systems that do not have memory are static systems.

Causality
Causality is a property that is very similar to memory. A system is called causal if it is only dependent on past and/or current inputs. A system is called anti-causal if the output of the system is dependent only on future inputs. A system is called non-causal if the output depends on past and/or current and future inputs.

Time-Invariance
A system is called time-invariant if the system relationship between the input and output signals is not dependent on the passage of time. If the input signal $$x(t)$$ produces an output $$y(t)$$ then any time shifted input, $$x(t + \delta)$$, results in a time-shifted output $$y(t + \delta)$$ This property can be satisfied if the transfer function of the system is not a function of time except expressed by the input and output. If a system is time-invariant then the system block is commutative with an arbitrary delay. This facet of time-invariant systems will be discussed later.

To determine if a system f is time-invariant, perform the following test:

Apply an arbitrary input x to a system and produce an arbitrary output y:
 * $$y(t) = f(x(t))$$

Apply a second input x1 to the system, and produce a second output:
 * $$y_1(t) = f(x_1(t))$$

Now, assign x1 to be equal to the first input x, time-shifted by a given constant value δ:
 * $$x_1(t) = x(t - \delta)$$

Finally, a system is time-invariant if y1 is equal to y shifted by the same value δ:
 * $$y_1(t) = y(t - \delta)$$

LTI Systems
A system is considered to be a Linear Time-Invariant (LTI) system if it satisfies the requirements of time-invariance and linearity. LTI systems are one of the most important types of systems, and they will be considered almost exclusively in the beginning chapters of this book.

Systems which are not LTI are more common in practice, but are much more difficult to analyze.

Lumpedness
A system is said to be lumped if one of the two following conditions are satisfied:
 * 1) There are a finite number of states that the system can be in.
 * 2) There are a finite number of state variables.

The concept of "states" and "state variables" are relatively advanced, and they will be discussed in more detail in the discussion about modern controls.

Systems which are not lumped are called distributed. A simple example of a distributed system is a system with delay, that is, $$A(s)y(t)=B(s)u(t-\tau)$$, which has an infinite number of state variables (Here we use $$s$$ to denote the Laplace variable). However, although distributed systems are quite common, they are very difficult to analyze in practice, and there are few tools available to work with such systems. Fortunately, in most cases, a delay can be sufficiently modeled with the Pade approximation. This book will not discuss distributed systems much.

Relaxed
A system is said to be relaxed if the system is causal and at the initial time t 0 the output of the system is zero, i.e., there is no stored energy in the system. The output is excited solely and uniquely by input applied thereafter.

 * $$y(t_0) = f(x(t_0)) = 0$$

In terms of differential equations, a relaxed system is said to have "zero initial states". Systems without an initial state are easier to work with, but systems that are not relaxed can frequently be modified to approximate relaxed systems.

Stability
Stability is a very important concept in systems, but it is also one of the hardest function properties to prove. There are several different criteria for system stability, but the most common requirement is that the system must produce a finite output when subjected to a finite input. For instance, if 5 volts is applied to the input terminals of a given circuit, it would be best if the circuit output didn't approach infinity, and the circuit itself didn't melt or explode. This type of stability is often known as "Bounded Input, Bounded Output" stability, or BIBO.

There are a number of other types of stability, most of which are based on the concept of BIBO stability. Because stability is such an important and complicated topic, an entire section of this text is devoted to its study.

Inputs and Outputs
Systems can also be categorized by the number of inputs and the number of outputs the system has. Consider a television as a system, for instance. The system has two inputs: the power wire and the signal cable. It has one output: the video display. A system with one input and one output is called single-input, single output, or SISO. a system with multiple inputs and multiple outputs is called multi-input, multi-output, or MIMO.

These systems will be discussed in more detail later.

title: Control Systems/System Identification


text:
Radiation Oncology/Urethra

Urethra - includes urothelial (transitional cell) carcinoma of the prostate

Epidemiology

 * Male urethral CA occurs in 40's
 * Female urethral CA occurs in pts >50.
 * F>M 4:1

Anatomy
Male Urethra
 * Runs from bladder neck to glans penis.
 * Anterior Urethra includes glandular, penile, and bulbous urethra.
 * Posterior Urethra includes membranous and prostatic urethra.

Female Urethra
 * Mostly buried in anterior wall of vagina.
 * Proximal Urethra includes proximal 2/3 of urethra.
 * Distal Urethra includes distal 1/3 of urethra.

Nodal drainage
 * Anterior urethra drains to superficial and deep inguinal nodes.
 * Posterior urethra drains to pelvic nodes (ext iliac, hypogastric, obturator).

Sites of disease
 * Most common site of disease in males is bulbomembranous urethra.
 * Most common site of disease in females is near meatus.

AJCC Staging (7th edition, 2009)
T-stage (Male and Female)
 * Ta - non-invasive papillary, polypoid, or verrucous carcinoma
 * Tis - carcinoma in situ
 * T1 - invades subepithelial connective tissue
 * T2 - invades any of the following: corpus spongiosum, prostate, periurethral muscle
 * T3 - invades any of the following: corpus cavernosum, beyond prostatic capsule, anterior vagina, bladder neck
 * T4 - invades other adjacent organs

T-stage - Urothelial (transitional cell) carcinoma of the prostate:
 * Tis (pu) - in situ, involvement of the prostatic urethra
 * Tis (Pd) - in situ, involvement of the prostatic ducts
 * T1 - invades subepithelial connective tissue
 * T2 - invades any of the following: prostatic stroma, corpus spongiosum, periurethral muscle
 * T3 - invades any of the following: corpus cavernosum, beyond prostatic capsule, bladder neck (extraprostatic extension)
 * T4 - invades other adjacent organs (invasion of the bladder)

N-stage:
 * N0 - none
 * N1 - single lymph node 2 cm or less
 * N2 - single lymph node > 2 cm, or multiple nodes

M-stage:
 * M0 - no
 * M1 - yes

Overall stage:
 * I - T1 N0
 * II - T2 N0
 * III - T3 or N1
 * IV - T4 or N2 or M1

Prempree Staging
for carcinoma of female urethra
 * Prempree Stage I - distal 1/2 urethra
 * Prempree Stage II - entire urethra, peri-urethral tissues; no vulvar or bladder neck involvement
 * Prempree Stage IIIA - urethra + vulva
 * Prempree Stage IIIB - vaginal mucosa
 * Prempree Stage IIIC - urethra + bladder neck
 * Prempree Stage IVA - parametrium or paracolpium
 * Prempree Stage IVB - +nodes or distant mets

Treatment of Female Urethral Cancer

 * Small lesions (<4cm) can be treated w/ brachytherapy alone.
 * Larger lesions are treated with combination of external beam radiation and brachytherapy.

Definitive Radiation

 * Mallinckrodt (1959-95) PMID 9635699 -- Grigsby PW. "Carcinoma of the urethra in women," Int J Radiat Oncol Biol Phys. 1998 Jun 1;41(3):535-41.
 * 44 women w/ carcinoma of the urethra. T1-T4.  Median FU time 8.25 yrs.  Tx w/ surgery in 7, xrt in 25, surg + xrt in 12.
 * 5yr OS 42%, 5yr CSS 40%
 * Tumor size (>4cm) and histology (adenoCA) were poor prognostic factors on multi-variate analysis. Tumor location not prognostic.

 * Princess Margaret (1961-90) PMID 10869752 -- Milosevic MF. "Urethral carcinoma in women: results of treatment with primary radiotherapy,"  Radiother Oncol. 2000 Jul;56(1):29-35.
 * 34 women w/ primary urethral CA (stage I-IV) tx'd w/ xrt; xrt fields included to tumor only, to tumor + nodes, and w/ interstitial brachytherapy.
 * 7yr OS 41%, 7yr CSS 45%
 * Benefit of brachytherapy seen most in pts w/ bulky tumor. Large tumor size only independent predictor of dz recurrence.

 * M.D. Anderson (1955-89) PMID 8490839 -- Garden AS. "Primary carcinoma of the female urethra. Results of radiation therapy."   Cancer. 1993 May 15;71(10):3102-8.
 * 97 pts w/ primary urethral CA tx'd w/ xrt
 * 5yr OS 41%, 10yr OS 31%, 64% local control at 5 yrs w/ xrt alone.
 * 49% of those whose dz was controlled locally had symptomatic complications (urethral stenosis, fistula, necrosis)

Treatment of Male Urethral Cancer

 * Standard treatment option for T1-T3 disease remains surgical (amputation or partial amputation).
 * Distal lesions have been treated curatively with definitive xrt w/ doses >70 Gy.

Surgery

 * MSKCC (1958-96) PMID 10367840 -- Dalbagni G et al. "Male urethral carcinoma: analysis of treatment outcome."  Urology. 1999 Jun;53(6):1126-32.
 * 46 pts w/ primary CA of bulbar/anterior urethra. 78% w/ locally advanced dz.  External beam xrt used as part of salvage for locally recurrent.
 * 5 yr OS 42%
 * M.D. Anderson (1979-90) PMID 8154072 -- Dinney CP et al. "Therapy and prognosis for male anterior urethral carcinoma: an update."  Urology. 1994 Apr;43(4):506-14.
 * 23 pts tx'd w/ primary urethral CA
 * Tumors of fossa navicularis and penile urethra could be tx'd w/ distal urethrectomy/partial penectomy.
 * Tumors of bulbomembranous urethra best tx'd w/ en bloc excision of penis, scrotum, prostate, bladder.
 * St. George's Hospital, UK PMID 17488307 -- Smith Y et al. "Penile-preserving surgery for male distal urethral carcinoma."  BJU Int. 2007 May 4
 * 18 consecutive pts w/ distal urethral CA tx'd w/ penile-preserving surgery; median FU 26 mo's
 * No local recurrences, but 4 w/ regional nodal dz progressed.

Chemoradiation

 * Lahey Clinic PMID 8944514 -- Oberfield RA et al. "Management of invasive squamous cell carcinoma of the bulbomembranous male urethra with co-ordinated chemo-radiotherapy and genital preservation."  Br J Urol. 1996 Oct;78(4):573-8.
 * Suprapubic urinary diversion followed by 45 Gy in 25 fx to penis, perineum, regional lymphatics w/ concurrent Mitomycin C and 5FU.
 * UPDATE at AUA 2005 (Medscape Review):
 * 14 pts tx'd from 1991-2004. T2-4 dz in distal or bulbomembranous urethra.
 * 12/14 locally controlled. 1 pt died of metastatic dz.  Urethral stricture common, often requiring urethral reconstruction.

title: Radiation Oncology/Urethra


text:
Radiation Oncology/Ureter

Renal Pelvis and Ureter

Prognostic factors
most important prognostic factors are stage at presentation and histological grade location of tumor in locally advanced disease may be of prognostic significance
 * 5 year OS
 * stage I and II >60%
 * stage III ~33%
 * stage IV <15%
 * long-term prognosis adversely related to
 * number lesions multifocal disease
 * DNA pattern (e.e heteroploid)
 * hypermethylation of promoter region

Staging
AJCC 7th Edition (2009) Primary Tumor:
 * Ta - papillary non-invasive carcinoma
 * Tis - carcinoma in situ
 * T1 - invades subepithelial connective tissue
 * T2 - invades muscularis
 * T3 (Renal pelvis) - invades into peripelvic fat or renal parenchyma
 * T3 (Ureter) - invades into periureteric fat
 * T4 - invades adjacent organs or through the kidney into perinephric fat

Regional Lymph Nodes:
 * Regional lymph nodes (for renal pelvis) - renal hilum, paracaval, aortic, retroperitoneal
 * Regional lymph nodes (for ureter) - renal hilum, iliac, paracaval, periureteral, pelvic

 * N1 - single lymph node, 2 cm or less in greatest dimension
 * N2 - single lymph node, 2-5 cm; or multiple lymph nodes, none > 5 cm
 * N3 - node > 5 cm

Distant Metastases:
 * M0 - no
 * M1 - yes

Stage Grouping:
 * I - T1 N0
 * II - T2 N0
 * III - T3 N0
 * IV - T4, N+, M1

AJCC 6th Edition No changes compared to 7th edition

General Principles of treatment

 * surgery only curative treatment and should be considered
 * Adjuvant XRT used with locally advanced (stage III or above) or grade 3-4 TCC
 * Adjuvant chemo effect unknown. Because of high risk of distant mets, may be considered after complete resection
 * If unresectable (or medically inoperable), treat with definitive chemoXRT.

Surgery

 * use nephron-sparing surgery or partial ureterectomy for single site, stage I and low grade lesions <1.5 cm
 * standard technique is nephroureterectomy with removal of the bladder cuff

Radiation

 * adjuvant XRT shown to improve locoregional control and disease-free survival but effect on OS not consistently demonstrated (small retrospective series, Cozad 1995) (NO prospective randomized trials)

Studies:
 * U.Kansas 1992 PMID 1429099 -- "Adjuvant radiotherapy in high stage transitional cell carcinoma of the renal pelvis and ureter." (Cozad SC, Int J Radiat Oncol Biol Phys. 1992;24(4):743-5.)
 * Retrospective. 26 pts w/ TCC of renal pelvis or ureter, Stage III-IV (M0), treated w/ curative attempt surgery. Adjuvant RT given to 9 pts, median 50 Gy. Treatment volume was the tumor bed only in 6 pts
 * Median f/u 13 mo. LR in 10 pts; 9 of 17 (no RT group), 1 of 9 (RT group). 5-yr LC 34% (no RT) vs 88% (RT). On multivariate analysis, only RT was significant for influencing LR. Metastasis: DM in 14 pts (12 as a component of first failure); 10 of 17 (no RT), 4 of 9 (RT). Survival: 20 of 26 have died; 5-yr OS 24% (no RT), 44% (RT). RT did not have a significant effect on survival.
 * Conclusion: RT decreases the rate of local failure. Advocate adjuvant RT for pts with high stage or high grade tumors or those with close or positive margins. Ideally, this should be combined with systemic therapy.

Chemo

 * platinum-based given concurrently with XRT for localled advanced (T3-T4, N+) TCC upper urinary tract
 * in adjuvant setting reduces risk of distant mets upper urinary tract (bamias 2004, kwak 2006)
 * adjuvant chemoXRT more effective than adjuvant XRT alone based on retrospective study from mass gen for T3,T4,N+ (Czito, et al, 2004)

Studies:
 * Mass General, 2004 (1970-1997) PMID 15371822 -- "Adjuvant radiotherapy with and without concurrent chemotherapy for locally advanced transitional cell carcinoma of the renal pelvis and ureter." (Czito B, J Urol. 2004 Oct;172(4 Pt 1):1271-5.)
 * Retrospective. 31 pts (renal pelvis-13, ureter-15, both-3) treated with RT following curative resection. Most (28 of 31) had T3/4 or N+ disease. Median RT dose 46.9 Gy. 9 pts treated with chemotherapy (MTX,cisplatin,vinblastine x 2-4 cycles, followed by concurrent cisplatin with RT).
 * Median f/u 2.6 yrs. MS 2.4 yrs. 52% with relapse; 29% with DM alone; 23% had LRF (with DM developing in all but 1 pt). 5-yr OS 39%, DSS 52%, LRC 62%, metastasis-free survival 48%. On univariate analysis, concurrent chemotherapy improved OS (27% vs 67%) and DSS (41% vs 76%).
 * Conclusion: suggests that the addition of concurrent chemotherapy to radiotherapy improves outcomes for resected locally advanced disease

title: Radiation Oncology/Ureter


text:
Bartending/Cocktails/Gin and Ginger

A Gin and Ginger is a cocktail created in the following way:

Approximately 1.5 ounces (37.5 milliliters) of gin is poured over ice in a chilled Highball glass - this is then topped with Ginger Ale.

Gin and Ginger

title: Bartending/Cocktails/Gin and Ginger


text:
Hebrew/Language

Talking about talking...

Prerequisite lesson: Lesson 1 - Pronouns, Introductions, Question words

Nouns
-- book say-fer
 * מִלָה : word mee-la
 * הַמִלָה : the word ha meela (the prefix "ha" ( הַ ) is "the")
 * אוֹת : letter ot
 * שָׂפָה : language safah
 * שִׁיעוּר : lesson shiur

proper nouns: -- Hebrew iv-reet
 * אַנְגְלִית : English
 * עִבְרִית : Hebrew

Phrases
phrases: ?"X" מַה זֶה What does X mean? ?"X" אֵיךִּ אוֹמְרִים How do you say "X"? לא lo means no or not

Verbs
verbs: say/speak, understand, mean, read, write translate or translation
 * ּכוׄתְבִים : write
 * מְבִינָה : understand (feminine)
 * אוֹמְרִים : say (masculine, pl.)

Sentences and Translations

 * אני לא מבין :I don’t understand. (masculine form) Ani lo mevin.
 * אני לא מבינה :I don’t understand. (feminine form) Ani lo mevina.
 * ?אתה מדבר אנגלית :Do you speak English? (masculine form) Atah medaber anglit?
 * ?את מדברת אנגלית :Do you speak English? (feminine form) At medaberet anglit?
 * ?אתה מדבר עברית :Do you speak Hebrew? (masculine form) Atah medaber ivrit?
 * ?את מדברת עברית :Do you speak Hebrew? (feminine form) At medaberet ivrit?
 * אני מבינה :I understand. (feminine form) Ani mevina.
 * אני מדבר עברית :I (masculine) speak Hebrew. (masculine form) Ani medaber ivrit.

Hebrew to English Translations
What do the following words mean?
 * עִבְרִית
 * אֳנִי (review from Lesson 1)
 * כֵּן (review from Lesson 1)
 * מְבִינָה

English to Hebrew Translations
How would you say the following in Hebrew?
 * Hebrew
 * speak (singular, feminine)
 * understand (singular, masculine)
 * no
 * word
 * he (review from Lesson 1)

Without Diacritic and Vowel Marks
Since Hebrew usually does not have the diacritic and vowel marks, practice reading the following without the marks. (The first time through the translation is given as a hint.) Try to read each word aloud. עברית (Hebrew) את (you, feminine) לא (no) מבין (understand, masculine) מדברת (speak, feminine) אני (I) מדבר (speak, masculine) אתה (you, masculine) אנגלית (English) כן (yes) מבינה (understand, feminine)

Now without the translation hints... how do you pronounce the word or phrase and what does it mean? מדברת את אני לא מדברת אנגלית לא מדבר אתה אנגלית מבין אני עברית כן מבינה

Answers

title: Hebrew/Language


text:
Orthopaedic Surgery/Office Schedule

Time management is the essence of a effectively managed office schedule. Measuring of the time required for various processes is the first step. A typical office scheduling program will designate a proscibed interval for a new patient visit and for a return visit. One trap this practice creates is that a new patient may have a problem which can be dispatched in short order and an established patient may have a litany of complaints or may be coming in at a time when a discussion at length is required as an important decision point has been reached in their treatment course. As a result the schedule which alots time according to new or established may bear little correlation to the time expended.

title: Orthopaedic Surgery/Office Schedule


text:
Cookbook:Pasta Casserole (Pastitsio)

This recipe for pastitsio has been improved on over the generations. The reason why this is cooked on the stove top & only browned in the oven is that in Greek villages there was a shared village oven. So dishes like these were popular as they could be browned after the bread had been baked.

Meat sauce

 * 2 tablespoons olive oil
 * 2 medium onions, chopped
 * 750 g minced meat
 * 400–450 g canned chopped tomatoes
 * ⅓ cup tomato paste
 * ½ cup water
 * ¼ cup dry white wine
 * 1 tablespoon beef stock powder
 * ½ teaspoon cinnamon powder
 * 1 egg, beaten lightly

Greek-style bechamel sauce

 * 100 g butter
 * ½ cup plain flour
 * 3½ cups milk
 * 1 cup grated fresh Parmesan cheese
 * 2 egg yolks

Pasta mix

 * 250 g macaroni pasta (or Greek pastitsio noodles)
 * 2 eggs, beaten lightly
 * ¾ cup grated fresh Parmesan or Feta cheese

Assembly

 * 2 tablespoons stale breadcrumbs

Equipment

 * 2.5-litre (10-cup) baking dish (metal, glass or ceramic are fine)
 * 2 large saucepans for meat sauce and pasta
 * 1 medium-to-large saucepan for Bechamel sauce

Meat sauce

 * 1) Heat olive oil in pan. Add the chopped onions and sauté until translucent.
 * 2) Add the minced meat, and cook until well browned.
 * 3) Add the chopped canned tomatoes, liquid and all.
 * 4) Add the tomato paste, water, wine, beef stock powder, and cinnamon powder. Simmer uncovered until it becomes thick in consistency.
 * 5) Once thick transfer into a mixing bowl to cool.
 * 6) Once cool, stir in egg.

Greek-style Bechamel sauce

 * 1) Melt the butter in pan.
 * 2) Add the flour, and stir well over heat until bubbling.
 * 3) Remove pan from heat, and gradually add the milk. The mixture will become thick and will then thin again.
 * 4) Return pan to heat, and cook until sauce bubbles then thickens.
 * 5) Stir in Parmesan cheese until melted and smooth.
 * 6) Transfer to mixing bowl and cool slightly.
 * 7) Mix in the egg yolks.

Pasta mix

 * 1) Boil the pasta as per directions on packet until tender.
 * 2) Drain pasta, and transfer to mixing bowl.
 * 3) Mix the hot pasta with the Parmesan cheese and eggs.

Assembly

 * 1) Grease baking dish.
 * 2) Press pasta mix into base of pan.
 * 3) Top pasta mix with the meat sauce.
 * 4) Pour the Bechamel sauce over the meat sauce, then smooth the top.
 * 5) Sprinkle the breadcrumbs over the top.
 * 6) In a preheated oven, bake at 180°C (350°F) for 1 hour until golden brown.
 * 7) Let rest for at least 10 minutes before serving.

Notes, tips, and variations

 * To avoid a large clean up at the end, just reuse the same saucepan.
 * Leftovers freeze well, so it is a great freezer cooking dish.
 * It is a good idea to start your meat sauce first as this needs to cool before you can begin construction.

title: Cookbook:Pasta Casserole (Pastitsio)


text:
Radiation Oncology/Treatment planning/NTCP

This page deals with concepts of Normal tissue complication probability, or NTCP.

 * See also: Radiation_Oncology/Normal_tissue_tolerance

 * Full text No PMID — "Use of normal tissue tolerance doses into linear quadratic equation to estimate normal tissue complicatio probability." T. S. Kehwar, Ph.D., D.Sc. and S. C. Sharma, M.D.  Radiation Oncology Online Journal (www.rooj.com).
 * Tables 3 and 4 are most helpful.
 * Full text PMID 17998649 — "Analytical approach to estimate normal tissue complication probability using best fit of normal tissue tolerance doses into the NTCP equation of the linear quadratic model." T. S. Kehwar, D.Sc., DABR. Journal of Cancer Research and Therapeutics.
 * See especially Table 4

 * Paul Scherrer Institut; 2005 PMID 15817357 -- "Estimation of radiation-induced cancer from three-dimensional dose distributions: Concept of organ equivalent dose." (Schneider U, Int J Radiat Oncol Biol Phys. 2005 Apr 1;61(5):1510-5.)
 * Concept of organ equivalent dose (OED) for radiation-induced cancer

 * Princess Margaret, 2005 PMID 15936567 -- "Use of principal component analysis to evaluate the partial organ tolerance of normal tissues to radiation." (Dawson LA, Int J Radiat Oncol Biol Phys. 2005 Jul 1;62(3):829-37.)
 * Principal component analysis concept used to summarize the variance in parallel normal tissue cDVHs, and segregate cDVHs at high or low risk for complications.

 * MSKCC, 1991 PMID 2032883 -- "Fitting of normal tissue tolerance data to an analytic function." (Burman C, Int J Radiat Oncol Biol Phys. 1991 May 15;21(1):123-35.
 * Lyman model applied to Emami tolerance data

 * Lawrence Berkeley, 1985 PMID 3867079 -- "Complication probability as assessed from dose-volume histograms." (Lyman JT, Radiat Res Suppl. 1985;8:S13-9.)
 * Development of NTCP model


text:
User:Charlie Huggard

See my other Wiki user Pages for more information about me.

Internal Links

 * My User Stylesheet

Wiki User Pages

 * Me @ Computational Intelligence Research Lab
 * Me @ Wikipedia

title: User:Charlie Huggard


text:
User:Charlie Huggard/monobook.css

/* Change the colors of the site */ body { background: #ffffcc; }

/* style the search box and the buttons below it */ input.searchButton { background-color: #E6E6CF !important; border: 1px outset!important; }  #searchInput { border: 1px inset !important; }

/* make a few corners round, only supported by moz/firefox/other gecko browsers for now */ #content { -moz-border-radius-topleft: 1em; -moz-border-radius-bottomleft: 1em; } div.pBody { -moz-border-radius-topright: 1em; -moz-border-radius-bottomright: 1em; } #p-cactions ul li a, #p-cactions ul li{ -moz-border-radius-topleft: 1em; -moz-border-radius-topright: 1em; }

title: User:Charlie Huggard/monobook.css


text:
User talk:Roscivs

I Can Eat Glass
I've seen this, and must admit I'm confused. Could I ask you what this Wikibook is trying to do? Thanks, Jguk 06:44, 11 April 2006 (UTC)

title: User talk:Roscivs


text:
User talk:Soulaegis

Welcome Soulaegis!

There is a committee working on finalizing a proposal for the Board to review, approve and activate our final permanent wikispace. http://meta.wikimedia.org/wiki/Wikiversity_subcommittee

What kinds of things are you interested in learning, coaching, or discussing?

Do you have any ideas regarding how we might initialize new learning processes?

I am currently leaning towards identifying some seminars of interest to several active editors and then beginning ad hoc discussions at an appropriately placed portal. Personally I do not have much inclination to develop "training" materials that may or may not ever be used by anybody but I am fairly willing to interact with people one on one, pursue online information in support of discussion, and eventually help summarize key points to stash along a "learning trail".

I am interested in seeing if a Wikiversity can be developed that can take an interested motivated student from grade school to high end technical materials effectively and safely.

Hope to see you around! Lazyquasar 06:47, 11 April 2006 (UTC)

Welcome to Wikibooks
Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.

I'd like to add a personal thanks to helping fight blatant vandalism. Your help is very much appreciated, and thank you for using the proper deletion tags as well. The pages you marked up earlier are now gone from the project. It is unfortunate that there exist in this world idiots who would trash something that is a public service, although fortunately with Wikis you can remove the damage almost as easily as they can cause the damage. Even faster in some cases.

Wikiversity is just about ready to "go live" and I estimate that it will be less than three months before http://en.wikiversity.org/ actually has some real content for you to look at. I'm not sure why there is a delay at the moment to get this started, but there are some people trying to get this going. Any help you can offer in the initial startup of Wikiversity would be significantly appreciated. --Rob Horning 07:07, 12 April 2006 (UTC)

title: User talk:Soulaegis


text:
User:Measly pawn

just a measly pawn.

honours english literature student: specializations in romantic literature (specifically William Blake, Jane Austen's "Pride and Prejudice" -- also Austen's other novels), postmodern literature, american literature (specifically Edgar Allan Poe), canadian literature (specifically timothy findley, michael ondaatje, and others), and some children's literature. also a minor in history (specifically WWI, WWII, Canadian/American/German).

i am canadian.

title: User:Measly pawn


text:
User talk:Wutasumi~enwikibooks

Welcome to Wikiversity Wutasumi!

There is a committee working on finalizing a proposal for the Board to review, approve and activate our final permanent wikispace. http://meta.wikimedia.org/wiki/Wikiversity_subcommittee

What kinds of things are you interested in learning, coaching, or discussing?

Do you have any ideas regarding how we might initialize new learning processes?

I am currently leaning towards identifying some seminars of interest to several active editors and then beginning ad hoc discussions at an appropriately placed portal. Personally I do not have much inclination to develop "training" materials that may or may not ever be used by anybody but I am fairly willing to interact with people one on one, pursue online information in support of discussion, and eventually help summarize key points to stash along a "learning trail".

I am interested in seeing if a Wikiversity can be developed that can take an interested motivated student from grade school to high end technical materials effectively and safely. Lazyquasar 06:50, 11 April 2006 (UTC)

=Wikiversity=

I saw your name on the Wikiversity participant's list, you may be very experienced in mathematics already, but I'm trying out instructing a Calculus course if you're interested, go to Wikiveristy, check out the mathematics department, pure mathematics, and in the course list is included Calculus. Fephisto 22:32, 9 July 2006 (UTC)

Your account will be renamed
Hello,

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

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

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

Sorry for the inconvenience.

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

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

title: User talk:Wutasumi~enwikibooks


text:
User talk:Measly pawn

To the faculty of wikiversity -- I wasn't quite sure how to go about joining, so I just jumped right in. I hope it's okay. Feel free to contact me. Measly pawn 07:24, 11 April 2006 (UTC)

title: User talk:Measly pawn


text:
User:That Guy, From That Show!

Hi there!
 * --That Guy, From That Show! 09:38, 11 April 2006 (UTC)

title: User:That Guy, From That Show!


text:
User talk:That Guy, From That Show!

Hello and welcome to Wikibooks!

Here are some tips to help you get started:
 * You can sign your name on Talk and vote pages using four tildes, like this: ~~~~.
 * Remember to conduct any editing experiments in the sandbox.
 * Check out our help page if you need additional help.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Take a look at Naming policy
 * See list of templates which can save your time
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

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

Good luck! Your best pal, --That Guy, From That Show! 09:36, 11 April 2006 (UTC)

title: User talk:That Guy, From That Show!


text:
Java Programming/Collection

The most basic collection interface is called. This interface gives the user the generic usage of a collection. All collections need to have the same basic operations. Those are:
 * Adding element(s) to the collection
 * Removing element(s) from the collection
 * Obtaining the number of elements in the collection
 * Listing the contents of the collection, (Iterating through the collection)

When you put an object in a collection, this object is not actually in the collection. Only its object reference is added to the collection. This means that if an object is changed after it was put in an collection, the object in the collection also changes. The code listing 5.2 computes the seven next days from tomorrow and stores each date in a list to read it afterwards. See what happens:

All collection items were meant to be updated to a different date but they all have been updated to the last one. This means that each update has updated all the collection items. The  has been used to fill all the collection items. The collection didn't keep trace of the added values (one of the seven dates) but the added object references. So the collection contains the same object seven times! To avoid this issue, we should have coded it this way:

Now each time we add an item to the collection, it is a different instance. All the items evolve separately. To add an object in a collection and avoid this item being changed each time the source object is changed, you have to copy or clone the object before you add it to the collection.

Generics
Objects put into a collection are upcasted to the class. This means that you need to cast the object reference back when you get an element out of the collection. It also means that you need to know the type of the object when you take it out. If a collection contains different types of objects, we will have difficulty finding out the type of the objects obtained from a collection at run time. For example. let's use this collection with two objects in it:

This error could have been found earlier, at compile time, by using generic types. The Generics have been added since JDK version 1.5. It is an enhancement to the type system of the Java language. All collection implementations since 1.5 now have a parameterized type . The E refers to an Element type. When a collection is created, the actual Element type will replace the E. In the collection, the objects are now upcasted to E class.

is a collection that can contain only Integer objects as elements. No casting is required when we take out an element.

Generics are not mandatory but are is often used with the collection classes.

Collection classes
There is no direct implementation for the  interface. The Collection interface has five sub interfaces.

Set
A set collection contains unique elements, so duplicates are not allowed. It is similar to a mathematical Set. When adding a new item to a set, the set calls the method  of the item and compares its result to the hash code of all the already inserted items. If the hash code is not found, the item is added. If the hash code is found, the set calls the  method for all the set items with the same hashcode as the new item. If all equal-calls return false, the new item is inserted in the set. If an equal-call returns true, the new item is not inserted in the set.

 * java.util. HashSet  : This is the basic implementation of the  interface. Not synchronized. Allows the  elements
 * java.util. TreeSet  : Elements are sorted, not synchronized. not allowed
 * java.util. CopyOnWriteArraySet  : Thread safe, a fresh copy is created during modification operation. Add, update, delete are expensive.
 * java.util. EnumSet > : All of the elements in an enum set must come from a single enum type that is specified, explicitly or implicitly, when the set is created. Enum sets are represented internally as bit vectors.
 * java.util. LinkedHashSet  : Same as HashSet, plus defines the iteration ordering, which is the order in which elements were inserted into the set.

Detecting duplicate objects in Sets
cannot have duplicates in it. You may wonder how duplicates are detected when we are adding an object to the. We have to see if that object exists in the Set or not. It is not enough to check the object references, the objects' values have to be checked as well.

To do that, fortunately, each java object has the, method available inherited from. You need to override it. That method will be called by the Set implementation to compare the two objects to see if they are equal or not.

There is a problem, though. What if I put two different type of objects to the Set. I put an Apple and an Orange. They can not be compared. Calling the  method would cause a. There are two solutions to this:

 * Solution one : Override the  method and return the same values for the same type of objects and return different values for different type of objects.  The   method is used to compare objects only with the same value of hashCode. So before an object is added, the Set implementation needs to:
 * find all the objects in the Set that have the same hashCode as the candidate object hashCode
 * and for those, call the  methods passing in the candidate object
 * if any of them returns true, the object is not added to the Set.

 * Solution two : Create a super class for the Apple and Orange, let's call it Fruit class. Put Fruits in the Set. You need to do the following:
 * Do not override the  and   methods in the Apple and Orange classes
 * Create  method in the Apple class, and create   method in the Orange class
 * Override the  method in the Fruit class and return the same value, so the   is called by the Set implementation
 * Override the  method in the Fruit class for something like this.

Note:
 * Only the objects that have the same hashCode will be compared.
 * You are responsible to override the  and   methods. The default implementations in Object won't work.
 * Only override the  method if you want to eliminate value duplicates.
 * Do not override the  method if you know that the values of your objects are different, or if you only want to prevent adding the exactly same object.
 * Beware that the  may be used in other collection implementations, like in a Hashtable to find an object fast. Overriding the default   method may affect performance there.
 * The default hashCodes are unique for each object created, so if you decide not to override the  method, there is no point overriding the   method, as it won't be called.

SortedSet
The  interface is the same as the Set interface plus the elements in the SortedSet are sorted. It extends the Set Interface. All elements in the SortedSet must implement the Comparable Interface, furthermore all elements must be mutually comparable.

Note that the ordering maintained by a sorted set must be consistent with equals if the sorted set is to correctly implement the Set interface. This is so because the Set interface is defined in terms of the equals operation, but a sorted set performs all element comparisons using its compare method, so two elements that are deemed equal by this method are, from the standpoint of the sorted set, equal.

The SortedSet interface has additional methods due to the sorted nature of the 'Set'. Those are:

List
In a list collection, the elements are put in a certain order, and can be accessed by an index. Duplicates are allowed, the same element can be added twice to a list. It has the following implementations:

Head              Node 1                   Node 2                     Node n   ______ | Size |         _________________        _______________            _____________ |______|        |      | point   |       |      | point  |          |      |      | | First|>| Data | to next |-->| Data | to next|-- ... -->| Data | null | | elem |        |______|_________|       |______|________|          |______|______| |______|                                                                ^  | Last |                                                                 | | elem |- |______|
 * java.util. Vector  : Synchronized, use in multiple thread access, otherwise use ArrayList.
 * java.util. Stack  : It extends class Vector with five operations that allow a vector to be treated as a stack. It represents a last-in-first-out (LIFO) stack of objects.
 * java.util. ArrayList  : The basic implementation of the  interface is the  . The ArrayList is not synchronized, not thread safe.   is synchronized, and thread safe.   is slower, because of the extra overhead to make it thread safe.  When only one thread is accessing the list, use the ArrayList. Whenever you insert or remove an element from the list, there are extra overhead to reindex the list. When you have a large list, and you have lots of insert and remove, consider using the.
 * java.util. LinkedList  : Non-synchronized, update operation is faster than other lists, easy to use for stacks, queues, double-ended queues. The name  implies a special data structure where the elements/nodes are connected by pointers.

Each node is related to an item of the linked list. To remove an element from the linked list the pointers need to be rearranged. After removing Node 2:

Head              Node 1                   Node 2                     Node n   ______                                 _____________________ | Size |         _________________    |   _______________   |       ______________ |_- 1__|        |      | point   |    |  |      | point  |  |       |      |      | | First|>| Data | to next |  | Data | to next|   -...-->| Data | null | | elem |        |______|_________|       |______|________|          |______|______| |______|                                                                ^  | Last |                                                                 | | elem |- |______|

 * javax.management. AtributeList  : Represents a list of values for attributes of an MBean. The methods used for the insertion of Attribute objects in the AttributeList overrides the corresponding methods in the superclass ArrayList. This is needed in order to insure that the objects contained in the AttributeList are only Attribute objects.
 * javax.management.relation. RoleList  : A RoleList represents a list of roles (Role objects). It is used as parameter when creating a relation, and when trying to set several roles in a relation (via 'setRoles' method). It is returned as part of a RoleResult, to provide roles successfully retrieved.
 * javax.management.relation. RoleUnresolvedList  : A RoleUnresolvedList represents a list of RoleUnresolved objects, representing roles not retrieved from a relation due to a problem encountered when trying to access (read or write to roles).

Queue
The Queue interface provides additional insertion, extraction, and inspection operations. There are FIFO (first in, first out) and LIFO (last in, first out) queues. This interface adds the following operations to the Collection interface:

 * java.util. BlockingQueue  : waits for the queue to become non-empty when retrieving an element, and waits for space to become available in the queue when storing an element. Best used for producer-consumer queues.
 * java.util. PriorityQueue  : orders elements according to an order/priority specified at construction time, null element is not allowed.
 * java.util.concurrent. ArrayBlockingQueue  : orders elements FIFO; synchronized, thread safe.
 * java.util.concurrent. SynchronousQueue <E> : each put must wait for a take, and vice versa, does not have any internal capacity, not even a capacity of one, an element is only present when you try to take it; you cannot add an element (using any method) unless another thread is trying to remove it.

Synchronization
Synchronization is important when you are running several threads. Beware, synchronization does not mean that your collection is thread-safe. A thread-safe collection is also called a concurrent collection. Most of the popular collection classes have implementations for both single thread and multiple thread environments. The non-synchronized implementations are always faster. You can use the non-synchronized implementations in multiple thread environments, when you make sure that only one thread updates the collection at any given time.

A new Java JDK package was introduced at Java 1.5, that is. This package supplies a few Collection implementations designed for use in multi-threaded environments.

The following table lists all the synchronized collection classes:

Custom collection
The Java JDK collection implementations are quite powerful and good, so it is unlikely that you will need to write your own. The usage of the different collections are the same but the implementations are different. If the existing collection implementations do not meet your needs, you can write your version of the implementation. Your version of the implementation just needs to implement the same  interface, then you can switch to using your implementation and the code that is using the collection does not need to be changed.

Use the Collection interface if you need to keep related (usually the same type of) objects together in a collection where you can:
 * Search for a particular element
 * List the elements
 * Maintain and/or change the order of the elements by using the collection basic operations (Add, Remove, Update,..)
 * Access the elements by an index number

The advantages of using the  interface are:
 * Gives a generic usage, as we talked about above, it is easy to switch implementation
 * It makes it easy to convert one type of collection to another.

The  interface defines the following basic operations: Note that in  we can add any type of collection. This is the beauty of using the Collection interface. You can have a  and just call the   method, passing in a list. You can pass in a, an  , a  , a  , a  , ... All those different types of collection will be magically converted to a.

Let's have a closer look at this magic. The conversion is easy because the  interface defines  a standard way of looping through the elements. The following code is a possible implementation of  method of the.

The above code just iterates through the passed in collection and adds the elements to the linked list. You do not have to do that, since that is already defined. What you might need to code for is to loop through a  collection:

Notice two things:
 * The above code will work for all type of collections.
 * We have to know the type of objects inside the collection, because we call a method on it.

title: Java Programming/Collection


text:
Umbraco/FAQ

This is a list of frequently asked questions.

Where can I host Umbraco?
Umbraco offers an official cloud hosting service

Many webhosts also offer Umbraco hosting.

If you have your own datacenter or server, it's possible to host Umbraco yourself.

While the installation process, a 'invalid object name umbracoUser' error occures
This error may appear, if the web.config-key "umbracoEnableStat" is changed from false to true prior the installation. The key must not be changed to anything else than false until the installation procedure using the wizard is completed.

It seems it is possible that the installation is ready to continue but for some reason does not do so. Try browsing to http://localhost/install and setup might continue (if your installation is in http://localhost)

This error may also appear when umbraco is installed in a virtual directory. When your virtual directory is named myvirtualdir, change the web.config in a way that the keys umbracoReservedPaths and umbracoPath contain the name of the virtual directory, like and

The above is perhaps misleading, Umbraco does not support being installed in a virtual directory.

After successful installation a 'No node found' error occures
After successful installation the following error occures: No node found (http://localhost/default.aspx?umbPage=/default.aspx, '/root/node [@urlName = ""] | /root/node') This is because there aren't any pages yet. Go to your administration area (http://foo.bar/umbraco), login and create some content first.

I've installed Umbraco, now what?
There are three screencasts here which will introduce you to the Umbraco UI and how to get started creating Document types and templates.

Where can I configure my SMTP server?
The SMTP server is set in the web.config file which is in the root folder of your Umbraco installation.

You need to set the following key:

How can I change the email address that notifications are sent from?
The sender of notifications is set in the umbracoSettings.xml which is in the config folder under the root of your Umbraco installation.

You need to modify the following section to contain the e-mail address you wish to use as the sender:

darren@xxxx.com

You might also need to change the settings in formHandlers.xml located in the same directory

robot@umbraco.dk

How can I change the text in the Umbraco notifications Email?
The notification Email message is set in the appropriate localised xml file for he language that you are using in the directory umbraco\config\lang under your Umbraco installation directory.

You will need to modify the following section:

 Notifications Edit your notification for %0% [%0%] Notification about %1% performed on %2%  Hello %0%

This is an automated mail to inform you that the task '%1%' has been performed on the page '%2%' by the user '%3%' Go to http://%4%/umbraco/default.aspx?section=content&id=%5% to edit.

How could I set a default 404 error page?
Open /config/umbracoSettings.xml Find the line that says 1 and replace 1 with the id of the page you want to show.

1

If you are using IIS7 you have to add the following to web.config;

How could I Use DirectoryUrls?
Why should you enable this? This changes the links to the pages from example http://www.mydomain.com/news.aspx to http://www.mydomain.com/news

Open /config/umbracoSettings.xml Find the line that says false and replace false with true. It should then be like this true

Then you have to let IIS handle all requests.

IIS 6.0 2003 server
Follow these instructions

How could I display a page with an alternative template?
Just set the 'altTemplate' parameter in the query string to the alias of your desired template. For example http://foo.bar/page.aspx?altTemplate=MyAltTemplateAlias

How do I change the stylesheet that is used in the built-in editor?
You can change the behavior by adding some editor css to the first stylesheet in the list.

background: #fff; }
 * 1) holderBody {

border: 1px solid #ccc; padding: 10px; margin: 5px; text-align: left; }
 * 1) holder {

Where can I get help?
Help is available from
 * Umbraco Forum: https://our.umbraco.com/forum

title: Umbraco/FAQ


text:
Umbraco/Samples and Articles

Samples and Articles

 * Document Types and Templates
 * XSLT
 * Macros
 * .NET Controls
 * Creating umbraco pages programmatically
 * Multilingual sites
 * Implementing Search
 * Creating Newsletters
 * Protecting Documents

title: Umbraco/Samples and Articles


text:
Java Programming/Object Lifecycle

Before a Java object can be created the class byte code must be loaded from the file system (with  extension) to memory. This process of locating the byte code for a given class name and converting that code into a Java class instance is known as class loading. There is one class created for each type of Java class.

All objects in Java programs are created on heap memory. An object is created based on its class. You can consider a class as a blueprint, template, or a description how to create an object. When an object is created, memory is allocated to hold the object properties. An object reference pointing to that memory location is also created. To use the object in the future, that object reference has to be stored as a local variable or as an object member variable.

The Java Virtual Machine (JVM) keeps track of the usage of object references. If there are no more reference to the object, the object can not be used any more and becomes garbage. After a while the heap memory will be full of  unused objects. The JVM collects those garbage objects and frees the memory they allocated, so the memory can be reused again when a new object is created. See below a simple example:

The  variable contains the object reference pointing to an object created from the   class. The  object reference is in scope inside the. After the  the object becomes garbage. Object references can be passed in to methods and can be returned from methods.

Creating object with the keyword
99% of new objects are created using the keyword.

When an object from the  class is created for the first time, the JVM searches the file system for the definition of the class, that is the Java byte code. The file has the extension of. The CLASSPATH environment variable contains locations where Java classes are stored. The JVM is looking for the  file. Depending on which package the class belongs to, the package name will be translated to a directory path.

When the  file is found, the JVM's class loader loads the class in memory, and creates a java.lang.Class object. The JVM stores the code in memory, allocates memory for the variables, and executes any static initialize block. Memory is not allocated for the object member variables at this point, memory will be allocated for them when an instance of the class, an object, is created.

There is no limit on how many objects from the same class can be created. Code and variables are stored only once, no matter how many objects are created. Memory is allocated for the object member variables when the object is created. Thus, the size of an object is determined not by its code's size but by the memory it needs for its member variables to be stored.

Creating object by cloning an object
Cloning is not automatically available to classes. There is some help though, as all Java objects inherit the  method. This base method would allocate the memory and do the bit by bit copying of the object's states.

You may ask why we need this clone method. Can't we create a constructor, pass in the same object and do the copying variable by variable? An example would be (note that accessing the private  variable of   is legal as this is in the same class):

This method works but object creation with the keyword is time-consuming. The  method copies the whole object's memory in one operation and this is much faster than using the new keyword and copying each variable so if you need to create lots of objects with the same type, performance will be better if you create one object and clone new ones from it. See below a factory method that will return a new object using cloning.

Now, let's see how to make the Customer object cloneable.
 * 1) First the   class needs to implement the   Interface.
 * 2) Override and make the   method, as that is  in the Object class.
 * 3) Call the  method at the beginning of your   method.
 * 4) Override the   method in all the subclasses of.

In the code listing 4.15 we used cloning for speed up object creation. Another use of cloning could be to take a snapshot of an object that can change in time. Let's say we want to store Customer objects in a collection, but we want to disassociate them from the 'live' objects. So before adding the object, we clone them, so if the original object changes from that point forward, the added object won't. Also let's say that the Customer object has a reference to an Activity object that contains the customer activities. Now we are facing a problem, it is not enough to clone the Customer object, we also need to clone the referenced objects. The solution:
 * 1) Make the Activity class also cloneable
 * 2) Make sure that if the Activity class has other 'changeable' object references, those have to be cloned as well, as seen below
 * 3) Change the Customer class   method as follows:

Note that only mutable objects need to be cloned. References to unchangeable objects such as a String can be used in the cloned object without worry.

Re-creating an object received from a remote source
When an object is sent through a network, the object needs to be re-created at the receiving host.

 * Object Serialization : The term Object Serialization refers to the act of converting the object to a byte stream. The byte stream can be stored on the file system or can be sent through a network.
 * At a later time the object can be re-created from that stream of bytes. The only requirement is that the same class has to be available both times, when the object is serialized and also when the object is re-created. If that happens on different servers, then the same class must be available on both servers. Same class means that exactly the same version of the class must be available, otherwise the object won't be able to be re-created. This is a maintenance problem for those applications where java serialization is used to make objects persistent or to sent the object through the network.
 * When a class is modified, there could be a problem re-creating those objects that were serialized using an earlier version of the class.

Java has built-in support for serialization, using the  interface; however, a class must first implement the   interface.

By default, a class will have all of its fields serialized when converted into a data stream (with fields being skipped). If additional handling is required beyond the default of writing all fields, you need to provide an implementation for the following three methods:

If the object needs to write or provide a replacement object during serialization, it needs to implement the following two methods, with any access specifier:

Normally, a minor change to the class can cause the serialization to fail. You can still allow the class to be loaded by defining the serialization version id:

Destroying objects
Unlike in many other object-oriented programming languages, Java performs automatic garbage collection — any unreferenced objects are automatically erased from memory — and prohibits the user from manually destroying objects.

finalize
When an object is garbage-collected, the programmer may want to manually perform cleanup, such as closing any open input/output streams. To accomplish this, the  method is used. Note that  should never be manually called, except to call a super class' finalize method from a derived class' finalize method. Also, we can not rely on when the  method will be called. If the java application exits before the object is garbage-collected, the  method may never be called.

The garbage-collector thread runs in a lower priority than the other threads. If the application creates objects faster than the garbage-collector can claim back memory, the program can run out of memory.

The finalize method is required only if there are resources beyond the direct control of the Java Virtual Machine that needs to be cleaned up. In particular, there is no need to explicitly close an OutputStream, since the OutputStream will close itself when it gets finalized. Instead, the finalize method is used to release either native or remote resources controlled by the class.

Class loading
One of the main concerns of a developer writing hot re-deployable applications is to understand how class loading works. Within the internals of the class loading mechanism lies the answer to questions like:

 * What happens if I pack a newer version of an utility library with my application, while an older version of the same library lingers somewhere in the server's lib directory?
 * How can I use two different versions of the same utility library, simultaneously, within the same instance of the application server?
 * What version of an utility class I am currently using?
 * Why do I need to mess with all this class loading stuff anyway?

title: Java Programming/Object Lifecycle