text:
Marine Aquaria/Equipment

In the reefkeeping hobby, many people take great pride in being able to bring in the ocean's denizens and have them living happily in their own homes. All the time, hobbyists strive to make their aquariums as natural as possible to mimic the natural habitat. However, one can never forget that you are keeping organisms in a place that is unnatural to them. The only way we are able to do this effectively is through the range of gizmos and gadgets invented to help make the job easier. In this section we shall discuss the technology and equipment that should be considered.

Keep in mind that the title of "equipment" is a vague one; this section will also discuss other non-living elements such as decor.

Housing
There are a number of options to house your planned occupants in. Throughout the ages, fish have been kept in bowls, aquariums, ponds, and just about anything else that can hold any bit of water. Choosing what sort of container you wish to house your fish in is an important decision. However, for the purposes of marine aquaria, the aquarium is the most common choice.

Aquariums
Aquariums come in all sorts of shapes and sizes. What's the right one for you? There are a number of things to consider, such as volume, shape, footprint and surface area, and material. All of these variables play a role in deciding what sort of aquarium you should get, as well as others such as cost.

In terms of volume, bigger is almost always better. In the ocean, mobile organisms are not restricted by having walls around them, and are free to move just about wherever they please. Fish, just like you and me, feel stressed in an environment that is too small for them; especially if you wish to keep more fish or larger species of fish, a larger tank gives you more space to work with. It is easy to overcrowd an aquarium that is too small. Another point about volume is that the more water there is, the more water exists to dilute any substances in the water. These substances may be waste products from your organisms, uneaten food left over, or some sort of accident. Having more water in your aquarium gives you more leeway in a lot of respects. In many ways, having a larger tank makes it easier as you can make a few more blunders and not have disastrous consequences. For this reason, small marine aquariums are actually more difficult to maintain; such aquariums are known as "Nano" Tanks or Reefs. There is no black-and-white division between "Nano" Tanks and your standard sizes, but beginners should avoid an aquarium of 20 gallons or lower. The beginner reefkeeper should consider a mid-sized aquarium of around 55 gallons. In the situation of aquarium size, there are very few situations where bigger is not better for your fish.

Aquariums come in all sorts of shapes. The standard aquarium shape is rectangular. However, other shapes exist as well. The most common other styles seen are hexagonal, where the base is a hexagon rather than a rectangle, and bowfront, where the front pane of the aquarium bows outward. Of course, the aquarium can also be custom-built to any shape specification. For the most part, shape of the aquarium is merely aesthetic, but the footprint, or surface area, is also an important factor.

Footprint and surface area are important to consider. The footprint is the amount of space that the tank's stand will take up on the floor. The surface area in this situation means the surface area of the water in the aquarium. In most aquariums, these two are just about the same. Of course, the footprint must be considered for looking for a proper location in the house to see if a fish tank will fit. However, the surface area is also important for two reasons. One, the surface is how gases such as oxygen enter and leave the water. Therefore, with more surface area, you get better gas transfer and therefore you can house more animals. Another reason is that many fish spend more time swimming horizontally than vertically; this means that the more surface area you have, the more swimming space is available. Because of these reasons, if you are comparing two aquariums of the same volume, you should opt for the one that has more surface area, as it will provide better gas transfer and more capacity for organisms overall.

Material of the aquarium can make a difference as well. Today's aquariums are normally built out of either glass panes bonded with silicone or acrylic. Both types have their advantages and disadvantages.

Glass is cheaper, more common in many standard shapes, and does not scratch as easily as acrylic. However, acrylic does not bend light in the same way as glass, giving a much better view of the inhabitants; for this reason, acrylic is common in many public aquariums where the aquarium wall must be very thick and so the bending of light would make it more difficult to see the organisms. Also, acrylic is less prone to leaking. This is because glass is bonded together by silicone (and visibly so, if you find silicone an eyesore). However, the seams of acrylic aquariums are bonded together by acrylic; in effect, an acrylic aquarium can be a single piece of acrylic, making it stronger. Acrylic is also lighter than glass. Acrylic also can insulate the water better than glass can. On the other hand, acrylic is often more expensive and scratches more easily (though the scratches on acrylic are much easier to fix than scratches on glass). Also, though acrylic is less prone to leaking and breaking than glass, water will cause acrylic to bow out; the stand must support the entire bottom surface of the aquarium, instead if just the edges for a glass aquarium. The choice is up to the hobbyist.

Ponds
Ponds are much rarer in the marine hobby, but they do exist. A pond is usually considered to be housing that is on or sunk into the ground; usually, you are not able to see through the sides of a pond. Therefore, for a larger volume of water, a pond can be cheaper and more feasible than an aquarium. For species of animals such as stingrays or sharks that can be viewed well from above, a pond is a possible choice.

Filtration
Filtration is a method or process by which system inputs are transformed or exported from the reef tank to help maintain livestock viability. There are many types of filtration methods, including Mechanical, Biological, and Chemical.

Mechanical filtration refers to passing water through some sort of filtration media that will strain particles out of the water. Chemical filtration refers to using some sort of chemical or substance such as activated carbon to pick up or remove substances from the water. Biological filtration refers to using bacteria, like those important to the Nitrogen Cycle, to help remove some substances from the water. Many filtration systems have some combination of two or all three of these methods.

Protein Skimming
Protein Skimming is a water purification method where large molecules such as proteins are actually removed from the aquarium before they have the chance to break down. It works by creating a foam or a froth, similar to the action of waves at the shore.

Deep Sand Bed
A Deep Sand Bed, sometimes shortened DSB, is a form of biological filtration. A sand bed that is at least 4" deep is considered a deep sand bed. It functions by having an extremely high surface area near the upper layer of sand, which serves as a living space for aerobic bacteria that will convert ammonia to nitrites and then to nitrates. However, because the sand is deep, oxygen will not reach the lower layers, forming anaerobic pockets. In these pockets, anaerobic, denitrifying bacteria will form that allow for the conversion of nitrates into nitrogen gas.

Reverse Osomosis, Deionized, and Diatomaceous Earth
All of these are different ways of purifying water before you even mix the salt. Tap water is relatively impure, and to make sure we have the very best water, there are several purification methods available. Many people actually swear by using such pure water to mix their salt with, as it can help prevent many problems.

Water Movement
Although often filtration provides a source of water movement, in the case of marine aquaria it is often not enough. Proper water movement is accomplished through the use of either powerheads or special machines that simulate waves.

Temperature Control
Most of the organisms in the hobby do not live in room temperature conditions. The general majority of organisms originate from tropical locations, and a minority come from coldwater habitats. It is important to maintain the correct temperature so that your aquarium inhabitants are comfortable.

Heaters
The aquarium heater is necessary to maintain an aquarium at tropical conditions of about 75 degrees Fahrenheit to 82 degrees Fahrenheit (24 °C to 28 °C). It is a simple glass or plastic tube containing coils of metal wire that heat up when electricity runs through it. A thermometer is built into the heater so that it shuts off at the appropriate temperature. Aquarium heaters are labeled for wattage. A general guideline is 5 watts per gallon; this can be achieved with either one heater or with multiple heaters. For many smaller aquariums, one is enough. However, having multiple heaters is a good idea in many situations, especially for larger aquariums. One, it allows you to spread out the sources of heat in the aquarium so it is not concentrated all in one spot. Secondly, in the event a heater fails or malfunctions in some way, there are other heaters to back it up.

When placing the heater in the aquarium, one should try to place them horizontally or angled in some way near the bottom of the aquarium, rather than vertical. To understand why, think about convection, or the phenomena of warm substances rising. If a heater is placed vertically, warm water at the bottom of the heater rises up and stays next to the heater. However, if the heater is placed horizontally, warm water will rise up away from the heater, allowing the heater to be more efficient. Because it is better to have the heater placed horizontally in this way, submersible heaters are a better choice than heaters that hang onto the edge of the aquarium.

Something else to consider is safety for your organisms. As a heater, one should expect this apparatus to get hot. However, sometimes organisms will touch the heater for just a little to long and burn themselves. This is especially a problem for softer-skinned organisms such as stingrays. There are some options for this. One is to purchase a heater guard; you merely put the heater guard on the heater tube so that the organisms can't touch the tube directly. Another option is to place the heater in the sump. Having the heater in the sump has the advantage of not only being out of the way of your aquarium inhabitants, but also being out of sight.

Chillers
Unlike the commonplace heater, the chiller is a more expensive piece of equipment, but necessary if one is considering keeping coldwater species.

Thermometer
Temperature is one of the many important factors that needs to be monitored. A thermometer can be placed anywhere in the tank, but keep in mind that if circulation is slow, the temperature is likely to be different in some areas of the aquarium. The thermometer can also be placed in the refugium.

Thermometers can come as a sticker that attaches to the outside of the aquarium. Though convenient, these thermometers can be more inaccurate.

Substrate
One of the considerations for the marine aquarium is what to put on the bottom of the tank. In some cases, some people opt for a bare-bottom tank without a substrate, as this can be easier to clean. However, such a set-up is less natural, and so most aquarists decide to put some sort of substrate in.

Crushed Coral
Crushed coral has been the traditional substrate for marine aquariums for years. The degree to which the coral is actually crushed can vary, but otherwise they are the same. Because crushed coral is made up of the limestone skeleton of coral, it has the advantage of raising the hardness of the water, which helps resist pH decrease.

Coral Sand and Aragonite-based Sand
Coral sand and aragonite sand are both about the same. Like crushed coral, they both contain elements that help raise the hardness of water. Unlike crushed coral, though, the sands are much finer. Hey

Live Sand
Sand sold as Live Sand is usually a coral sand that supposedly contains bacteria or other living organisms in it, similar to rocks sold as Live Rocks. The sand itself is not alive, but it contains living organisms. It has the advantage of already harboring the bacteria necessary for good biological filtration on top of being able to raise the hardness of water.

