Hello, I am the son of an immediate past Minister of an African country who was removed from office because of an aledged US$214million when he was a member of the nationl identity card scheme in that country.He is going to be brought before the country's Independent Corrupt Practices and Other Related Offences Commission (ICPC) in which most of his personal accounts both within and outside the country has been frozen. I am using this medium to solicit for your assistnce in trnsferring some huge amount of money my father deposited in a security firm in Europe,as of date this funds are yet to be discorvered.Based on this you are to assist in transferring the funds to your own personal accounts from where we shall re-invest the funds in a legitimate business so that it cannot be traced to my father.If you are willing to assist you will have 20% of the initial sum and a further 20% of whatever investment we go into. I do not need to spell out the importance of the need for secrecy considering the volatile nature of the matter and the parties involved.We assume that most of our phone and fax lines will be tapped so,if you are willing to asist you are to list your phone and fax number so I can contact you.This is important as we will have to tallk about the modalities of the transfer. Time is of great essence in this matter so if I do not hear from your within the next three days I will take it that you are not interested and will solicit for a new partner. Waiting to hear from you. Oladimeji Afolabi PS: For your perusal see this website. http://www.vanguardngr.com/articles/2002/headline/f130122003.html http://www.vanguardngr.com/articles/2002/headline/f128122003.html


