text:
Cookbook:Home Cheesemaking

Home cheesemaking has been in practice for thousands of years and comprised nearly all cheese production until the 19th century. While factory cheese production has taken over the majority of the market, many people still make cheese in the traditional fashion.

General cheesemaking details
Milk contains a wide variety of fats and proteins. Some of these are suspended solids and minerals; others are liquids. The process of separating the solids from the liquids is curdling; the white solid remainder is known as curds, and the greenish liquid remainder whey. Cheese is curds in a wide variety of forms. Soft cheeses are little changed from the original curd; they are typically drained but not pressed, and are usually unaged. Semisoft (or semihard) cheeses are drained and lightly pressed, and may be aged. Hard cheeses are drained and well pressed, and are almost always aged.

To cause milk to curdle requires a curdling agent. There are a wide variety of curdling agents available in nature, both plant and animal based - a quick search of the Internet will show some to you. In practice, only a few are regularly used in cheesemaking. Vinegar and lemon juice are commonly used in soft cheeses, and also assists in making ricotta; it creates a sticky curd in small flecks. Tartaric acid is the sharp, lemony curdling agent that makes mascarpone cheese, and creates a very fine sticky curd. For most semisoft and hard cheeses, rennet is used. There are three types of rennet in common usage. The most traditional rennet is an animal rennet; this is an enzyme taken from the digestive tract of mammals. For vegetarians, more companies are producing a "vegetable" rennet. These are not truly vegetable, but are microbial based. There are two types of vegetable rennet. The more traditional rennet is based on non genetically engineered bacteria. Unfortunately, its curd is often ill-suited for many hard cheeses. Typically used in modern times is one made from genetically engineered bacteria that make the animal-rennet style enzymes. In addition to being vegetarian, It has a higher degree of reliability and consistency than animal rennet, and is widely recommended for use in home cheesemaking.

Aged cheeses change flavor due to the microorganisms that metabolize the sugars and produce by-products (typically bacteria related to lactic acid creation) whose taste people enjoy. Note that having the wrong kind of microorganisms, while unlikely to ever be dangerous, will leave your cheese tasting like vinegar or alcohol, which generally tastes quite bad. Both bacteria and molds are used in cheeses for aging. Bacteria are used in almost every aged cheese. There are two main types: thermophilic (which are found in yogurt) and mesophilic (which are found in buttermilk). There are various species that belong to each category, but as an amateur, one probably doesn't need to worry about that. As for molds, there are a wide variety that are used, and each has its own unique properties and flavors. Some of the more widely used ones are Penicillium roqueforti (blue cheeses) and Propionic shermani (swiss cheeses). Molds, unlike the bacteria used in cheeses, can often spread from cheese to cheese, and thus should be isolated as much as possible when aging. The longer a cheese is aged, the stronger it tastes; this is why Parmesan and Pecorino Romano cheese have such strong flavors. Additionally, cheeses with molds, such as blue cheeses, often develop their flavor faster than those without molds.

Color is related to two things: the natural color (which is usually a creamy white to pale yellow), and additives. The most common color additive is annatto, an extract of the dark red seeds of plants in the Bixacae family, typically grown in South America. Their dark red/orange color dilutes into the typical cheddar-yellow that we're all familiar with. Annatto coloring is generally available in two forms: powder and liquid. The powder can take time to dissolve, and should be added as early in the cheese making process as possible (preferably during pasteurization, as the heat helps it dissolve). The liquid extract is easily mixed in, and can be added at any point before the curdling agent is added.

Traditional food coloring does not work well at all for coloring curds; it tends to remain in the whey instead of the curd. However, adding food coloring to uncolored curds after they have been drained but before they have been pressed leads to an attractive mottled pattern rarely found in commercial cheeses.

Stages and timing

Timings on most stages of cheese preparation can vary, and are listed in the cheese tables below. Some cheese timings will get you the same effect, however, regardless of which kind of cheese you're making.

The first stage is pasteurization. There are two standard types of pasteurization that can be done: cook the milk at 145°F (63°C) for 30 minutes, or 161°F (72°C) for 15 seconds. In both cases, one must be very careful not to scald and must stir regularly.

The second stage is cooling. For home cheesemaking, this is most easily done in cold water or snow.

The third stage (in all cheeses that age except surface-ripened cheeses) is inoculation. This involves stirring in the cultures (both non-surface molds and bacteria); if yogurt is the source of the bacteria, make sure it is completely dissolved in the milk. The milk should have between 30 and 60 minutes to allow the cultures to spread. Be sure to maintain the desired temperature during this time.

The fourth stage is curdling. A curdling agent is added to the milk and stirred in. For rennet, 30-60 minutes should be allowed with the milk undisturbed; the cheese is ready when you can pull the thermometer out of the cheese and it retains a hole in the shape of the thermometer without trying to fill the hole back in. Other curdling agents tend to require 5 to 15 minutes.

The fifth stage (for cheeses that require it) is cooking. This typically is only rennet-based cheeses. The curd is cut up with a clean knife into ¼ to ½ inch pieces. Stirring rates, cooking temperatures, and cooking times vary depending on the cheese, and are listed in the table. A longer, hotter cooking makes a stretchier cheese, but cooking too hot risks killing any added cultures.

The sixth stage is draining. More on that is below.

The seventh stage, on many cheeses, is salting. Salt is mixed into the curds. Some cheeses also have other ingredients (such as peppers or herbs) mixed in at this point.

The eighth stage (on most semisoft cheeses and all hard cheeses) is pressing. More on that is below. Pressing times vary between cheeses depending on the desired texture. Some cheeses are only "gravity pressed" - allowed to compact under their own weight.

The ninth stage, on brined cheeses, is brining. More information on this can be found in the brining section. Brining times vary. Cheeses that are brined are rarely salted as well.

The tenth stage, on aged cheeses, is aging. Conditions and times vary.

Draining
The curds, when they come out of the pot, contain a large amount of whey. Soft cheeses often contain some or all of the whey, but are usually drained enough to rid of any poorly-retained whey. Semisoft cheeses are gravity drained, and sometimes lightly pressed. Hard cheeses always need to be gravity drained, and then are pressed.

To drain the cheese depends on the type of curd. Cheese made from milk using rennet or lemon juice can typically be drained into regular cheesecloth (note: real cheesecloth should look similar to a net). Recipes for other cheeses often state that one should drain them into a double layer of fine cheesecloth. A much easier solution is to use a single layer of sturdy, clean paper towel. The cheese comes off easier, and the dirty towel can just be tossed.

If your curds don't need the fine cheesecloth, the easiest way to drain them is as follows. Line a colander with cheesecloth. If you want to save the whey (recommended ? see the section on ricotta), place the colander on top of a wire cooling rack over a large bowl. Pour the liquid into the colander. After letting the bulk of the liquid drain out, pick up the cheesecloth by the corners and hang it on anything in your house that you can hang things from, with something beneath to catch the remaining dripping whey. After this, the cheese is generally pressed.

For soft or semisoft cheeses that need fine cheesecloth, you do not press, and instead just wait for it to stop dripping extensively. This may or may not be followed by a drying process.

Pressing
Hard cheeses need to be pressed to make them live up to their namesake. While commercial cheeses sometimes use centrifuges for draining and even pressing, the easiest way to press cheese at home is to get a cheese press. Simple modern presses tend to be shaped like old-fashioned top hats made of a solid mesh plastic. Inside of it is placed the gravity-drained curds in their cheesecloth. On top of that goes the other part of the press: a cylinder of plastic on which weights are placed. One should start with no more than 5 pounds of weight. After 30 minutes, if desired, one can flip the cheese and increase the weight up to 2½ times as much; after 3 hours, one can flip the cheese again and increase the weight twofold; again, if desired, once can double the weight after 8 hours. The cheese should always be flipped at least once during pressing. Pressing too hard too fast or not flipping enough can make the cheese stick to the cheesecloth when removing it.

One significant obstacle when pressing in a conventional press is balance. Since the still-soft cheese is easily pliable, it is quite easy for the cylinder to tilt, causing the weight to shift and allowing for further tilting. In addition to the possibility of placing external influences to help prevent it from falling over, I found an effective solution: warp the mold itself. If you heat the mold in a large pot of boiling water, it becomes easily warped (and may even warp itself). You should warp it to the extent that the cylinder can still fit into the mold, but has a somewhat hard time of it and takes pressure to do it. This will cause it to help balance itself and even help it hold pressure down on the cheese when some weight is removed. The only downside is that you occasionally need to help the weight by pushing down on the cylinder a bit yourself. As for weight, a large mixing bowl filled with water is recommended: one gallon weighs eight pounds.

If you don't have a cheese press and don't want to purchase one, anything with small holes (such as a colander) works. Weight is applied to a flat object (such as a plate) that fits over the top. If the "press" is not cylindrical but instead tapers, the weight bearing object needs to replaced regularly with a smaller one.

Pressing is one of the most important factors in determining the texture of the cheese. Lightly pressed cheeses are soft and creamy. Firmly pressed cheeses are hard.

The rind
Mold growth on cheese is not a rare occurrence even when cheese is kept for a relatively short period of time. Without a rind, the concept of aging cheeses without mold infection—some of which age as much as two years before use—is unrealistic. The number one key to preventing unwanted mold growth is the development of a good rind.

After hard cheeses are pressed, they are dried. Do not rush this process. Your cheese should not be prepared for storage until it has a solid rind on its outside. If you do anything to damage your rind, re-dry it until a new rind is present. Otherwise, you're almost guaranteed to have a problem with mold.

Salt is important in cheesemaking. Some cheeses have the salt mixed in with the curds; others have the salt coated on the outside, and some cheeses are brined. Salt not only adds flavor, but also acts as a desiccating (drying) agent. Salt on the outside helps with this even more. Brined cheeses often have the best rinds; it also makes them crumbly (has a stronger effect than cooking style).

Brine is salt-saturated water. Some cheeses, after being pressed, are soaked in brine for one to two days. To make brine, dissolve salt in water as much as you can until the water won't take any more. Use it cold. Water used as a weight in pressing can also be reused for the brine water.

Ricotta: a special cheese
Ricotta is Italian for "recooked", and its invention was a boon to cheesemakers. Since cheese is the curds of the milk, the whey is normally a waste product - but it still contains a good bit of nutrients. To waste it has never been desirable. However, ricotta (and similar cheeses, such as Brunost) salvages most of the rest of the minerals using heat far greater than you normally would ever apply to milk. Since most of the fat and protein have already been taken out of the whey in forming the curd, there isn't nearly as high of a risk of scalding the milk. Additionally, the heat is high enough to sterilize the whey, so regardless of what cultures you added during preparation, they will be killed in the preparation of the ricotta. One thing that does not change, however, is color: if your cheese was yellow to begin with, the ricotta will be yellow as well.