Maintenance Equipment
There are times when the aquarist themself has to get down and dirty to keep the tank running smoothly, and here are some of the tools of the trade.

Gravel Vac
The gravel vacuum is a contraption that uses the concept of siphoning. By starting a siphon of water from the tank to another location, the gravel vac begins to suck up water and whatever is nearby. This is useful to help clear the substrate of particulate matter.

Gravel vacs come in numerous styles. One of the most common forms is a gravity-driven siphon, in which water is pulled from the tank to a bucket or something else that is lower than the aquarium. Another is a Venturi-driven siphon, which works by hooking up to the sink with a special attachment; by turning on the sink, a vacuum is created in the tube which sucks the water from the aquarium. Other, less common forms include hand-pumped or even battery-powered.

Gravel vacs, as somewhat hinted by the name, are mostly only effective in mid-sized substrates. Sand can be sucked away by a gravel vac, making them less effective if the substrate is sandy. Also, if there are a large number of rocks, the gravel vac can have a hard time reaching around to tighter corners.

Algae Scraper
Algae scrapers are items used to scrape away algae, usually off of the aquarium glass.

Algae scrapers also can come in a variety of forms. One form is a scraper on the end of a long stick, slightly reminiscent of a window squeegee and serves approximately the same purpose: to clean glass. However, the other option is the magnetic algae scraper, in which the aquarist handles a magnet on the outside, and another magnetic scraping piece follows inside the aquarium. There are even magnetic algae scrapers that float in case the magnets somehow get too far away from each other, making retrieval much easier.

One must be careful with algae scrapers and acrylic, as particulate matter such as sand caught in the scraper can cause scratches.

Extras
Tried and true, here are a few things that aren't sold at your local fish store that just might come in handy.

Eggcrate
In the marine hobby, when we say eggcrate, we're not talking about the cartons eggs actually come in, nor are we talking about bumpy foam pads. What we mean by eggcrate are eggcrate grilles that are often used for air vents and fluorescent lights; plastic that forms criss-crossing lines.

So what does eggcrate have anything to do with marine aquaria? Well lots. In fact, it can be the very foundation of a reef, pun intended. Eggcrate is placed underneath the rocks and buried in the substrate. By having eggcrate, you spread out the weight of the stones over the bottom pane of the glass.

You can purchase eggcrate at a hardware store.

Turkey Baster
No, it's not Thanksgiving. A Turkey Baster is actually a useful tool in the hobby. Using a turkey baster, you can suck up some small stuff without disturbing too much of the tank. On the other hand, you're able to target food or anything else at a certain organism without it having to float all over the tank. The ability to target with a turkey baster can actually become quite handy. Of course, don't use a turkey baster you're going to use for food with your aquarium, and vice versa.

Toothbrush
The quintessential cleaning tool, a toothbrush lets you get into those small places that is difficult to reach with just about anything else. Keeping an old toothbrush handy can help you out in a tight spot.

title: Marine Aquaria/Equipment


text:
Marine Aquaria/Marine Science 101

To be a smart reefkeeper and make intelligent decisions, it is quite helpful to have a good understanding of some of the science involved. This section will give an introduction to some of the science to help give a better understanding to reefkeeping.

Water Chemistry
When you look at clear water, do you ever stop to think about what's in it? Even that bottled distilled water or spring water isn't pure; there's usually something else in there. Having a good understanding of what's in water will help you understand better the environment within which aquatic organisms inhabit.

pH
pH is a variable that measures how acidic or basic (also called alkaline) a solution is, in terms of Hydrogen ions (hence the H in pH). The deep science of pH is not particularly important, but an aquarist should at least understand the basics (pun not intended), as the pH of the environment has a great effect on the organisms.

pH is a scale usually from 1 to 14. The lower the number, the more acidic. Conversely, the higher the number, the more basic. A pH of 7 is said to be neutral; this is the pH of pure water. Seawater is approximately a pH of 8.0-8.3, so it is basic.

The pH of a solution can change. If a substance makes the pH become lower, it is said to be an acid. As you have probably guessed, a substance that makes the pH higher is called a base. If your pH is changing in some way, you can bet that some sort of acid or base is playing a role, depending on which the direction your pH is changing. We can use this very same property of being able to change pH to help control it and stabilize it at a pH we want.

Salinity
Salinity is the measure of the amount of salt in water. Of course, in the marine hobby, salinity is quite important. Salt balance is very important to all organisms; if you've ever seen salt put on a slug, you'll know why. Fluctuations in salinity can be quite dangerous, especially to simpler organisms that are not able to regulate their own salt balance. However, even fish can only take changes in salinity to a certain point.

The salinity of seawater is measured in a number of ways, including percent or ppt (parts per thousand). However, in the aquarium hobby, the most common way to express salinity is by specific gravity, which compares the density of substances to freshwater. Because density is temperature dependent, specific gravity readings are usually given for 25°C. Freshwater has a specific gravity of 1.000, while saltwater is about 1.021-1.025.

One final note is that salt does not evaporate. Therefore, as water evaporates over time from your aquarium, the salt remains, and therefore the salinity of your aquarium will increase slightly. It is important to keep adding freshwater to the aquarium to make up for evaporation.

Hardness
Hardness is a measure of mineral content. There are two types, General Hardness (GH) and Carbonate Hardness (KH). These systems were developed by the Germans, which is why these acronyms only loosely correspond to the words. If water is high in these dissolved minerals, it is called hard. If the concentrations of minerals are low, it is soft.

General Hardness is a measure of calcium or magnesium ions in the water, and its units are dGH, or degrees of General Hardness. 1 dGH corresponds to 10 mg of calcium oxide or magnesium oxide in 1 L of water.

Carbonate Hardness is a measure of carbonate or bicarbonate ions in the water, and its units are KH. A degree of KH corresponds to 17.83 mg of (usually) calcium carbonate per 1 L of water. The units are in terms of calcium carbonate, but calcium bicarbonate also exists in water commonly, though each ion only counts half as much towards hardness as carbonate does.

Hardness can have an effect on the ability of pH to change; both carbonate ions are effective as buffers to keep pH basic. With a good level of hardness, the aquarium will resist shifting towards acidity. It is also important to keep the hardness steady and high as many shelled organisms such as molluscs build their structures from the hardness in the water. Soft water means that their shells will not be very well developed.

Dissolved Oxygen
As most of the organisms we care about keeping are indeed dependent on oxygen, dissolved oxygen is important.

Oxygen moves between the water environment and the atmosphere through the surface. Therefore, the more surface area your aquarium has, the better. Oxygen transfer can be improved even further by water movement.

Nitrogen
Nitrogen refers to the nitrogenous wastes given off by organisms. The main ones of concern to us are Ammonia (NH3), Nitrites (NO2), and Nitrates (NO3). Ammonia is the most toxic, nitrites are the second-most toxic, and nitrates are much less toxic. In the marine aquarium, ammonia and nitrite should not be present at all. Nitrates may be present in Fish Only tanks as many fish are not as sensitive to nitrates, but the best would be to have very little or not to have any nitrates, especially in aquariums containing invertebrates.

See more about Nitrogen in the Nitrogen Cycle below.

Phosphates
Phosphates are a necessity of all organisms and are a basic part of many important molecules. However, the problem arises when there are excess phosphates in the water, which may lead to unwanted algae growth. This algae can be unsightly, but it can also grow other surfaces and grow over organisms which you may want. If the algae dies in the tank and decomposes enough, there will be less oxygen available due to the effect of this decomposition.

Nitrogen Cycle
The Nitrogen Cycle describes the changes in nitrogenous compounds in the environment. Because many nitrogen compounds are toxic, it is important to know something about this cycle. Luckily, these nitrogenous compounds are converted to less and less toxic forms through this Nitrogen Cycle. We shall simplify the Nitrogen Cycle.

If you start with your organisms, they release a compound known as ammonia as waste product or a product of decomposition. Ammonia is quite toxic and quite dangerous. Luckily for us, there exists a process known as nitrification by bacteria convert these waste products to less toxic forms. These bacteria live in aerobic conditions and benefit from the presence of oxygen. First the ammonia is converted to nitrites by Nitrosomonas; this compound is still toxic. Next, nitrites are converted to nitrates by Nitrobacter or Nitrospira. Nitrates are much less toxic compared to ammonia and nitrite. In an environment with a healthy colony of these nitrifying bacteria, ammonia and nitrites will reach 0.

However, as you guessed it, this leads to a build-up of nitrates. When it reaches higher levels, nitrates can become dangerous as well. The best way to remove nitrates is through water changes. In some aquariums though, another process exists as part of the Nitrogen Cycle to help reduce nitrates.

Denitrification is the process by which nitrates are converted back to nontoxic Nitrogen gas. This is also done by bacteria, but unlike nitrifying bacteira, denitrifying types of bacteria only live in anaerobic conditions without oxygen. In the marine aquarium, this means either a Deep Sand Bed or a Live Rock, both which shall be discussed in further detail later. Both of these house anaerobic pockets that allow these bacteria to survive in your aquarium. They can contribute to removing nitrates from the water.

Plants are also able to take up nitrogenous compounds, removing them from the water. Plants are not generally popular in the marine aquarium hobby, however types of macroalgae are available for this job. In using macroalgae to reduce nitrates, to actually remove the nitrogenous compounds from the aquarium means to "harvest" the algae every so often.

Carrying Capacity
No matter what the environment is, there is a limit to the number of organisms that can live there. In ecology, the maximum number of animals a region can maintain is called the carrying capacity. This holds true for aquariums as well.