The New Survivalist
|
Chapter 5 Food: Page 4 |
||||||||||||||||||||||||||||
Food Preservation TechniquesLet's say that you have just acquired a fresh kill. But it is a large animal (i.e., deer) and there is no electricity, so your refrigerator and freezer are not options.  But you would rather preserve some of this meat to feed your family during the coming months. Well, you can cut the meat into thin strips and dry it or smoke it making jerky. Or if you have a pressure canner and a heat source you can pressure can it. But first you will have to dress it! |
||||||||||||||||||||||||||||
Field DressingAn animal must be field dressed or "gutted" immediately after it is killedon the spot! Otherwise the meat will go bad very quickly. Even in very cold weather the inside of a large animal will stay warm for a long time after it dies. That heavy coat of fur that keeps the animal warm through the winter also keeps its insides warm for a long time after it has been killed. The digestive systems of all animals contain billions of microorganisms that do no harm when the animals are alive. But when the blood ceases to circulate and the immune system ceases to function, those microorganisms will cause the animal to deteriorate very rapidly. To protect the meat the "guts" have to be removed immediatelyin the fielda process known as field dressing. The process is essentially the same for all animals. As an example I will briefly describe the basics of field dressing a deer. There are good videos available at hunting and outdoor stores that describe the process in detail, and a picture is worth a thousand words, as they say, so if you don't already know how to field dress an animal I would recommend that you acquire such a video and learn how to do it now. One that I recommend in DVD format is Practical Game Processing and Deer Butchering by Timothy Flynn and Gary Zick. Don't wait until you have a fresh kill on your hands. You will have to act quickly, which means that you will need to know what to do in advance. If the animal is a buck, first cut off the genitals with a sharp knife. Then slit the underbelly of the animal from the genitals to the ribcage, being careful not to cut the intestines. After your initial incision slip two fingers under the skin to hold the skin up slightly away from the intestines to keep from nipping them. Pull all of the organs out of the body cavity, using your knife to cut away anything that is attached. Save the liver. The kidneys will be located in the flank of the animal. These should be cut away and also saved. Under the rib cage is a muscular diaphragm separating the abdominal cavity (which you just emptied) from the chest cavity. Cut around this diaphragm to remove the chest organs, which consists mostly of the heart and lungs. Reach up inside the chest cavity as high into the throat as possible with your knife, and cut the windpipe and then pull all the organs of the chest out of the animal in one mass. Save the heart. Rinse out the inside of the animal with cold water being particularly careful to wash out any intestinal contents that may have leaked into the carcass, which is now ready for transporting. Next, make slits behind the Achilles tendons of both rear legs so that you can hang the animal upside down (as seen in the photograph above.) You can hasten the cooling down of the interior of the animal by propping open the internal cavity with a stick so that cold air can get to the inside. The animal may now be skinned and butchered. During normal times my preferred method for keeping meat is in my freezer. For our purposes, however, I will assume that electricity is not readily available so I will describe two methods of preserving meat which require no refrigeration. |
||||||||||||||||||||||||||||
Smoking Meat & Making JerkyBefore refrigeration people relied on salt and smoke to preserve their meat. Most people lived on family farms and the "smoke house" was as familiar as the outhouse. Refrigeration changed the way we did a lot of things, but one thing it did not change was our taste for the flavor of smoked meat. Consequently, smokers are readily available today and recipes abound, including those for smoking your meat in your backyard grill. But one thing that nearly all of these recipes have in common is: the meat is cooked and so the end product will require refrigeration. To preserve meat that will not require refrigeration a process known as Hard Smoking is required. Hard smoked meat is similar to jerky. It contains a lot of salt, and it is smoked at a low temperature until there is very little moisture left in it. It is kind of like the dehydration method used for fruits and vegetables, but done with smoke and the addition of salt and usually other spices as well. The salt helps preserve the meat by inhibiting the growth of microorganisms. Sometimes the meat is so salty that you may even want to soak it for a few hours before eating it to remove some of the salt. (People used to save this water and reclaim the salt by allowing the water to evaporate.) The smoked meats and jerky that you buy in stores today contain preservatives called nitrites, so their moisture content may be slightly higher and their salt content slightly lower. Their recommended shelf-life is one year. Nitrites are known to cause cancer so their consumption should be limited. The jerky that you make at home, if preserved properly, should keep indefinitely even without nitrites, but as with any preserved food its quality will deteriorate over time. It would best be best to consume it within six months to a year. Spices have been highly prized over the centuries, with certain spices at times being worth more than their weight in gold. You might recall, from your American history class, that when Christopher Columbus discovered the New World he was actually looking for a shorter trade with India, primarily for spices. We enjoy spices because they impart interesting flavors to our foods. But before the days of refrigeration they were also highly valued for their ability to preserve food. By using certain spices that have strong antimicrobial actions, we can reduce the amount of salt needed to preserve our meat, making it more palatable and healthier at the same time. Spices with antimicrobial action include garlic, ginger, black pepper, clove, oregano, thyme, nutmeg, cinnamon, allspice, bay leaves, mustard, rosemary, bishop's weed, chilli (also called cayenne or red pepper), horseradish, cumin, black cumin, pomegranate seeds, onion, celery, geranium and many others. Some spices by themselves have weak antimicrobial effects that become much stronger when combined with other spices. (These combinations are said to be synergistic, because the combination is greater than the sum of the individual parts.) Chili powder is a synergistic combination typically consisting of red pepper (cayenne), onion, paprika, garlic, cumin and oregano. Five-spice powder is a synergistic combination of pepper, cinnamon, anise, fennel and cloves. Most people think that the combination of spices known as curry powder originated in India. But curry is actually a Western blend devised during colonial times combining the best spices from India. Curry powder recipes vary slightly, but turmeric is always a key ingredient in the blend. The usual recipe for curry powder in the West consists of turmeric, cardamom, cumin, fenugreek and chilles. Other herbs that are commonly included in curry blends include ginger, garlic, coriander, cloves, nutmeg, mustard, black pepper, fennel, and others. We can extend the shelf-life of our homemade jerky with the judicious use of spices. Salt and pepper, either black or red, are key ingredients. The other spices that I prefer include garlic, ginger, and turmeric. I also like the spice blends mentioned above, curry powder, chili powder and five-spice powder. If a liquid marinade is to be employed soy sauce may be used as the source of salt. |
||||||||||||||||||||||||||||
Safety PrecautionsJerky is considered a very safe and effective method of preserving meat. However, over the years a few incidents of food poisoning have been reported as a result of improperly cured jerky. This can be easily avoided if a few commonsense precautions are followed: 1) Cleanliness is rule number one. It begins in the field when the animal is field dressed or gutted. Try to keep the meat from coming into contact with the contents of the intestines. Rinse the inside of the animal thoroughly with water if possible. 2) Before preparing any food wash your hands thoroughly using soap and water. Use a mild chlorine bleach solution (one tablespoon of bleach to a gallon of water) to clean all surfaces and materials that will come into contact with the meat. (By now it should be evident that chlorine bleach is an important survival item that should be stored in sufficient quantities.) 3) The use an oven thermometer to insure that your smoker/dryer maintains the proper temperature is recommended. 4) Jerky must be completely dry, since bacteria require moisture to grow. Properly dried jerky should crack when bent in half, but not necessarily break into two pieces. Allow the jerky to cool to room temperature before testing. 5) Avoid Cross-Contamination by not allowing your finished product to come into contact with surfaces that have been contaminated by raw meat 6) Store jerky in airtight jars or plastic bags to prevent it from absorbing moisture and bacteria from the air. Allow the jerky to cool to room temperature before placing it into airtight containers. 7) If moisture appears on the inside of the storage container the jerky is not dry enough. Dry it longer. |
||||||||||||||||||||||||||||
Drying/Smoking Temperatures There are a lot of opinions regarding ideal drying/smoking temperatures.
Some differences of opinion are the result of safety concerns, and some
have to do with what you intend to do with the meat. Those who plan on
storing their dried meats in a refrigerator or freezer tend to cook their
meat as well as dry it. It is important to remember that cooked meat is
not suitable for long term storage and must be stored in a refrigerator
or freezer or else eaten within a few days. When properly cured and dried,
without cooking, meat will keep indefinitely, (although its quality will
begin to deteriorate after a few months so it should probably be eaten
within a year.) Because of the natural preservative nature of smoke, smoking meat can
be safely done at a lower temperature than that used when drying meat
without smoke. Also, meat properly cured with salt and spices can be safely
dried or smoked at a lower temperature. In general, I believe that it
is best to use the lower temperatures, by using the smoking process rather
than drying alone, and being sure to cure the meat with salt and spices
beforehand. The USDA recommends drying/smoking temperatures of 145o F
for 7 hours or 155o for 4 hours. Care should be taken not to
exceed 155o F or the meat will get cooked rather than dried.
Lower drying temperatures of 125o F for 10 hours or 135o
F for 8 hours are recommended by some, and I have even seen recommendations
as low as 95o to 130o F. I recommend that you begin the drying process at a lower temperature,
say around 125o F, and then gradually increase it each hour
until the maximum temperature of 145o to 150o F
is reached for the final hour or so. This will insure that the meat is
thoroughly dried through and through without getting cooked. Check the
meat for doneness by allowing a piece to cool down and then bend it. To convert degrees Fahrenheit to Celsius subtract 32, then multiply by five and divide by 9. Or use the following approximations:
|
||||||||||||||||||||||||||||
The Drying/Smoking Process
|
||||||||||||||||||||||||||||
Making JerkySelect the leanest cuts of meat for making jerky and remove all visible
fat. Fat does not preserve well and can adversely affect the taste and
quality of your jerky. For a product that does not require refrigeration
you are going to want to remove as much moisture from the meat as possible.
This can be accomplished more easily by slicing the meat very thin. Slice
the meat across the grain (at a right angle to long muscles) for the most
tender jerky, or with the grain for a more chewy jerky. Cut it into strips
no more than a quarter of an inch (6 mm) thick. This is more easily accomplished
if the meat is slightly frozen. Basic Brine recipe: Two cups of salt, 1 cup of sugar, 1 tsp. ground
black pepper, 1/2 tsp. ground cloves, 1/2 tsp. of garlic powder and 1/2
tsp. of turmeric powder. Other herbs and spices may be used according
to availability and tastes. The only ingredient that is absolutely essential
is the salt. To make a liquid for cold marinating or for a boiling marinade
add this dry mixture to 2 quarts of water. The mixture can be made slightly
weaker (more water) for a boiling marinade. For a dry marinade mix the
dry ingredients without any liquids.
Cold Marinade
|
||||||||||||||||||||||||||||
Pressure Canning MeatCanning meat in mason jars is also an effective way to preserve meat. Unlike tomatoes and fruits, which may be canned in a boiling water bath, meats must be canned at the higher temperatures that are only achievable by a pressure canner. Any pressure cooker can be used for pressure canning, but many pressure cookers are too small to be of much use in canning. A pressure canner is simply a pressure cooker that is large enough to hold a practical number of mason jars. It is certainly a good investment if you are interested in pressure canning. Instructions for pressure canning can be found with any good pressure canner and in many cookbooks as well. I will discuss pressure canning in further detail in a later section of this chapter. The photograph above shows a pressure cooker (on the left) and a pressure canner. Either may be used for pressure canning, although the canner is obviously more practical because it will hold more jars. A pressure cooker is an essential appliance in our home because it allows us to cook foods like whole brown rice in about a third of the time normally required. |
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
DehydrationAs we discussed earlier, dehydration requires the removal of most of the water from the food using a drying technique involving air circulation and low levels of heat. Sometimes a fan is used but more often the circulation is produced by the simple effect of rising warm air. Most dehydration units have an electrical element in the bottom to produce the heat. The unit is vented at the bottom and top. The hot air rises passing around and through the foods, which are placed on screens to allow maximum circulation. To insure adequate dehydration the foods are generally prepared for the drying process by slicing them very thin. The warm air picks up moisture from the food and carries it out the top of the unit, while cooler and dryer air flows in from the bottom. For best results the temperature should be raised very gradually over a period of hours. Otherwise the outside of the food could become dry, locking the moisture in the inside and preventing the food from drying completely. Inexpensive food dehydration units for home use are readily available and are very effective. Solar energy also works very well as a heat source for dehydrating foods, and many foods are dried simply by placing them out in the open air in a sunny location (preferably with some protection against insects.) Dehydrated foods do not require refrigeration. Without moisture the microorganisms that are responsible for food spoilage can not grow. Care must be taken to insure that most of the water is removed or spoilage, usually from mold, could become a problem. Dehydrated foods will keep for a year or longer when stored in airtight containers or plastic bags. The dryer the food the longer it will store. As with all preservation techniques some nutritional value is lost during the drying process, but dehydration remains one of the best ways to prepare food for storage without refrigeration or sterilization. Dried foods are light and compact making them ideal for backpacking and food storage. You can restore dehydrated foods by soaking them in water for a few hours before using them, but most dehydrated fruits are eaten as-is. You will probably want to reconstitute your dehydrated vegetables before eating them. Dehydrated vegetables are great for soups and stews. It is not necessary to peal fruits before dehydrating them, but pealed fruits will dry faster. This handy countertop apple peeler also cores the apples and slices them into very then and uniform slices ideal for dehydration. You can also use it to slice and core your apples without pealing them. Thin and uniform slices will dry quicker and more efficiently. The thinly sliced fruits or vegetables are placed on the screens in single layers, with no overlap, which allows for maximum air circulation. The temperature is set at the lowest setting at first and then gradually increased over the next few hours to prevent the outside of the fruit from drying first, locking moisture on the inside. The fruit or vegetable must be dried all the way through for proper preservation and storage preparation. The dried fruits and vegetables are cooled to room temperature and then place in airtight containers such as plastic bags or glass jars. Glass jars could break in an earthquake so plastic storage containers may be preferable. |
||||||||||||||||||||||||||||
|
CanningCanning requires the complete sterilization of the food and container. The naturally occurring enzymes that would cause deterioration of the food in time are also destroyed by the heat used in the canning process. Special glass jars (e.g., Mason jars) and two-piece lids are used for home canning. The lids completely seal the jars with a vacuum inside which keeps all microorganisms out. Properly canned foods will keep almost indefinitely, but their quality begins to deteriorate after about a year so it is recommended that they are consumed within a year or so. Canning in a 10 minute boiling water bath is adequate for high-acid foods such as fruits, tomatoes and foods pickled in vinegar. Nonacid foods such as meat, fish, fowl and vegetables require a higher temperature which is obtainable only in a pressure canner. (The photograph above shows a boiling water bath canner on the left and a pressure canner on the right.) Complete instructions for home canning will be found in the instructions that will come with your canning equipment or in any good canning recipe book. Some good canning books are listed in the Additional Resources section at the end of this web site and under "Recommended Reading" at the bottom of this page. The first step for canning fruits or tomatoes in a boiling water bath involves sterilizing the glass jars by boiling them in water for 10 minutes in a large pot. The lids are placed in a separate pan of water which is brought to a simmer (180o F) but not boiled. At the same time that the jars are being sterilized, the food is also sterilized by boiling it for 10 minutes in another pot. The hot food is then added to the hot jars and the lids are placed on the jars with the bands screwed on finger tight. The final processing involves boiling the jars of food for another 10 minutes completely submerged in the boiling water bath. If you live more than 1,000 feet above sea level you must increase the boiling time using the following formula: At 1-3,000 feet add 5 min.; 3-6,000 add 10 min.; 6-8,000 add 15 min.; 8-10,000 add 20 min. After the boiling water bath the jars are removed and allowed to cool down. During the cooling process the lids should seal, which is indicated by an indentation in the center of the lid. Jars that are sealed are now ready for labeling and storage. Any jars that did not seal can be placed in the refrigerator for immediate consumption or boiled again in the boiling water bath. For jars that don't seal the problem will usually turn out to be food between the rim of the jar and the lid, so the rim should be checked and wiped clean before the second attempt. Some recipes call for additional ingredients. Most jellies, for example, will require pectin and sometimes lemon juice for acidity as well. You will probably also want to add sugar to most fruits. Pectin usually comes with good recipes for making jellies and jams. |
||||||||||||||||||||||||||||
|
Pressure CanningAll meats, including fish and fowl, and foods that contain meat, such as stews, must be processed at 240o F (115o C), which is obtainable only with steam under 10 pounds of pressure (psi.) This pressure must be increased if you live more than 1,000 feet above sea level: At 1-2,000 feet use 11 psi; 2-4,000 use 12; 4-6,000 use 13; 6-8,000 use 14; 8-10,000 use 15. If your pressure canner uses a fixed weight that is only adjustable in 5 psi increments use 15 psi if you live over 1,000 feet above sea level. It is not necessary to pre-sterilize jars and lids when the processing time will exceed 10 minutes. Meat should be cut into convenient sized chunks and precooked without flour until the red color changes to brown. The jars are then packed with the meat and filled will boiling broth leaving a one inch head space to allow for expansion. Vegetables, due to their low acid content, will also require pressure canning but most only require a half inch head space in the jar. Starchy vegetables such as corn, peas and beans will require a one inch head space for expansion. (Tomatoes, which are technically not a vegetable, may be canned in a boiling water bath as described above for fruits.) After packing the jars with food the lids are placed on and the bands are screwed on until resistance is felt. The jars are then placed on the rack in the pressure canner in about two quarts (2 l) of hot water. The cover is place on the pressure canner and the heat is turned on high. The pressure regulator weight is left off or the petcock valve is left wide open to allow air to escape from the canner as the water comes to a boil. When the water starts to boil steam will begin escaping from the canner. Allow steam to escape for 10 minutes to eliminate all air pockets and then completely close the petcock valve or place the regulator weight on the canner. It will take about 5 more minutes for the canner to reached full pressure. After it becomes fully pressurized turn the heat down and begin timing. Usually the lowest setting is adequate to maintain the pressure. When canning meat, pint jars should be processed for 75 minutes and quart jars for 90. Dried beans should be soaked and cooked first and then processed for the same amount of time. Greens should also be processed for the same amount of time as meat, but most vegetables, such as asparagus, beets, and carrots, are best processed for 30 minutes for pints and 40 minutes for quarts. Refer to your canning recipe book for additional instructions for the foods that you are canning. Whether you are canning with a boiling water bath, or a pressure canner, the instructions should be followed closely. If your canning instructions or recipes vary from the general instructions given here, you should use the instructions that came with your canning equipment or recipe book. Food poisoning from home canning is rare, but improperly canned foods can cause botulism which can be life-threatening. You do not need to worry as long as you follow the instructions carefully, particular with regard to sterilization procedures and processing times and temperatures.
|
||||||||||||||||||||||||||||
FreezingFreezing is an easy and convenient method of food preservation. It is also very good at retaining the nutritional value of your foods. To prepare fresh vegetables for freezing they must be blanched first to stop the enzymatic activity that can cause the nutritional value and quality of your food to deteriorate. To blanch vegetables drop them into a pot of boiling water. Leave them for a minute or two to allow the water to come back to a boil. Then quickly stop the cooking process by removing them from the boiling water and dropping them into ice water. Once cooled they are ready to put into freezer bags, squeezing as much air out of the bag as possible, and then into your freezer. There is one obvious disadvantage to freezing which we discussed at the beginning of this chapter. When the electricity goes off so does your freezer, unless you have invested in a gasoline or propane-powered generator.  Hopefully, during an emergency, you will be able to consume the foods in your freezer before they spoil. But you should also have a stash of foods that do not require freezing for those longer emergencies. If you do use a freezer to store some of your food, remember that loss of power does not have to mean the loss of your food, even if you don't have a generator. The food in a full freestanding freezer will be safe for about two days after the power goes out, providing you don't open the door too much. A chest-type freezer is much more desirable than an upright freezer. Cold air is heavier than warm air, and the cold air tends to stay in a chest-type freezer longer. When you open the door of an upright freezer all of the cold air "falls out" of the freezer in a matter of seconds. A half-full freezer will keep your frozen foods safe for about one day after the power goes off. If your freezer isn't full, group the frozen foods together forming a pyramid so that they can protect each other. Put meat and poultry to one side so their juices won't contaminate the other foods when they begin to thaw. (Do this beforehand because when the power goes off you will want to have the freezer door open as little as possible.) Remember that the foods at greatest risk are meat, poultry and foods containing dairy products such as milk, cream, sour cream and soft cheese.  (Don't fill the bottles completely because water expands as it is freezes.) Two and three liter soda bottles work great. Once the water is frozen, it won't take any additional energy to keep it that way, and the fuller your freezer is the more efficiently it will operate. When the power goes out your frozen foods will remain frozen much longer (the same as if your freezer were filled with frozen foods.) The frozen bottled water may also serve as emergency drinking water. |
||||||||||||||||||||||||||||
Conservation of FoodFood can be thought of as a form of stored energy. Plants store energy from the sun and animals get it from plants. Since the beginning of life, survival has depended on the organisms ability to efficiently use and conserve energy. Until recent years humans have by necessity been conservative users of energy, but the availability of cheap and abundant fossil fuels has changed that. Chemical fertilizers made from natural gas and farm equipment powered by diesel fuel has allowed industrialized nations to produce an abundance of inexpensive food. People at one end of the nation have been able to enjoy fresh foods that were grown at the other end, and at extremely low costs thanks to refrigerated trucks. After decades of such a cheap energy bonanza, Americans, and others living in industrialized regions, have developed wasteful habits. It has been estimated that American families throw out from 8 to 20% of the food they buy. That adds up to about $4.5 billion worth of wasted food a year. But even more is wasted by food wholesalers, distributors and retailers. Billions of dollars worth of good foodfrom the slightly bruised apple to the misshapen zucchiniis simply thrown out. One broken egg and the whole dozen is discarded! As a result of this waste, grocery store dumpsters are often loaded with good food, which many economically-minded people have discovered, some even going as far as making regular forages through grocery store dumpsters to reclaim some of this discarded bounty. As a result of decades of abundant cheap energy, we have come to expect our grocery stores to be stocked with fresh produce regardless of the season. During a prolonged emergency we will need to discard our wasteful habits rather than our good food. Foods that we cannot eat can be used to fatten up livestock, which will provide a source of protein. We can compost what the animals won't eat to recycle the nutrients and minerals back into the garden, eliminating the need for chemical fertilizers. During an emergency there will be many other ways that you can conserve food, especially if you have made a few preparations. For example, when a large animal is butchered there is likely to be a great deal of meat that you will not be able to consume immediately. If you are without electricity you will not be able to freeze it either. However, if you have a heat source you may be able to pressure can some of the meat. Meat is cooked in the process of pressure canning so it will be ready to eat right out of the mason jar. Meat can also be salted, smoked or dried and made into jerky. This can even be done using solar energy. Most Americans give little thought to food conservation. Experience has shown that old habits are hard to break, so even during lean times there will be individuals who will waste good food while going hungry. Their loss may be your gain, if you are willing to scrounge. Recently a deer was struck and killed by an automobile down the street from my home. A neighbor witnessed the accident and, being a deer hunter, knew exactly what to do. That meat did not go to waste |
||||||||||||||||||||||||||||
A Final Thought About Food: RecyclingOther than the obvious (i.e., eating "leftovers"), just how do you recycle food? Remember that food is stored energy, and energy is the key to survival. Even the parts of our foods that we do not eat contain stored energy as well as useful nutrients. As we saw earlier one way to recycle this food is by feeding it to livestock. Corn husks can be fed to rabbits, for example. Due to their unique digestive systems rabbits can digest plant parts that humans can not. In turn the rabbits will provide a source of high-quality easily digestible protein. As we also discussed in another section of this web site, you can recycle food waste by composting as well. Composting makes use of naturally occurring bacteria to break down food, and other organic materials, turning it back into rich soil. The composted soil can then be worked into your garden providing natural fertilizer. I should mention here that one thing that I do not recommend recycling is human fecal matter.  Do not use human waste as a fertilizer for any plants which are going to be consumed by humans. Animal manure is an entirely different story. Rabbit manure, as we have seen, is the best fertilizer available and won't burn your plants even when worked directly into the soil. The manure of other herbivores, such as cows and horses, is also very desirable for your plants. The manure of meat eating animals, such as dogs and cats, should be avoided in your compost and in your garden because they can harbor dangerous parasites. |
||||||||||||||||||||||||||||
Recommended Reading: |
||||||||||||||||||||||||||||
Recommended Products: |
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
Take
a stand against Socialized Medicine |


Map created using Leaflet.js, data visualization using the Leaflet.GridCluster Plugin. Data source: USGS.


| Country: | |
| Range: | - |
|
|
Emmanuel Macron21/12/1977 (39)En Marche!View profile |
|
|
Jean-Luc Mélenchon19/07/1951 (65)La France Insoumise - GUE/NGLMEP Since 2009View profile |
|
|
Marine Le Pen05/07/1968 (48)Front National - AEL/MENLMEP since 2004View profile |
|
|
François Fillon04/03/1954 (63)Les Républicains GUE/NGLMFP since 2012View profile |


- mapToScreen(MapPos) - Method in class com.carto.ui.MapView
-
Calculates the screen position corresponding to a map position, using the current view parameters.
- MapView - Class in com.carto.ui
-
MapView is a view class supporting map rendering and interaction.
- MapView(Context) - Constructor for class com.carto.ui.MapView
-
Creates a new MapView object from a context object.
- MapView(Context, AttributeSet) - Constructor for class com.carto.ui.MapView
-
Creates a new MapView object from a context object and attributes.
- moveToFitBounds(MapBounds, ScreenBounds, boolean, float) - Method in class com.carto.ui.MapView
-
Animate the view parameters (focus position, tilt, rotation, zoom) so that the specified bounding box becomes fully visible.
This method does not work before the screen size is set.
- moveToFitBounds(MapBounds, ScreenBounds, boolean, boolean, boolean, float) - Method in class com.carto.ui.MapView
-
Animate the view parameters (focus position, tilt, rotation, zoom) so that the specified bounding box becomes fully visible.
Also supports resetting the tilt and rotation angles over the course of the animation.
This method does not work before the screen size is set.


You design and build with Web Standards
You design and build Mobile First
Scratch that, you design and build Content First
It’s not about mobile first (or just small screen first) – it's about content first. But it happens that thinking about what works for mobile does work for other things as well.
Jeffery Zeldman
You designs are Device Agnostic
You are Future Friendly
Have a familiarity with Modern CSS
Have thrown away the phrase "Pixel Perfect"
The Web is an Inherently Unstable Medium
Ethan Marcotte
As outlined in Ethan Marcotte's Phrase-Coining A List Apart article, Responsive Web Design needs the three following things:
// We can import all of Compass safely because it doesn't write any CSS.
@import 'compass';
// We switch our box model to Border Box.

TIME FOR A BREAKPOINT!
Stephen Hay
> gem install breakpoint
require 'breakpoint'
@import 'breakpoint';
// Your basic media queries, min-width and min/max width, are super easy!
$small: 543px;
$medium: 794px;
$fence-sm: $small $medium;
#foo {
content: 'No Media Queries';
@include breakpoint($small) {
content: 'Small Media Query';
}
@include breakpoint($fence-sm) {
content: 'Fenced Media Query';
}
}
/* Nested Breakpoint calls become separate media queries */
#foo {
content: 'No Media Queries';
}
@media (min-width: 543px) {
#foo {
content: 'Small Media Query';
}
}
@media (min-width: 543px) and (max-width: 794px) {
#foo {
content: 'Fenced Media Query';
}
}
/* Setting $breakpoint-to-ems: true will write Media Queries in Ems! */
@media (min-width: 33.9375em) {
#foo {
content: 'Small Media Query';
}
}
@media (min-width: 33.9375em) and (max-width: 49.625em) {
#foo {
content: 'Fenced Media Query';
}
}
// Advanced "and" media queries and "or" media queries made simple
$print-land: print monochrome (orientation landscape);
$fenced-landscape: screen 321px 543px, handheld (orientation portrait);
#foo {
@include breakpoint($print-land) {
content: 'Monochrome Print in Landscape';
}
@include breakpoint($fence-landscape) {
content: 'Screen media type between 300px and 500px or Handheld media type in Portrait';
}
}
/* Advanced "and" media queries and "or" media queries made simple */
@media print and (monochrome) and (orientation: landscape) {
#foo {
content: 'Monochrome Print in Landscape';
}
}
@media screen and (min-width: 321px) and (max-width: 543px), handheld and (orientation: portrait) {
#foo {
content: 'Screen media type between 300px and 500px or Handheld media type in Portrait';
}
}
// Resolution media queries are a pain. Breakpoint makes them easy. We use the standard DPPX units.
$hidpi: min-resolution 1.5dppx;
$cross-reso: max-resolution 143dpi;
#foo {
@include breakpoint($hidpi) {
content: 'Device Pixel Ratio of at least 1.5';
}
@include breakpoint($cross-reso) {
content: 'Cross Browser Resolution Query'
}
}
/* Breakpoint will transform the DPPX unit into cross-browser compatible resolution queries and DPI units into cross-browser DPR queries! */
@media (min-resolution: 1.5dppx), (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
#foo {
content: 'Device Pixel Ratio of at least 1.5';
}
}
@media (max-resolution: 143dpi), (-webkit-max-device-pixel-ratio: 1.48958), (max--moz-device-pixel-ratio: 1.48958) {
#foo {
content: "Cross Browser Resolution Query";
}
}
// _mqs.scss
$touch: pointer coarse, 'no-query' '.touch';
$no-queries: 678px, 'no-query' '.no-mqs';
#foo {
@include breakpoint($touch) {
content: 'Touch Device';
}
@include breakpoint($no-queries) {
content: 'No Media Queries';
}
}
// style.scss
$breakpoint-no-queries: false;
$breakpoint-no-query-wrappers: false;
@import "mqs";
// touch.scss
$breakpoint-no-queries: true;
$breakpoint-no-query-wrappers: '.touch';
@import "mqs";
/* style.css */
/* Only the Media Query gets printed out here! */
@media (pointer: coarse) {
#foo {
content: 'Touch Device';
}
}
/* touch.css */
/* Only the Meida Queries with a .touch no-fallback get printed! */
.touch #foo {
content: 'Touch Device';
}
Grids provide order to your design and structure to your information.
The best grids are specifc to your content and your design, as they are an extension of both.
> gem install singularitygs
require 'singularitygs'
@import 'singularitygs';
// Symmetric grids are expressed as a single number denoting how many equal sized columns you'd like.
$grids: 12;
$gutters: 1/3;
// Asymmetric grids are expressed as a list of number denoting the relative sizes of each column to each other.
$grids: 2 8 2;
$gutters: 1/3;
Singularity is what we like to call a semantic grid system, meaning that instead of grid classes being generated that you then apply to your HTML, the grid is stored entirely within your CSS and applied directly to the element you want to use it on.