To make ricotta, put a pot of whey from any cheese over medium heat for an hour. Then, if it hasn't reached about 200°F (93°C), increase the heat until it reaches this temperature. This helps denature the proteins that suspend the remaining particles in the liquid. Sometimes the heat alone is enough to encourage the separation; often, however, you will need to add a quarter cup of vinegar to the whey from making two gallons of cheese to speed the process (the taste won't be detectable). Cook at this temperature for at least 15 minutes (the longer the better). In the end, you will have the ricotta floating on the top of the remaining whey. Once you let it settle, you will find that the whey looks like slightly murky, slightly greenish water; over 90% of fats and proteins have been removed from it at this point.

Strain the ricotta from the whey through a paper towel-lined colander, and add salt to taste. Once drained and salted, it is ready for use. If you want to make use of the little bit of minerals that still remain in the whey, it can be used as fertilizer.

General rules for making all cheeses

 * 1) Always pasteurize your milk - even if you bought it from the store. Leave your utensils in it while you do this. This will sterilize your pot and utensils, and guarantee that the only things in the milk are going to be what you put there.
 * 2) When pasteurizing milk, do not forget to stir. If you're forgetful, set a timer. If you forget to stir, the milk will scald; scalded milk should never be used.
 * 3) Do your best to avoid contaminating your sample ? try not to put anything that's not clean (including unclean hands) into your cheese.
 * 4) Make milk-cheeses in batches of at least two gallons to save time (requires a large pot). All listings of ingredients and quantities in here will be per two gallons of milk. Cream-based cheeses have a higher yields, and so making batches using one quart or more of cream is generally acceptable (this guide will assume one quart).

Additional rules for making hard cheeses

 * 1) Always use the freshest, most reliable cultures that you can get. That means that you should use freshly purchased yogurt and buttermilk for your thermophilic and mesophilic cultures (respectively). Try to use online supply sites only for your mold cultures.
 * 2) Try to avoid junket. It works for making cheese but is unreliable, and it's hard to tell how much you'll need. Using real, microbial (?vegetable?) rennet works best for most cheeses. It has the advantage that you don't really need to dilute it first.
 * 3) The rind is critical. Nothing prevents unwanted mold growth better than a good rind. Don't consider your cheese ready to age until it has one (some cheeses only have minimal rinds, but it is better than no rind). This means thorough drying and salting. Even mold-containing cheese should have a good rind to prevent growth of unwanted molds. Salt acts as a desiccating agent and helps inhibit mold growth on its own, and should almost always be added.
 * 4) If unwanted mold does grow on the cheese, the standard remedy found in recipes is to "wipe it off with vinegar". More generally, one must first wipe the mold off (damaging the rind as little as possible). Then one needs to sterilize it (while vinegar is traditional, hydrogen peroxide is just as effective). Finally, the cheese must be dried with a clean cloth or paper towel and allowed to re-dry and repair any rind damage. Mold thrives on moisture.
 * 5) Don't wrap aging cheese in plastic wrap - that is a good way to encourage mold growth. If you formed a good enough rind, you can wax it. If you find waxing unreliable due to mold, wrap in aluminum foil. Humidity can be controlled by what you wrap in/seal in - in order from most humid to least humid, plastic wrap 100%, a closed plastic container, a loosely closed plastic container, wax, aluminum foil, paper, or nothing. If your cheese is on a perforated rack, a bowl over the cheese can help maintain humidity. Aging cheeses should be regularly inspected for mold.
 * 6) Bacteria can handle almost any conditions; molds like it moist and cool (not cold). The ideal temperatures for aging most cheeses ranges from 45-60°F (7 to 16°C); however, if one wishes to stop the mold from developing further but allow the bacteria to age more (such as to stop hole expansion in Swiss), it needs to be kept in a colder location at ~40°F (4°C).

Common curdling agents
(* - in the format "2 gallons milk/1 quart cream")

Semisoft and hard cheeses
(Due to the difficulty in obtaining recipes for a number of cheeses, this table may be incomplete and/or contain inaccuracies in some cheeses; it should not be used as an authoritative guide. Additionally, traditional batch size and packaging are not covered.)

title: Cookbook:Home Cheesemaking


text:
Cookbook talk:Home Cheesemaking

Home cheesemaking authors and history
= From Wikipedia:Talk:Home cheesemaking = If anyone wants, I have 21 pictures related to home cheesemaking here. For a description of what I was doing when these pictures were taken, visit here. I took these when working to get approval from the health department to make cheese for sale at a farmers market - consider them to all be public domain. - Rei
 * 2005-10-29 17:27:01 User:24.63.176.16 (→Semisoft and hard cheeses)
 * 2005-10-29 09:41:44 User:Njyoder
 * 2005-07-23 04:24:37 User:71.116.36.94 (→General cheesemaking details)
 * 2005-07-17 13:51:09 User:Bobblewik m (units, possibly using Google converter)
 * 2005-05-29 00:09:47 User:Majromax m (→General cheesemaking details - Relinked mascarpone)
 * 2005-05-17 02:14:29 User:NoAccount
 * 2005-05-15 15:55:31 User:201.243.124.224 (→General cheesemaking details)
 * 2005-04-17 00:58:04 User:67.188.157.15 (→The rind)
 * 2005-04-13 18:31:15 User:Xezbeth m (sp)
 * 2005-02-09 16:26:06 User:Pekinensis (→General cheesemaking details)
 * 2005-01-30 19:27:51 User:Curps m (Reverted edits by Brian0918 to last version by 24.90.119.223)
 * 2005-01-30 15:26:40 User:Brian0918 (fix typo -- perforate is the correct adjective, never perforated)
 * 2005-01-18 20:27:02 User:24.90.119.223 (→General cheesemaking details)
 * 2005-01-14 22:58:14 User:Jaberwocky6669 m (Resized and relocated picture)
 * 2005-01-02 21:27:44 User:Ben James Ben m (→General cheesemaking details - gm)
 * 2004-12-23 22:21:24 User:165.189.91.148
 * 2004-12-17 05:13:28 User:CanisRufus m (RedWolf - link bacteria to bacterium)
 * 2004-12-11 16:23:22 User:Pwqn m (add image)
 * 2004-11-14 22:03:47 User:62.254.64.12 (→Cooking)
 * 2004-10-12 23:15:10 User:149.169.147.142 (→Pressing)
 * 2004-10-12 23:12:44 User:149.169.147.142 (→Draining)
 * 2004-06-27 21:58:10 User:Maximus Rex m
 * 2004-06-25 04:55:00 User:172.168.243.252 (→General cheesemaking details)
 * 2004-06-05 03:38:15 User:Bryan Derksen m (Category:Cheeses)
 * 2004-05-16 04:32:46 User:Bryan Derksen (wiki markup for tables)
 * 2004-03-15 14:35:39 User:Seth Ilys (decap subheads)
 * 2004-03-09 19:04:46 User:62.49.16.208 (added Fahrenheit to unspecified 'degrees', added Celsius value)
 * 2004-03-09 19:01:44 User:62.49.16.208 (farenheit -> fahrenheit, added celsius value)
 * 2004-03-09 18:56:36 User:Rmhermen m
 * 2004-02-23 21:25:51 User:Rei m (Fixed tables)
 * 2004-02-23 19:05:40 User:Rei (Filled in. Still need to fix the table formatting (I created them in a different program...))

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

title: Cookbook talk:Home Cheesemaking


text:
Outdoor Survival/Water

Humans can survive 3 days on average without water—less when it is very hot or one is very active (as opposed to weeks without food). A single day without water significantly reduces bodily and mental performance.

Water is an essential item on any camping or hiking trip. Some campgrounds have tap water, drawn from wells and purified. This water is of reliable quality under normal circumstances and should be used whenever practical. When tap water is not available, it is usually best to bring all necessary water from home. However, it is impossible to bring more than a couple of days' worth of water on a backpacking trip, and survival situations may create an unforeseen demand for water. If this demand is not met, dehydration will result, leading to heat exhaustion, heatstroke and death within days.

Please avoid the thought of rationing water. The best storage container in a survival situation is your own body. Even experienced soldiers have been found dead of dehydration with a full canteen.

Finding Water

 * You should have a map that shows water sources in the area where you plan to operate.
 * Water is most likely found where it is carried by natural terrain features such as ravines, gullies and washes.
 * Game trails leading down-slope may lead to water, but it may be miles away.
 * Water is more likely found in green areas with a good amount of vegetation.
 * Collect falling rainwater with a tarp, tent, or even clothing. It is safe, if boiled. Funnel or wring it into containers (bottles, canteen, pots, you).
 * Quickly running water is more likely to be safe than large slow moving rivers or water in ponds and lakes.
 * Dew can be a water source when it condenses on any surface. Sop it up with a sponge or cloth.
 * You can get water by distillation from common leaves, grasses, and other green plants. Place an armload in a plastic bag/container, then leave it out in an area where it will get a lot of warmth and sunlight. Make sure that you don't use any poisonous plants, and that the container is sealed, so no water vapor escapes. Several such containers will be needed for a single person.
 * DO NOT drink seawater unless it is distilled! It takes twice as much water for your body to process seawater as you get from it.
 * NEVER drink urine, even if it is filtered.
 * Avoid eating snow in cold weather; doing so can significantly lower body temperature (as can becoming dehydrated) and even lead to shock.
 * Try to avoid stagnant water. It is more difficult to make safe.
 * Try to avoid brackish water. Purification or disinfection will not remove salt from brackish water.
 * Of the methods discussed above, only distillation and charcoal reduce risks from chemicals dissolved in water. Try to be aware of the risk of chemically-contaminated water in your area of operation.