You cannot put too many animals into too small of a space. Eventually, the point will be reached where the animals produce too much waste or use up the resources available. In the aquarium, this usually shows itself as producing too much waste, as resource availability is less of an issue as food and such can be added daily. When too much waste is produced, the tank will be polluted and certain other organisms, usually unwanted, may start to grow, such as algae.

The environment is also limited by the amount of physical space available. You can only squeeze so many animals into a space before they begin to feel uncomfortable from not having enough room. This is especially true for fish, and less true for some of the invertebrates such as corals, which in their natural environment often live relatively close to each other. By not having enough room to itself or not having enough room to swim, an animal may become stressed. Some animals may be territorial, reducing the number of other animals that can be kept in the aquarium.

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

title: Marine Aquaria/Marine Science 101


text:
Bartending/Cocktails/Nixon

The Nixon was created by Joe Gilmore, the Head Barman of the American Bar at the Savoy Hotel in London, to mark American President Richard Nixon's visit to Britain in 1969. The cocktail was mixed at the American bar and then sent to Claridge’s where Nixon was staying.

Ingredients

 * 1/2 Bourbon whiskey
 * 1/2 Sloe gin
 * 2 dashes Peach Bitters

Procedure
Stir and serve on the rocks, decorated with a slice of fresh peach and a cherry.

Nixon

title: Bartending/Cocktails/Nixon


text:
Marine Aquaria/Introduction

For the new Marine Aquarist
So you are thinking about the hobby of marine aquaria? Obviously "marine aquaria" is somewhat ambiguous considering that there are many configurations that may still fall under the category of reef tanks. From the miniature "Nano" set-ups to massive systems in excess of one-thousand gallons, there are as many variations in the hardware and technique as there are in types and configurations of the livestock that are kept.

That being said, it should be a primary concern of yours to determine up front what your intentions are in the mid to long term with your aquarium. Unless you have a surplus of time or money, deciding up front and planning how to build your aquarium can make the difference between success and failure and, by extension, satisfaction or frustration. Simple decisions like whether to choose a particular type of protein skimmer or test kit can make massive differences over time in your enjoyment of the hobby.

It is important to study up so you can make knowledgeable decisions. Many mistakes can be made simply by not knowing any better. By doing a little research into the hobby you can avert disaster. This book gives an introduction to the marine hobby.

Types of Marine Aquaria
Strictly speaking, a marine aquarium is purely defined by the amount of salt in the water. If your aquarium has water as salty as the ocean, it can be considered marine. There is no other prerequisite for the aquarium to be considered marine. You can have fish from a single region of the sea or you can have fish from all over the world. It makes no difference. Obviously, the term marine in the aquarium hobby is still quite a broad term. There are a number of configurations of marine aquariums, including Fish Only, Fish Only With Live Rock, Reef, and Nano.

Fish Only, shortened FO, refers to keeping an aquarium with only fish. Perhaps there may be some sort of decoration, but you are only keeping fish. FO is often the set-up for fish that will eat invertebrates, damage coral, or do not live in reef habitats. This set-up is by far the cheapest way to go.

Fish Only With Live Rock, shortened FOWLR, is a set-up where fish are kept with what is known as Live Rock. Live Rock will be discussed in further detail later, but it is basically rock with living organisms on it. Because of this, technically you are not keeping Fish by themselves. In a FOWLR aquarium, the aquarist may also add some other invertebrates. However, Live Rock has a price tag, and so FOWLR is generally more expensive.

A Reef refers to housing coral. This may or may not include fish. Keeping a reef is by far the most expensive configuration of marine aquaria. Many extra costs go into housing corals besides the corals themselves. On the other hand, housing a reef can be extremely rewarding as it is an extremely beautiful way in which we can mimic nature on our own homes.

The Nano configuration only refers to the size of the aquarium and nothing more; a Nano can be an FO, an FOWLR, or a Reef. There is no solid distinction, but a Nano aquarium is a relatively small aquarium. Because of their small size, Nano aquariums are more difficult to maintain and are virtually an experts-only area.

Still, there are other categories.

A species aquarium refers to having only one species in the aquarium. This may be optimal in many cases, either if the species of interest is extremely delicate or requires very specific parameters, which is the case for housing most seahorses. On the other hand, a species tank may be the set-up if the species poses a danger to most other organisms that would be placed with it, such as sharks.

A community aquarium refers to having a range of species in an aquarium, and is much more common than a species aquarium. It adds another layer of difficulty in having to figure out what organisms are compatible with each other, but it can also be more rewarding.

title: Marine Aquaria/Introduction


text:
Future Teachers Meet Wiki

Table of Contents
/Introduction/

/How will you use Wiki as a teacher?/

/Wikibooks as an instructional tool for High School Physics - The online research journal project/

/How would you describe your first interactions with the Wiki system?/

/How can wikis help your students?/

title: Future Teachers Meet Wiki


text:
Future Teachers Meet Wiki/Introduction

This book will document how 200 pre-service teachers encountered Wiki as part of an Education course at Old Dominion University and the ways in which these teachers plan to use Wiki technology in their own classrooms.

While this book is geared toward participants in one college class, anyone else who has unique stories to tell about their interactions with Wiki or any teacher who has used Wiki in the classroom in an interesting way, please contribute to this book.

In the Table of Contents, you will see a couple of questions that we are using to start the conversation that will make up this book, but there is an additional section below these questions titled, "Additional Comments." On this page, please feel free to discuss any other related issues that are not discussed in the earlier pages.

title: Future Teachers Meet Wiki/Introduction


text:
Talk:Speech-Language Pathology/Stuttering/My Life in Stuttering

My name is Barachiel Arceneaux, I am a stutterer, I have been since I was a child. I remember the hardest words for me was anything with an "I" or a "K". I eventually progressed with it all, stuttering only every now and then, but it came back. I am not ashamed of it, or embarrassed by it. It makes me who I am, and you should never be ashamed of who you are or what makes you an individual.

I can remember as a kid trying to get certain words out and how people would stare, just waiting for the finished product of my thoughts to present themselves vocally. I can also remember the other kids, listening to them talk without a problem and being jealous of them, and how I would revel when one of them got hung up on a letter sound, when that happened I suddenly felt as if I was no longer alone. Only a very few of the kids in my small catholic school ever made fun of me though, which I guess is a blessing, we were taught very stoutly that people should respect other people.

--Barachiel 16:50, 22 September 2006 (UTC)


text:
User talk:88.111.0.68

Hello, and welcome to Wikibooks! We welcome and appreciate your contributions, such as Astronomy/The Big Bang, but we regretfully cannot accept copyrighted text or images borrowed from either web sites or printed material. For more information, see Wikibooks' policies and guidelines. Happy editing!

Welcome!
Welcome to Wikibooks, a collection of open-content textbooks! You don't have to log in to read or edit articles on Wikibooks, but creating an account is quick, free and non-intrusive, requires no personal information, and gives you many benefits, including:
 * The use of a username of your choice
 * The ability to view all your contributions via a "My contributions" link
 * Your own user page
 * Your own talk page which, if you choose, also allows users to send you messages without knowing your e-mail address
 * The use of your own personal watchlist to which you can add articles that interest you
 * The ability to rename pages.
 * The ability to upload images
 * The ability to customize the appearance and behavior of the website
 * The eligibility to become an administrator
 * The right to be heard in votes and elections
 * Your IP address will no longer be visible to other users.

We hope that you choose to become a Wikibookian and create an account. Feel free to ask me any questions you may have on my talk page. By the way, make sure to sign your posts and comments with four tildes (~~~~), which will let others know who left it. --Brian Brondel 16:51, 22 September 2006 (UTC)

title: User talk:88.111.0.68


text:
Talk:Cryptography/Classical Cryptography

substitution cypher section inadequate
This section is rather too informally written, makes some inaccurate statements (eg, about THE classical sub cypher being something and that that the same something was state of the art or thought unbreakable for a time). It requires revision accordingly. See the article on Wikipedia regarding polyalphabetic cyphers, and on substitution cyphers for more information.

As for Navaho code talking, it was in the tradition from WWi of using Native American languages for battlefield communication. Navaho was, linguistically, obscure and Hitler's attempt to send linguists to the US to anticipate such as use in a prospective War didn't work very well, as apparently few studied Navaho. It is also not a langauge easy for an IndoEuropean (ie, German or English) speaker to learn, or for that matter for a Uralic-Altaic language speaker to learn (ie, Japanese). In any case, the code-talkers superencrypted their communications with a voice code (including an alphabetic spelling code for words without an entry in the codebook) which made captured Navaho servicemen useless when set to interpreting the code-talker transmissions. Navaho has had a written representation for some time, but I don't know quite how far back it goes. In any case, the navaho population is large and widely distributed across a largely infertile region and illiteracy in any langauge has been a difficult problem. In the decades before WWII, the problem was worse. 67.86.175.54 17:43, 22 September 2006 (UTC)

Removing warning about "basic expertise"
Original: (This article assumes some basic expertise in cryptography terminology)

I do not have any cryptographic background, but understand this article fairly well. I also plan on improving it to be more professionally written. Hethrir (discuss • contribs) 02:09, 16 December 2011 (UTC)


text:
LaTeX/Internationalization

LaTeX requires some additional configuration to typeset documents in languages other than English. There are currently two packages providing international language support, namely, Babel and Polyglossia:
 * Babel works with the three main engines, namely, pdfTeX, LuaTeX and XeTeX. Depending on the engine the number of supported languages (with various levels of coverage) goes from about 170 to 300, and new ones can be declared easily from scratch. It also provides partial support for Plain TeX.
 * Polyglossia was devised as an alternative to Babel for XeTeX (although currently also provides partial support for LuaTeX, but not for pdfTeX). It supports about 90 languages.