Main Section

First Section

Second Section

// Simply pass the number of columns you'd like to span and what column you'd like to start from.
$grids: 2 8 2;
$gutters: 1/3;
.first {
@include grid-span(1, 1);
}
.main {
@include grid-span(1, 2);
}
.second {
@include grid-span(1, 3);
}
// add-grid allows you to automatically change your global Grid Context at various breakpoints
$grids: 12;
$grids: add-grid(2 8 2 at 700px);
$gutters: 1/3;
.first {
@include grid-span(3, 4);
@include breakpoint(700px) {
@include grid-span(1, 1);
}
}
.main {
@include grid-span(6, 7);
@include breakpoint(700px) {
@include grid-span(1, 2);
}
}
.second {
@include grid-span(3, 1);
@include breakpoint(700px) {
@include grid-span(1, 3);
}
}

One

Two

Three A

Three B

Three C

Four

First Section

Second Section

$grids: 2 8 2;
$gutters: 1/3;
.first {
@include grid-span(1, 1);
}
.main {
@include grid-span(1, 2);
}
.second {
@include grid-span(1, 3);
}
@include layout(8) {
.one {
@include grid-span(1, 1);
}
.two {
@include grid-span(1, 8);
}
.three {
@include grid-span(6, 2);
}
.four {
@include grid-span(2, 4);
clear: both;
}
}
@include layout(6) {
.a {
@include grid-span(2, 3);
}
.b {
@include grid-span(2, 5);
}
.c {
@include grid-span(2, 1);
}
}
> gem install toolkit
require 'toolkit'
@import 'toolkit';
// Making images and HTML5 video fluid is pretty easy.
img, video {
max-width: 100%;
height: auto;
}
// Using [Intrinisc Ratios](http://alistapart.com/article/creating-intrinsic-ratios-for-video), you can even make embedded videos fluid!
.fluid-16-9 {
@include intrinsic-ratio;
}
.fluid-4-3 {
@include intrinsic-ratio(4/3);
}