Making Water Safer

 * You should always presume that water found in the outdoors contains disease-causing organisms. They are present far from any signs of human habitation. These organisms may have no effect on you if you drink the water without treatment OR they make cause debilitating illness or even death (See, for example, giardia, cryptosporidium, cholera, typhoid.). Therefore, you should do what you can to make the water safer.
 * Boiling is the most reliable method to kill all organisms in water. Bring the water to a rolling boil. Boil several minutes if at high altitude since water boils at a lower temperature at altitude. Even bringing water to temperature uncomfortably hot to the touch kills most organisms, but boil if you can.
 * Commercial filters in working condition and used correctly remove all organisms except viruses.
 * Chlorine dioxide (NOT "bleach" which is chlorine hydroxide) used according to directions will kill all organisms in water. Wait times may be four hours.
 * Water in a closed, clear container (Think 2l softdrink bottle.) if exposed to a day of strong sunlight is usually safe (See SODIS).
 * Water obtained by distillation (See above.) is usually safe.
 * A well dug ten feet/3 meters or more from a body of water and dug to a depth below the water level in that body of water, will gradually fill with water that is safer than the source body of water.
 * A filter of layers of grass, sand, and charcoal (from a fire site) inside a cone or cylinder of bark, plastic, aluminum foil or the like, will make water safer.
 * A filter of 6-8 layers of tightly-woven cloth will make water safer.
 * Allowing particles in water to settle to the bottom of a container and then treating the clearer water towards the top improves the results of treatment. Such "settling" of water, alone, makes water safer.
 * Any method that makes water safer, such as use of "bleach" (Chlorine hydroxide) or iodine, is better than not treating the water at all. Putting it another way, killing or otherwise eliminating some of the wee nasties is better than leaving them all for your body to fight.

AND
 * Bring "enough" safe water with you where ever you go OR have a method to render safe water from known sources. Be prepared.
 * If you have no water, avoid eating fats and proteins because your body uses water to process them. Juicy vegetable foods may sources of water.
 * Always try to keep the sun off of you, regardless of how much clothing or sunblock you are wearing. It heats your body up over time, so you lose a LOT more water from your body from the extra sweating.
 * When melting snow in the winter, first melt a small amount in the bottom of a pot and then add more snow slowly. If you fill a pot with snow and put it over a fire, the snow at the bottom may sublimate directly into a gas, leaving the bottom of the pot dry and vulnerable to melting.
 * Pouring boiled water back and forth between pots after boiling will remove the flat taste. If you are very thirsty, you will not notice a flat taste.
 * If in the desert, do not remove your clothing as your sweat will evaporate more quickly and you will dehydrate faster. Ideally you want light colored, lightweight, loose clothing that covers as much skin as possible.
 * Do your work in the early mornings and at dusk to avoid the hottest part of the day. Get extra sleep during that time.
 * Your stomach is the best water container. People have been found dead of dehydration with water still in their canteens. Don't drink more than you need to, but don't be stingy with it either.
 * Always try to protect yourself as much as possible from the wind, it can dehydrate you in mere hours of exposure in areas with little cover, particularly mountains and plains.

If a natural water source is available
It is not difficult to obtain water from a natural body of fresh water such as a river or lake, but this water should not be used untreated. Natural water often contains organisms that cause infectious disease, most notably Giardia lamblia. There are four ways to remove this threat and make natural water potable.

This method can also be used to purify salt water. As long as the salt water is not allowed to get on your collection surface or in your collection container the water will be potable.
 * Water may be boiled over a campfire or portable stove. At high altitudes, water boils at a lower temperature, so the boil must be maintained for several minutes to kill the microorganisms.
 * Water may be filtered with a portable water purification device. Water purifiers differ widely, so if you own one, familiarize yourself with the instruction manual. If the water is visibly dirty, pour it through a clean cloth to remove large particles and avoid prematurely clogging the purifier.
 * Certain chemicals, such as dilute chlorine solution, are commercially sold as antimicrobial additives. Some leave an unpleasant flavor that may be masked with powdered drink mix.
 * Water may be added to an evaporation still or solar still to purify the water through the natural evaporative process. Questionable water is added then when it evaporates it rises and condenses on a cooler surface. It then drips into your collection container where it can be collected using tubing to maintain the efficiency of your still. The warmer the still becomes the faster you will be able to collect pure water. Only a few chemicals will evaporate with the water one of which is benzene. This is usually only a concern when trying to purify flood waters.

The evaporation still
Water may also be obtained from the soil or from plant matter.

Probably the best way to get water from the ground is the evaporation still, shown in cross-section in the diagram at right. To build an evaporation still, you need only four items: a shovel, a sturdy sheet of transparent plastic, a cup, and a piece of flexible plastic tubing long enough to reach from the middle of the plastic sheet to the side with some excess length.

Begin by digging a hole with sloping sides in the shape of the sheet of plastic, but slightly smaller. Avoid digging in hot weather, as you will lose considerable amounts of water through sweat. Sink the cup in the middle of the hole so that the rim is almost flush with the sides of the hole. Place one end of the tube in the cup, run the other end to the outside of the hole, and place the sheet of plastic over the whole assembly. Weigh down the sides of the plastic sheet, or anchor them with stakes, and place a small weight directly over the cup.

The evaporation still will produce water continuously. The plastic sheet will create a greenhouse effect in the still, accelerating the natural evaporation of water from the soil. When the water vapor hits the plastic sheet, it will condense and drip down into the cup. The tubing may be used to drink from the cup without disturbing the still. For added effectiveness, use a second cup to pour any available water-based fluids, such as urine or water collected from roofing or tent surfaces into the pit. A second tube would also work for this same purpose.

The vegetation still
An easier method uses just a plastic bag. Gather enough succulent vegetation (big leaves, cacti stripped of their thorns, etc.) to mostly fill the bag. Mash it to break through the leaves' outer water-resistant cuticle. As in the evaporation still, a greenhouse effect will cause water to evaporate from the leaves. It will then condense on the plastic and run down into the bottom of the bag.

The water in the bag will pick up chemicals from the leaves. These will give it a strong leafy flavor, and may include toxins, so make sure not to gather any poisonous plants.

Vegetation may also be added to an evaporative still to avoid the unpleasant taste but the used vegetation will have to be cleared out after the water has been collected from it. Preferably at night when the still is less effective.

title: Outdoor Survival/Water


text:
School Science/Oyster cultivation in seawater ponds

Crassostrea gigas, the Japanese oyster, is ideally suited for cultivation in sea water ponds or in the water from seawater ponds. Major advantages of this oyster are:
 * 1) Gigas does well in water with high concentrations of phytoplankton, the normal situation in marine ponds which are growing fish or prawns and which therefore have high nutrient loadings.
 * 2) Spat (the juveniles) of gigas are readily available from hatcheries all over the world and are also not too difficult to reproduce in a modest mariculture hatchery.
 * 3) Gigas has a ready market and is a fast grower. In phytoplankton rich water it becomes very fat (lots of glycogen stored) and as a result is very tasty.
 * 4) Gigas can survive a wide range of temperatures from near freezing up to 30 degrees although it grows fastest and fattest at around 20 degrees.

Experimental Cultivation of gigas
A simple way to test if the oysters will thrive is to construct some simple baskets of stiff plastic mesh (netlon for instance). Put in a few tens of small, young gigas and suspend the baskets from the monks (water outlet structures) of the pond. Use mesh of at least 10mm opening so that it doesn't plug up too quickly with marine fouling organisms. A simple way of doing this is to cut two disks of, say, 30cm diameter one for the top and one for the bottom and a strip of, say 10cm wide for the side. Sew up with plastic cord and leave a place where the baskets can be opened to add and remove oysters as necessary. Attach three cords equally spaced around the upper rim, tie them together and attach a cord long enough to suspend baskets in the pond. Gigas grown this way in Elat reached a total weight of 75 grams in 9 months and had very high quality indices.

Crassostrea produce large amounts of faeces and pseudofaeces when they are in plankton rich water so every few days they will need to be agitated to remove this material. Otherwise they will smother. Further along in this module we describe a way of growing the oysters so that they are pretty well immune from this build up of sediment.

Oyster Morphology
If you cup your left hand and cover the cup with your right hand which you keep flat, this represents the shells of an oyster. The hinge is at the part of your hand nearest to the wrist and the opening at the ends of your fingers. Imagine your body shrinking until it will fit inside your hands in the same orientation as you are sitting now. The cupped left hand is the left shell of the oyster but since this is the shell that is attached to the substrate (often intertidal rocks in the case of Saccostrea sp.) it is commonly referred to as the lower shell while the flat right shell is commonly called the upper shell. A membrane or skin attaches along the oysters back and lines the shells. This membrane is called the mantle.

Oyster Feeding
Oysters feed by means of their gills. They close the gap between the shells with their mantle, leaving an openings where your thumb and little finger are in the above paragraph. Cillia on the gills beat, creating a flow of water in one opening and out the other. The mucus on the gills captures particles and the action of cilia move the mucus with its edible particles along pathways on the gills towards the mouth. Inedible particles are sent along other pathways away from the mouth. From time to time, the oyster closes quickly, blowing out the unwanted particles which are stuck together with mucus. This expelled material is referred to as pseudofaeces. As it is now in larger particles than when it was individual cells of phytoplankton, it sinks faster and forms an organic layer along with ordinary faeces on the bottom of its growing vessel (pond, trough, tank etc.)In waters with high concentrations of plankton, even particles which are edible by the oysters are expelled as pseudofaeces. This potential food is therefore lost to the oysters. Below a method to make better use of more of the available food is described.

More Efficient Use of Phytoplankton
Oysters produce pseudofaeces when exposed to edible particles in high concentrations. This, of course, wastes food that could have been used to grow more oysters. It also produces more grunge which rapidly turns anaerobic and must be cleared more often from the growing vessel. Since marine fish and prawns are fed with large quantities of prepared feed, in sunny areas, where much of this type of cultivation occurs, very rich blooms of phytoplankton develop in the ponds. Any system which presents this food at the correct concentration to the oysters will increase the quantity of oysters that can be grown from a given area of sea water pond. A way which has been used successfully is to build a trough (1m x 1m for instance) which is a little lower than the pond. The water leaving the pond is run through the trough. Instead of letting all the water in one end and out the other, the water is introduced all along the trough. This keeps renewing the phytoplankton as the oysters remove it and ensures that all the oysters are growing in an algae soup which is more dilute in phytoplankton than the water in the pond.

Cleaning the Trough
Oysters produce very large amounts of faeces and if in rich water, large amounts of pseudofaeces. After a time this material builds up on the bottom of the trough, becomes anaerobic and begins to produce hydrogen sulphide an ammonia. It is wise to fit the oyster trough with monk boards or some similar system so that the water can be let down completely and the trough flushed out. At the same time the oysters can be washed off although this becomes much less critical with the following growing method.