Both packages cover the major languages around the World (French, Spanish, Arabic, Chinese, Japanese, Thai, Hindi, Marathi, etc.) and handle the following tasks:
 * Fonts
 * Setting the script and language tags of the current font, if possible, and switching between fonts for each language, as specified by the user (mainly XeTeX and LuaTeX). With Babel + LuaTeX the font can be switched automatically based on script. See also the discussion of in the Fonts chapter.

 * Linebreaking, justification and hyphenation
 * Activating for each script and language the corresponding line breaking algorithm. In the case of hyphenated languages, loading the language-specific hyphenation patterns. Babel provides basic line breaking for CJK scripts, as well as non-standard hyphenation, like “ff” → “ff-f”, repeated hyphens, and ranked rules. There is also some tentative support for Arabic and Tibetan justificacion.

 * Cultural elements
 * Translating document labels (like “chapter”, “figure”, “bibliography”), as well as formatting dates according to language-specific conventions and formatting numbers for languages that have their own numbering system. Polyglossia can generate the current date in the Hebrew, Islamic (Civil) and Persian calendars; Babel supports in addition Islamic Umm al-Qura, Coptic, Ethiopic, Chinese, and Buddhist.

 * Bidirectional typesetting
 * Supporting documents that contain right to left scripts. Babel + LuaTeX uses an algorithm based on the Unicode one, which changes the direction automatically. Layout elements such as tables, margins and so on must be reversed too, and this is done by Babel with LuaTeX to a great extent. With XeTeX, both Babel and Polyglossia rely on the package, which requires explicit markup to change the direction.

 * Typographical rules and transliterations
 * Performing miscellaneous transformation both at the character level (like transliterations) as well as at the typographical level (like inserting spaces or penalties at appropriate places). Babel with LuaTeX can do this automatically by means of “transforms”; with XeTeX this can be done to some extent (both Babel and Polyglossia), while in 8-bit engines many of them must be done by hand.

With Babel, LaTeX ≥ 2018-04-01, and a monolingual document in UTF-8 encoding (which is the recommended encoding), all you need in many European languages is something like, for example:

In addition, there are some specialized frameworks for languages like Japanese, Korean or Chinese, described below.

Unicode engines
When using the xelatex or lualatex engines, many of the problems described below are solved for you. Input files are assumed to be UTF-8 (XeLaTeX also accepts UTF-16 and UTF-32), and the engine automatically maps Unicode characters to their glyphs in the TrueType or OpenType fonts you selected for your document. (This is, of course, assuming those fonts contain the glyphs you need, so you must ensure that your fonts support the languages you are using.)

8-bit engines
With engines not supporting Unicode internally (latex or pdflatex), LaTeX must handle two fundamental problems:
 * 1) Mapping the bytes of your input file into the characters of the language(s) you want to use.
 * 2) Mapping those characters to their glyphs in the fonts your document uses.

With them, you must tell LaTeX which encoding to use for your input files, and what "output" encoding it should use to map characters to their glyphs in the fonts. In most cases (especially for multilingual documents), UTF-8 is an optimal input encoding, which is currently the default encoding.

For most Latin languages, T1 is the desired output encoding, and can be set with:

Other output encodings for specific languages are shown below.

For additional information, see the discussion of encoding in the Fonts chapter, as well as the Special Characters chapter.

Babel
The core package supports the 3 main engines (PDFLaTeX, LuaLaTeX and XeLaTeX). There are two ways to specify the document languages. One of them is as arguments to the package when it is loaded:

Another approach is making the language a global option in order to let other packages detect and use it:

Finally, provides total or partial support for about 250 languages with a set of ini files, which are accessed with. This command can be used to define easily your own language from scratch, too.

Babel will automatically activate the appropriate hyphenation rules for the language you choose. If your LaTeX format does not support hyphenation in the language of your choice, babel will still work but will disable hyphenation, which has quite a negative effect on the appearance of the typeset document (with LuaLaTeX, however, hyphenation rules can be loaded when the document is being typeset). Babel also specifies new commands for some languages, which simplify the input of special characters. See the sections about languages below for more information.

If you call babel with multiple languages:

Short texts in a secondary language does not require an explicit declaration when loading. Just select it as explained in what follows and the basic declarations will be loaded on the fly.

The last language in the option list will be active (i.e. languageB), and you can use the command

to change the active language (when the document begins, with, the main language is automatically selected). You can also add short pieces of text in another language using the command

Babel also offers various environments for entering larger pieces of text in another language:

The starred version of this environment typesets the main text according to the rules of the other language, but keeps the language specific string for ancillary things like figures in the main language of the document. The environment hyphenrules switches only the hyphenation patterns used; it can also be used to disallow hyphenation by using the language name 'nohyphenation' (but note otherlanguage* is preferred).

The babel manual provides much more information on these and many other options.

Font management
If you are using XeTeX or LuaTeX, Babel supports OpenType fonts with. To ease font handling, it provides the macro, which switches the font across languages and sets the OpenType ‘language system’ (ie, language and script). Let us assume you are setting up a document in Swedish, with some words in Hebrew, with a font suited for both languages:

If, on the other hand, you have to resort to different fonts, you would say:

Also, with version >=3.38 the locale identifiers (\language and <tt>\localeid</tt>) and the fonts can be switched without explicit markup, depending on the script (only LuaTeX). In the following example,  switches the direction, and   switches the identifiers and the font:

Bidirectional texts
Babel provides basic support fo bidi texts, mainly in LuaTeX. The package option may take three values, namely,,  , and. With  RTL and LTR text can be mixed without explicit markup (only LuaTeX).

Multilingual versions
It is possible in LaTeX to typeset the content of one document in several languages and to choose upon compilation which language to output in predefined strings (chapter name, date, etc.). Using the commands above in multilingual documents can be cumbersome, and therefore provides a way to define shorter names. With

You can write:

There is a clear drawback to this feature, namely, the ‘prefix’ <tt>\text...</tt> is heavily overloaded in LaTeX and conflicts with existing macros may arise. The manual recommends to to stick to the default selectors or to define your own alternatives.

The current language can also be tested by using the package by Heiko Oberdiek (the built-in feature from the babel package is not reliable). Here comes a simple example: \IfLanguageName{ngerman}{Hallo}{Hello} This allows to easily distinguish between two languages without the need of defining own commands. Another approach for localized strings is.

Polyglossia
When using XeLaTeX or LuaLaTeX, provides an alternative to the core  package for international language support, as described in its manual.

The original aim was to be compatible with, but there is a number of differences. For example, the standard mechanism in LaTeX to declare languages, via package or class options, is not recognized, and the user must rely on a set of new commands, as shown in the example. Unlike, secondary languages must be always explicitly declared. It also adds the concept of ‘language variant’, while in all locales are treated on an equal footing. Not only languages are declared in a non standard way, but also a new way to switch languages has been devised, with commands like <tt>\textenglish</tt> or <tt>\textlang</tt>.

To use polyglossia, load it in your preamble and specify the languages you will be using, along with any language-specific options you wish.

If, for example, we have a document with American English as the main language, and some short texts in French, Bulgarian and Serbian, you might use:

As a comparison, here is the code with `babel`:

Specific languages
Here is a collection of language-specific suggestions. If you have experience in a language not listed below, please add some notes about it. Some of the methods described in this chapter may be useful when dealing with non-English author names in bibliographies.

Arabic script
Documents in the Arabic script, including Arabic, Persian, Urdu, Pashto, Kurdish, Uyghur, etc., are best typeset with either XeTeX or LuaTeX. An example with and LuaTeX follows (rendering by the browser may be different from an editor):

With XeTeX, you may set, but mixed LR and RL text must be marked up explicitly. The same applies to.

with LuaTeX provides partial and tentative support for Arabic justification based on kashida (with the ARABIC TATWEEL Unicode character) or on the ‘justification alternatives’ OpenType table (<tt>jalt</tt>).

An alternative package for LuaTeX is, which is an extension for LuaTeX of , described below. For XeTeX there is.

In 8-bit engines, they can be typeset in a number of ways, one of the oldest being. Add the following code to your preamble:

You can input text in either romanized characters or native Arabic script encodings. Use any of the following commands and environments to enter in text:

See the ArabTeX Wikipedia article for further details.

You may also use the package within Babel to typeset Arabic and Persian

You may also copy and paste from PDF files produced with Arabi thanks to the support of the package. You may use Arabi with LyX, or with tex4ht to produce HTML.

See Arabi page on CTAN

Armenian
The Armenian script uses its own characters, which will require you to install a text editor that supports Unicode and will allow you to enter UTF-8 text, such as Texmaker or WinEdt. These text editors should then be configured to compile using XeLaTeX or LuaLaTeX.

Once the text editor is set up to compile with XeLaTeX or LuaLaTeX, the package can be used to write in Armenian:

or

The Sylfaen font lacks italic and bold, but DejaVu Serif supports them.

See Armenian Wikibooks for further details, especially on how to configure the Unicode supporting text editors to compile with Unicode engines.

Cyrillic script
Currently the most convenient way to typeset Cyrillic texts is with XeTeX or LuaTeX in the UTF-8 encoding. An example for Russian with these engines, which do not require encoding transformations because everything is done directly in that encoding, is:

Support for Cyrillic in non-Unicode engines is based on standard LaTeX mechanisms plus the and  packages. includes support for the <tt>T2*</tt> encodings and for typesetting Bulgarian, Russian and Ukrainian texts using Cyrillic letters with non-Unicode engines. AMS-LaTeX packages should be loaded before and (Why?). If you are going to use Cyrillics in mathmode, you also need to load package before :

Generally, will automatically choose the default font encoding, for the above three languages this is <tt>T2A.</tt> However, documents are not restricted to a single font encoding. For multilingual documents using Cyrillic and Latin-based languages it makes sense to include Latin font encoding explicitly. Babel will take care of switching to the appropriate font encoding when a different language is selected within the document.