/* Intrinsic Ratio code is built for a small code footprint, so shared code is extended. */
.fluid-16-9, .fluid-4-3 {
position: relative;
height: 0;
}
.fluid-16-9 > *, .fluid-4-3 > * {
display: block;
position: absolute;
width: 100% !important;
height: 100% !important;
top: 0;
margin: 0;
padding: 0;
}
.fluid-16-9 {
padding-top: 56.25%;
width: 100%;
}
.fluid-4-3 {
padding-top: 75%;
width: 100%;
}
Everything you just saw? Yah, it's backend independent. You can use it anywhere, with anything, for any project. Sass Rocks


Enter Information Here
First Name
Last Name
Email
User Name
Password
Gender
female
male
Choose Your Interests
MachineLearning
ERP
SAP
BigData
QAAutomation
Course Type
Full Time
Part Time
Professional
Already registered!!
Login Here


Contract For Services Rendered
This is a contract entered into by
Laikipia University.(hereinafter referred to as "the Client") on this
,
The Provider's place of business is
and the Client's place of business is
Laikipia University
1100-2300,Nyahururu,
Kenya
The Client hereby engages the Provider to provide services described herein under "Scope and Manner of Services." The Provider hereby agrees to provide the Client with such services in exchange for consideration described herein under "Payment for Services Rendered."
Scope and Manner of Services
Services To Be Rendered By Provider: enumerate here each particular task to be performed and its acceptable result, i. e.,
| QUANTITY | PRICE PER QUANTITY | TOTAL PRICE |
|---|---|---|
The Client shall pay the Provider for services rendered according to the Payment Schedule attached, within
Should the Client fail to pay the Provider the full amount specified in any invoice within
Applicable Law
This contract shall be governed by the laws of the Laikipia University.
By submitting this details You agree to our terms and Condition.


Privacy Policy
Users will be notified of all privacy policy changes via an announcement post.
This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
Information we collect, and how it is used
We may use the information we collect from you when you register or use certain other site features in the following ways:
- Optional email addresses provided to Phuks will be used for password recovery. Any user data collected from your use of the site may be used to improve or create site features.
Information security
All personal or private information is encrypted using SSL/TLS during transit. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential.
As mentioned in our Terms of Service, users are responsible for the information they willingly post about themselves.
Do we use cookies?
Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow) that enables the site's or service provider's systems to recognize your browser and capture and remember certain information. Cookies on Phuks are used for things like keeping you logged in, or remembering if you're using the light or dark theme.
Third-party disclosure.
We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information unless we provide users with advance notice. This does not include website hosting partners and other parties who assist us in operating our website, conducting our business, or serving our users, so long as those parties agree to keep this information confidential. We may also release information when it's release is appropriate to comply with the law, enforce our site policies, or protect ours or others' rights, property or safety.
Legal
California Online Privacy Protection Act
CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. According to CalOPPA we agree to the following:
- Users can visit our site anonymously.
- Once this privacy policy is created, we will add a link to it on our home page or as a minimum on the first significant page after entering our website.
- Our Privacy Policy link includes the word 'Privacy' and can be easily be found on the page specified above.
- We agree to inform users about the data we collect and with whom it is being shared.
COPPA (Children Online Privacy Protection Act)
When it comes to the collection of personal information from children under 13, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, the nation's consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online. We do not specifically market to children under 13.
Fair Information Practices
In order to be in line with Fair Information Practices, in the event of a data breach, users will be informed within 7 business days via an announcement post and in-site notification (personal message).
CAN SPAM Act
The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations.
We collect your email address in order to:
- Email a reset password option
To be in accordance with CANSPAM we agree to the following:
- If at any time you would like to unsubscribe from receiving future emails, you can email us at<EMAIL_ADDRESS>and we will promptly remove you from ALL correspondence.
Last Edited on 2018-04-29