Self Cleaning Oysters
While a common method of growing oysters it to put them on mesh trays with their lower shells down, in this orientation, the oysters can easily be smothered by the solid wastes of oysters above them. The trick is to suspend them hinge up, opening down. A method which worked well in a pilot study in Elat was to glue spat on to netlon mesh on trays and place them in the ponds or troughs. As an oyster grows it attaches by its lower shell to the substrate. After a few weeks, the trays were removed from the water and the mesh cut up to leave an eye of mesh distal to the hinge on each oyster. The oysters were then suspended from the corners of vinyl coated wire weld mesh with a hole size of 55mm. This was fairly labour intensive but when compared with the work that goes into cleaning oysters on trays or the work done to grow oysters in the intertidal zone in many parts of the world then it can be seen that even this experimental method was not that onerous. Once the oysters are suspended this way, they are only handled once again for harvest.

Shell Worm
In many parts of the world there are worms that settle on the lip of oysters and then grow inbetween the layers of the shell. When an oyster is opened, the cavity thus produced is often broken into and spills its contents of anaerobic mud on to the oyster. These worms are particularly prevalent in muddy conditions. One way of reducing such attacks is to clean the oysters often. However, a less laborious way is to ensure that these animals do not enter the pond. Since they enter as microscopic larvae, this necessitates the microfiltration of the water entering the ponds. With the high exchange rates typically used in marine ponds, this is impossible or at least very expensive by man made mechanical methods.

A better way is to take the water from the beach or sea bottom. A number of methods have been used, depending on the individual location. In desert areas or areas where, due to the particular geology of the site, there is no fresh water flowing underground out into the sea, a well can often be dug above the high tide mark and a pump lowered into the well. If you are lucky enough to have such a site, this is probably the least expensive system to build and to run. The entire beach adjacent to the site becomes the filter for the well. Since the area is very large, the flow rate becomes very slow and the filter will often act as a live filter rather than as a mechanical filter.

As water is sucked through the beach or seabottom, oxygen goes with it. This allows many organisms to settle in the spaces between the particles. Many of these filter particulate material from the water. A good indication that the filter is actively filtering is a level of Oxygen in the water entering the pond which is lower than the oxygen level in the nearby ocean.

Oyster Quality
There are a number of measurements of "oyster quality". One of the most accepted indices is to divide the dry weight of the oyster meat in grams by the volume of the space where the oyster lives in cubic centimetres. The dry weight of the oyster meat is obtained by drying to constant weight the meat of the shucked oyster at just over 100 degrees. The volume of the cavity is found as follows. The unshucked, closed oyster is suspended by a thread from the hook under a top loading balance. The weight is noted. A container of water is brought up under the oyster and raised until the whole oyster is immersed. The change in weight in grams is equal to the volume of the oyster in cubic centimetres. After the oyster is shucked, the same procedure is followed with the empty shell. The difference in the two measurements is the volume of the cavity of the oyster.


text:
Talk:School Science/Oyster cultivation in seawater ponds

Oyster cultivation in seawater ponds authors and history
= From Wikipedia:Talk:Oyster cultivation in seawater ponds = Is this information copyrighted? -- Zoe
 * 2005-11-14 19:00:19 User:Uncle G (The article has been copied to Wikibooks.)
 * 2005-08-08 08:30:38 User:Dmcdevit (change to wikibooks,thisis a how-to)
 * 2005-04-05 21:34:02 User:Grenavitar m
 * 2005-02-17 14:20:16 Wikipedia:User:Radiant!
 * 2005-01-06 17:38:48 User:Kevin Jones
 * 2002-11-25 09:58:43 User:William
 * 2002-11-19 15:07:20 User:Derek Ross m (sp)
 * 2002-11-19 13:36:35 User:Derek Ross m (sp)
 * 2002-11-19 13:34:38 User:Derek Ross m (sp)
 * 2002-11-19 13:24:58 User:Derek Ross m (sp)
 * 2002-11-19 08:06:57 User:Sjc (fix wrapping issue)
 * 2002-11-19 07:26:16 User:William
 * 2002-11-19 06:55:13 User:William
 * 2002-11-19 06:50:56 User:William
 * 2002-11-19 06:35:07 User:William
 * 2002-11-18 07:15:54 User:Sjc
 * 2002-11-18 07:15:17 User:Sjc m (Wraps)
 * 2002-11-18 06:47:54 User:William
 * 2002-11-17 08:27:46 User:Merphant m
 * 2002-11-17 07:52:13 User:William
 * 2002-11-17 07:06:54 User:Zoe
 * 2002-11-17 07:04:30 User:William

Perhaps the anatomical and biological information should be moved to Oyster... --hb

Interesting that the Dutch article nl:Japanse oester refers to a different genus (Crassostrea gigas). A-giau 04:16, 18 Oct 2004 (UTC)

Why would this be moved to wikisource? It seems rather useful gren 04:57, 31 Mar 2005 (UTC)


text:
Transwiki:Packages in Java

In the Java programming language, a package is a group of related classes and interfaces. Packages in Java have a close correspondence to packages in the UML; they are less closely related to namespaces in C++.

Although it is conventional to name Java packages hierarchically, this hierarchy has no semantics in the language. For example, packages that begin with "java" are part of the Java language specification, and the package  and other packages that begin with "java.lang" contain classes that are core to the language. However, it is not possible to import all of the Java classes (for example, classes in,  ,  , etc.) with the statement import java.*; and the statement import java.lang.*; will import all of the classes in the package, but not the packages   or. This is in contrast to the hierarchical namespaces of C++.

Like class names, package names in Java specify the location of class files. Classes in the package  must be located in a directory. This rule has been criticized (primarily by the designers of C#) as unduly restrictive on the programmer. However, this restriction does simplify the design of the class loader.

Java packages that begin with "java" are part of the Java language specification. Packages that begin with "javax" are extensions to the specification, sometimes refining or replacing functionality in "java" packages. The java.*, javax.* and org.* packages make up the Java platform's official API - all implementions of J2SE that are "100% pure Java" should support these packages out of the box. Other packages are external to the platform.

Java packages other than those in the language specification follow a naming convention that ensures there are no naming conflicts. A package name should start with the domain name reversed, for example "com.sun" for packages from www.sun.com. Within a given company or educational institution, the rest of the package name follows a standard set by that company or institution, but a common organization is to have the next part of the package name indicate the department (so, for example "edu.mit.cs").

Packages in the language specification
As of version 5:

 * - Interface for applets
 * - Abstract Windowing Toolkit
 * - AWT color support
 * - AWT drag and drop support
 * - AWT event model
 * - AWT font
 * - AWT geometry specification
 * - AWT general input method support
 * - AWT image support
 * - AWT printing support
 * - Java Beans specification for J2EE
 * - Standard input/output API
 * - Big integer and big decimal classes
 * - Basic internet API
 * - Non-blocking IO
 * - Java remote method invocation API
 * - Security
 * - SQL support
 * - Advanced formatting for dates, numbers, etc.
 * - Utility classes, including the Java collections framework
 * - Concurrency support
 * - Atomic operation support
 * - Locks
 * - .jar file support
 * - Logging
 * - System preference and configuration data
 * - Regular expression API
 * - .zip file support
 * - Extensions for accessibility support
 * - Activity service exceptions thrown by the ORB
 * - Cryptographic operations
 * - Image I/O
 * - Extensions for VM management
 * - Naming service support
 * - Extensions for Internet
 * - Extensions for printing
 * - Extensions for RMI
 * - RMI using CORBA
 * - Authentication and authorization
 * - Kerberos support
 * - X.500 support
 * - Java sound API for MIDI
 * - Java sound API for sampled sound
 * - Extensions for SQL
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Regular expression API
 * - .zip file support
 * - Extensions for accessibility support
 * - Activity service exceptions thrown by the ORB
 * - Cryptographic operations
 * - Image I/O
 * - Extensions for VM management
 * - Naming service support
 * - Extensions for Internet
 * - Extensions for printing
 * - Extensions for RMI
 * - RMI using CORBA
 * - Authentication and authorization
 * - Kerberos support
 * - X.500 support
 * - Java sound API for MIDI
 * - Java sound API for sampled sound
 * - Extensions for SQL
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Naming service support
 * - Extensions for Internet
 * - Extensions for printing
 * - Extensions for RMI
 * - RMI using CORBA
 * - Authentication and authorization
 * - Kerberos support
 * - X.500 support
 * - Java sound API for MIDI
 * - Java sound API for sampled sound
 * - Extensions for SQL
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Authentication and authorization
 * - Kerberos support
 * - X.500 support
 * - Java sound API for MIDI
 * - Java sound API for sampled sound
 * - Extensions for SQL
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Java sound API for MIDI
 * - Java sound API for sampled sound
 * - Extensions for SQL
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Swing API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Plugable look and feel support for Swing
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - Undo support for Swing
 * - General XML API
 * - General XML API
 * - General XML API

title: Transwiki:Packages in Java


text:
Transwiki talk:Packages in Java

Packages in Java authors and history
= From Wikipedia:Talk:Packages in Java =
 * 2005-11-14 19:01:40 User:Uncle G (The article has been copied to Wikibooks.)
 * 2005-10-24 19:18:30 User:82.211.215.3
 * 2005-10-06 12:47:51 User:210.18.184.12
 * 2005-09-15 23:42:07 User:Tonigonenstein (→Java Package Count)
 * 2005-09-08 06:20:53 User:203.99.195.2 (→Packages in the language specification)
 * 2005-08-30 11:25:30 User:213.42.2.29
 * 2005-08-30 11:18:18 User:213.42.2.26
 * 2005-06-16 13:41:46 User:DropDeadGorgias (+cat)
 * 2005-05-01 08:49:43 User:Samxli (updated java.math link)
 * 2004-12-12 05:19:09 User:CanisRufus m (RedWolf - dab Kerberos)
 * 2004-11-29 18:11:48 User:130.49.144.22 (Added clarification from http://java.sun.com/products/jdk/faq/faq-sun-packages.html)
 * 2004-11-21 18:20:40 User:CanisRufus m (RedWolf - dab font)
 * 2004-10-19 17:35:08 User:Solipsist m (redlink fix X.500)
 * 2004-10-09 18:47:46 User:AlistairMcMillan (De-link package)
 * 2004-09-01 05:43:05 User:RedWolf m (disambiguation: UML)
 * 2004-09-01 01:01:42 User:CyborgTosser (descriptions and links for packages)
 * 2004-09-01 00:34:42 User:CyborgTosser (packages in specification)
 * 2004-08-31 23:21:23 User:CyborgTosser (naming convention)
 * 2004-08-31 22:48:51 User:Diberri (packages also include interfaces; cleanup table fmt)
 * 2004-08-31 22:30:14 User:CyborgTosser (in progress)

title: Transwiki talk:Packages in Java


text:
School Science/Potometer

A potometer is a device used for measuring the rate of water uptake of a leafy plant shoot. The main reason for water uptake by a cut shoot is transpiration (evaporation in plants) and is affected by the transpiration stream.

By changing the surrounding atmospheric conditions, the effect on transpiration of wind, heat, and humidity can be measured. Potometers are notoriously difficult to set up, because air bubbles in the xylem of the plant or in the apparatus itself will prevent the device from working properly.

The basic design of a potometer
It consists of:
 * A length of capillary tube An air bubble is introduced to the capillary. As water is taken up by the plant, the bubble moves and its length of movement  is measured by  the  scale  attached with  capillary tube . The distance the bubble travels in a given time is determined by the rate of transpiration by the plant.
 *  A reservoir. By turning the tap on the reservoir, the position of the bubble can be set at the start of the experiment. Some designs of potometer use a syringe instead of a funnel with a tap.
 * A tube for holding the shoot. In the diagram the shoot is held in place by inserting a rubber bung in the tube. The hole in the bung through which the shoot passes must be thoroughly greased with petroleum jelly to keep it airtight.

Setting up:

 * 1) Cut a leafy shoot from a plant (e.g. Pelargonium) and plunge its base into water (try not to get any water on the leaves). This prevents the xylem from taking up any air.
 * 2) Back in the laboratory, put the stem into a large sink full of water and carefully trim the shoot again, by cutting off the bottom under water with a sharp razor blade. Keep the leaves out of the water.
 * 3) Immerse the whole of the potometer into the sink. Move it about until all the air bubbles come out.
 * 4) Put the shoot stem into the bung, grease the joint with plenty of petroleum jelly, then put the bung into the potometer.
 * 5) Make sure the tap is closed, then lift the whole ensemble out of the water.
 * 6) Leave the end of the capillary tube out of the water until an air bubble forms then put the end into a beaker of water.