On modern operating systems it is beneficial to use Unicode ( or ) instead of KOI8-RU as an input encoding for Cyrillic text.

In addition to enabling hyphenations, translating automatically generated text strings, and activating some language specific typographic rules (like ), provides some commands allowing typesetting according to the standards of Bulgarian, Russian, or Ukrainian languages.

For all three languages, language specific punctuation is provided: the Cyrillic dash for the text (it is little narrower than Latin dash and surrounded by tiny spaces), a dash for direct speech, quotes, and commands to facilitate hyphenation:

The Russian and Ukrainian options of define the commands

which act like and  (commands for turning counters into letters, e.g. ), but produce capital and small letters of Russian or Ukrainian alphabets (whichever is the active language of the document).

The Bulgarian option of provides the commands

which make and  produce letters of either Bulgarian or Latin (English) alphabets. The default behaviour of and  for the Bulgarian language option is to produce letters from the Bulgarian alphabet.

See the Bulgarian translation of "The Not So Short Introduction to LaTeX" for a method to type Cyrillic letters directly from the keyboard using a different distribution.

Chinese
Typesetting Chinese texts (and, in general, CJK script ones) is best done with a complete framework, like  o , although for short texts or a few words in horizontal typesetting  with XeTeX and LuaTeX could be enough, with basic line breaking.

CJK Package
One possible Chinese support is made available thanks to the package collection. If you are using a package manager or a portage tree, the CJK collection is usually in a separate package because of its size (mainly due to fonts).

Make sure your document is saved using the UTF-8 character encoding. See Special Characters for more details. Put the parts where you want to write chinese characters in a environment.

The last argument specifies the font. It must fit the desired language, since fonts are different for Chinese, Japanese and Korean. Possible choices for Chinese include:
 * gbsn (简体宋体, simplified Chinese)
 * gkai (简体楷体, simplified Chinese)
 * bsmi (繁體細上海宋體, traditional Chinese)
 * bkai (繁體標楷體, traditional Chinese)

In CTeX distribution (which has been outdated), six more fonts for simplified Chinese are included, corresponding to default Windows fonts:
 * song (宋体, Simsun)
 * hei (黑体, Simhei)
 * fang (仿宋, STFangSong)
 * kai (楷体, STKaiti)
 * li (隶书, SimLi)
 * you (幼圆, SimYou)

xeCJK Package
When using the XeTeX engine, there is another package called xeCJK, which is based on fontspec and offers similar interface to CJK package.

When using the package, one can define CJK fonts like this:

Czech
Czech is fine using

UTF-8 allows you to have „czech quotation marks“ directly in your text. Otherwise, there are macros \clqq and \crqq to produce left and right quote. You can place quotated text inside.

Copying and searching in PDF
Although czech letters with diacritical sign are displayed correctly, they are not copy-able or search-able in PDF files generated with pdfLaTeX with just command above. Using package cmap solves this for some fonts, for others is also neccessary to use command glyphtounicode.

Devanagari and other Indic scripts
The Devanagari script is used by many languages, including Marathi, Pāḷi, Sanskrit, Hindi, Nepali, Bodo, Konkani, Prakrit. Here is an example for Hindi with, for both XeTeX and LuaTeX:

Other Indic scripts have a similar setup (Malayalam, Bengali, Sinhala, Telugu, Tamil, Kannada, Assamese, Punjabi, etc.).

If any additional features are required, you need an alternative approach, as illustrated in the following example for Bangla, which sets the option <tt>mapdigits</tt> for the Arabic digits to be converted to the local ones (only LuaTeX).

Mapping the digits is accomplished in XeTeX at the font level, with the option <tt>Mapping=</tt>, like:

This is actually a XeTeX feature and doesn't require. It can be used directly with.

Support in pdfTeX is based mainly on the package. An alternative for XeTeX is, which relies on.

Finnish
Finnish language hyphenation is enabled with:

This will also automatically change document language (section names, etc.) to Finnish.

French
As of version 3.0 of, it is advised to choose the language as a global option with the following command :

Formerly, you could load French language support with the following command:

or

There are multiple options for typesetting French documents, depending on the flavor of French: for Parisian French, and  and  for new-world French. If you do not know or do not really care, we would recommend using.

All enable French hyphenation, if you have configured your LaTeX system accordingly. All of these also change all automatic text into French: prints Chapitre,  prints the current date in French and so on. A set of new commands also becomes available, which allows you to write French input files more easily. Check out the following table for inspiration:

You may want to typeset guillemets and other French characters directly if your keyboard has them. Running Xorg (*BSD and GNU/Linux), you may want to use the <tt>oss</tt> variant which features some nice shortcuts, like

You will need the T1 font encoding for guillemets to print properly.

For the degree character you will get an error like ! Package inputenc Error: Unicode char \u8:° not set up for use with LaTeX.

The package will fix it for you.

The great advantage of Babel for French is that it will handle some elements of French typography for you, especially non-breaking spaces before all two-parts punctuation marks. So now you can write:

The non-breaking space before the euro symbol is still necessary because currency symbols and other units or not supported in general (that's not specific to French).

You can use the package along Babel. It will let you print numbers the French way.

You will also notice that the layout of lists changes when switching to the French language. This is customizable using the command. For more information on what the option of  does and how you can customize its behavior, run LaTeX on file <tt>frenchb.dtx</tt> and read the produced file <tt>frenchb.pdf</tt> or <tt>frenchb.dvi</tt>. You can get the PDF version on CTAN.

German
You can load German language support using either one of the two following commands (pdfTeX, XeTeX and LuaTeX are supported).

For traditional ("old") German orthography use

or for reform ("new") German orthography use

This enables German hyphenation, if you have configured your LaTeX system accordingly. It also changes all automatic text into German, e.g. “Chapter” becomes “Kapitel”. A set of new commands also becomes available, which allows you to write German input files more quickly even when you don't use the inputenc package. Check out the table below for inspiration. With inputenc, all this becomes moot, but your text also is locked in a particular encoding world.

In German books you sometimes find French quotation marks («guillemets»). German typesetters, however, use them differently. A quote in a German book would look like »this«. In the German speaking part of Switzerland, typesetters use «guillemets» the same way the French do. A major problem arises from the use of commands like : If you use the OT1 font encoding (which is the default) the guillemets will look like the math symbol "$$\ll$$", which turns a typesetter's stomach. T1 encoded fonts, on the other hand, do contain the required symbols. So if you are using this type of quote, make sure you use the T1 encoding.

Decimal numbers usually have to be written like <tt>0{,}5</tt> (not just 0,5). Packages like <tt>ziffer</tt> enable input like <tt>0,5</tt>. Alternatively, one can use the command from the  and (globally) set the decimal marker using

Greek
This is the preamble you need to write in the Greek language.

This preamble enables hyphenation and changes all automatic text to Greek. A set of new commands also becomes available, which allows you to write Greek input files more easily.

Modern Monotonic Greek, as well as Polytonic and Ancient Greek are supported.

If you need a language in the Latin script and you are using LuaTeX, you can switch automatically the font in the following way, with no explicit markup:

There is a dedicated package for XeTeX named xgreek.

Hungarian
Use the following lines:

More information in hungarian.

Icelandic and Faroese
The following lines can be added to write Icelandic text:

This changes text like Part into Hluti. It makes additional commands available:

To make special characters such as Þ and Æ become available just add:

The default LATEX font encoding is OT1, but it contains only the 128 characters. The T1 encoding contains letters and punctuation characters for most of the European languages using Latin script.

Italian
Italian is well supported by LaTeX. Just add

at the beginning of your document and the output of all the commands will be translated properly.

Norwegian
Norwegian is well supported by LaTeX. Just add

at the beginning of your document and the output of all the commands will be translated properly.

jlreq
The package provides the class file and JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX / upLaTeX. This aims to implement Requirements for Japanese Text Layout.

upTeX, pTeX
There is a variant of TeX intended for Japanese named upTeX, which supports vertical typesetting.

luatexja
Another possible way to write in japanese is to use Lualatex and the package. Adapted example from the Luatexja documentation :

You can also use capabilities provided by the fontspec package and those provided by luatexja-fontspec to declare the font you want to use in your paper. Let us take an example:

Use UTF-8 as your encoding. In case you don't know how to do this, take a look at Texmaker, a LaTeX editor which uses UTF-8 by default.

luatex-ja can collaborate with babel. For example:

For short Japanese texts (a few words or a few paragraphs) in a document in another language, babel (≥3.31) with luatex could be enough; eg:

For package to show the Table of Contents correctly, the encoding has to be explicitly specified.

CJK, XeCJK, bxcjkjatype
Another (but old) possible Japanese support is made available thanks to the or  package collection. If you are using a package manager or a portage tree, the CJK collection is usually in a separate package because of its size (mainly due to fonts).

Make sure your document is saved using the UTF-8 character encoding. See Special Characters for more details. Put the parts where you want to write japanese characters in a environment.

The last argument specifies the font. It must fit the desired language, since fonts are different for Chinese, Japanese and Korean. is an example for Japanese.

The package provides a working configuration of the CJK package, suitable for Japanese typesetting of moderate quality. Moreover, it facilitates use of the CJK package for pLATEX users, by providing commands that are similar to those used by the pLATEX kernel and some other packages used with it.

Korean
The two most widely used encodings for Korean text files are EUC-KR and its upward compatible extension used in Korean MS-Windows, CP949/Windows-949/UHC. In these encodings each US-ASCII character represents its normal ASCII character similar to other ASCII compatible encodings such as ISO-8859-x, EUC-JP, Big5, or Shift_JIS. On the other hand, Hangul syllables, Hanjas (Chinese characters as used in Korea), Hangul Jamos, Hiraganas, Katakanas, Greek and Cyrillic characters and other symbols and letters drawn from KS X 1001 are represented by two consecutive octets. The first has its MSB set. Until the mid-1990's, it took a considerable amount of time and effort to set up a Korean-capable environment under a non-localized (non-Korean) operating system. You can skim through the now much-outdated http://jshin.net/faq to get a glimpse of what it was like to use Korean under non-Korean OS in mid-1990's.

TeX and LaTeX were originally written for scripts with no more than 256 characters in their alphabet. To make them work for languages with considerably more characters such as Korean or Chinese, a subfont mechanism was developed. It divides a single CJK font with thousands or tens of thousands of glyphs into a set of subfonts with 256 glyphs each.

For Korean, there are three widely used packages.
 * HLATEX by UN Koaunghi
 * hLATEXp by CHA Jaechoon
 * the CJK package by Werner Lemberg

HLATEX and hLATEXp are specific to Korean and provide Korean localization on top of the font support. They both can process Korean input text files encoded in EUC-KR. HLATEX can even process input files encoded in CP949/Windows-949/UHC and UTF-8 when used along with Λ, Ω.

The CJK package is not specific to Korean. It can process input files in UTF-8 as well as in various CJK encodings including EUC-KR and CP949/Windows-949/UHC, it can be used to typeset documents with multilingual content (especially Chinese, Japanese and Korean). The CJK package has no Korean localization such as the one offered by HLATEX and it does not come with as many special Korean fonts as HLATEX.

The ultimate purpose of using typesetting programs like TeX and LaTeX is to get documents typeset in an aesthetically satisfying way. Arguably the most important element in typesetting is a set of welldesigned fonts. The HLATEX distribution includes UHC PostScript fonts of 10 different families and Munhwabu fonts (TrueType) of 5 different families. The CJK package works with a set of fonts used by earlier versions of HLATEX and it can use Bitstream's cyberbit True-Type font.

To use the HLATEX package for typesetting your Korean text, put the following declaration into the preamble of your document:

This command turns the Korean localization on. The headings of chapters, sections, subsections, table of content and table of figures are all translated into Korean and the formatting of the document is changed to follow Korean conventions. The package also provides automatic particle selection. In Korean, there are pairs of post-fix particles grammatically equivalent but different in form. Which of any given pair is correct depends on whether the preceding syllable ends with a vowel or a consonant. (It is a bit more complex than this, but this should give you a good picture.) Native Korean speakers have no problem picking the right particle, but it cannot be determined which particle to use for references and other automatic text that will change while you edit the document. It takes a painstaking effort to place appropriate particles manually every time you add/remove references or simply shuffle parts of your document around. HLATEX relieves its users from this boring and error-prone process.

In case you don't need Korean localization features but just want to typeset Korean text, you can put the following line in the preamble, instead.

For more details on typesetting Korean with HLATEX, refer to the HLATEX Guide. Check out the web site of the Korean TeX User Group (KTUG).

In the FAQ section of KTUG it is recommended to use the kotex package

Persian script
For Persian language, there is a dedicated package called XePersian which uses XeLaTeX as the typesetting engine. Just add the following code to your preamble:

See XePersian page on CTAN

Moreover, Arabic script can be used to type Persian as illustrated in the corresponding section.

Polish
If you plan to use Polish in your encoded document, use the following code:

The above code merely allows to use Polish letters and translates the automatic text to Polish, so that "chapter" becomes "rozdział". There are a few additional things one must remember about.

Connectives
Polish has many single letter connectives: "a", "o", "w", "i", "u", "z", etc., grammar and typography rules don't allow for them to end a printed line. To ensure that LaTeX won't set them as last letter in the line, you have to use non breakable space:

Babel (>=3.58) with LuaTeX provides a transform for this purpose, without explicit markup, which is activated with:

Numerals
According to Polish grammar rules, you have to put dots after numerals in chapter, section, subsection, etc. headers.

This is achieved by redefining few LaTeX macros.

For books:

For articles:

Alternatively you can use dedicated document classes: Those classes have much more European typography settings but do not require the use of Polish babel settings or character encoding.
 * the class instead of ,
 * instead of
 * and instead of.

Simple usage:

Full documentation for those classes is available at http://web.archive.org/web/20040609034031/http://www.ci.pwr.wroc.pl/~pmazur/LaTeX/mwclsdoc.pdf (Polish).

Indentation
It may be customary (depending on publisher) to indent the first paragraph in sections and chapters:

Hyphenation and typography
It's much more frowned upon to set pages with hyphenation between pages than it is customary in American typesetting.

To adjust penalties for hyphenation spanning pages, use this command:

To adjust penalties for leaving widows and orphans (clubs in TeX nomenclature) use those commands:

Commas in math
According to some typography rules, fractional parts of numbers should be delimited by a comma, not a dot. To make LaTeX not insert additional space in math mode after a comma (unless there is a space after the comma), use the package.

Unfortunately, it is partially incompatible with the package. One needs to either use dots in columns with numerical data in the source file and make switch them to commas for display or define the column as follows:

The alternative is to use the package, but it is much less convenient.

Another alternative is using package that lets you typeset numbers and their according units consistently. Number alignment in tables and different output modes re supported.

Further information
Refer the Słownik Ortograficzny (in Polish) for additional information on Polish grammar and typography rules.

Good extract is available at Zasady Typograficzne Składania Tekstu (in Polish).

Portuguese
Add the following code to your preamble:

You can substitute the language for brazilian portuguese by choosing or.

Slovak
Basic settings are fine when left the same as Czech, but Slovak needs special signs for 'ď', 'ť', 'ľ'. To be able to type them from keyboard use the following settings:

Spanish
Include the appropriate Babel option:

The trick is that Spanish has several options and commands to control the layout. The options may be loaded either at the call to Babel, or before, by defining the command. Therefore, the following commands are roughly equivalent:

On average, the former syntax should be preferred, as the latter is not recognized by some programs (LyX, latex2rtf) interacting with LaTeX.

Spanish also defines shorthands for the dot and << >> so that they are used as logical markup: the former is used as decimal marker in math mode, and the output is typically either a comma or a dot; the latter is used for quoted text, and the output is typically either «» or “”. This allows different typographical conventions with the same input, as preferences may be quite different from, say, Spain and Mexico.

Two particularly useful options are : some packages and classes are known to collide with Spanish in the way they handle active characters, and these options disable the internal workings of Spanish to allow you to overcome these common pitfalls. Moreover, these options may simplify the way LyX customizes some features of the Spanish layout from inside the GUI.

The options provide support for local custom in Mexico: the former using decimal dot, as customary, and the latter allowing decimal comma, as formerly required by the Mexican Official Norm (NOM) of the Department of Economy for labels in foods and goods. More localizations are in the making.

The other commands modify the Spanish layout after loading Babel. Two particularly useful commands are and.

The macro {{LaTeX/LaTeX|code=\spanishoperators{ }{}} contains a list of spanish mathematical operators, and may be redefined at will. For instance, the command

only defines, overriding all other definitions; the command disables them all. This command supports accented or spaced operators: the command puts an accent, and the  command adds a small space. For instance, the following operators are defined by default.

Finally, the macro disables some active characters, to keep you out of trouble if they are redefined by other packages. The candidates for deactivation are the set {<>."'}. Please, beware that some option preempt the availability of some active characters. In particular, you should not combine the option with, or the  with.

Please check the documentation for Babel or <tt>spanish.dtx</tt> for further details.

Thai
Both babel (luatex and xetex) and polyglossia (only xetex) support Thai. Word division in luatex is based on the standard hyphenation mechanism, so that patterns can be modified with, while xetex relies on its own built-in mechanism. In pdftex you need an external tool for word segmentation (like swath). An example with babel (luatex and xetex) is:

Tibetan
One option to use Tibetan script in LaTeX is to add

to your preamble and use a slightly modified Wylie transliteration for input. Refer to the excellent package documentation for details. More information can be found on

`babel` for `luatex` provides tentative support for justification with trailing tshegs.

Vietnamese
The following preamble could be used to directly type Vietnamese (xetex or luatex).

For a document written in this language:

title: LaTeX/Internationalization


text:
User:Schneelocke

Please see my user page on the English Wikipedia for more.

title: User:Schneelocke


text:
Marine Aquaria/Setting Up

Setting up the aquarium is not as simple as it seems. The process is a little more than "Just Add Water."

When setting up your aquarium, it is important to take several factors into account. You will need to consider a proper support for the tank's weight, the nearby environment, and traffic.

Tips if you have a used aquarium
Before setting up a fish tank, you should test if for leaks, especially if you received it second-hand. Simply find a location where you would not mind if it leaked, then place newspapers on the ground. Place your tank on the newspapers and fill it up with water, and let it sit for some time to make sure it doesn't leak. Judging by what area of newspaper gets wet, you can judge where the leak is.

Location
As previously mentioned, the proper support for a tank is necessary. If you are placing an aquarium on something not built for aquariums, you should make sure that the structure is able to support it. Keep in mind, water weighs 8 pounds per gallon so a 100 gallon tank weighs over 800 pounds! An actual store-bought aquarium stand is the safe way to go, and can often be bought in color and wood to match your furniture. Aquarium stands are expensive for a reason. Don't be an idiot like me and think you can go buy wood and build your own (unless of course, you really do know what you're doing). Thrift stores and garage sales are good places to look; get something of a sturdy material, like metal. If you are selecting a stand for a 30 gallon tank, ask yourself if you could picture a sumo wrestler safely standing on it.

You should also consider the floor that you are placing your aquarium on. First, as you will be performing maintenance in the area, you should expect some water to be spilled, but even if you don't, if the tank leaks the disaster is smaller. Secondly, especially if your tank is larger, you must think about if the floor structure is strong enough. Try to place the aquarium perpendicular to the support structure of the floor so that the most beams can share the weight.

The nearby environment includes other things such as lights, windows, radiators, and such. Anything that emits light too close to the aquarium may disturb the organisms as you turn them on and off. Radiators and other sources of heat or temperature change may effect the temperature of the water. Windows are an especially unwise place to put an aquarium. Though corals need bright light, sunlight can contribute to algal growth. Also, warm or cold air from the window can also effect the aquarium.

Another factor to consider is traffic around the aquarium. Fish may be frightened by the moving around of people near the aquarium. It is best to locate the tank in a place to reduce this stress. On the other hand, putting the aquarium in the corner of the house you never visit isn't the best idea either.

Some aquarists actually place their aquarium in the wall, like a natural picture. Though it is a very good effect, there must be some room behind the wall to give access to the aquarium. Also, it means cutting a hole into the wall, which should be considered if you plan to sell the home later.

Putting it together
Now, you've got your tank in the perfect position. Now you can actually start putting stuff inside!

To set up the tank, build from the bottom up. Place stuff that goes under the substrate down first. This can include an undergravel filter or eggcrate. Both of these things are optional, but if you have either, they should be placed first.

Next, the rocks and decorations are placed down. Make sure that they do not wiggle or budge, otherwise they will be more prone to accidents. Some people like to silicon their rocks together to make sure they don't budge, if their rocks are not live and wet. We put the rocks down before putting anything else down to make sure that they form a good support structure, lest your natural monument collapse on you.

After the rocks are all set in place, the substrate is put in, and then all of you equipment that hang onto or attached inside the aquarium. This way you can make sure everything is right without having to get too wet. After everything is in place, it is time to put in the water.

Use a plate or other solid surface and place it on your substrate or rocks. Pour your water directly on this plate. By doing this, the force of your pouring won't kick up the substrate.

Congratulations, your tank is now set-up! But even so, you're not finished yet.

Cycling
As talked about in the Nitrogen Cycle section, control of nitrogenous wastes is very important. This can only be done with bacteria, and if you just set up your tank, it's probably relatively sterile, which is not quite what we want if we want the nitrogenous wastes to be controlled.

These bacteria can be obtained in a number of different ways. One is live rock or live sand, both which house plentiful bacterial colonies. Another is a variety of products on the market that claim to have these such bacteria in solution, but the dubious claims of these likely snake oils should be taken with a grain of salt. The third is to get some substrate from an already up-and-running fish tank; this could be sand, gravel, or a piece of dirty filter pad. Or ask your friend to save you some dirty water the next time they clean their tank. The fourth is to let your tank sit, and eventually it will seed itself.

In all of these situations, it doesn't do any good for the bacteria if the aquarium has no ammonia; otherwise, these bacteria will starve. In the case of the live rock or live sand, it actually perpetuates its own cycle as organisms off of the rock can die, decompose, and thus produce ammonia. However, in the case of using any sort of product or letting the aquarium passively gain bacteria, you must provide this food for them.

To provide ammonia, there are two main methods besides using live rock and sand. Another is to provide another organic ammonia source, such as a living thing, usually a fish. The fish will produce ammonia that will allow the bacteria to feed; however, if you are allowing your tank to gain bacteria on its own, the time it takes for bacteria to grow to a level that can keep the ammonia safe for this fish may be too long. However, this is a viable option, especially if one uses a relatively hardy species that can withstand higher ammonia or worse conditions, such as a Damselfish. Some people frown upon cycling with the use of fish as the fish experiences some stress as the bacteria build up to handle the ammonia.

Another method to add ammonia to the tank is a method known as Fishless Cycling. In this case, the aquarist uses straight ammonia; ammonia can be found at a dollar store pure. When trying to find "pure ammonia", one should make sure that the ammonia contains no other substances than ammonia and water. A lot of cleaners contain chemicals such as surfactants (that make bubbles), dyes, coloring agents, fragrences, and a whole range of chemicals that you do not want in you aquarium. "Pure ammonia" is clear and smells quite bad, but for a fishless cycle it will do the trick. This ammonia will provide food for the bacteria without endangering a fish. Just add a couple spoons a day of ammonia to the aquarium to allow the bacteria to feed. Never add ammonia to an aquarium unless there is nothing living inside of it, because, as mentioned before, it is poisonous to most living things other than nitrifying bacteria.

After a couple weeks of this, cycling will be complete, and the aquarium should have built up a sizable colony of bacteria that can handle the waste products of the future inhabitants of your aquarium and make sure the nitrogenous compounds are converted to less dangerous forms.

title: Marine Aquaria/Setting Up


text:
User:Fcarr

What roles do fun and joy play in the learning process?

By: Felicia Carroll

Do you know that fun and joy in the classroom can motivate students to learn more effectively and enhance learning? Enjoying your students and having fun with them is important to strengthen their development. While children constantly explore and experiment, a fun and exciting learning environment enhances learning. Making learning fun can minimize behavioral problems and energize students to become more effective learners.

According to Harris (1991) the best way to motivate students and make learning fun is to reward, explain, satisfy student needs, make learning visual, teach inductively, have students participate, care and use positive emotions to enhance learning and remember that energy sells. Reward: correct answers and good behavior, its okay to give out happy faces. Nahomy Dancy, Kindergarten Teacher at Dumfries Elementary believes that positive reinforcement challenges students to be more creative. Dancy says that she loves to use rewards, “they are great ways to keep students excited about learning”. Everyone likes the feeling of accomplishment and recognition; rewards for good work produce those good feelings.

Besides rewards, Harris says “the important point is that extrinsic motivators can, over a brief period of time, produce intrinsic motivation. A student who is intrinsically motivated undertakes an activity “for its own sake, for the enjoyment it provides, the learning it permits, or the feelings of accomplishment it evokes” (Leeper 1988). An extrinsically motivated student performs “in order to obtain some reward or avoid some punishment external to the activity itself,” such as grades, stickers, stamps, candy certificates, verbal praises or teacher approval (Leeper 1988). Whether the student is intrinsically or extrinsically motivated, teachers should support the motivation to learn by making learning joyful and exciting. At the end of the day extrinsic motivators can, over time, produce intrinsic motivation.

Harris (1991) study found the following: Many students do poorly on assignments and participation because they do not know what to do or why they should do it. As a teacher you must be able to explain the importance of the assignments or activitives. Focus on what’s interesting and be enthusiastic about it. Your enthusiasm will rub off on the students and they will likely become interested. Verbally noting the purposes of specific tasks when introducing them to students will have a positive outcome (Brophy 1986). If teachers spend more time on explaining exactly what is expected on assignments and activities, student’s who are uncertain about what to do will seldom perform well.

Harris believe that attending to the need satisfaction is a primary method of keeping students interested and happy as well as providing better learning by attaching images to the ideas we want to convey. One of those needs is caring. Show students that you care. Students attend to adults who appears too be a real person. Students respond with interest and motivation to teachers who appear to be human and caring (Harris 1991). As teachers we need to nurture student’s natural curiosity about the world by welcoming their questions, encouraging exploration, and familiarizing them with resources that can enlarge their world. It is now your duty as an educator to give students the message that learning is fun, enjoyable and satisfying. If you can make learning fun, exciting, happy, loving, or perhaps even a bit frightening, students will learn more readily and the learning will last much longer. A fun environment allows us to think outside the box, take risk and have fun doing so, (Mickens).

Unfortunately, as children grow their passion for learning frequently seems to shrink. Learning often becomes associated with drudgery instead of delight (Lumsden 1994). According to Assistant Principle Maria Franzen in order to stop the shrinkage, “Educators must realize that fun and joy is not limited”. Fun and joy should be a big part of your instructional day or the motivation level of students will gradually cease. So do we agree with Harris, when he says that teachers should make learning visual, teach inductively and use positive emotions to enhance learning? I use visuals everyday in class to give students the opportunity to develop a mental framework or filing system that will help them to learn better and remember more. As a teacher you should be able to teach inductively and use positive emotions to enhance learning and motivation. Emotions can be created by classroom attitudes, by doing something unexpected or outrageous, by praise, and by many other means. The day you come to class with a bowl on your head and speak as an alien observer about humans will be a day and a lesson your students will remember. Don’t be afraid to embarrass yourself to make a memorable point (Harris 1991). Teaching inductively increase motivation and maintain interest. Start with examples, allow students to draw conclusions, generalize about them and make sense of them.

Awareness of how student’s attitudes and beliefs about learning develop and what facilitates learning for its own sake can assist educators in reducing student apathy. According to Brophy (1987), motivation to learn is a competence acquired “through general experience but stimulated most directly through modeling, communication of expectations and direct instruction or socialization by significant others especially teachers”. Research has also shown that good everyday teaching practices can do more to counter student apathy than special efforts to attack motivation directly (Ericksen, 1978). Most students respond positively to a well-organized course taught by an enthusiastic instructor who has a genuine interest in students and what they learn. Thus activities you undertake to promote learning will also enhance students' motivation.

In conclusion, we must understand that good everyday teaching practices can do more to counter student apathy than special efforts to attack motivation directly (Ericksen, 1978). Most students respond positively to a well-organized course taught by an enthusiastic instructor who has a genuine interest in students and what they learn. Thus activities you undertake to promote learning will also enhance students' motivation. Learning can be fun, exciting, sometimes thrilling, and highly emotional. Learning experiences should provide as much fun and or enjoyment as possible. The key factor is to remember that energy sells.

Sidebar

If a doctor, lawyer, or dentist had 40 people in his office at one time, all of whom had different needs, and some of whom didn't want to be there and were causing trouble, and the doctor, lawyer, or dentist, without assistance, had to treat them all with professional excellence for nine months, then he might have some conception of the classroom teacher's job.

Donald D. Quinn

Essay question

Does learning have to be fun or as educators should we stick to standards? Explain what factors influence your answer.

Multiple Choice Questions

1. How do teachers motivate their students?

A.Involve your students in your teaching. Ask for feedback.

B.Encourage students to share their ideas and comments, even if they are incorrect.

C.Put some excitement into your speech; vary your pitch, volume and rate.

D.All the above

2. Why are so many students physically present in the classroom but largely mentally absent?

A. Because they just want to get by smoothly

B. Because they fail to invest themselves fully in the experience of learning.

C. Because they see school as just something they have to do

D. None of the above

3. Activities are likely to have maximum impact when you…

A. engage students

B. introduce them in ways that clarify their purpose

C. introduce them as a professional and maintain your energy level

D. A and B

4. A student who is enjoys the fun in learning are more likely to …

A. believe learning is not apart of the real world

B. become easily discouraged

C. be very open -minded

D. be afraid to take on challenges

5. How does play influence learning?

A. It supports the development of the students’ language and social skills

B. Motivates and enhances learning

C. none of the above

D. all of the above

Sources

Brophy, Jere. On Motivating Students. Occasional Paper No. 101. East Lansing, Michigan: Institute for Research on Teaching, Michigan State University, October 1986. 73pages. ED 276724.

(Dancy, N. Kindergarten Teacher. Personal communication. September 20, 2006).

Ericksen, S.C. “The Lecture.” Memo to the Faculty, No 60. Ann Arbor: Center for Research on Teaching and Learning, University of Michigan, 1978. ( Franzen, M. Assistant Principle. Personal communication. September 20, 2006).

Harris, Robert. (1991, March). “Some Ideas for Motivating Students.” Virtual Salt. Retrieved September 18, 2006 from www.virtualsalt.com/motivate.htm.

Lepper, Mark R. “Motivational Considerations in the Study of Instruction.” Cognition and Instruction 5, 4 (1988):289-309

Lumsden, Linda. (1994, June). “Student Motivation to Learn. ERIC Digest, No 92. Retrieved September 18, 2006, from eric.uoregon.edu/publications/digest/digest 092.html (Mickens, Tasha Kindergarten Teacher. Personal communication. September 20, 2006). Answers

1. D 2. B 3. D 4. C 5. D

title: User:Fcarr


text:
User:Pbuss002

The United States is a society made up of many ethnicities, classes and races. Our country is considered by many to be the world's most successful mixed society but our education process in serving the children of this society is far from perfect. All student’s regardless of race or class deserve to have their needs addressed and met. As educators we must realize that for today's student to be successful, the educational process is one that now must incorporate the student's social and emotional needs, family and community. The failure in this process is at the heart of our nation’s school/community disconnect.

Parental involvement is a vital link in the school/community connection and an important step in including families in the educational process. Since family and school are a child’s first societal experiences, parents, schools, the community and the whole of society should agree on one idea: a child’s life success depends strongly on strengthening all areas of literacy, including social-emotional skills.(Allen and Cosby 2000). When home collaborates with school to implement Social Emotional Learning programs, students gain more. Because students are constantly being exposed to and bombarded by mass culture messages from television, the Internet, music videos and other outlets unsupervised by adults, it’s important for parents and other caregivers in a child’s life to send opposite messages.(Elias 2006). For this reason, school and community resources have to be mobilized in assisting parents in providing home atmospheres conducive to education. This is the most basic form of parental involvement in the education of their children. Parent should be given regular overviews of the academic and social-emotional skills students are learning at any time, arranging opportunities for parents and guardians to meet and exchange ideas on how to support their schools teaching, how to parent and raise their child and how to organize homework routines, etc. (Elias, 2006)

Family composition needs to be recognized by schools as having an affect on a child’s learning ability and focus. Family composition affects the amount of time children and their parents have to share with one another and can also affect how that time is spent. A student from a single parent household knows their parent has to contend with the combination of working and maintaining a family. (Cooper and Ryan 2000). For working parents, time constraints often prevent school involvement. Educators should make every attempt to plan school meetings, activities, and conferences at times when parents are available to attend. These parents may not have a great of time to spend supervising homework enjoying their children. A school community connection of homework assistance by telephone, email or an after-school appointment would greatly benefit a student in this situation.

Some parents may have other reasons for not being as involved in their children’s schools. A growing number of parents do not speak English or read it well enough to communicate with teachers and school staff. Because of cultural differences, many parents are not familiar with the expectations of the school their children attend and don’t quite understand how to go about getting involved even they desire to.(Mapp 1997) Still others parents feel they lack the education or skills needed to interact with their child’s teachers or staff personnel or have negative experiences from their own school days and are intimidated by and uncomfortable about going into schools.(Mapp 1997) There will be problems in school due to the language barrier for parents or guardians who do not speak English. A solution is to have a resource person at the school who can communicate with the parents in their first language. The resource person could be either a teacher or a parent. Educators also need to realize that some parents lack the ability to read or are embarrassed about their lack of schooling. Teachers and staff should know that not all parents are able to read newsletters, school correspondence, field trip permission slips or (most importantly) homework assignments. Teachers, therefore should not depend on the written communication as the only link to home. Conferences, phone calls, home visits and other personalized contacts with parents are important. (Mapp 1997).

Another disconnection is school staffs’ failure to recognize or legitimize parents’ role in their children’s education. Principals and teachers may claim interest in parental participation, but, in fact, grant parents only limited roles at the school and give signals that their feedback, time and opinions are unwelcome. School staff are rarely trained on how to collaborate with parents and respect the diversity that all children bring to the school. (Mapp 1997)

In addition to fostering parental involvement and focusing on a student’s social and emotional learning, schools and communities may also be connected through community service. Community service can play an important part in fostering a sense of belonging within a student. Properly conducted community service begun at the earliest level of education, provides an opportunity for children to learn life skills and integrate them into their daily lives. Service opportunities usually are ways for students to encounter other people, ideas and circumstances in ways that broaden their sense of perspective and can build emphatic understanding and caring connections to the world around them. (Elias 2006). For many students community service is an opportunity to nourish a human need to be a generous and contributing member of important groups.

There are many ways and reasons for developing school, family and community connections. These connections improve school programs and school climate, provide services and support to families, increase parental involvement and parent skills and leadership while connecting families and students with others in their schools and communities. (Epstein 1995) These connections also assist teachers with their workload. Alleviating the disconnections create partnerships that assist students in succeeding in school and later life.

The way our schools care about our children is reflected in the way schools interact with and care about their families, social emotional needs and communities. If we, as educators, view students only as students we are likely to see the family as separate from the school. We will then expect the family to do its job and leave the education of the children to the schools. However, if we look at students as children, we will be more likely to see both the family and the community as partners with the school in a child’s education (Epstein 1995.) Making sure schools and communities stay connected will help us to realize our shared interests in and responsibility towards the children.

title: User:Pbuss002


text:
C++ Programming/Code/API

To a programmer, an operating system is defined by its API. API stands for Application Programming Interface. An API encompasses all the function calls that an application program can communicate with the hardware or the operating system, or any other application that provides a set of interfaces to the programmer (i.e.: a library), as well as definitions of associated data types and structures. Most APIs are defined on the application Software Development Kit (SDK) for program development.
 * What is an API?

In simple terms the API can be considered as the interface through which the user (or user programs) will be able interact with the operating system, hardware or other programs to make them to perform a task that may also result in obtaining a result message.

No, a framework may provide an API, but a framework is more than a simple API. By default a framework also defines how the code is written, it is a set of solutions, even classes, that as a group addresses the handling of a limited set of related problems and provides not only an API but a default functionality, well designed frameworks enable its interchangeability for a similar framework, striving to provides the same API.
 * Can an API be called a framework?

title: C++ Programming/Code/API


text:
C++ Programming/Classes/Abstract Classes

Abstract Classes
An abstract class is, conceptually, a class that cannot be instantiated and is usually implemented as a class that has one or more pure virtual (abstract) functions.

A pure virtual function is one which must be overridden by any concrete (i.e., non-abstract) derived class. This is indicated in the declaration with the syntax " = 0" in the member function's declaration.

 * Example:

In general an abstract class is used to define an implementation and is intended to be inherited from by concrete classes. It's a way of forcing a contract between the class designer and the users of that class. If we wish to create a concrete class (a class that can be instantiated) from an abstract class we must declare and define a matching member function for each abstract member function of the base class. Otherwise, if any member function of the base class is left undefined, we will create a new abstract class (this could be useful sometimes).

Sometimes we use the phrase "pure abstract class," meaning a class that exclusively has pure virtual functions (and no data). The concept of interface is mapped to pure abstract classes in C++, as there is no "interface" construct in C++ the same way that there is in Java.

 * Example:

In this example the Vehicle is an abstract base class as it has an abstract member function.The class WheeledLandVehicle is derived from the base class. It also holds data which is common to all wheeled land vehicles, namely the number of wheels. The class TrackedLandVehicle is another variation of the Vehicle class.

This is something of a contrived example but it does show how that you can share implementation details among a hierarchy of classes. Each class further refines a concept. This is not always the best way to implement an interface but in some cases it works very well. As a guideline, for ease of maintenance and understanding you should try to limit the inheritance to no more than 3 levels. Often the best set of classes to use is a pure virtual abstract base class to define a common interface. Then use an abstract class to further refine an implementation for a set of concrete classes and lastly define the set of concrete classes.

An abstract class is a class that is designed to be specifically used as a base class. An abstract class contains at least one pure virtual function. You declare a pure virtual function by using a pure specifier (= 0) in the declaration of a virtual member function in the class declaration.

The following is an example of an abstract class:

Function AB::f is a pure virtual function. A function declaration cannot have both a pure specifier and a definition.

Abstract class cannot be used as a parameter type, a function return type, or the type of an explicit conversion, and not to declare an object of an abstract class. It can be used to declare pointers and references to an abstract class.