Methods of Class OInterfaceIteratorHelper
- OInterfaceIteratorHelper
- OInterfaceIteratorHelper(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
- Description
- Create an iterator over the elements of the container. The iterator
copies the elements of the conatainer. A change to the container
during the lifetime of an iterator is allowed and does not
affect the iterator-instance. The iterator and the container take cares
themself for concurrent access, no additional guarding is necessary.
Remark: The copy is on demand. The iterator copy the elements only if the container
change the contents. It is not allowed to destroy the container as long
as an iterator exist.
- Parameters
| rCont |
the container of the elements.
|
- ~OInterfaceIteratorHelper
- ~OInterfaceIteratorHelper() throw();
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
- Summary
- Releases the connection to the container.
- hasMoreElements
- sal_Bool hasMoreElements() throw();
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
YES |
NO |
- Summary
- Return sal_True, if there are more elements in the iterator.
- next
- ::com::sun::star::uno::XInterface * next() throw();
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
- Description
- Return the next element of the iterator. Calling this method if
hasMoreElements() has returned sal_False, is an error. Cast the
returned pointer to the
- remove
- void remove() throw();
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
- Description
- Removes the current element (the last one returned by next())
from the underlying container. Calling this method before
next() has been called or calling it twice with no next()
inbetween is an error.
- OInterfaceIteratorHelper
- OInterfaceIteratorHelper(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
- operator=
- OInterfaceIteratorHelper & operator=(
-
| virtual |
abstract |
const |
volatile |
template |
static |
inline |
C-linkage |
| NO |
NO |
NO |
NO |
NO |
NO |
NO |
NO |
Top of Page
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Browse our custom essential oil blends, used to create our candles free of artificial fragrances.
Choose from a number of glass jars ranging in colours and sizes.
Take a look at our seasonal oil blends.


login and registration system
login system
Email
Passw
Registration system
Name
Email
Passw
upload your image


x
Booking
Jessica
.genius
Jessica Taylor
<EMAIL_ADDRESS>Profile
Bookings
3
Travel Guides
Billing
1
Settings
Sign Out
Hotels
Flights
Rent a car
Special Offers
Where are you going next?
Explore over 168 destinations with the best deals online!
People..
On my own
2 People
3 People
4 People
5 People
6 People
7 People
8 People
9 People
10+ People
Search
from
$2199
Hong Kong
3 Day Tour
from
$1999
Mountain
Weekly Tour
from
$1599
Greece
10 Days Package
from
$3999
Xtreme
For nature enthusiasts
from
$899
Berlin
5 Days Tour
from
$1249
Rome
Romantic Getaway
from
$299
New York
Night food tour
from
$499
Metsovo
Inspiring break
My Bookings
Manage and handle all your upcoming bookings
Greece Vacation
7 nights - in 20 days
Change
Cancel
City Food Tour
3 hours - in 4 months
Change
Cancel
Mountain Escape
3 nights - in 1 year
Change
Cancel


However, this cannot be the case. Let's say for example that we know the following statement is true: "if p, then q." Now, if I were to tell you that "p" is true, one can say that "q" must indeed be true. You have just used modus ponens, a logical function that says that if "if p, then q" is given, then when p is true, q is also true.
This logical function has unambiguous conceptual content. Thus, we have reached a contradiction.


h2
heading for slide/section headings
h1
or h2
for presentation title and h3
for subtitles.
ul
ol
li
elementdl
, dt
, dd
)
do not have any special handing
controls
) for Reveal.jshttps
, websites with http
will not showAdditional text or caption.
With all kind of slides you need to take care of their size which unlike non-HTML presentations is not fixed.
Note that a web browser window has different aspect ratio then the full screen where the presentation will be used.
Test your slides with different ratios, new screens and projectors have 16:9, 16:10 and the classic ration is 4:3.
For example, Mozilla Firefox has responsive design view (Tools > Web Developer > Responsive Design View) where you can try different rations, e.g. 4:3 can be tested as 800x600. You can also save few useful ones.


Profile
menu
notifications
settings
Marven Steward
Actress
Tags
Makeup
Beauty
Model
Actress
1k Views
1k Views
1k Views
Age Engagement Rate
10 - 25:
45%
26 - 30:
30%
35 - 55:
25%


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface InputMethodContext
Provides methods that input methods
can use to communicate with their client components or to request
other services. This interface is implemented by the input method
framework, and input methods call its methods on the instance they
receive through
InputMethod.setInputMethodContext(java.awt.im.spi.InputMethodContext)
.
There should be no other implementors or callers.
| Method Summary | |
|---|---|
JFrame |
createInputMethodJFrame(String title,
boolean attachToInputContext)
Creates a top-level Swing JFrame for use by the input method. |
Window |
createInputMethodWindow(String title,
boolean attachToInputContext)
Creates a top-level window for use by the input method. |
void |
dispatchInputMethodEvent(int id,
AttributedCharacterIterator text,
int committedCharacterCount,
TextHitInfo caret,
TextHitInfo visiblePosition)
Creates an input method event from the arguments given and dispatches it to the client component. |
void |
enableClientWindowNotification(InputMethod inputMethod,
boolean enable)
Enables or disables notification of the current client window's location and state for the specified input method. |
| Methods inherited from interface java.awt.im.InputMethodRequests |
|---|
cancelLatestCommittedText, getCommittedText, getCommittedTextLength, getInsertPositionOffset, getLocationOffset, getSelectedText, getTextLocation |
| Method Detail |
|---|
void dispatchInputMethodEvent(int id, AttributedCharacterIterator text, int committedCharacterCount, TextHitInfo caret, TextHitInfo visiblePosition)
InputMethodEvent.InputMethodEvent(java.awt.Component, int, java.awt.font.TextHitInfo, java.awt.font.TextHitInfo)
.
Window createInputMethodWindow(String title, boolean attachToInputContext)
The title may or may not be displayed, depending on the actual type of window created.
If attachToInputContext is true, the new window will share the input context that corresponds to this input method context, so that events for components in the window are automatically dispatched to the input method. Also, when the window is opened using setVisible(true), the input context will prevent deactivate and activate calls to the input method that might otherwise be caused.
Input methods must call Window.dispose
on the
returned input method window when it is no longer needed.
title
- the title to be displayed in the window's title bar,
if there is such a title bar.
A null
value is treated as an empty string, "".attachToInputContext
- whether this window should share the input context
that corresponds to this input method context
HeadlessException
- if GraphicsEnvironment.isHeadless
returns true
JFrame createInputMethodJFrame(String title, boolean attachToInputContext)
The title may or may not be displayed, depending on the actual type of window created.
If attachToInputContext is true, the new window will share the input context that corresponds to this input method context, so that events for components in the window are automatically dispatched to the input method. Also, when the window is opened using setVisible(true), the input context will prevent deactivate and activate calls to the input method that might otherwise be caused.
Input methods must call Window.dispose
on the
returned input method window when it is no longer needed.
title
- the title to be displayed in the window's title bar,
if there is such a title bar.
A null
value is treated as an empty string, "".attachToInputContext
- whether this window should share the input context
that corresponds to this input method context
HeadlessException
- if GraphicsEnvironment.isHeadless
returns true
void enableClientWindowNotification(InputMethod inputMethod, boolean enable)
notifyClientWindowChange
method is called as described in that
method's specification. Notification is automatically disabled
when the input method is disposed.
inputMethod
- the input method for which notifications are
enabled or disabledenable
- true to enable, false to disable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


a = 1+1 assert_equal 2, a
ok
ok
a = 2-1 assert_equal 1, a
ok
ok
a = 1*1 assert_equal 1, a
ok
ok
a = 2/1 assert_equal 2, a
ok
ok
a = 1%1 c = 2%4 d = 2%5 e = 2%-5 f = -2%5 g = -2%-5 h = 2%-2 i = -2%2 j = -2%-2 assert_equal 0, a assert_equal 2, c assert_equal 2, d assert_equal(-3, e) assert_equal 3, f assert_equal(-2, g) assert_equal 0, h assert_equal 0, i assert_equal 0, j
ok ok ok ok ok ok ok ok ok
ok ok ok ok ok ok ok ok ok
a = 1<=>0 b = 1<=>1 c = 1<=>2 assert_equal 1, a assert_equal 0, b assert_equal(-1, c)
ok ok ok
ok ok ok
a = 1==0 b = 1==1 assert_false a assert_true b
ok ok
ok ok
# Complement assert_equal(-1, ~0) assert_equal(-3, ~2)
ok ok
ok ok
# Bitwise AND # 0101 (5) # & 0011 (3) # = 0001 (1) assert_equal 1, 5 & 3
ok
ok
# Left Shift by one # 00010111 (23) # = 00101110 (46) assert_equal 46, 23 << 1 # Left Shift by a negative is Right Shift assert_equal 23, 46 << -1 # Left Shift by 31 is bitShift overflow to SignedInt assert_equal<PHONE_NUMBER>, 1 << 31 # -3 Left Shift by 30 is bitShift overflow to SignedInt assert_equal(-3221225472, -3 << 30)
ok ok ok ok
ok ok ok ok
# Right Shift by one # 00101110 (46) # = 00010111 (23) assert_equal 23, 46 >> 1 # Right Shift by a negative is Left Shift assert_equal 46, 23 >> -1 # Don't raise on large Right Shift assert_equal 0, 23 >> 128
ok ok ok
ok ok ok
assert_equal '1', 1.to_s assert_equal("-1", -1.to_s)
ok ok
ok ok
assert_equal(+1, +1)
ok
ok
assert_equal(-1, -1)
ok
ok
# signed and unsigned integer assert_equal 1, 1 assert_equal(-1, -1) assert_equal(+1, +1) # signed and unsigned float assert_equal 1.0, 1.0 assert_equal(-1.0, -1.0) # binary assert_equal 128, 0b10000000 assert_equal 128, 0B10000000 # octal assert_equal 8, 0o10 assert_equal 8, 0O10 assert_equal 8, 0_10 # hex assert_equal 255, 0xff assert_equal 255, 0Xff # decimal assert_equal 999, 0d999 assert_equal 999, 0D999 # decimal seperator assert_equal 10000000, 10_000_000 assert_equal 10, 1_0 # integer with exponent assert_equal 10.0, 1e1 assert_equal(0.1, 1e-1) assert_equal 10.0, 1e+1 # float with exponent assert_equal 10.0, 1.0e1 assert_equal(0.1, 1.0e-1) assert_equal 10.0, 1.0e+1
ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok
ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok
assert_equal 'abc', 'abc' assert_equal '\'', '\'' assert_equal '\\', '\\'
ok ok ok
ok ok ok
a = "abc" assert_equal "abc", "abc" assert_equal "\"", "\"" assert_equal "\\", "\\" assert_equal "abc", "#{a}"
ok ok ok Skip OP=3E ok
ok ok ok ok
a = %q{abc} b = %q(abc) c = %q[abc] d = %q<abc> e = %q/abc/ f = %q/ab\/c/ g = %q{#{a}} assert_equal 'abc', a assert_equal 'abc', b assert_equal 'abc', c assert_equal 'abc', d assert_equal 'abc', e assert_equal 'ab/c', f assert_equal '#{a}', g
ok ok ok ok ok ok ok
ok ok ok ok ok ok ok
a = %Q{abc} b = %Q(abc) c = %Q[abc] d = %Q<abc> e = %Q/abc/ f = %Q/ab\/c/ g = %Q{#{a}} assert_equal 'abc', a assert_equal 'abc', b assert_equal 'abc', c assert_equal 'abc', d assert_equal 'abc', e assert_equal 'ab/c', f assert_equal 'abc', g
Skip OP=3E ok ok ok ok ok ok ok
ok ok ok ok ok ok ok
a = <<AAA aaa AAA b = <<b_b bbb b_b c = [<<CCC1, <<"CCC2", <<'CCC3'] c1 CCC1 c 2 CCC2 c 3 CCC3 d = <<DDD d#{1+2}DDD d\t DDD\n DDD e = <<'EEE' e#{1+2}EEE e\t EEE\n EEE f = <<"FFF" F FF#{"f"}FFF F FFF g = <<-GGG ggg GGG h = <<-"HHH" hhh HHH i = <<-'III' iii III j = [<<-JJJ1 , <<-"JJJ2" , <<-'JJJ3' ] j#{1}j JJJ1 j#{2}j JJJ2 j#{3}j JJJ3 k = <<'KKK'.to_i 123 KKK m = [<<MM1, <<MM2] x#{m2 = {x:<<MM3}}y mm3 MM3 mm1 MM1 mm2 MM2 n = [1, "#{<<NN1}", 3, nn1 NN1 4] qqq = Proc.new {|*x| x.join(' $ ')} q1 = qqq.call("a", <<QQ1, "c", q QQ1 "d") q2 = qqq.call("l", "m#{<<QQ2}n", qq QQ2 "o") w = %W( 1 #{<<WWW} 3 www WWW 4 5 ) x = [1, <<XXX1, foo #{<<XXX2} bar 222 #{<<XXX3} 444 333 XXX3 5 XXX2 6 XXX1 9] z = <<'ZZZ' ZZZ assert_equal "aaa\n", a assert_equal "bbb\n", b assert_equal ["c1\n", "c 2\n", "c 3\n"], c assert_equal "d3DDD\nd\t\nDDD\n\n", d assert_equal "e\#{1+2}EEE\ne\\t\nEEE\\n\n", e assert_equal "F\nFFfFFF\nF\n", f assert_equal " ggg\n", g assert_equal " hhh\n", h assert_equal " iii\n", i assert_equal [" j1j\n", " j2j\n", " j\#{3}j\n"], j assert_equal 123, k assert_equal ["x{:x=>\"mm3\\n\"}y\nmm1\n", "mm2\n"], m assert_equal ({:x=>"mm3\n"}), m2 assert_equal [1, "nn1\n", 3, 4], n assert_equal "a $ q\n $ c $ d", q1 assert_equal "l $ mqq\nn $ o", q2 assert_equal ["1", "www\n", "3", "4", "5"], w assert_equal [1, "foo 222 333\n 444\n5\n bar\n6\n", 9], x assert_equal "", z
Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3F Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=21 Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok
a = %W{abc#{1+2}def \}g} b = %W(abc #{2+3} def \(g) c = %W[#{3+4}] d = %W< #{4+5} > e = %W// f = %W[[ab cd][ef]] g = %W{ ab #{-1}1 2#{2} } h = %W(a\nb test\ abc c\ d x\y x\\y x\\\y) assert_equal ['abc3def', '}g'], a assert_equal ['abc', '5', 'def', '(g'], b assert_equal ['7'],c assert_equal ['9'], d assert_equal [], e assert_equal ['[ab', 'cd][ef]'], f assert_equal ['ab', '-11', '22'], g assert_equal ["a\nb", 'test abc', "c\nd", "xy", "x\\y", "x\\y"], h a = %w{abc#{1+2}def \}g} b = %w(abc #{2+3} def \(g) c = %w[#{3+4}] d = %w< #{4+5} > e = %w// f = %w[[ab cd][ef]] g = %w{ ab #{-1}1 2#{2} } h = %w(a\nb test\ abc c\ d x\y x\\y x\\\y) assert_equal ['abc#{1+2}def', '}g'], a assert_equal ['abc', '#{2+3}', 'def', '(g'], b assert_equal ['#{3+4}'], c assert_equal ['#{4+5}'], d assert_equal [], e assert_equal ['[ab', 'cd][ef]'], f assert_equal ['ab', '#{-1}1', '2#{2}'], g assert_equal ["a\\nb", "test abc", "c\nd", "x\\y", "x\\y", "x\\\\y"], h
Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E Skip OP=3E ok ok ok ok ok ok ok ok Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok
a = %I{abc#{1+2}def \}g} b = %I(abc #{2+3} def \(g) c = %I[#{3+4}] d = %I< #{4+5} > e = %I// f = %I[[ab cd][ef]] g = %I{ ab #{-1}1 2#{2} } assert_equal [:'abc3def', :'}g'], a assert_equal [:'abc', :'5', :'def', :'(g'], b assert_equal [:'7'],c assert_equal [:'9'], d assert_equal [], e assert_equal [:'[ab', :'cd][ef]'], f assert_equal [:'ab', :'-11', :'22'], g a = %i{abc#{1+2}def \}g} b = %i(abc #{2+3} def \(g) c = %i[#{3+4}] d = %i< #{4+5} > e = %i// f = %i[[ab cd][ef]] g = %i{ ab #{-1}1 2#{2} } assert_equal [:'abc#{1+2}def', :'}g'], a assert_equal [:'abc', :'#{2+3}', :'def', :'(g'], b assert_equal [:'#{3+4}'], c assert_equal [:'#{4+5}'], d assert_equal [] ,e assert_equal [:'[ab', :'cd][ef]'], f assert_equal [:'ab', :'#{-1}1', :'2#{2}'], g
Skip OP=3E Skip OP=3E no method(intern)! no method(intern)! no method(intern)! Skip OP=3E no method(intern)! no method(intern)! no method(intern)! Skip OP=3E no method(intern)! Skip OP=3E no method(intern)! no method(intern)! no method(intern)! no method(intern)! Skip OP=3E Skip OP=3E no method(intern)! Skip OP=3E no method(intern)! Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok ok ok ok ok ok ok ok ok ok ok ok ok
# do not compile error :$asd :@asd :@@asd :asd= :asd! :asd? :+ :+@ :if :BEGIN a = :"asd qwe" b = :'foo bar' c = :"a#{1+2}b" d = %s(asd) e = %s( foo \)) f = %s[asd \[ qwe] g = %s/foo#{1+2}bar/ h = %s{{foo bar}} assert_equal :'asd qwe', a assert_equal :"foo bar", b assert_equal :a3b, c assert_equal :asd, d assert_equal :' foo )', e assert_equal :"asd [\nqwe", f assert_equal :'foo#{1+2}bar', g assert_equal :'{foo bar}', h
Skip OP=3E Skip OP=3E Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok ok ok ok ok ok ok
assert_false(["a", "c"] == ["a", "c", 7]) assert_true(["a", "c", 7] == ["a", "c", 7]) assert_false(["a", "c", 7] == ["a", "d", "f"])
ok ok ok
ok ok ok
a = [1,2,3] assert_equal(3, a.length)
ok
ok
a = [1,2,3] assert_equal(3, a.size)
ok
ok
assert_equal([1, 1], [1].+([1]))
ok
ok
a = [] b = [b] assert_true([].empty?) assert_false([1].empty?)
ok ok
ok ok
assert_equal(2, [1,2,3].[](1)) assert_equal(nil, [1,2,3].[](4)) assert_equal(3, [1,2,3].[](-1)) assert_equal(nil, [1,2,3].[](-4)) a = [ "a", "b", "c", "d", "e" ] assert_equal("b", a[1.1]) assert_equal(["b", "c"], a[1,2]) assert_equal(["b", "c", "d"], a[1..-2])
ok ok ok ok ok ok ok
ok ok ok ok ok ok ok
assert_equal(4, [1,2,3].[]=(1,4)) assert_equal(3, [1,2,3].[]=(1,2,3)) a = [1,2,3,4,5] a[3..-1] = 6 assert_equal([1,2,3,6], a) a = [1,2,3,4,5] a[3..-1] = [] assert_equal([1,2,3], a) a = [1,2,3,4,5] a[2...4] = 6 assert_equal([1,2,6,5], a)
ok ok ok ok ok
ok ok ok ok ok
a = [1,2,3] assert_equal(1, a.index(2)) assert_equal(nil, a.index(0))
ok ok
ok ok
a = [1,2,3] assert_equal(3, a.last) assert_nil([].last)
ok ok
ok ok
a = [1,2,3] b = a.pop assert_nil([].pop) assert_equal([1,2], a) assert_equal(3, b)
Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok ok
assert_equal 3, 'abc'.size
ok
ok
assert_equal 3, 'abc'.length
ok
ok
assert_equal 'abc', 'abc' assert_not_equal 'abc', 'cba'
ok ok
ok ok
a = ''.to_i b = '32143'.to_i c = 'a'.to_i(16) d = '100'.to_i(2) e = '1_000'.to_i assert_equal 0, a assert_equal 32143, b assert_equal 10, c assert_equal 4, d assert_equal 1_000, e
ok ok ok ok ok
ok ok ok ok ok
"qqq\0ppp"
assert_true 3.1 == 3.1 assert_false 3.1 == 3.2
ok ok
ok ok
a ||= 1 b &&= 1 c = 1 c += 2 assert_equal 1, a assert_nil b assert_equal 3, c
ok ok ok
ok ok ok
module Syntax4AbbrVarAsgnAsReturns class A def b @c ||= 1 end end end assert_equal 1, Syntax4AbbrVarAsgnAsReturns::A.new.b
Skip OP=44 Skip OP=45 Skip OP=13 Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok
*a = *[1,2,3] b, *c = *[7,8,9] assert_equal [1,2,3], a assert_equal 7, b assert_equal [8,9], c (a, b), c = [1,2],3 assert_equal [1,2,3], [a,b,c] (a, b), c = 1,2,3 assert_equal [1,nil,2], [a,b,c]
Skip OP=3C Skip OP=3A Skip OP=3C ok ok ok Skip OP=3A Skip OP=3A ok Skip OP=3A Skip OP=3A ok
ok ok ok ok ok
a = [1, 2, 3] b, *c = a assert_equal 1, b assert_equal [2, 3], c
Skip OP=3A Skip OP=3C ok ok
ok ok
a = [1, 2, 3] b = [4, 5, 6, 7] c, d, *e, f, g = *a, *b assert_equal 1, c assert_equal 2, d assert_equal [3, 4, 5], e assert_equal 6, f assert_equal 7, g
Skip OP=38 Skip OP=38 Skip OP=3A Skip OP=3A Skip OP=3C ok ok ok ok ok
ok ok ok ok ok
a = [1, 2, 3, 4, 5, 6, 7] for b, c, *d, e, f in [a] do end assert_equal 1, b assert_equal 2, c assert_equal [3, 4, 5], d assert_equal 6, e assert_equal 7, f
Skip OP=21 ok ok ok ok ok
ok ok ok ok ok
* = [0] a, * = [1, 2] assert_equal 1, a
ok
ok
*a = 0 assert_equal [0], a
Skip OP=3C ok
ok
*a, b = 0, 1, 2 *c, d = 3 assert_equal [0, 1], a assert_equal 2, b assert_equal [], c assert_equal 3, d
Skip OP=3C ok ok ok ok
ok ok ok ok
a, *b = [] *c, d = [0] e, *f, g = [1, 2] assert_nil a assert_equal [], b assert_equal [], c assert_equal 0, d assert_equal 1, e assert_equal [], f assert_equal 2, g
Skip OP=3A Skip OP=3C ok ok ok ok ok ok ok
ok ok ok ok ok ok ok
true_clause_value = if true 1 else case 2 when 3 end 4 end assert_equal 1, true_clause_value
ok
ok
when_value = case when true 1 end assert_equal 1, when_value
ok
ok
o = Object.new def o.to_a nil end assert_equal [o], (a = *o) def o.to_a 1 end assert_raise(TypeError) { a = *o } def o.to_a [2] end assert_equal [2], (a = *o)
no method(new)! Skip OP=47 Skip OP=38 ok Skip OP=47 Skip OP=21 Skip OP=47 Skip OP=38 Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok ok
o = Object.new def o.to_a nil end a = case o when *o 1 end assert_equal 1, a
no method(new)! Skip OP=47 no method(__case_eqq)! ok
ok
values = [3,5,1,7,8] testa = [1,2,7] testb = [5,6] resulta = [] resultb = [] resultc = [] values.each do |value| case value when *testa resulta << value when *testb resultb << value else resultc << value end end assert_equal [1,7], resulta assert_equal [5], resultb assert_equal [3,8], resultc
Skip OP=21 ok ok ok
ok ok ok
class ParenDoBlockCmdArg def test(block) block.call end end x = ParenDoBlockCmdArg.new result = x.test (Proc.new do :ok; end) assert_equal :ok, result
Skip OP=45 Segmentation fault (core dumped) [New LWP 36955] Core was generated by `/home/yhara/work/mrubyc_test/mrubyc/sample_c/mrubyc test/mrubytest.mrb'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004032f0 in ?? () #0 0x00000000004032f0 in ?? () #1 0x00007fff8489eb40 in ?? () #2 0x000000000060a3e2 in ?? () #3 0x008081b78489eb40 in ?? () #4 0x000000000060a3c0 in ?? () #5 0x0000000200000001 in ?? () #6 0x0000000100000003 in ?? () #7 0x0080000a0060a210 in ?? () #8 0x0000000000000000 in ?? ()
ok
if false bar def foo; self.each do end end end true
=begin this is a comment with nothing after begin and end =end =begin this is a comment this is a comment with extra after =begin =end =begin this is a comment that has =end with spaces after it =end =begin this is a comment this is a comment that has extra after =begin and =end with spaces after it =end line = __LINE__ =begin this is a comment this is a comment that has extra after =begin and =end with tabs after it =end xxxxxxxxxxxxxxxxxxxxxxxxxx assert_equal(line + 4, __LINE__)
ok
ok
# Mininum and maximum one byte characters assert_equal("\u0000", "\x00") assert_equal("\u007F", "\x7F") # Mininum and maximum two byte characters assert_equal("\u0080", "\xC2\x80") assert_equal("\u07FF", "\xDF\xBF") # Mininum and maximum three byte characters assert_equal("\u0800", "\xE0\xA0\x80") assert_equal("\uFFFF", "\xEF\xBF\xBF") # Four byte characters require the \U notation
ok ok ok ok ok ok
ok ok ok ok ok ok
# Mininum and maximum one byte characters assert_equal("\u{0000}", "\x00") assert_equal("\u{007F}", "\x7F") # Mininum and maximum two byte characters assert_equal("\u{0080}", "\xC2\x80") assert_equal("\u{07FF}", "\xDF\xBF") # Mininum and maximum three byte characters assert_equal("\u{0800}", "\xE0\xA0\x80") assert_equal("\u{FFFF}", "\xEF\xBF\xBF") # Mininum and maximum four byte characters assert_equal("\u{10000}", "\xF0\x90\x80\x80") assert_equal("\u{10FFFF}", "\xF4\x8F\xBF\xBF")
ok ok ok ok ok ok ok ok
ok ok ok ok ok ok ok ok


Variation of the original example by library author Chen Fengyuan,
this version is tailored for those that need to compress and save multiple files, in the quickest way.
Just drop one or more files, or browse and select one or more files, and the you will be prompted for a location to save each compressed file.


version: 1.1.3
Get Started
Using Medoo is extremely easy!
Requirement
- PHP 5.1+, greatly recommend for PHP 5.4+ with PDO support.
- Installed database like MySQL, MSSQL, SQLite or more.
- Make sure php_pdo_xxx extension is enabled and installed.
- A little bit SQL knowledge.
Tips
On PHP 5.4+, you can use [] as short array syntax. All Medoo example code are using [] instead of array().
// On PHP 5.1 $data = array("foo", "bar"); // On PHP 5.4+ $data = ["foo", "bar"];
php_pdo extension list
- MySQL, MariaDB -> php_pdo_mysql
- MSSQL (Windows) -> php_pdo_sqlsrv
- MSSQL (Linux/UNIX) -> php_pdo_dblib
- Oracle -> php_pdo_oci
- SQLite -> php_pdo_sqlite
- PostgreSQL -> php_pdo_pgsql
- Sybase -> php_pdo_dblib
PHP PDO driver installation
Medoo is requiring PHP with PDO supported. If you didn't install before, follow this step.
// Open php.ini and remove the ';' for the database extension you want to install. // From ;extension=php_pdo_mysql.dll // To extension=php_pdo_mysql.dll // Save it, and restart PHP or Apache server. // If PDO is installed successfully, you can find it on phpinfo().
Or install via terminal. The PDO_XXX extension will be enabled and configured automatically.
$ sudo apt-get install php5-mysql
Composer Installation
If you know about composer, it is easy to install and manage the version dependence. Just use this command to add Medoo to composer.json. Or you can edit it depend on your requirement.
$ composer require catfan/Medoo
And update the composer
$ composer update
Download Installation
The most simple way. Just download medoo.php and put it into the right directory and then require, and now you are ready!
require 'medoo.php';
Configuration
There are three ways to configure medoo and start a database connection.
// If you installed via composer, just use this code to requrie autoloader on the top of your projects. require 'vendor/autoload.php'; // Or if you just download the medoo.php into directory, require it with the correct path. require 'medoo.php'; $database = new medoo([ // required 'database_type' => 'mysql', 'database_name' => 'name', 'server' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', 'charset' => 'utf8', // [optional] 'port' => 3306, // [optional] Table prefix 'prefix' => 'PREFIX_', // [optional] driver_option for connection, read more from http://www.php.net/manual/en/pdo.setattribute.php 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ] ]); $database->insert("account", [ "user_name" => "foo", "email" =><EMAIL_ADDRESS>]);
For MSSQL
If you want to use MSSQL with Medoo under PHP platform, you need to install pdo_sqlsrv PHP extension for Windows or pdo_dblib for Linux/UNIX. pdo_mssql extension is deprecated and will be removed from PHP.
For SQLite
$database = new medoo([ 'database_type' => 'sqlite', 'database_file' => 'my/database/path/database.db' ]); $database->insert("account", [ "user_name" => "foo", "email" =><EMAIL_ADDRESS>]);


The purpose of this dictionary is to provide a consistent representation of common protein sequence features for all groups at EBI
| Known start, known end -e.g., (1,100): Straight or rounded edge, depending on your preferred edge style | |
| Start is known to happen at or before certain position, known end -e.g., (at or before 8, 17):
Triangle pointing to the left with its base on the known start position, regular ending on the right Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Known start, end is known to happen at or after certain position -e.g., (5, at or after 14):
Regular ending on the left, triangle pointing to the right with its base on the known end position Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Start is known to happen at or before certain position, end is known to happen at or after certain position -e.g.,
(at or before 4, at or after 14):
Triangle pointing to the left with its base on the known start position,
triangle pointing to the right with its base on the known end position Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Start is known to happen at or after certain position, known end -e.g., (at or after 8, 17):
Backgroud-coloured triangle pointing to the right with its base on the known start position, regular ending on the right Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Known start, end is known to happen at or before certain position -e.g., (4, at or before 14):
Regular ending on the left, background-coloured triangle pointing to the left with its base on the known end position Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Start is known to happen at or after certain position, end is known to happen at or before certain position -e.g.,
(at or after 2, at or before 14):
Backgroud-coloured triangle pointing to the right with its base on the known start position,
background-coloured triangle pointing to the left with its base on the known end position Note: The height of the triangle should be as short as possible, just enough to show the triangle shape |
|
| Start is known to happen around (at or 1 before or 1 after) certain position, known end -e.g., (around 8, 17):
"S" around the known start position, regular ending on the right Note: The "S" should be as narrow as possible, just enough to show the "S" shape |
|
| Known start, end is known to happen around (at or 1 before or 1 after) certain position -e.g., (5, around 14):
Regular ending on the left, "S" around the known end position Note: The "S" should be as narrow as possible, just enough to show the "S" shape |
|
| Start is known to happen around (at or 1 before or 1 after) certain position,
end is known to happen around (at or 1 before or 1 after) certain position -e.g.,
(around 8, around 14):
"S" around the known start position,
"S" around the known end position Note: The "S" should be as narrow as possible, just enough to show the "S" shape |
|
| Start is known to happen between two known positions n and m, known end -e.g., (between 5-8, 17): Height of the rectangle between n-m reduced to 50% and aligned to the top, regular ending on the right | |
| Known start, end is known to happen between two known positions n and m -e.g., (5, between 17-20): Regular ending on the left, height of the rectangle between n-m reduced to 50%, aligned to the bottom | |
| Start is known to happen between two known positions, end is known to happen around (at or 1 before or 1 after) certain position -e.g., (between 5-8, between 17-20): Height of the rectangle between n-m reduced to 50% and aligned to the top, height of the rectangle between n-m reduced to 50%, aligned to the bottom | |
| An envelope surrounding the feature: envelopes goes from position 4 to 13 while inner feature goes from position 5 to 12 |
| One single amino acid feature, with several possible positions:
Located at the most probable position, all positions available as additional information Note: The tooltip style and the informations displayed are just examples |
|
| One single amino acid feature, known to happen within a region, exact position uncertain:
Use the shape corresponding to the feature in the middle of the region, and dotted lines to both sides ending with a
short vertical line (not longer that rectangles height) on the starting and ending positions of the region. It is also possible to omit the shape |
| Discontinuous features: Depict the partial features as usual, and connect them with a bridge-like line |
How many pixels should be used to represent one amino acid when zooming to that level? How to balance the sequence length and the SVG width? These are some recommendations.
A R N D C E Q G H I L K M F P S T W Y V
Some of the data sources whose features are contained in this document use controlled vocavularies (CV) in order to define the type of fetures. These are the CVs currently used:
| Category | Type | Description | CV id | Colour | Shape | Comments |
|---|---|---|---|---|---|---|
| Molecule Processing | Chain | The polypeptide sequence that remains when the cleaved peptide regions have been cleaved from the immature peptide. | SO:0000419 | #CC9933, RGB: 204, 153, 51 | Rectangle | |
| Transit | The transit_peptide is a short region at the N-terminus of the peptide that directs the protein to an organelle (chloroplast, mitochondrion, microbody or cyanelle). | SO:0000725 | #009966, RGB: 0, 153, 102 | Rectangle | ||
| Initiator methionine | The initiator methionine that has been cleaved from a mature polypeptide sequence. | SO:0000691 | #996633, RGB: 153, 102, 51 | Arrow-triangle pointing down | It is always a feature removed at position 1; however, the amino acid M is shown in the sequence | |
| Propeptide | Part of a peptide chain which is cleaved off during the formation of the mature protein. | SO:0001062 | #99CCCC, RGB: 153, 204, 204 | Rectangle | ||
| Peptide | Active peptides are proteins which are biologically active, released from a precursor molecule. | SO:0001064 | #006699, RGB: 0, 102, 153 | Rectangle | ||
| Signal peptide | The signal_peptide is a short region of the peptide located at the N-terminus that directs the protein to be secreted or part of membrane components. | SO:0000418 | #CC0033, RGB: 204, 0, 51 | Rectangle | ||
| Isoform | Sequence variation | Description of sequence variants produced by alternative splicing, alternative promoter usage, alternative initiation and ribosomal frameshifting. | SO:0001149 | #33CC99, RGB: 51, 204, 153 | Rectangle | Note: Isoforms are not included in the FTViewer |
| Structural features | Turn | A reversal in the direction of the backbone of a protein that is stabilized by hydrogen bond between backbone NH and CO groups, involving no more than 4 amino acid residues. | SO:0001128 | #0571AF, RGB: 204, 204, 204 | Ribbon or rectangle | |
| Beta strand | A beta strand describes a single length of polypeptide chain that forms part of a beta sheet. A single continuous stretch of amino acids adopting an extended conformation of hydrogen bonds between the N-O and the C=O of another part of the peptide. This forms a secondary protein structure in which two or more extended polypeptide regions are hydrogen-bonded to one another in a planar array. | SO:0001111 | #FFCC00, RGB: 255, 204, 0 | Arrow or rectangle | Jmol cartoon colors | |
| Alpha helix | The helix has 3.6 residues per turn which corersponds to a translation of 1.5 angstroms (= 0.15 nm) along the helical axis. Every backbone N-H group donates a hydrogen bond to the backbone C=O group of the amino acid four residues earlier. | SO:0001117 | #FF0066, RGB: 255, 0, 102 | Spiral or rectangle | Jmol cartoon colors | |
| Cross link | Post-translationally formed amino acid bonds. | MOD:00033 | #FF6600, RGB: 255, 102, 0 | Either bridge over the sequence or rectangle for one position with antenna | ||
| Disulfide bond | The covalent bond between sulfur atoms that binds two peptide chains or different parts of one peptide chain and is a structural determinant in many protein molecules. | MOD:00689 | #23B14D, RGB: 51, 153, 102 | Either bridge over the sequence or rectangle for one position with antenna | ||
| Domains and sites | Region (maybe nucleotide region) | A sequence_feature with an extent greater than zero. A nucleotide region is composed of bases and a polypeptide region is composed of amino acids. | SO:0000001 | #B33E00, RGB: 0, 102, 153 | Rectangle | |
| Coiled coil | A coiled coil is a structural motif in proteins, in which alpha-helices are coiled together like the strands of a rope. | SO:0001080 | #006699, RGB: 0, 102, 153 | Rectangle | ||
| Motif | A conserved motif is a short (up to 20 amino acids) region of biological interest that is conserved in different proteins. They may or may not have functional or structural significance within the proteins in which they are found. | SO:0100017 | #402060, RGB: 64, 32, 96 | Rectangle | ||
| Repeat | A polypeptide_repeat is a single copy of an internal sequence repetition. | SO:0001068 | #9900FF, RGB: 153, 0, 255 | Rectangle | ||
| Calcium binding | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution. | SO:0000417 | #FF3399, RGB: 255, 51, 153 | Rectangle | ||
| DNA binding | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution. | SO:0000417 | #009933, RGB: 0, 153, 51 | Rectangle | ||
| Domain | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution. | SO:0000417 | #9999FF, RGB: 153, 153, 255 | Rectangle | ||
| Zinc finger | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution. | SO:0000417 | #990066, RGB: 153, 0, 102 | Rectangle | CPK colouring for zinc | |
| Nuclear Phosphorylation | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution. | SO:0000417 | #FF9900, RGB: 255, 153, 0 | Rectangle | CPK colouring for phosphorus | |
| Metal binding | A binding site that, in the polypeptide molecule, interacts selectively and non-covalently with metal ions. | SO:0001092 | #009900, RGB: 0, 153, 0 | Diamond | ||
| Site | Biological sequence region that can be assigned to a specific subsequence of a polypeptide. | SO:0000839 | #660033, RGB: 102, 0, 51 | Chevron arrow | Usually one amino acid but it also can be two flanking amino acids | |
| Binding site | (i) Binding site for any chemical group (co-enzyme, prosthetic group, etc.). (ii) A polypeptide binding motif is a short (up to 20 amino acids) polypeptide region of biological interest that contains one or more amino acids experimentally shown to bind to a ligand. |
(i) SO:0001091, (ii) SO:0100018 | #006699, RGB: 0, 102, 153 | Cat face | ||
| Active site | Amino acid involved in the activity of an enzyme. | SO:0001104 | #FF6666, RGB: 255, 102, 102 | Circle | ||
| Post translational modifications | Modified residue | A region where a transformation occurs in a protein after it has been synthesized. This which may regulate, stabilize, crosslink or introduce new chemical functionalities in the protein. | SO:0001089 | #000066, RGB: 0, 0, 102 | Triangle | |
| Lipid | A protein modification that effectively results from forming an adduct with a compound containing a lipid-like group either through acylation, alkylation, or amidation. | MOD:01155 | #99CC33, RGB: 153, 204, 51 | Wave | ||
| Glycosylation | A protein modification that effectively replaces a hydrogen atom with a carbohydrate-like group through a glycosidic bond. | MOD:00693 |
Without distinguishing the type of linkage: #CC3366, RGB: 204, 51, 102 C-linked: #D3D3D3 N-linked: #87CEE6 O-linked: #FF0000 |
Elongated hexagon | Linkage colours | |
| Variations | Variant | Describes the natural sequence variants due to polymorphisms, disease-associated mutations, RNA editing and variations between strains, isolates or cultivars. | SO:0001147 | Heatmap. If only one colour is used then #006666 TGB:0, 102, 102 | Rectangle | |
| Sequence information | Compositional bias | Polypeptide region that is rich in a particular amino acid or homopolymeric and greater than three residues in length. | SO:0001066 | #FF3366, RGB: 255, 51, 102 | Rectangle | |
| Mutagen | Site which has been experimentally altered. | SO:0001148 | #FF9900, RGB: 255, 153, 0 | Rectangle | ||
| Conflict | Different sources report differing sequences. | SO:0001085 | #6633CC, RGB: 102, 51, 204 | Rectangle | ||
| Non consecutive | Indicates that two consecutive residues in a fragment sequence are not consecutive in the full-length protein and that there are a number of unsequenced residues between them. | SO:0001083 | #FF0033, RGB: 255, 0, 51 | // representing a break in the sequence | ||
| Non terminal residue | The residue at an extremity of the sequence is not the terminal residue. | SO:0001084 | #339933, RGB: 51, 153, 51 | // either at the beginning or end of the sequence representing uncertainty about the limits | ||
| Unsure, seq. uncertainty | Describes the positions in a sequence where the authors are unsure about the sequence assignment. | SO:0001086 | #33FF00, RGB: 51, 255, 0 | Rectangle | ||
| Non standard amino acid | A protein modification that inserts or replaces a residue with a natural, non-standard encoded residue, such as N-formyl-L-methionine, L-selenocysteine, or L-pyrrolysine. | MOD:00868, MOD:01187 (L-pyrrolysine), MOD:00031 (L-selenocysteine), MOD:00030 (N-formyl-L-methionine) | #330066, RGB: 51, 0, 102 | Pentagon pointing down | ||
| Topology | Topological domain, extramembrane | Polypeptide region that is localized outside of a lipid bilayer. | SO:0001072 | #CC0000, RGB: 204, 0, 0 | Rectangle | |
| Intramembrane | Polypeptide region present in the lipid bilayer. | SO:0001075 | #0000CC, RGB: 0, 0, 204 | Rectangle | ||
| Transmembrane | Polypeptide region traversing the lipid bilayer. | SO:0001077 | #CC00CC, RGB: 204, 0, 204 | Rectangle |
| BS:00333 | Annotations which indicate the family to which the protein belongs |
| SO:0100017 | A conserved motif is a short (up to 20 amino acids) region of biological interest that is conserved in different proteins. They may or may not have functional or structural significance within the proteins in which they are found |
| SO:0100018 | A polypeptide binding motif is a short (up to 20 amino acids) polypeptide region of biological interest that contains one or more amino acids experimentally shown to bind to a ligand |
| SO:0001089 | A region where a transformation occurs in a protein after it has been synthesized. This which may regulate, stabilize, crosslink or introduce new chemical functionalities in the protein |
| SO:0100019 | A polypeptide catalytic motif is a short (up to 20 amino acids) polypeptide region that contains one or more active site residues |
| SO:0000417 | A structurally or functionally defined protein region. In proteins with multiple domains, the combination of the domains determines the function of the protein. A region which has been shown to recur throughout evolution |
| SO:0001068 | A polypeptide_repeat is a single copy of an internal sequence repetition |
| SO:0000001 | A sequence_feature with an extent greater than zero. A nucleotide region is composed of bases and a polypeptide region is composed of amino acids |
| #b852d4 | #00baf0 | #ff0000 | #33cc33 | #ffde00 | #ffa99e | #c571ff | #ff9000 | #c69c6d | #ededed |
| #1e82d4 | #a1e42d | #ffff00 | #cf161d | #ff6000 | #1cbbb4 | #e354e3 | #cbcbcb | #92acd1 | #a66c32 |
| #0000ff | #0ff7fa | #ecd66d | #ffa8fd | #9306ff | #998675 | #c3b8f0 | #7db7ff | #00984a | #bedbfe |
| #ffdfdf | #cde6a8 | #fffdcc | #e6e4a8 | #d5a8e6 | #e6c4a8 | #82ca9c | #dfffdc | #c3b3a1 | #e7e1ff |
| #950e0e | #005e20 | #a2a420 | #e8ffa2 | #ff00ff | #604036 | #717171 | #6af0a6 | #5d8ca2 | #6e2e9d |
| #e56251 | #a6ff46 | #bf6b66 | #6d4afe | #a186be | #c5209c | #d28428 | #86a185 | #ffc000 | #90deda |
| #ffddb2 |
IntAct has a variety of features but for visualization purposes they have selected just some of them.
| Category | Type | Description | CV id | Colour | Shape | Comments |
|---|---|---|---|---|---|---|
| Interactions | PTM | A post-translational modification that elicits an allosteric response upon addition to a target molecule. An allosteric post-translational modification is identified by referring to its feature id. | MI:1175 | #AAAAAA | Triangle | PTMs in IntAct are obtained from Mass Spectrometry experiments reported in the literature (IntAct is a curated database) |
| Interactions | Binding-associated region | A region of a molecule identified as being involved in an interaction. This may or may not be a region of the protein in direct contact with the interacting partner. | MI:0117 + children | #FAB875 | Rectangle | |
| Interactions | Mutation | A natural change in a sequence or structure in comparison to a reference entity due to an insertion, deletion or substitution event. | MI:0118 | #EEEEEE | Rectangle | |
| Interactions | Identified Peptides | Peptide whose sequence is experimentally identified and can lead to a full protein identification. | MI:0656 | #FF2600 | Rectangle | In IntAct, identified peptides are obtained from Mass Spectrometry experiments reported in the literature (IntAct is a curated database) |
| Interactions | Tags | Molecules are often altered, or tagged, by additions to their basic structure or sequence, to aid in identification or purification. This may include changes at the atomic level such as replacement of individual atoms with a radio- or heavy-isotope. | Some children of MI:0505 --> MI:0373 + children, MI:0856 + children, MI:0845 + children, MI:0507 + children, MI:0950 | #99CCFF | Rectangle | |
| Interactions | Isotope label | One of several nuclides having the same number of protons in their nuclei and hence having the same atomic number, but differing in the number of neutrons and therefore, in the mass number. | MI:0253 + children | #F2F200 | Star |
| Category | Type | Description | CV id | Colour | Shape | Comments |
|---|---|---|---|---|---|---|
| - | Summary of identified peptides | Short sequences used in MS proteomics to identify a protein | MS:1000860 | To be decided | Rectangle without border following a saturation sytle, the darker the more peptides | Peptides in Pride are obtained from Mass Spectrometry experiments directly reported to Pride |
| - | Identified peptides | Short sequences used in MS proteomics to identify a protein | MS:1000860 | To be decided | Rectangle | Peptides in Pride are obtained from Mass Spectrometry experiments directly reported to Pride |
| - | PTM | Post-translational modification related to the MS proteomics setup | MOD:000000 + children | To be decided | Triangle | PTMs in Pride are obtained from Mass Spectrometry experiments directly reported to Pride |


Coding a computer means telling a computer what you want it to do by writing text in a way that it can understand. Also referred to as programming language.
Basics Of The WebThe web is comprised of collections of HTML documents. A web page is a text document written in a language called HTML. Web browsers read these documents, and then interpret and display them. HTML (Hyper Text Markup Language) is the format for the language of the many types of documents on the web. URLs (Uniform Resource Identifier) is the address for documents on the web. HTTP is (Hypertext Transfer Protocol) rules for transferring files (text, graphic images, sound, video, and other multimedia files) on the web. Web Application is any computer program that runs in a web browser.
HTML Basic Lingo
The basic structure for HTML markup is < name > contents < /name >
this consists of an opening tag, the contents and a closing tag called an element.
< b > tag — The b tag renders text BOLD
< em > tag — The em tag renders text italic
< br > tag — The break tag creates a line break
< p > tag — The paragraph tag creates a box around text
< a > tag — The anchor tag creates a link to another web page
< img > tag — The image tag adds an image
Basic HTML Document Structure includes the following elements:
!Doctype HTML
html
head
title
body
Programmers often describe computers as "stupid" because computers only understand the instructions that human programmers give to them. This makes them highly sensitive and open to small mistakes (that a human would not make) leading to huge problems.
Forgetting is FineThere are just too many facts to remember. Don't sweat the small stuff, it's ok to forget as long as you understand how to get the details when you need them. Important points are also recapped at the end of each lesson. (Remember, Google is your friend!)
On to stage 1!


The purpose of Plato is to provide a modelling library for developing machines with minds based on the conception of mind as a causal system.
The Plato library is written in standard C++ and consists of a number of object oriented classes for modelling cognitive processes.
For details on the key modelling classes, see the
For examples on how to run models, see the
Copyright © 1999-2008, DJR Whobrey, All rights reserved.