Using a potometer
Allow the bubble time to go around the corner and start at the beginning of the millimeter scale. Then measure how far the bubble moves in a given period of time. Repeat under different conditions and compare. The usual conditions to try are placing the plant in a bright light, placing it by a fan, and placing it in a humid atmosphere. If the surface area (both sides) of the leaves are measured then it is possible to compare the transpiration rates of different species of plant. A useful comparison unit could be '''Water loss(ml)/cm2/minute

Limitations of a potometer
 * 1) Introducing the air bubble is not easy.
 * 2) The leafy shoot may not remain fully alive for as long as wanted.
 * 3) Any changes in the outside air temperature may affect the position of the air bubble in the capillary tube.

title: School Science/Potometer


text:
Talk:School Science/Potometer

Potometer authors and history
= From Wikipedia:Talk:Potometer =
 * 2005-09-10 22:33:55 User:Beland
 * 2005-05-14 20:06:51 User:81.153.152.109 (→Using a potometer)
 * 2005-05-12 14:08:20 User:81.155.143.35 (→Using a potometer)
 * 2005-05-12 14:06:49 User:81.155.143.35 (→Using a potometer)
 * 2005-03-08 15:24:17 User:193.60.78.118 (m)
 * 2005-03-08 15:14:32 User:PatGallacher (revert suspected vandalism but keep recent changes)
 * 2005-02-28 12:52:20 User:OldakQuill (→Setting up - Fixes)
 * 2005-02-27 14:46:38 User:195.93.21.67 (→The basic design of a potometer)
 * 2005-01-12 11:49:24 User:Plek m (Balance parentheses - Please help out by clicking here to fix someone else's parentheses)
 * 2004-12-11 06:22:14 User:Walkiped m (→The basic design of a potometer -  spelling - reservoir)
 * 2004-10-04 20:58:58 User:Theresa knott m (Reverted edits by 62.252.64.12 to last version by 203.83.100.100)
 * 2004-10-04 20:41:26 User:62.252.64.12 (→The basic design of a potometer)
 * 2004-09-29 09:13:14 User:203.83.100.100 (→The basic design of a potometer)
 * 2004-09-24 21:36:15 User:Joseph Philipsson m (→The basic design of a potometer - - Two speeling corrections)
 * 2004-09-23 20:10:02 User:Theresa knott m (Reverted edits by 62.254.128.4 to last version by 172.198.213.101)
 * 2004-09-23 20:06:57 User:62.254.128.4 (→The basic design of a potometer)
 * 2004-06-30 01:54:32 User:172.198.213.101
 * 2004-06-29 09:55:32 User:62.171.194.4 (→External link)
 * 2004-06-26 05:55:50 User:Rmhermen m (typo)
 * 2004-04-28 11:56:05 User:217.204.254.211
 * 2004-03-03 17:44:24 User:217.44.169.242
 * 2004-03-03 17:43:43 User:217.44.169.242
 * 2003-12-15 10:42:26 User:Dysprosia m (casing in headers)
 * 2003-12-15 10:39:21 User:192.116.128.162
 * 2003-11-17 19:57:38 User:Reddi m (See also: )
 * 2003-11-15 00:31:16 User:Theresa knott m (spelling)
 * 2003-11-14 19:44:41 User:Reddi m
 * 2003-10-20 01:20:03 User:Angela m (remove duplicated word)
 * 2003-06-23 00:44:17 User:SimonP m
 * 2003-06-20 11:03:27 User:Theresa knott (A reasonably complete first draft. |Needs copy editing)
 * 2003-06-20 10:57:01 User:Theresa knott (Adding a "using a potometer" Section. )
 * 2003-06-20 10:38:05 User:Theresa knott (Adding how to set the apparatus up. Still work in progress)
 * 2003-06-20 09:58:51 User:Theresa knott (fleshing out the basic design section)
 * 2003-06-20 09:40:10 User:Theresa knott (Setting up the headings. Still very much WIP)
 * 2003-06-20 08:48:19 User:Theresa knott (Stub article, work in progress, more to follow.)

title: Talk:School Science/Potometer


text:
Computer Programming/Type conversion

Type conversion
In computer science, type conversion or typecasting refers to changing an entity of one datatype into another. There are two types of conversion: implicit and explicit. The term for implicit type conversion is coercion. Explicit type conversion in some specific way is known as casting. Explicit type conversion can also be achieved with separately defined conversion routines such as an overloaded object constructor.

Implicit type conversion
Implicit type conversion, also known as coercion, is an automatic type conversion by the compiler. Some languages allow, or even require compilers to provide coercion.

In a mixed type expression, a subtype s will be converted into a supertype t or some subtypes s1, s2, ... will be converted to a supertype t (maybe none of the si is of type t) at runtime so that the program will run correctly. For example:

is legal in a C language program. Although d, l and i belong to the different datatypes, they will be automatically converted into the same datatype each time a comparison or assignment is executed.

Explicit type conversion
There are several kinds of explicit conversion.

 * checked : before the conversion is performed a runtime check is done to see if the destination type can actually hold the source value. If not an error condition is raised.
 * unchecked : no check is performed and when the destination type can not hold the source value the result is undefined.
 * bit pattern : The data is not interpreted at all and just the raw bit pattern is copied.

Each programming language has its own rules on how types can be converted. In general, both objects and fundamental data types can be converted.

in C/C++
A cast, or explicit type conversion, is special programming instruction which specifies what data type to treat a variable as (or an intermediate calculation result) in a given expression.

Casting will ignore "extra" information (but never adds information to the type being casted). The C/C++ cast is either "unchecked" or "bit pattern".

As an example with fundamental data types, a fixed-point float could be cast as an integer, where the data beyond the decimal (or binary) point is ignored. Alternatively, an integer could be cast as a float if, for example, a function call required a floating point type (but, as noted, no information is really added 1 would become 1.0000000).

Object casting works in a similar way. A subclass can be cast as a parent type, where the "extra" information that makes it a subclass is ignored, and only the parts inherited from the parent are treated. For example, a triangle class derived from a shape class could be cast as a shape.

Two common casting styles
There are two common casting styles, each outlined below.

C-style casting
This style of casting is used in C and Java. It follows the form:

C++-style casting
Several cast syntaxes are used in C++ (although C-style casting is supported as well). The function-call style follows the form:

This style of casting was adopted to force clarity when using casting. For example, the result of, and intention of, the C style cast may not be clear, while the same cast using C++-style casting allows more clarity: or

Later in the evolution of C++, the following more explicit casts were added to the language to clarify the programmer's intent even further:

Static casts converts type-compatible values. For instance the following:

converts the double-precision floating point value  (3.0) to the corresponding integer value (3). Static casts can be dangerous:

Static casts on pointers or references do not verify that the pointed-to object is type-compatible to the new type.

A dynamic cast is safer than a static cast in this scenario: it is compiled by the compiler into a call to the C++ runtime library where a check is made to ensure legal casts. This is analogous to the casts in Java.

Dynamic casts on pointers return a null pointer if cast value is type incompatible. Dynamic casts on a reference throw a type exception.

A const cast casts away the constness of an object, returning a non-const reference to the same object. This allows modifications to objects that normally would be treated read-only by the compiler:

The reinterpret cast is the most notorious one in C++. It allows the reinterpretation of the raw bit pattern of the value to be cast, disregarding the type system completely. For example, it allows the casting of an arbitrary integer to a pointer to an object:

//Using Converting of Type casting

Console.WriteLine("\nUsing Converting of Type casting"); string U = "10000000"; int V = Convert.ToInt32(U);

Console.WriteLine("\nHinger value={0} and Lower value ={1}", U, V); Opinions were divided when these verbose casts were introduced into the language. Detractor]]s argued the new syntax was 'ugly', while supporters claimed that since casting is such an 'ugly' activity to begin with, it should be highlighted with an 'ugly' syntax to alert programmers. Another perceived advantage is the ease with which verbose casts can be located in source code using programming tools like grep.

External Resources

 * Casting in Ada
 * Casting in Java
 * Comparison of Casting in ABAP and Java

title: Computer Programming/Type conversion


text:
Talk:Computer Programming/Type conversion

Type conversion authors and history
= From Wikipedia:Talk:Type conversion = = Off topic =
 * 2005-10-27 12:52:31 User:65.116.102.4
 * 2005-10-10 13:27:03 User:TuukkaH (details)
 * 2005-10-06 08:24:34 User:198.54.202.18 (→General)
 * 2005-10-06 08:22:45 User:198.54.202.18 (→General)
 * 2005-09-28 22:29:22 User:Orderud m (updated c++ link)
 * 2005-09-25 13:24:44 User:Krischik m (→in Ada - fix link)
 * 2005-09-25 13:18:32 User:Krischik m (→in Ada - change text and use Wikibooks Template)
 * 2005-09-25 13:15:47 User:Krischik (→in Ada)
 * 2005-09-25 04:02:42 User:82.232.3.83
 * 2005-09-20 14:37:51 User:Krischik m (→in Ada - link has changed)
 * 2005-09-20 04:43:59 User:CanisRufus m (dab exception)
 * 2005-08-26 09:34:38 User:Pearle m (Changing  to )
 * 2005-08-03 20:52:14 User:Goplat m (Stop! Hammer time.)
 * 2005-08-03 20:46:22 User:Goplat m (fmt, fix some broken c/c++)
 * 2005-07-20 00:56:56 User:213.78.238.205 (→Implicit type conversion)
 * 2005-07-01 06:33:59 User:R. S. Shaw m (cat comp->data types)
 * 2005-06-06 08:46:57 User:217.244.1.131 (de)
 * 2005-06-05 23:05:45 User:Aezram m ('convertion' -> 'conversion';  -- Join and fix more!)
 * 2005-06-01 01:38:01 User:211.128.97.88 (→C++-style casting)
 * 2005-05-31 01:40:09 User:The Storm Surfer (→Implicit type conversion - not actually a complete program)
 * 2005-05-31 01:38:53 User:The Storm Surfer m (→Implicit type conversion - phrasing)
 * 2005-05-26 16:09:24 User:Jacob grace (add coercion, implicit/explicit things)
 * 2005-05-26 13:58:06 User:Jacob grace
 * 2005-04-16 05:02:48 User:Who ((update merge template))
 * 2005-03-23 15:01:16 User:Wlievens m (→C++-style casting -  link)
 * 2005-02-18 00:03:12 User:Netoholic m (use correct template)
 * 2005-01-28 14:49:09 User:Sam Hocevar m (spelling)
 * 2005-01-14 05:35:59 User:Scott Burley m (cleanup)
 * 2004-11-29 18:07:53 User:Krischik m (→in C/C++)
 * 2004-11-29 18:04:03 User:Krischik m (chapter on Ada)
 * 2004-11-29 14:30:11 User:Krischik m (→General - spelling)
 * 2004-11-29 14:26:15 User:Krischik (seperate genral info from c specific)
 * 2004-11-29 14:00:14 User:Krischik m (fix link to C+ book)
 * 2004-11-29 13:35:47 User:Krischik m
 * 2004-11-21 14:32:02 User:TakuyaMurata (type conversion merged)
 * 2004-11-20 22:14:51 User:Lowellian (type conversion is a more general and technical term that also has less potential for confusion with other meanings (such as "casting" in acting) that is the correct name for this article.)
 * 2004-10-31 13:11:09 User:Neilc
 * 2004-07-01 04:04:53 User:YahoKa (fix spacing, change "int" to "type" in examples to make them more generic and clear)
 * 2004-06-26 05:08:36 User:RedWolf m (→C++-style casting - dab Java)
 * 2004-06-24 14:53:35 User:217.215.111.114 (// More on C++ casting)
 * 2004-06-14 02:59:15 User:RedWolf m (fixed 2 typos)
 * 2004-04-16 08:50:10 User:Dysprosia m (casing in headers)
 * 2004-04-16 08:49:11 User:Dysprosia m (don't start with a header)
 * 2004-03-26 22:59:52 User:YahoKa

This article is off topic. Most of it is not "Type conversion" but "tutorial to C/C++ cast operation".

I did some to improve (see history) but I would ask the C/C++ advocates to consider two things:

 * 1) tutorials belong to wikibooks.
 * 2) that there are other programming languages where "Type conversion" has a more broader meaning.

and maybe improve the C/C++ chapter.

 * You are right in that the current article is not good at all. But we need to remember that C++ has quite complex type conversion system, compared with others. The problem is the shortcoming, which is not intentionally done by C/C++ advocates but is mere result of lack of contributions so far. If you think the article goes too deep, take a look at LR parser and the like.

-- Taku 04:27, Nov 30, 2004 (UTC)

 * Did you read my Ada article? C++ is not the only language with a complex type conversion system. And of corse is should be described in wiki. The question I was trying to raise was "wikipedia vs wikibooks". How much of C/C++ cast need to be described in wikipedia "The Free Encyclopedia" and what should better moved to wikibooks "Think Free. Learn Free".

--Krischik 09:43, 30 Nov 2004 (UTC)

 * I support the idea of a merger between "typecasting" and "type conversion". I was searching for dynamic_cast<>. The first link I took brought me to "typecasting". However, I found the explanation on "type conversion".

--Kriti 05:24, 24 Aug 2005(UTC)

 * I am looking for a way to convert a string to integer when you know the string character is a number like 7.

--Mrja84 20:14, 11 Oct 2005(ESDT)

 * Of course, this depends on the language and primitives you want to use. But since you're asking, the answer could be . --TuukkaH 14:45, 12 October 2005 (UTC)


text:
User talk:81.247.84.143

Please stop adding nonsense to Wikibooks. It is considered vandalism. If you would like to experiment, use the sandbox. Thank you.

title: User talk:81.247.84.143


text:
User talk:65.174.35.70

Thanks for experimenting with Wikibooks. Your test worked, and has now been removed. Please use Sandbox for any other tests you want to do, since testing material in modules will normally be removed quickly. Please see the welcome page if you would like to learn more about contributing to our project. Thanks. -- LV (Dark Mark) 20:07, 14 November 2005 (UTC)

title: User talk:65.174.35.70


text:
Communication Systems/FM and PM Generalization

Concept
We can see from our initial overviews that FM and PM modulation schemes have a lot in common. Both of them are altering the angle of the carrier sinusoid according to some function. It turns out that we can go so far as to generalize the two together into a single modulation scheme known as angle modulation. Note that we will never abbreviate "angle modulation" with the letters "AM", because Amplitude modulation is completely different from angle modulation.

Instantaneous Phase
Let us now look at some things that FM and PM have of common:

 * $$s_{FM} = A\cos (2 \pi [f_c + ks(t)]t + \phi)$$

 * $$s_{PM} = A\cos (2 \pi f_c t + \alpha s(t))$$

What we want to analyze is the argument of the sinusoid, and we will call it Psi. Let us show the Psi for the bare carrier, the FM case, and the PM case:

 * $$\Psi_{carrier}(t) = 2 \pi f_c t + \phi$$

 * $$\Psi_{FM}(t) = 2 \pi[f_c + ks(t)] t + \phi$$

 * $$\Psi_{PM}(t) = 2 \pi f_c t + \alpha s(t)$$

 * $$s(t) = A\cos(\Psi(t))$$

This Psi value is called the Instantaneous phase of the sinusoid.

Instantaneous Frequency
Using the Instantaneous phase value, we can find the Instantaneous frequency of the wave with the following formula:

 * $$f(t) = \frac{d\Psi(t)}{dt}$$

We can also express the instantaneous phase in terms of the instantaneous frequency:

 * $$\Psi(t) = \int_{-\infty}^t f(\lambda)d\lambda$$

Where the Greek letter "lambda" is simply a dummy variable used for integration. Using these relationships, we can begin to study FM and PM signals further.

Determining FM or PM
If we are given the equation for the instantaneous phase of a particular angle modulated transmission, is it possible to determine if the transmission is using FM or PM? it turns out that it is possible to determine which is which, by following 2 simple rules:

 * 1) In PM, instantaneous phase is a linear function.
 * 2) In FM, instantaneous frequency minus carrier frequency is a linear function.

For a refresher course on Linearity, there is a chapter on the subject in the Signals and Systems book worth re-reading.

Bandwidth
In a PM system, we know that the value $$\alpha s(t)$$ can never go outside the bounds of $$(-\pi, \pi]$$. Since sinusoidal functions oscillate between [-1, 1], we can use them as a general PM generating function. Now, we can combine FM and PM signals into a general equation, called angle modulation:

 * $$v(t) = A \sin ( 2 \pi f_c t + \beta \sin (2 \pi f_m t))$$

If we want to analyze the spectral components of this equation, we will need to take the Fourier transform of this. But, we can't integrate a sinusoid of a sinusoid, much less find the transform of it. So, what do we do?

It turns out (and the derivation will be omitted here, for now) that we can express this equation as an infinite sum, as such:

 * $$v(t) = A \sum_{n = -\infty}^{\infty}J_n(\beta) \sin [2 \pi(nf_m + f_c)t] $$

But, what is the term $$J_n(\beta)$$? J is the Bessel function, which is a function that exists only as an open integral (it is impossible to write it in closed form). Fortunately for us, there are extensive tables tabulating Bessle function values.

The Bessel Function
The definition of the Bessel function is the following equation:

 * $$J_n(\beta) = \frac{1}{2\pi} \int_{-\pi}^\pi e^{j[\beta sin\theta - n\theta]} d\theta$$

The bessel function is a function of 2 variables, N and $$\beta$$.

Bessel Functions have the following properties:

 * If n is even:
 * $$J_{-n}(\beta) = J_n(\beta)$$

 * If n is odd:
 * $$J_{-n}(\beta) = -J_n(\beta)$$

 * $$J_{n-1} + J_{n+1} = \frac{2n}{\beta}J_n(\beta)$$.

The bessel function is a relatively advanced mathematical tool, and we will not analyze it further in this book.

Carson's Rule
If we have our generalized function:

 * $$v(t) = A\sin ( 2 \pi f_c t + \beta \sin (2 \pi f_m t))$$

We can find the bandwidth BW of the signal using the following formula:

 * $$BW=2(\beta + 1)f_m = 2(\Delta f + f_m)$$

where $$\Delta f$$ is the maximum frequency deviation, of the transmitted signal, from the carrier frequency. It is important to note that Carson's rule is only an approximation (albeit one that is used in industry frequently).

Demodulation: First Step
Now, it is important to note that FM and PM signals both do the same first 2 steps during demodulation:

 * 1) Pass the signal through a limiter, to remove amplitude peaks
 * 2) Pass the signal through a bandpass filter to remove low and high frequency noise (as much as possible, without filtering out the signal).

Once we perform these two steps, we no longer have white noise, because we've passed the noise through a filter. Now, we say the noise is colored.

here is a basic diagram of our demodulator, so far:

channel s(t) -> r(t) --->|Limiter|--->|Bandpass Filter|>z(t)

Where z(t) is the output of the bandpass filter.

Filtered Noise
To denote the new, filtered noise, and new filtered signal, we have the following equation:

 * $$z(t) = \gamma A \cos (\Psi(t)) + n_0(t)$$

Where we call the additive noise $$n_0(t)$$ because it has been filtered, and is not white noise anymore. $$n_0(t)$$ is known as narrow band noise, and can be denoted as such:

 * $$n_0(t) = \mathbf{W}(t) \cos(2 \pi f_c t) + \mathbf{Z}(t) \sin(2 \pi f_c t)$$

Now, once we have it in this form, we can use a trigonometric identity to make this equation more simple:

 * $$n_0(t) = \mathbf{R}(t) \cos(2 \pi f_c t + \mathbf{\Theta}(t))$$

Where

 * $$\mathbf{R}(t) = \sqrt{\mathbf{W}(t)^2 + \mathbf{Z}(t)^2}$$

 * $$\mathbf{\Theta}(t) = tan^{-1} (\mathbf{Z}(t)/\mathbf{W(t)})$$

Here, the new noise parameter R(t) is a rayleigh random variable, and is discussed in the next chapter.

Noise Analysis
R(t) is a noise function that affects the amplitude of our received signal. However, our receiver passes the signal through a limiter, which will remove amplitude fluctuations from our signal. For this reason, R(t) doesnt affect our signal, and can be safely ignored for now. This means that the only random variable that is affecting our signal is the variable $$\mathbf{\Theta}(t)$$, "Theta". Theta is a uniform random variable, with values between pi and -pi. Values outside this range "Wrap around" because phase is circular.


text:
TI-Basic Z80 Programming/Input

Input functions accept data from the calculator's user. Input and output functions can be found under  I/O.

Input
Input ( I/O 1) accepts both keyboard and graph point data.

Input without a variable will open the current graph and pause the program. The arrow keys can be used to move the cursor. When is pressed, the variables X and Y will be updated with the X,Y position of the cursor. In PolarGC mode, R and <tt>θ</tt> will be updated instead.

If a variable follows <tt>Input</tt>, the program will accept a value from the keyboard and store it in the variable when is pressed.

If the format  is used, the calculator will display up to 16 user-defined characters before accepting input. If <tt>Strn</tt> is used, <tt>Strn</tt> is string number n, accessed with <tt> 7 n</tt>. Note that <tt>"text"</tt> must be contained in quotation marks (<tt> ["]</tt>).

Examples
This code returns the <tt>X,Y</tt> coordinates of the graph cursor:

This code accepts a value from the keyboard, stores it in the variable called <tt>A</tt>, and displays it:

This code displays what the program is looking for, accepts and stores a numeric value from the keyboard in the variable called <tt>A</tt>. Then <tt>A</tt> is displayed:

Prompt
<tt>Prompt</tt> (<tt> I/O 2</tt>) gets user input for one or more variables at a time. It displays the variable name followed by  for each variable, waiting for keypad input followed by  before continuing. Each value entered is stored in its respective variable.

<tt>Prompt</tt> is useful for quick user input, but should be avoided due to the limitation that only the variable name can be displayed.

Examples
Displays the following:

Displays the following (with user input):

You try it!
Try these examples to practice getting and handling user input.

Pythagorean Theorem
The Pythagorean Theorem states that, for any right triangle with legs A and B and hypotenuse C, $$A^2+B^2=C^2$$. Write a simple program that can calculate the hypotenuse C given values A and B, and display it to the screen. You can use the <tt>Input</tt> or <tt>Prompt</tt> commands.

Because $$A^2+B^2=C^2$$, $$C=\sqrt{A^2+B^2}$$.

Using <tt>Prompt</tt>:

Using <tt>Input</tt>:

Greeting
Write a program that asks the user what their name is, and respond, using their name.

This would appear as (with user input):

Age Calculator
Write a program the allows the user to enter their age in years, then display their age in hours, then in minutes, then in seconds.

title: TI-Basic Z80 Programming/Input


text:
Communication Systems/Frequency Modulation

Frequency Modulation
If we make the frequency of our carrier wave a function of time, we can get a generalized function that looks like this:

 * $$s_{FM} = A\cos (2 \pi [f_c + ks(t)]t + \phi)$$

We still have a carrier wave, but now we have the value ks(t) that we add to that carrier wave, to send our data.

As an important result, ks(t) must be less than the carrier frequency always, to avoid ambiguity and distortion.

 * [[Image:Amfm2.gif]]

Deriving the FM Equation
Recall that a general sinusoid is of the form:

 * $$ e_c = \sin \left( {\omega _c t + \theta } \right)$$

Frequency modulation involves deviating a carrier frequency by some amount. If a sine wave is used to deviate the carrier, the expression for the frequency at any instant would be:

 * $$\omega _i = \omega _c  + \Delta \omega \sin \left( {\omega _m t} \right)$$

 * where:

 * $$\omega _i = $$instantaneous frequency
 * $$\omega _c = $$carrier frequency
 * $$ \Delta \omega = $$carrier deviation
 * $$\omega _m =$$ modulation frequency

This expression describes a signal varying sinusoidally about some average frequency. However, we cannot simply substitute this expression into the general equation for a sinusoid to get the FM equation. This is because the sine operator acts on angles, not frequency. Therefore, we must define the instantaneous frequency in terms of angles.

It should be noted that the modulation signal amplitude governs the amount of carrier deviation while the modulation signal frequency governs the rate of carrier deviation.

The term $$\omega$$ is an angular velocity (radians per second) and is related to frequency and angle by the following relationship:

 * $$\omega {\rm{ = 2}}\pi {\rm{f = }}\frac$$

 * To find the angle, we must integrate $$\omega$$ with respect to time:

 * $$\int {\omega dt = \theta } $$

 * We can now find the instantaneous angle associated with the instantaneous frequency:

 * $$\begin{array}{l}

\theta = \int {\omega _i dt = \int {\left( {\omega _c  + \Delta \omega \sin \left( {\omega _m t} \right)} \right)} } dt = \omega _c t - \frac\cos \left( {\omega _m t} \right) = \omega _c t - \frac\cos \left( {\omega _m t} \right) \\ \end{array}$$

 * This angle can now be substituted into the general carrier signal to define FM:

 * $$ e_{fm} = \sin \left( {\omega _c t - \frac\cos \left( {\omega _m t} \right)} \right)$$

 * The FM modulation index is defined as the ratio of the carrier deviation to modulation frequency:

 * $$ m_{fm} = \frac$$

 * Consequently, the FM equation is often written as:

 * $$ e_{fm} = \sin \left( {\omega _c t - m_{fm} \cos \left( {\omega _m t} \right)} \right)$$

Bessel's Functions
This is a very complex expression and it is not readily apparent what the sidebands of this signal are like. The solution to this problem requires a knowledge of Bessel's functions of the first kind and order p. In open form, it resembles:

 * $$ J_p \left( x \right) = \sum\limits_{k = 0}^\infty {\frac} $$

 * where:

 * $$ J_p \left( x \right) = $$ Magnitude of the frequency component
 * $$ p = $$ Side frequency number (not to be confused with sidebands)
 * $$ x = $$ Modulation index

 * As a point of interest, Bessel's functions are a solution to the following equation:

 * $$x^2\frac + x\frac + \left( {x^2 - p^2 } \right) = 0$$

Bessel's functions occur in the theory of cylindrical and spherical waves, much like sine waves occur in the theory of plane waves.

It turns out that FM generates an infinite number of side frequencies (in both the upper and lower sidebands). Each side frequency is an integer multiple of the modulation signal frequency. The amplitude of higher order side frequencies decreases rapidly and can generally be ignored.

The amplitude of the carrier signal is also a function of the modulation index and under some conditions, its amplitude can actually go to zero. This does not mean that the signal disappears, but rather that all of the broadcast energy is redistributed to the side frequencies.

A plot of the carrier and first five side frequency amplitudes as a function of modulation index resembles:

 * [[Image:Bessel_Functions_1st_kind.gif|left|thumb]]

The Bessel coefficients have several interesting properties including:

 * $$ J_0^2 + 2\left( {J_1^2  + J_2^2  + J_3^2  +  \cdots } \right) = 1$$

One very useful interpretation of this is: $$ J_0 $$ represents the voltage amplitude of the carrier, $$J_1$$ represents the amplitude of the 1st side frequency, $$J_2$$ the 2nd side frequency etc. Note that the sum of the squares (power) remains constant.

FM Bandwidth
FM generates upper and lower sidebands, each of which contain an infinite number of side frequencies. However, the FM bandwidth is not infinite because the amplitude of the higher order side frequencies decreases rapidly. Carson's Rule is often used to calculate the bandwidth, since it contains more than 90% of the FM signal.

 * Carson's Rule

 * $$ B_{fm} \approx 2\left( {m_{fm}  + 1} \right)f_m  = 2\left( {\Delta f + f_m } \right))$$

In commercial broadcast applications, for a purely monaural station, the maximum modulation index ($$m_{fm}$$) = 75/15 = 5, coming from: the maximum carrier deviation ($$\Delta f$$) = 75 kHz, and maximum modulation frequency ($$f_m$$) = 15 kHz. The total broadcast spectrum according to Carson's rule is 180 kHz, but an additional 20 kHz guard band is used to separate adjacent radio stations. Therefore, each FM radio station is allocated 200 kHz.

For stereo stations, the maximum modulation index is significantly reduced because the information needed to separate the channels has to be transmitted along with the mono audio signal. This increases the required bandwidth to 53 kHz. Hence, the max. modulation index is = 75/53 = 1.41509434... Radio Data System (RDS) information, increase this further to ~60 kHz, reducing the max. modulation index to 75/60 = 1.25.

How FM Stereo works
The mono signal is M = L + R, with the stereo difference being S = L - R. Adding both simultaneous equations together gives M + S = 2L + (R-R), recovering the left channel, while subtracting them recovers the right channel. This is transmitted as a double sideband suppressed carrier (DSBSC), which is essentially just an AM "station" going along, but without its carrier being sent when there is nothing being transmitted on it. ("Stations" sent along with the main program (usually in ultrasonic frequencies) are known as subcarriers.) A stereo "pilot" tone is used to let the receiver know that there is a stereo signal being received, and also to allow the suppressed carrier to be regenerated (by doubling the pilot tone's frequency) so the stereo difference signal can be demodulated just like a normal AM station and the resulting signals used to separate the audio into two channels.

RDS information is yet another "AM station" being sent along with the main program, but at 3× the pilot frequency (19 kHz × 3 = 57 kHz). Its contents are not audio, but analogue values meant to represent a digital signal which carries the station name and many other info like its alternate frequencies, time of the day, program info, etc.

Noise
In AM systems, noise easily distorts the transmitted signal however, in FM systems any added noise must create a frequency deviation in order to be perceptible.

 * [[Image:fm_noise.gif]]

The maximum frequency deviation due to random noise occurs when the noise is at right angles to the resultant signal. In the worst case the signal frequency has been deviated by:

 * $$\delta = \theta f_m $$

This shows that the deviation due to noise increases as the modulation frequency increases. Since noise power is the square of the noise voltage, the signal to noise ratio can significantly degrade.

 * [[image:noise_voltage.gif]]

To prevent this, the amplitude of the modulation signal is increased to keep the S/N ratio constant over the entire broadcast band. This is called pre-emphasis.

Pre & De-emphasis
Increasing the amplitude of high frequency baseband signals in the FM modulator (transmitter) must be compensated for in the FM demodulator (receiver) otherwise the signal would sound quite tinny (too much treble).

The standard curves resemble:

 * [[Image:Pre_emphasis.gif|left|thumb]]

In commercial FM broadcast, the emphasis circuits consist of a simple RC network with a time constant of 75 $$\mu$$Sec and a corner frequency of 2125 Hz.

 * [[Image:emphasis_circuit.gif]]

The magnitude of the pre-emphasis response is defined by:

 * [[Image:pre_emphasis_equation.gif]]

FM Transmission Power
Since the value of the amplitude of the sine wave in FM does not change, the transmitted power is a constant. As a general rule, for a sinusoid with a constant amplitude, the transmitted power can be found as follows:

 * $$P(t) = \frac{A^2}{2R_L}$$

Where A is the amplitude of the sine wave, and RL is the resistance of the load. In a normalized system, we set RL to 1.

The Bessel coefficients can be used to determine the power in the carrier and any side frequency:

 * $$ P_T  = P_C \left( {J_0^2  + 2\left( {J_1^2  + J_2^2  + J_3^2  +  \cdots } \right)} \right)$$
 * $$P_T$$ is the total power and is by definition equal to the unmodulated carrier power plus the sideband power.
 * $$P_C$$ is the power of the unmodulated carrier.

As the modulation index varies, the individual Bessel coefficients change and power is redistributed from the carrier to the side frequencies.

FM Receivers
Any angle modulation receiver needs to have several components:

 * 1) A limiter, to remove abnormal amplitude values
 * 2) bandpass filter, to separate the out-of-band noise.
 * 3) A Discriminator, to change a frequency back to a voltage
 * 4) A lowpass filter, to remove noise added by the discriminator.

A discriminator is essentially a differentiator in line with an envelope detector:

FM >|Differentiator|>|Envelope Filter|> Signal

Also, you can add in a blocking capacitor to remove any DC components of the signal, if needed.


text:
Communication Systems/Phase Modulation

Phase Modulation
Phase modulation is most commonly used to convey digital signals. All high performance modems today use phase modulation.

Similar to FM (frequency modulation), is Phase modulation. (We will show how they are the same in the next chapter.) If we alter the value of the phase according to a particular function, we will get the following generalized PM function:

$$s_{PM} = A\cos (2 \pi f_c t + \alpha s(t))$$

It is important to note that the fact that $$-\pi < \alpha s(t) \le \pi$$ for all values of t. If this relationship is not satisfied, then the phase angle is said to be wrapped.

BPSK Modulator
The binary phase shift keyed modulator is the simplest of app PSK modulators since it has only two output phase states. It is generally a multiplier which can either be an IC (integrated circuit) or ring modulator.

 * [[Image:BPSK_modulator.gif]]

The output has two phase states:

 * [[Image:BPSK_output.gif]]

In the above illustration, the duration of each of the phase states corresponds to one signaling element or baud. The baud rate is therefor equal to the bit rate.

The spectrum of the BPSK signal will depend upon the data being transmitted, but it is very easy to sketch it for the highest data rate input.

 * [[Image:sq_wave_spectrum.gif]]

The resultant BPSK spectrum is:

 * [[Image:BPSK_spectrum.gif]]

QPSK Modulators (4-PSK)
Quadrature modulation uses two data channels denoted I (in phase) and Q (quadrature phase) displaced by 90o with respect to each other. It may seem somewhat paradoxical, that although these two channels are combined prior to transmission, they do not interfere with each other.

 * [[Image:quadrature_modulator.gif]]

The receiver is quite capable of separating them because of their quadrature or orthogonal nature.

 * [[Image:Quadrature_demodulator.gif]]

In the most basic configuration, there are 4 possible output phases. This suggests that each output symbol correspond to 2 bits of binary information. Since several bits can be encoded into a baud, the bit rate exceeds the baud rate.

 * [[Image:QPSK modulator.gif]]

The first thing that happens in this circuit is that the incoming bits are organized into groups of 2 called dibits. They are separated into 2 data streams and kept constant over the dibit period.

 * [[Image:Dibit.gif]]

Each data stream is fed to a BPSK modulator. However, orthogonal carriers feed the two modulators. The output of the I channel modulator resembles:

 * [[Image:I_mod_out.gif]]

The output of the Q channel modulator resembles

 * [[Image:Q_mod_out.gif]]

Combining the I and Q channels has the effect of rotating the output state by 45o.

 * [[Image:QPSK_output_phase_states.gif]]

Rotating the output reference to 45o for the sake of clarity, the transmitted output for this particular data sequence is therefor:

 * [[Image:QPSK_output.gif]]

8-PSK
This process of encoding more bits into each output baud or phase state can be continued. Organizing binary bits into 3 bytes corresponds to 8 different conditions.

The output constellation diagram for the 8 different phase states is:

 * [[Image:Constellation_8.gif]]

From this diagram it is readily apparent that two different amplitudes are needed on the I and Q channels. If the A bit is used to control the polarity of the I channel and the B bit the polarity of the Q channel, then the C bit can be used to define the two different amplitudes. In order to evenly space the phase states; the amplitudes must be ± 0.38 and ± 0.92. The magnitude of the I and Q channel signals must always be different. An inverter can be used to assure this condition.

The input bit stream is organized into 3 bit bytes. Each bit is sent to a different location to control a certain aspect of the modulator. The inputs to the 2 - 4 level converter are 0’s or 1’s but the output is ± 0.38 or ± 0.92, depending on the C bit.

 * [[Image:8_PSK.gif]]

Wrapped/Unwrapped Phase
The phase angle is a circular quantity, with the restriction $$0 = 2\pi$$. Therefore, if we wrap the phase a complete 360 degrees around, the receiver will not know the difference, and the transmission will fail. When the phase exceeds 360 degrees, the phase value is said to be wrapped. It is highly difficult to construct a communication system that can detect and decode a wrapped phase value.

PM Transmitter
PM signals can be transmitted using a technique very similar to FM transmitters. The only difference is that we need to add a differentiator to it:

Signal >|Differentiator|>|VCO|> PM Signal

PM Receiver
PM receivers have all the same parts as an FM receiver, except for the 3rd step:

 * 1) A limiter, to remove abnormal amplitude values
 * 2) bandpass filter, to separate the out-of-band noise.
 * 3) A Phase detector, to convert a phase back into a voltage
 * 4) A lowpass filter, to remove noise added by the discriminator.

Phase detectors can be created using a Phase-Locked-Loop (again, see why we discussed them first?).

title: Communication Systems/Phase Modulation


text:
Genesis Programming

Table of Contents

 * 68K Memory map
 * 68000 programming considerations
 * Z80 programming considerations

title: Genesis Programming


text: User talk:202.177.185.34

title: User talk:202.177.185.34


text: User talk:202.177.185.56

title: User talk:202.177.185.56


text:
User talk:Samik Saha

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.
 * 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.

Good luck! Guanaco 22:36, 14 November 2005 (UTC)

title: User talk:Samik Saha


text:
User talk:Bluefoxicy

a recent vandal has edited your user talk page. I am trying to clean up the mess, but if you have any other problems, leave me a message on my talk page. --Whiteknight T C E 12:40, 11 November 2005 (UTC)

Your account will be renamed
Hello,

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

Unfortunately, your account clashes with another account also called Bluefoxicy. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Bluefoxicy~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:03, 17 March 2015 (UTC)

title: User talk:Bluefoxicy


text:
XML - Managing Data Exchange/Handling XML with MySQL

Author: Shayla S. Lee 01:39, 15 November 2005 (UTC)

Introduction
MySQL is an open source relational database that supports XML. You can use the MySQL command line or a programming language of your choice to convert your MySQL databases and or tables to a well formed XML document.

Supported Versions
XML is supported in MySQL version 3.23.48 and higher. A free version of MySQL can be downloaded from MySQL.com.

Using the MySQL Command Line
Use the --xml or -X option with either the mysqldump or mysql command to produce XML output.

mysqldump Syntax:

mysqldump --xml -u username -p databasename [tablename] > filename.xml

mysql Syntax:

\T "filename.xml" mysql -X -u username -p databasename [tablename]

OR

\T "filename.xml" mysql -X -u username -p databasename tablename -e 'select columnname, columnname from tablename'

In the latter mysql syntax example, you can also specify a where condition as well as restrict the where condition just as you would in a regular sql select statement.

Explanation of commands and options:

mysqldump is a mysql output command.

\T is a mysql output command.

-e is a mysql option that tells mysql to execute the following select statement.

--xml is the mysql option for producing XML output.

-u is a mysql option which tells mysql that the next command line item is your username.

username is your mysql username. It will be used to authenticate you to the mysql database.

-p is a mysqldump option that tells mysql that the next command line item is your password. If do not want your password to be visible on the command line, then do not supply your password after the -p option and mysql will prompt you for it later.

databasename is the name of the database that you want to output to xml.

tablename is the name of the table that you want to output to xml. Supplying the tablename is optional.

The > symbol is the output symbol that tells mysql to output the results to the following filename.

filename.xml is the filename that you want to output the XML results.