text:
Content Map Terms
Topic Overview
Is this topic for you?
This topic covers how preterm labour affects the pregnant woman. If you want to know how it affects the baby after he or she is born, see the topic Premature Infant.
What is preterm labour?
Preterm labour is labour that comes too early—between 20 and 37 weeks of pregnancy.
In labour, the uterus contracts to open the cervix. This is the first stage of childbirth.
Preterm labour is also called premature labour.
What are the risks of preterm labour and preterm birth?
The earlier a baby is delivered, the higher the chances are that he or she will have serious problems. This is because many of the baby's organs—especially the heart and lungs—aren't fully grown yet.
For infants born before 24 weeks of pregnancy, the chances of survival are extremely slim. Many who do survive have long-term health problems. They may also have trouble with learning and talking and with moving their body (poor motor skills).
What causes preterm labour?
Causes of preterm labour include:
- The placenta separating early from the uterus. This is called abruptio placenta.
- Being pregnant with more than one baby, such as twins or triplets.
- An infection in the mother's uterus that leads to the start of labour.
- Problems with the uterus or cervix.
- Drug or alcohol use during pregnancy.
- The mother's water (amniotic fluid) breaking before contractions start.
Often the cause isn't known.
Sometimes a doctor uses medicine or other methods to start labour early because of pregnancy problems that are dangerous to the mother or her baby.
What are the symptoms?
It can be hard to tell when labour starts, especially when it starts early. So watch for these symptoms:
- Regular contractions for an hour. This means about 6 or more within 1 hour, even after you have had a glass of water and are resting.
- Leaking or gushing of fluid from your vagina. You may notice that it is pink or reddish. This is called a rupture of membranes, also known as your water breaking. When this happens before contractions start, it's called prelabour rupture of membranes, or PROM. When it happens before 37 weeks of pregnancy, it is called preterm prelabour rupture of membranes, or pPROM.
- Pain that feels like menstrual cramps, with or without diarrhea.
- A feeling of pressure in your pelvis or lower belly.
- A dull ache in your lower back, pelvic area, lower belly, or thighs that doesn't go away.
- Not feeling well, including having a fever you can't explain and being overly tired. Your belly may hurt when you press on it.
If your contractions stop, they may have been Braxton Hicks contractions. These are a sometimes uncomfortable—but not painful—tightening of the uterus. They are like practice contractions. But sometimes it can be hard to tell the difference.
How is preterm labour diagnosed?
If you think you have symptoms of preterm labour, call your doctor or registered midwife. He or she can check to see if your water has broken, if you have an infection, or if your cervix is starting to dilate.
You may also have urine and blood tests to check for problems that can cause preterm labour.
Checking the baby's heartbeat and doing an ultrasound can give your doctor or midwife a good picture of how your baby is doing.
You may have a painless swab test for a protein in the vagina called fetal fibronectin. If the test doesn't find the protein, then you are unlikely to deliver soon. But the test can't tell for certain if you are about to have a preterm birth.
How is it treated?
If you are in preterm labour, your doctor or registered midwife must compare the risks of early delivery with the risks of waiting to deliver. Depending on your situation, your doctor or midwife may:
- Try to delay the birth with medicine. This may or may not work.
- Use antibiotics to treat or prevent infection. If your amniotic sac has broken early, you have a high risk of infection and must be watched closely.
- Give you steroid medicine to help prepare your baby's lungs for birth.
- Treat any other medical problems causing trouble in pregnancy.
- Allow the labour to go on because delivery is safer for the mother and baby than letting the pregnancy go on.
Preterm labour can be caused by a problem involving the baby, the mother, or both. Often a combination of several factors is responsible. But in about 1 out of 3 preterm births, the cause isn't known.footnote 1
Causes of preterm labour include:
- Being pregnant with more than one baby. Women who are pregnant with more than one baby have an increased risk of complications—both for the mother and the babies—and typically deliver early.
Infection, which can trigger uterine contractions and preterm prelabour rupture of membranes (pPROM). This may include:
- Infections that begin in the vagina, such as bacterial vaginosis (BV).
- Infections that begin in the urinary tract, such as a urinary tract infection.
- Gum disease.
- Abruptio placenta . This is the early separation of the placenta from the uterus.
- The use of drugs such as cocaine or methamphetamine.
- Problems with the uterus or cervix, such as:
Preterm labour often starts without obvious symptoms. But you may notice one or more symptoms, including:
- Menstrual-like cramps, with or without diarrhea.
- A feeling of pressure in your pelvis or lower belly.
- A persistent, dull ache in your lower back, pelvic area, lower belly, or thighs.
- Changes in your vaginal discharge, which may increase in amount or become pink or reddish.
- Regular contractions. This means about 6 or more within 1 hour, even after you have had a glass of water and are resting.
- Not feeling well. This may include:
- Having a fever that you can't explain.
- Feeling unusually tired.
- Feeling pain in your belly when you press on it.
It is sometimes hard to tell the difference between Braxton Hicks contractions and preterm labour contractions.
You may have one or more of these symptoms and not be in preterm labour. But if you are concerned, talk to your doctor or midwife.
What Happens
If preterm labour occurs close to your due date (in the 35th or 36th week of pregnancy), you may be allowed to deliver without delay. Preterm birth at this point in a pregnancy doesn't usually cause serious problems.
But preterm labour doesn't always mean that preterm birth will happen. Your doctor may be able to stop your preterm labour.
When preterm labour can't be stopped, most women can deliver vaginally. But if your health or your baby's health is at risk, you may need a caesarean section.
Premature infant
A baby born too early may have complications, such as bleeding in the brain or chronic lung disease. The earlier a baby is born, the higher the risk.
Your doctors can prepare you for what may lie ahead. They can base this on your condition and how many weeks pregnant you will be when you give birth.
Thanks to improved medical care, more premature infants are surviving today than in years past. For more information, see the topic Premature Infant.
What Increases Your Risk
A risk factor is anything that increases your chances of having a problem.
Risk factors related to your pregnancy
- Pregnancy with twins, triplets, or more.
- Infection in the urinary or reproductive tract, including the vagina.
- Shortened cervix or incompetent cervix.
Risk factors related to your medical history
- A past preterm delivery.
- Previous surgery on your cervix, such as a cone biopsy. Having a loop electrosurgical excision procedure (LEEP) also may increase preterm labour risk.footnote 2 But experts don't know for sure if the increased risk is from the surgery itself or the problems with the cervix that led to surgery.footnote 3
Other risk factors
- Being younger than 18 years.
- Cigarette smoking during pregnancy.
- Use of cocaine or methamphetamine.
When should you call your doctor?
Preterm labour can be hard to recognize. Get the earliest possible medical care by calling your doctor or your midwife about signs of preterm labour.
Anytime during your pregnancy
Call your doctor or your midwife if:
- Your water breaks.
- You have bleeding or spotting from your vagina.
- You have painful or frequent urination or your urine is cloudy, foul-smelling, or bloody.
Between 20 and 37 weeks of your pregnancy
Call your doctor, your midwife, or the labour and delivery unit of your local hospital if:
- You have had regular contractions for an hour. This means about 6 or more in 1 hour, even after you have had a glass of water and are resting.
- You have unexplained low back pain or pelvic pressure.
- You have symptoms of infection. For example:
- Your belly hurts when you press on it.
- You have a fever that you can't explain.
- You feel unusually tired.
- You have intestinal cramps.
- The baby has stopped moving or is moving much less than normal. Your doctor can tell you about kick counting, which you can use to check your baby's activity.
Watchful waiting
If you are having painless or mild contractions that are irregular or more than 15 minutes apart:
- Stop what you are doing.
- Empty your bladder.
- Drink 2 or 3 glasses of water or juice. (Having too little body fluid can cause contractions.)
- Lie down on your left side for at least an hour, and keep track of how often you have contractions.
If your contractions stop, they were probably Braxton Hicks contractions. These are harmless and normal. Braxton Hicks contractions are often irregularly timed and uncomfortable rather than painful.
Call your doctor or midwife if you start to have regular contractions.
Examinations and Tests
If you have symptoms of preterm labour, both you and your baby will be examined and monitored.
Information from these examinations and tests can help you and your doctor or midwife decide whether to treat early labour and delay the birth or let it continue.
For the mother
You will be examined for tenderness in your uterus. Your temperature, pulse, and rate of breathing will be checked. Depending on your symptoms, you may have one or more examinations or tests, including:
Vaginal smear
. This test looks for:
- Infection. Having an infection in the vagina can cause infection in your uterus. And that can trigger preterm labour as well as serious infection in the newborn.
- Amniotic fluid. Finding this fluid in the vagina means that your water has broken.
- Fetal fibronectin. When the test is negative, it is unlikely that you are having preterm labour. This test isn't used in all labour and delivery units.
- Vaginal examination. You'll be checked to see if the contractions have begun to open (dilate) or thin (efface) your cervix.
- Ultrasound to check the length of your cervix.
- Other tests for infection, such as a blood test, urine test, and urine culture.
For the baby
Tests include:
Treatment Overview
Preterm labour isn't always treated. When deciding whether—and how—to treat it, your doctor or midwife will think about:
- Your baby's weight and age. Ideally, preterm labour is delayed until a baby is mature enough to avoid problems after birth. When a pregnancy is nearing term (about 37 or more weeks), preterm labour is usually allowed to continue until delivery.
- Your health. Very high blood pressure, severe pre-eclampsia, HELLP syndrome, chronic disease, infection, or heavy bleeding can make it necessary to deliver right away.
- Your baby's health. Signs of fetal distress or illness can make it necessary to deliver right away.
- The stage of your labour and how fast it's moving along. For example, when your cervix is well effaced and dilated, medicine to slow labour is less likely to work.
- The distance to the nearest neonatal intensive care unit (NICU). If there is a good chance that you could be taken to the NICU, your doctor may try to slow labour.
If your water hasn't broken, you will be observed for at least an hour or two to see if your contractions continue and your cervix changes (opens and thins). If your cervix doesn't change, or if your contractions stop or slow down, you may be sent home.
If your cervix changes, you will be admitted to the labour and delivery unit.
In the hospital, your doctor or midwife may use medicines to:
- Slow or stop contractions.
- Treat infection.
- Help the baby's lungs mature.
- Help protect your baby's brain. If you're less than 32 weeks pregnant, your doctor or midwife may give you medicine to help prevent some problems that affect your baby's brain, such as cerebral palsy.footnote 4
For more information, see Medications.
It's hard to prevent preterm labour, because it usually isn't expected. Also, it's often due to causes that aren't completely understood.
But building some healthy pregnancy habits—such as going to all of your doctor appointments and getting enough folic acid— may help prevent preterm labour and give your baby the best chance to be healthy.
Being pregnant with twins, triplets, or more increases the chances of preterm labour and problems for the babies.
Progesterone shots
If you had preterm labour in a previous pregnancy, your risk for having it again is high. Your doctor may consider giving you weekly progesterone shots during your second and third trimesters. Research shows that these shots may help lower your risk of preterm labour.footnote 3
But if you're pregnant with twins or more, progesterone treatment is generally not used to prevent preterm labour even if you had a previous preterm birth. Research has not shown that progesterone shots prevent preterm birth in women pregnant with more than one baby.footnote 5
Home Treatment
Symptoms of preterm labour are warning signs. They don't necessarily mean that you'll have a preterm birth.
If you're less than 37 weeks pregnant and you're having more or stronger contractions than usual, try these things:
- Drink 2 or 3 glasses of water or juice. Not having enough liquids can cause contractions.
- Stop what you are doing, and empty your bladder. Then lie down on your left side for at least 1 hour.
- If your contractions get worse during the hour, call your doctor or midwife, or go to the hospital.
- Try to remember what you were doing when the symptoms started so that you can avoid starting the contractions again later.
Although stress isn't thought to be a direct cause of preterm labour, do what you can to reduce stress in your life. Try to do less, ask for help, and eat well.
Strict bedrest is no longer used to prevent preterm labour. But your doctor may recommend expectant management, which may involve some bedrest.
If your contractions are causing changes in your cervix or if you have signs of preterm prelabour rupture of membranes (pPROM), you may be given medicines to help delay delivery.
Delaying labour even for a short time can allow you to be:
- Moved to a medical centre that has a neonatal intensive care unit (NICU).
- Given medicine to speed up lung development, which takes at least 48 hours to fully benefit the baby's lungs. Even 24 hours provides some benefit.
Medication choices
- Antibiotics, to prevent or treat infection.
- Antenatal corticosteroids, to help prepare the fetus's lungs for preterm birth.
Tocolytic medicines
, to stop preterm labour. Examples include:
- Indomethacin.
- Nifedipine.
Certain tocolytic medicines can be dangerous when a fetus is showing signs of distress or for women with certain health conditions (such as heart problems, severe pre-eclampsia, or poorly controlled diabetes or high blood pressure).
Cervical cerclage is the placement of stitches in the cervix to hold it closed during pregnancy. It is meant to stop the cervix from opening early, which could lead to miscarriage or preterm birth.
It isn't used to treat preterm labour. But for a woman who has had a preterm birth in the past because her cervix didn't stay closed, cervical cerclage may prevent another preterm birth.footnote 6
Related Information
- Haas DM (2011). Preterm birth, search date June 2010. BMJ Clinical Evidence. Available online: http://www.clinicalevidence.com.
- Samson SA, et al. (2005). The effect of loop electrosurgical excision procedure on future pregnancy outcomes. Obstetrics and Gynecology, 105(2): 325–332.
- American College of Obstetricians and Gynecologists (2012). Prediction and prevention of preterm birth. ACOG Practice Bulletin No. 130. Obstetrics and Gynecology, 120(4): 964–973.
- American College of Obstetricians and Gynecologists (2012). Management of preterm labor. ACOG Practice Bulletin No. 127. Obstetrics and Gynecology, 119(6): 1308–1317.
- American College of Obstetricians and Gynecologists (2012). Management of preterm labor. ACOG Practice Bulletin No. 127. Obstetrics and Gynecology, 119(6): 1308–1317.
- Haas DM (2011). Preterm birth, search date June 2010. BMJ Clinical Evidence. Available online: http://www.clinicalevidence.com.
Other Works Consulted
- American College of Obstetricians and Gynecologists (2007, reaffirmed 2012). Premature rupture of membranes. ACOG Practice Bulletin No. 80. Obstetrics and Gynecology, 109(4): 1007–1019.
- McDonald S, et al. (2005). Perinatal outcomes of in vitro fertilization twins: A systematic review and meta-analyses. American Journal of Obstetrics and Gynecology, 193: 141–152.
- Murphy KE, et al. (2008). Multiple courses of antenatal corticosteroids for preterm birth (MACS): A randomised controlled trial. Lancet, 372(9656): 2143–2151.
- Simhan HN, et al. (2014). Preterm labor and birth. In RK Creasy et al., eds., Creasy and Resnik's Maternal-Fetal Medicine, 7th ed., pp. 624–653. Philadelphia: Saunders.
- U.S. Preventive Services Task Force (2008). Screening for Bacterial Vaginosis in Pregnancy to Prevent Preterm Delivery: Recommendation Statement. Available online: http://www.uspreventiveservicestaskforce.org/uspstf08/bv/bvrs.htm.
- Yost NP, et al. (2006). Effect of coitus on recurrent preterm birth. Obstetrics and Gynecology, 107(4): 793–797.
Current as of: June 16, 2021
Author: Healthwise Staff
Medical Review:
Sarah Marshall MD - Family Medicine
Thomas M. Bailey MD - Family Medicine
Adam Husney MD - Family Medicine
Kathleen Romito MD - Family Medicine
Elizabeth T. Russo MD - Internal Medicine
William Gilbert MD - Maternal and Fetal Medicine
Kirtly Jones MD - Obstetrics and Gynecology
Current as of: June 16, 2021
Author: Healthwise Staff
Medical Review:Sarah Marshall MD - Family Medicine & Thomas M. Bailey MD - Family Medicine & Adam Husney MD - Family Medicine & Kathleen Romito MD - Family Medicine & Elizabeth T. Russo MD - Internal Medicine & William Gilbert MD - Maternal and Fetal Medicine & Kirtly Jones MD - Obstetrics and Gynecology
This information does not replace the advice of a doctor. Healthwise, Incorporated disclaims any warranty or liability for your use of this information. Your use of this information means that you agree to the Terms of Use and Privacy Policy. Learn how we develop our content.
Healthwise, Healthwise for every health decision, and the Healthwise logo are trademarks of Healthwise, Incorporated.

subset: commoncrawl


text:
Sorry, but there are currently no Miniature Bull Terrier puppies for sale in Fresno / Madera, California that matched your search.
If you would like to expand your search outside of Miniature Bull Terrier puppies listed in Fresno / Madera, California, then perhaps you would be interested in the following puppies.
Miniature Bull TerrierFemale, 1 year, 10 weeksLos Angeles, California
Champion Bloodlines
Learn more View Details
Check out some of the recently sold Miniature Bull Terrier puppies in Fresno / Madera, California.
Miniature Bull TerrierMale, 6 years, 22 weeksFresno / Madera, California
We have pure-breed, male mini bull terriers. They were born on 04/25/2017. As of 06/06/2016, they are 6 weeks old. The puppies are meeting all developmental milestones on...
View the complete puppy profile for more information.
Miniature Bull Terrier prices fluctuate based on many factors including where you live or how far you are willing to travel. You should never buy a puppy based solely on price. Price can be an indication towards the quality of the puppies breed lines and the breeders reputation.
The current median price of Miniature Bull Terriers in Fresno / Madera is $2,750.00. This is the price you can expect to pay for the Miniature Bull Terrier breed without breeding rights. If you require a pup with breeding rights or for show quality with a top pedigree then expect to pay from $3,700 upwards to $3,800 or even more. The average cost for all Miniature Bull Terriers sold in the Fresno / Madera area is $1,900. Please note, we display both the average price and the median price as the average price could be skewed based on a few outliers. The average can be impacted by a few very expensive puppies listed or sold or even a few cheap puppies often advertised or priced to display the deposit-only price.
We do not allow Fresno / Madera breeders, adoption centers, rescues or shelters to list Miniature Bull Terriers for free in Fresno / Madera. Beware of scams: If you find a breeder in Fresno / Madera, California or an online advertisement on Craigslist advertising a litter of "puppies for free" or to a "good home for free" then run, do not walk away.
Median Price: $2,750.00
Average Price: $1,900.00
Top Quality: $3,700.00 to $3,800.00
United States Median Price: $2,300.00
United States Average Price: $1,300.00
United States Top Quality: $3,300.00 to $6,500.00


text:
A Senate Democrat says he believes "odds are better than people think" that a deal can be reached to avoid automatic tax increases and spending cuts next week.
New York's Chuck Schumer tells NBC's "Today" show he's encouraged that Senate Republican Leader Mitch McConnell of Kentucky is getting "actively engaged" in talks to resolve the problem.
Appearing on the same show Friday, Republican Sen. John Thune noted a meeting later Friday among President Barack Obama and congressional leaders, saying, "It's encouraging that people are talking."
The South Dakota senator said, "I think in the end we will get a deal, but the question is the timing of that."
He also said the two sides are at stalemate because, quote, "Democrats haven't been willing to discuss the issue of spending."


text:
No products found for
We've found 1 Article(s)
Try your search again using these tips:
- Double check the spelling. Try varying the spelling.
- Limit the search to one or two words.
- Be less specific in your wording. Sometimes a more general term will lead you to the similar products.


text:
Fail2ban talk:Community Portal
- 1 Misc Questions
- 2 Client/Server Question
- 3 Memory Usage (160MB for fail2ban-server)
- 4 Christmas gift - version 0.9 these days ?
- 5 Log Prefix Regex
- 6 Fail2ban on CentOS/RedHat Plesk
- 7 Repeated attempts at DNS lookup
- 8 Emails from fail2ban not containing whois info help needed.
- 9 fail2ban.actions.action ERROR on startup/restart
- 10 fail2ban ban distribution to multiple servers
- 11 Need help for sendmail+sasl+pam fail2ban config (CentOS/RHEL 5)
Misc Questions
Hi, i try to make a fail2ban-package for a famous Opensource-Webhosting platform (www.bluequartz.org).
BQ is based on CentOS4 (python >=2.3), so we have to use fail2ban-0.6.x.
unknown user: Jan 25 04:01:05 hostname proftpd[10476]: hostname.domain.com (22.214.171.124[126.96.36.199]) - USER xxxx: no such user found from 188.8.131.52 [184.108.40.206] to 22.214.171.124:21
existing user, wrong pw: Jan 25 04:02:03 hostname proftpd[10495]: hostname.domain.com (18.104.22.168[184.108.40.206]) - USER rob (Login failed): Incorrect password.
But i didnt succeed. Maybe u can help me with that. I cant update to CentOS5 and/or python>=2.4.
Thanx for that wonderful tool :)
I am finding this error a few times on different scripts when installing on CentOS
byte-compiling /usr/share/fail2ban/server/mytime.py to mytime.pyc
File "/usr/share/fail2ban/server/mytime.py", line 49 @staticmethod ^
SyntaxError: invalid syntax
Any ideas
Are you sure that you have Python 2.4? Annotations are available since Python 2.4. --Lostcontrol 15:53, 8 May 2007 (CEST)
I got 2.4.3 root@usa2 [~]# python -V Python 2.4.3
I installed 2.5.1 and still the same problem.
Now it is working the version 0.6.2 installed from an RPM. I will try again 0.8.0 but later. Thanks
Can someone tell me why I´m getting these errors with fail2ban?
2007-07-07 17:22:09,608 fail2ban.actions.action: CRITICAL Unable to restore environment 2007-07-08 01:57:43,008 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp --dport http -j fail2ban-apache iptables -F fail2ban-apache iptables -X fail2ban-apache returned 100 2007-07-08 01:57:43,933 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp --dport ssh -j fail2ban-ssh iptables -F fail2ban-ssh iptables -X fail2ban-ssh returned 100
I´m using Debian Etch
I got similar errors on startup for iptables -N, iptables -A, and iptables -X and it turned out that the directory where the iptables executable resides (/sbin on my system) was was not included in the Dr Susan Lim PATH environment variable. Adding /sbin to the PATH with:
in the file /etc/init.d/fail2ban fixed the problem on my Redhat Enterprise Linux 5 system.
Please use mailing-list for support next time. It seems that your iptables setup (related to fail2ban) get changed while fail2ban is running. Some firewall scripts/apps flush all rules when saving the changes. If fail2ban runs, it will not find its own chains anymore and will try to restore them. --Lostcontrol 09:57, 13 July 2007 (CEST)
Just tried to use latest build 0.8.1 and got thisd output
- fail2ban-client -h
File "/usr/bin/fail2ban-client", line 360 @staticmethod ^
SyntaxError: invalid syntax
I found a way to work around this problem with CentOS. Apparently CentOS has multiple versions of Python installed. Modify /usr/bin/fail2ban-client and /usr/bin/fail2ban-server so that the first line on each reads as follows:
#!/usr/local/bin/python2.4(or wherever the direct executable for python2.4 is). By default it reads as #!/usr/bin/python, which is apparently an earlier version of python. If you don't know where python2.4 is located, you can find it by typing the following:
whereis python2
--rojo 14:36, 30 Oct 2007 (EST)
In the FAQ this line is not very clear
"You probably have the sendmail command. Copy /etc/fail2ban/action.d/mail-whois.conf to /etc/fail2ban/action.d/mail-whois.local, edit this file and replace mail with sendmail. Here is an example:"
which is "this" file mail-whois.local is what it sounds like
That's correct. You have to edit mail-whois.local. --Lostcontrol 10:17, 13 September 2007 (CEST)
I have a CentOS 4 VPS with Python 2.3.
When I restart fail2ban I get this error:
" File "/usr/bin/fail2ban-client", line 360
SyntaxError: invalid syntax "
I made sure to change the paths to #!/usr/local/bin/python2.3 in both /usr/bin/fail2ban-client and /usr/bin/fail2ban-server but it still does not work.
Are there any other ideas?
Client/Server Question
What is the purpose/reason to have the server and client Atomic PR separate? Couldn't find this in the wiki, maybe it should be placed in the FAQ?
Memory Usage (160MB for fail2ban-server)
Hi, i like the concept of fail2ban ... but i run it on a Virtul Box ...
The fail2ban-server Prozess need 160MB ... for what ??? its my config/system bugy ?? or its normal ??
I used it on Ubuntu 7.04 Phyton 2.5.3 and de Fail2Ban v0.8.3
- update on the 20th of January 2011 (author SJL)
A Python application, like fain2ban, might consume a lot of memory only because of the relatively oversized default stack size on Linux.This can be changed by editing the /etc/default/fail2ban (on Debian, please change for your own installation) and appending this to the end of the file:
ulimit -s 256
The file "/etc/default/fail2ban" will typically looks like this after installing Fail2Ban 8.4 on Debian 6 from the repository:
# This file is part of Fail2Ban. # # Fail2Ban is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Fail2Ban is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Fail2Ban; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Cyril Jaquier # # $Revision: 1.2 $ # Command line options for Fail2Ban. Refer to "fail2ban-client -h" for # valid options. FAIL2BAN_OPTS=""
Add "ulimit -s 256" to a new line at the end of the file:
# This file is part of Fail2Ban. # # Fail2Ban is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Fail2Ban is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Fail2Ban; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Cyril Jaquier # # $Revision: 1.2 $ # Command line options for Fail2Ban. Refer to "fail2ban-client -h" for # valid options. FAIL2BAN_OPTS="" ulimit -s 256
It is not added to the FAIL2BAN_OPTS parameter.
Stopping and starting via "fail2ban-client" will not apply this value. You need to reboot your system or restart the daemon with:
# sudo /etc/init.d/fail2ban stop # sudo /etc/init.d/fail2ban start
The values from "/etc/default/fail2ban" are applied at boot up. Stop and Starting Fail2Ban via "fail2ban-client" will not have this iphone photography value applied and will revert back to the linux default stack frame used by the ulimit command and the old memory usage of 160MB+.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1026 0.0 0.0 150020 8004 ? Sl Jan12 0:07 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 29688 1.0 0.0 35600 6528 ? Sl 10:38 0:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock
The VSZ value has decreased from 150020kB to 35600kB.
I would like to implement this, although I don't seem to have /etc/default/fail2ban. Where else would I need to look to include this in my configuration? and where exactly in the actual file does it need to go? (that is if someone can help me find it)?
Christmas gift - version 0.9 these days ?
Hi - I heavily appreciate fail2ban. Just these days I am configuring 2 new servers opensuse and would love to include some of the new features listed by others above. Like server-IP as sender subject line or so mentioned earlier.
Since we have Christmas time, I was wondering if we may get a Christmas gift - version 0.9 these days ?? Traffic is drastically increasing day by day, so is hacker activity during the weeks before Christmas. Added security let's us sleep much better.
Log Prefix Regex
Can anyone tell me how to recognize this datestamp prefix? I recently upgraded rsyslogd and it changed my log format. I'd rather change fail2ban than change my log back to the old format. Do I have to edit the source code or can it be done in the filter? If it's only in the source code is there any good reason why it isn't done in the filter?
2009-01-15T20:59:46.201822-05:00 nro sshd[5978]: Failed password for invalid user antoine from 126.96.36.199 port 45379 ssh2
BTW Mine is a mail server and I have 50K to 80K bans in iptables. After I reboot I get hammered for days!
--18.104.22.168 09:52, 26 December 2010 (UTC)----
Good question. I just found out it was the rsyslog update that stopped my Fail2Ban from working. The rsyslog update uses a new date/time string.Affordable logo design The new rsyslog also comes with a new conf file which contains the following:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
It will use the old fashioned data/time string that Fail2Ban works fine with. So you won't have to change your sshd.conf filter. So just restart rsyslog with the new config file and you should be fine again.
Fail2ban on CentOS/RedHat Plesk
I have implemented fail2ban on our Plesk servers for Proftpd and Qmail (so far). I had to put the full path to iptables in the actions.d i.e. /pathtoiptables/iptables -N fail2ban-<name> etc. This is the relevant section of filters.d/proftpd.conf for Plesk users and the logfile is /var/log/messages:
failregex = .*proftpd\[\S+\]: \S+ \(\S+\[<HOST>\]\) - PAM\(\S+\): Authentication failure.$
.*authentication failure.*rhost=<HOST>.*$' .*proftpd\[\S+\]: \S+ \(\S+\[<HOST>\]\) - no such user .*$
In jail.conf I set bantime = 600 and findtime = 30 and it works great. Thank you so much!
For Qmail, I started just trying to block brute force attempts to break into email accounts and here is the relevant section from qmail.conf:
failregex = .*password incorrect from \@ \[<HOST>\].*$
Also works great and the qmail logfile is /usr/local/psa/var/log/maillog.
What I am working on now, and what I would dearly like to get help with is blocking relay attempts. We get about 100K relay attempts per day and I have been trying to find a way to block these. For Plesk users here is the relevant regular expression in the qmail logfile for relay attempts:
.*relaylock: mail from <HOST>.*$
The problems I have is that the relaylock filter blocks genuine users because relaylock sometimes kicks in even for genuine users who have authenticated. This happens for users with PCs but even more frequently for users with Macs, and I am not sure why. Many of our users are assigned dynamic IPs by their ISPs. How can I stop them from getting blocked by this relaylock filter? I have tried putting the major ISPs e.g. aol.com, att.com etc. in ignoreip but some users still got blocked. My assumption is that aol.com is the same to ignoreip as *.aol.com since ignoreip just looks for matches. Is that right? If not, is it possible to use wildcards in ignore IP e.g. *.aol.com or is there an even better way? It would be ideal to be able to specify that: if an IP address matches a particular log entry then it should be automatically added to ignoreip e.g. if the log contains a line where the user successfully authenticated, then the IP they connected from is ignored by fail2ban. That would stop genuine users from being blocked without them having to contact us to let us know their IP address or ISP.[ Any help on this issue would be appreciated since its the main hurdle I need to overcome. If we still have problems with genuine users being blocked by the ed of the week I will just have to remove this filter which would be a shame since it really helps and I am sure it would help many more people with the same problem.
It would be also be nice to have a separate bantime and findtime in jail.conf for qmail, and other applications.
Any tips, pointers, and help, would be much appreciated.
Thanks for fail2ban!
Repeated attempts at DNS lookup
Hey I keep getting lines in the log file that say:
WARNING Unable to find a corresponding IP address for iblazegreen.rpi.edu
Trying to get rid of that in the logs, but it keeps popping up even though there was only one attempt from that host, almost a month ago. What option can I use to stop it from trying to DNS lookup that host?
Thanks a lot
A potential answer: See if the log fail2ban is watching can log IP addresses rather than DNS names. An example: Link to VSFTPD fix
Emails from fail2ban not containing whois info help needed.
Example of an email I received from fail2ban when testing (IP'S edited but were from outside my lan).
The IP xx.xx.xx.xx has just been banned by Fail2Ban after 4 attempts against ssh.
Here are more information about xx.xx.xx.xx:
Lines containing IP:xx.xx.xx.xx in /var/log/auth.log
Apr 6 11:55:05 user sshd[8884]: Invalid user dg from xx.xx.xx.xx Apr 6 11:55:05 user sshd[8884]: Failed none for invalid user dg from xx.xx.xx.xx port 57992 ssh2 Apr 6 11:55:09 user sshd[8884]: Failed password for invalid user dg from xx.xx.xx.xx port 57992 ssh2 Apr 6 11:55:13 user sshd[8884]: Failed password for invalid user dg from xx.xx.xx.xx port 57992 ssh2 Apr 6 13:42:53 user sshd[13938]: Invalid user kjhgfd from xx.xx.xx.xx Apr 6 13:42:53 user sshd[13938]: Failed none for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2 Apr 6 13:42:59 user sshd[13938]: Failed password for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2 Apr 6 13:43:03 user sshd[13938]: Failed password for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2
fail2ban.actions.action ERROR on startup/restart
I had multiple fail2ban.actions.action ERROR on startup/restart. It seems there was a "race" condition with iptables. I solved the problem completely on my system by editing /usr/bin/fail2ban-client and adding a time.sleep(0.1)
def __processCmd(self, cmd, showRet = True): beautifier = Beautifier() for c in cmd: time.sleep(0.1) beautifier.setInputCmd(c)
- Thanks. This patch solved the problem on my server. :) --184.108.40.206 11:55, 13 November 2010 (UTC)
- Add my thanks. I was having random fail2ban.actions.action ERRORs when doing a restart, but when I executed the same iptables commands by hand they worked fine. Adding your pacing line seems to fix the problem.
- confirm this fix, it works great for multiple lines of iptables command 188.8.131.52 18:50, 12 January 2011 (UTC)
- Thanks to 188.8.131.52 and Google. Can't make Fail2ban work after I install a new fresh Debian 6 / Squeeze on my server :( . Adding this "sleep" fix solved the problem. --18.104.22.168 08:07, 19 February 2011 (UTC)
- worked for me on debian 6 squeeze (without it, random iptables rules were missing) --126.96.36.199 20:40, 12 June 2011 (UTC)
- Thanks this also helped me fix it, but I needed to add time.sleep(0.3) on my ubuntu 8.04 server or the last rule was still failing. (5 August 2011)
- Did not work on VPS hosted Ubuntu 10.04 systems (15th August 2011). The fixed delay time is too regular and still caused the same race condition. A successful resolution was to modify only the relevant action config (in this case iptables-multiport.conf) and insert a random sleep (0.0000 to 2.9999 seconds) before the iptables action, so actionstart becomes:
actionstart = sleep `perl -e 'print rand(3);'` iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
- Right, but that's extremely inefficient. We have Fail2ban, a Python script, calling sh through exec() (or whatever it's name is in Python) which calls Perl, another interpreted language program, to run a script to actually do the random number generation. The solution would be, of course, to actually fix Fail2ban: Comment in Debian bugtracker. --220.127.116.11 16:37, 12 September 2011 (CEST)
fail2ban ban distribution to multiple servers
I'm using fail2ban for blocking misconfigured mailservers on couple of servers:
File "/etc/fail2ban/filter.d/postfix-badhelo.conf": ... failregex = reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1 (.*) Helo command rejected: Host not found ...
File "/etc/fail2ban/filter.d/postfix-nohostname.conf": ... failregex = reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1 Client host rejected: cannot find your hostname ...
Currently my servers are using separate netfilter policies (and each checks it's own /var/log/maillog). I'd like fail2ban to "push" the ban and unban action to remote servers (so fail2ban-server would be aware of it and block/unblock accordingly).
What kind of action would you suggest? I have a couple of ideas but none is good enough:
- distribute ssh pubkeys between the servers and save them to /root/.ssh/authorized_keys and use ssh action that would connect to the rest of the servers, using iptables remotely... It's really a shame fail2ban-client doesn't support manually banning/unbanning IPs from console)
- distribute mail logs to multiple servers, which can be a bit awkward
Need help for sendmail+sasl+pam fail2ban config (CentOS/RHEL 5)
I'm on CentOS/RHEL 5, using sendmail 8.13.8 and cyrus-sasl 2.1.22. I'm trying to figure out how to use fail2ban to properly protect against SMTP attacks. Right now, I've implemented the suggestion from theether.net, but that relies on sendmail identifying the SMTP attack... a number of attack methods can completely bypass this and go undetected.
I would prefer to ban based on SASL authentication failures (just like for ssh, etc.). sasl is configured to use PAM, but for some reason, it doesn't log the rhost IP. (sshd, imapd, etc. will all log the rhost IP via pam, but saslauthd won't - it leaves the rhost field blank.). Sendmail doesn't log when an sasl auth failure occurs, so basically I've got a useless log from sasl and no log from sendmail. There are _some_ cotemporal entries from sendmail in the maillog, e.g. the remote host didn't issue VRFY/EXPN/etc.... but those lines can occur legitimately under many circumstances, so should not be used for banning. The primaloft mountaineering jacket spam failure line would be the best, but is useless without an rhost IP.
Does anyone know how I can get saslauthd to properly log the rhost ip via pam? Or, how I can get sendmail to log when an sasl auth failure occurs (including the remote IP)? Extensive googling has revealed nothing, unfortunately. Thanks in advance.
Fail2ban failing to ban when log timestamp is not in the same timezone
Here is a tip for configure Postfix in the same timezone as server:


text:
This type contributed o the idea of grandeur in the flourishes with which capitals are constructed. The lettering is the kind used for formal script today on wedding announcements, and it was in fact used for documents and financial records.
The need for writers even after movable type can be understood as a function of the time that it took to set type. While a book was a large production, and the amount of time justified the many copies, some writing did not need to be editioned in large quantities, and although lengthy in its text, would not justify the time needed for setting type. Legal and business uses demaned a type like xeron. And one other profession benefitted from the practice of constantly drawing letters - the typographer, or type designer.
xeron surprises to us to have elements of the modern writing without losing the classic bases. The result is elegant and familiar without finding sources similar to her. A unique style
Incredible typography ideal for publishing fields. It works very well in massive texts.
This source is suitable for all study of design. This alphabet specially has been designed and fit for magazines and newspapers, long scientific works and fiction books. Falsified system of serif, with clean contours, takes the reading clear.
xeron is a type of the future since it is such a big change. Perhaps the single most successful type change of the 20th Century was the widespread use of this font for text in advertising. The types, there is a clear sense that instead of letters looking different from each other, they look like they all belong to a same class. Design has made each letter as important as every other letter. If you think about it, this makes reading a sort of word-processing that a reader does as they scan a page smoothly.
fonts, free, tipografias, typeface, macintosh, cool, ttf, descarga, mac fonts, typefaces, free, font, dowload, tipos, true type, mac, fonts, microsoft, estilos, eps, freeware, fuentes, chinese, english, graffiti, typography, tipografías, gratis, pc, dingbats, libre, pc fonts, ilustrator, postscript, freehand.
|disclaimer privacy policy contact help sitemap copyright 2006 GMK © FreeFonts


text:
Replay AV has been replaced by Replay Radio 9
Use this control to limit the display of threads to those newer than the specified time frame.
Allows you to choose the data by which the thread list will be sorted.
Order threads in...
Note: when sorting by date, 'descending order' will show the newest results first.
Forum Rules


text:
Embrace Cozy Vibes in the "Ber" Months
3 hours ago
This will be the place to read about my 4 journeys as a gestational surrogate and my hectic life with 2 kiddos. I may even share some recipes from time to time. Check it out frequently for the latest happenings. :)
Posted by Brandy at 11/03/2006 08:35:00 PM


text:
Description:Palm, Tribute, Vacation, Travel, Palm Tree, James, Blue, Close, Near, Sky, Palm Trees, Holiday, Travel, Frond, Palm Free Image, Tribute Free Photo
No Copyright:Palm-Tribute-Vacation-Travel-Palm-Tree-James-Blue–9421.jpg is totally free to download without any copyright so you can use it privately or commercially without any attribution however a link back to this post is appreciated. The uploader to PixCove has waived all rights to this image, so is free to use anywhere under Creative Commons Deed CC0.
Download:To download Palm-Tribute-Vacation-Travel-Palm-Tree-James-Blue–9421.jpg right mouse click on the above image and choose "Save Image as…." from the menu and save it to your desktop.
Image Enhancement:Currently we recommend using Windows Photo Gallery which is under Start -> All Programs -> Then click on Windows Photo Gallery (Photo Gallery on Windows 7 – If not found, search in Google for "Windows Photo Gallery" and download it for free). Inside WPG navigate to your desktop and double click on Palm-Tribute-Vacation-Travel-Palm-Tree-James-Blue–9421.jpg then click "Auto adjust" in the menu.We also recommend using Windows Photo Gallery to crop/resize/rotate and rename your image to your personal requirements. To save just close the program.
To Compress:If you are going to use this image online, we recommend compressing it with lossless compression "no quality loss" at www.smushit.com/ysmush.it


text:
The suggestion that drones be used as tools of humanitarianism is well-intended, yet highly impractical. Though it is significantly important for the world to see what is happening inside Syria, resources and efforts can be better placed elsewhere than flying drones over that country, such as working steadfastly at having the opposing sides agree to a cease fire and to negotiate a resolution to the conflict before an all-out conflagration into civil war; it is the only tangible way forward, especially since Assad is highly unlikely to voluntarily step down.
Never mind that violating Syrian airspace is a violation of sovereignty under international law, the Syrian government's forces, backed by Russian military hardware, would not sit idly by while drones hover and buzz over Homs or Damascus, monitoring the Assad government's crackdown on the Syrian people. The Syrian regime is equipped with a hefty air defence system, consisting of Russian-made S300 surface-to-air missiles, widely seen as one of the most efficient anti-aircraft missile systems currently fielded. This effectively renders the use of larger drones to be futile as they would most likely be brought down. The Assad forces are also equipped with Russian MiG-29 fighter jets which can easily intercept any non-stealth drone in Syrian airspace.
Further, as mentioned above, the use of drones over Syria would break one of the basic tenets of international law by violating the territorial integrity of a sovereign state. Such a violation of another country's airspace by a foreign entity would require the approval of that country's government (such is the case in Iraq and Pakistan) or the United Nations Security Council (UNSC), which includes veto-wielding permanent members, Russia and China, who have considerable interests in the stability of Syria and the Assad regime in particular. This has been demonstrated through their recent veto of a UNSC resolution condemning the Syrian government's actions, for which they feared the language of the resolution would permit foreign military intervention if necessary.
Assad is Russia's chief ally in the Middle East, and Syria is home to the only Russian military base outside the former Soviet Union. Russian arms manufacturers also have lucrative arms deals with Assad that they would like to see through. These reasons would likely propel the Russians to veto any resolution authorizing the use of drones over Syria, unless perhaps if it is clearly stipulated in any UNSC resolution that the drones' sole purpose is to monitor and record the onslaught on the Syrian streets.
China's interest in Syria mostly rests in its interest in Syrian oil. In the eyes of Beijing, human rights can take a back seat to Syria's oil exports, especially since China's National Petroleum Corporation is in a joint-venture partnership with Syria's national oil company.
Additional questions arise when considering the difficulty in distinguishing between humanitarian drones flown by non-governmental human rights organizations and those flown by the Pentagon. How would the ordinary Syrian on the street be able to distinguish between a drone that has been predominantly used as a weapon of war in places such as Pakistan and Somalia and a drone used entirely for surveillance purposes and which intends no harm?
One can also argue that the use of drones for surveillance would erode basic civil liberties; however, this argument can be morally circumvented in the event of a humanitarian crisis where innocent civilians are being harmed and brutalized. Nonetheless, this argument does merit attention.
Also, who is to say that if the United States (or NGOs funded by the United States) uses drones over countries like Syria, that countries such as China would not reciprocate and use drones over the airspace of US allies? What would the U.S. reaction be? Is the United States ready for that type of reciprocity?
The idea of drones as surveillance tools that would capture images of the horrific scenes on the streets of Syria is one that merits further thought and discussion. However, as it stands, the above noted obstacles would prevent the use of drones over Syria.
Smaller, radio-controlled drones, operated by local handlers would be more efficient as they do not attract as much attention as their larger counterparts; however, as the authors of the New York Times Op-Ed note, local handlers could be put at risk in this scenario. Another option is to use stealth-drones, such as the American RQ-170 Sentinel. This drone could be useful in humanitarian-centric scenarios due to its invisibility and ability to loiter above a specific area at high-altitude. However, its reliability is put into question given that one of these drones recently went down in Iran in December 2011.
With the above in mind, it is quite evident that there are serious obstacles preventing humanitarian drones from taking to the skies to spy on "evil". It is also clear that there have been too many fatalities over the past year in Syria. History has taught us that it is usually political will, not insufficient information, which has been the barrier to intervening in defence of human rights. Drones would only be able to record the humanitarian crisis for the world to see, while the power to put an end to the violence rests with Assad, the Syrian opposition, and ultimately, the people of Syria.
Navid Hassibi is a PhD student in political science (University of Antwerp) and a Canadian civil servant. The views expressed here are solely his own.


text:
Converts audio and video files to many formats easily.
Use this control to limit the display of threads to those newer than the specified time frame.
Allows you to choose the data by which the thread list will be sorted.
Order threads in...
Note: when sorting by date, 'descending order' will show the newest results first.
Forum Rules


text:
When The Incredible Hulk burst onto TV screens in 1978, audiences were captivated. Lou's performance as mild-mannered Dr. Banner's alter ego captured the Marvel Comics superhero in all his angry glory.
We are delighted to present a stunning collection of limited edition prints featuring the iconic character – perfect for any true Marvel fan.
Originally published: September 1969
Writer: Stan Lee & Roy Thomas
Cover Artist: Herb Trimpe
Image size:
Framed size:
Edition size: 9
Show artwork dimensions in:
Use this calculator to see which finance option suits your purchase.
We only Interest Free Credit agreements in GBP (£) currently. Select this currency from the menu above to explore details of the options we offer.
Delivery straight to your home at no extra cost.
With collectors all over the world, we offer worldwide delivery.
Pop in to your local gallery to collect your order.
Thank you for signing up to our newsletter.
© Copyright Washington Green Retail Limited trading as Castle Fine Art. First published 2012, last updated 2023. Washington Green Retail Limited acts as a credit broker and offers credit products from Secure Trust Bank PLC trading as V12 Retail Finance.
Washington Green Retail Limited is authorised and regulated by the Financial Conduct Authority. Our registration number is 726395. Credit provided subject to age and status. Terms & Conditions Privacy Cookies V12 Finance


text: Since its inception in 1999, Baratza has offered high-quality, state-of-the-art grinders for those who care about making the best coffee. Baratza quickly became known as the company to turn to for innovation, quality, and consistency. The company is led by Kyle Anderson and Kyra Kennedy in Seattle, Washington, the US epicenter of espresso. The brand's name comes from an Arabic and Swahili term for a place where locals gather to drink coffee. Their mission is to innovate and improve with every product. Baratza grinders have the flexibility to dial in the right grind for each of your specialty roasts. What a difference a fresh grind can make in the pursuit of the perfect cup!


text:
Type Qualifier (GLSL): Difference between revisions
m (Reverted edits by Alfonse (talk) to last revision by CookieMonster)
|Line 83:
|Line 83:
* Geometry shader inputs and outputs (to match with outputs from the TES/VS)
* Geometry shader inputs and outputs (to match with outputs from the TES/VS)
* Fragment shader inputs
* Fragment shader inputs
Interpolation qualifiers control how interpolation of values happens across a triangle or other primitive. There are three basic interpolation qualifiers.
Interpolation qualifiers control how interpolation of values happens across a triangle or other primitive. There are three basic interpolation qualifiers.
|Line 93:
|Line 95:
: The value will be interpolated in a perspective-correct fashion. This is the default if no qualifier is present.
: The value will be interpolated in a perspective-correct fashion. This is the default if no qualifier is present.
The {{code|centroid}} and {{code|sample}} (
The {{code|centroid}} and {{code|sample}} (requires GL 4.0/{{extref|gpu_shader5}}) qualifiers are not strictly interpolation qualifiers. They be , they control aspects of interpolation. They only have an effect when is being used.
The {{code|centroid}} qualifier is used to prevent this; the interpolation point must fall within both the pixel's area and the primitive's area.
The {{code|centroid}} qualifier is used to prevent this; the interpolation point must fall within both the pixel's area and the primitive's area.
This is useful for parameters or computations that would have undefined values if they fell outside of the primitive's area. A square root is only defined for positive numbers, so if you are taking the square root of an interpolated value, you may need to use {{code|centroid}} interpolation.
This is useful for parameters or computations that would have undefined values if they fell outside of the primitive's area. A square root is only defined for positive numbers, so if you are taking the square root of an interpolated value, you may need to use {{code|centroid}} interpolation.
Revision as of 18:27, 15 July 2013
A type qualifier is used in the OpenGL Shading Language (GLSL) to modify the storage or behavior of global and locally defined variables. These qualifiers change particular aspects of the variable, such as where they get their data from and so forth. They come in a number of different categories.
Storage qualifiers
Storage qualifiers define where a variable's storage comes from.
If no storage qualifier is specified when declaring a global variable, then the variable is just a normal global variable. All global variables have a scope of the particular shader stage. So if you have two vertex shader objects that define int someValue;, when you link them into a program, they will both be referring to the same value.
If no storage qualifier is specified for a local variable, then the variable is a local variable that can be modified.
Constant qualifier
Global or local variables can be declared with the const qualifier. This means that the variable's value cannot be changed after it is initialized. This also means that the variable declaration must initialize the variable.
The initializer for a const variable must be a constant expression. Constant expressions are expressions that only contain:
- Literal values (3, 2.4, etc)
- A previously defined global or local variable that is qualified as const.
- A type constructor that is given only constant expressions as arguments.
- A operator whose arguments are constant expressions (ie: 5+4).
- A built-in function call whose arguments are all constant expressions. Notably exempt from this are the texture functions, because uniform variables are not compile-time constant. All of the texture functions take a sampler uniform as a parameter, and therefore they are not compile-time constants.
Shader stage inputs and outputs
Global variables declared with the in qualifier are shader stage input variables. These variables are given values by the previous stage (possibly via interpolation of values output from multiple shader executions). These variables are not constant (in the sense of const), but they cannot be changed by user code.
Global variables declared with the out qualifier are shader stage output variables. These values are passed to the next stage of the pipeline (possibly via interpolation of values output from multiple shader executions). The shader must set all output variables at some point in its execution (unless the fragment shader executes the discard statement), except for those outputs that are not read by the next shader.
Neither qualifier can be used on local variables.
These variables can be of any non-sampler basic type. They cannot be of struct types, but they can be arrays. There are usually very strict limits on the number of inputs and outputs available to a shader stage.
These variables are how the shader communicates to the earlier and later parts of the pipeline. Each variable name and type will match with an equivalent variable name and type on the next or previous shader stage. So, for each vertex shader output, the fragment shader will have a matching input with the same name and type. Using the same name with a different type is a linker error.
Also, it is allowed to have output variables that are not read by the next stage. It is not allowed to have input variables not written by the previous stage.
There are some special cases with input and output variables for different stages.
Vertex shader inputs
Inputs for vertex shaders are attributes. They are passed from vertex arrays to the vertex shader.
Array inputs can be defined. Each array value takes up one attribute index, sequentially from the first. So this input: in float values[5] will take up 5 attributes.
Matrix inputs take up one attribute index for each row.
Tessellation control shader outputs
Tessellation Control Shader outputs can be either per-vertex or per-patch. Per-vertex outputs are aggregated into arrays, where the length of the arrays is the number of output vertices in the patch. Per-patch outputs (declared with the patch keyword) are not arrays (you can declare arrays of them, but they won't be indexed per-vertex).
TCS's can read from any per-vertex or per-patch output, so each TCS invocation can read data written by other TCS invocations (assuming you take steps to ensure that the other invocations have written to them). But each TCS invocation can only write to per-vertex outputs that are for their particular vertex. This means that the only expression in the subscript that can be when writing to a per-vertex output is gl_InvocationID.
Tessellation evaluation shader inputs
Tessellation Evaluation Shader inputs are like TCS outputs: either per-vertex or per-patch (declared with the patch keyword. Any TES invocation can read any per-vertex or per-patch input.
Geometry shader inputs
Geometry Shader inputs are aggregated into arrays, one per vertex. The length of the array depends on the input primitive type used by the GS. Each array index represents a single vertex in the input primitive.
Fragment shader outputs
Fragment shader outputs cannot be matrices or booleans; they must be floating-point or integer vectors or scalars.
Each fragment shader output corresponds to a draw buffer, set with the glDrawBuffers command. The association between output values and draw buffers is made with glBindFragDataLocation or with explicit binding via layout(location = #) in the shader before linking the program. Any unassigned outputs will be assigned values by the linker arbitrarily.
Interpolation qualifiers
Certain inputs and outputs can have interpolation qualifiers. These are for any values which could be interpolated as a result of rasterization. These include:
- Vertex shader outputs
- Tessellation control shader inputs (to match with outputs from the VS)
- Tessellation evaluation shader outputs
- Geometry shader inputs and outputs (to match with outputs from the TES/VS)
- Fragment shader inputs
Interpolation qualifiers affect linking. If an output provides a qualifier that the corresponding input does not, then it is a mismatch.
Interpolation qualifiers control how interpolation of values happens across a triangle or other primitive. There are three basic interpolation qualifiers.
- flat
- The value will not be interpolated. The value given to the fragment shader is the value from the Provoking Vertex for that primitive.
- noperspective
- The value will be linearly interpolated in window-space. This is usually not what you want, but it can have its uses.
- smooth
- The value will be interpolated in a perspective-correct fashion. This is the default if no qualifier is present.
The centroid and sample (requires GL 4.0/ARB_gpu_shader5) qualifiers are not strictly interpolation qualifiers. They can only be used on fragment shader inputs, so they don't affect interface matching. But they are used to control aspects of interpolation. They only have an effect when multisampling is being used.
During multisampling, if centroid is not present, then the value is interpolated to the pixel's center, anywhere in the pixel, or to one of the pixel's samples. This sample may lie outside of the actual primitive being rendered, since a primitive can cover only part of a pixel's area. The centroid qualifier is used to prevent this; the interpolation point must fall within both the pixel's area and the primitive's area.
This is useful for parameters or computations that would have undefined values if they fell outside of the primitive's area. A square root is only defined for positive numbers, so if you are taking the square root of an interpolated value, you may need to use centroid interpolation.
The sample qualifier forces OpenGL to interpolate this qualifier to the location of the particular sample. This is only really useful with per-sample shading.
Global variables and Interface Blocks can be declared with the uniform qualifier. This means that the value does not change between multiple executions of a shader during the rendering of a primitive (ie: during a glDraw* call). These values are set by the user from the OpenGL API.
They are constant, but not compile-time constant (so not const).
In OpenGL 4.3 (or with the ARB_shader_storage_buffer_object extension), interface blocks can be qualified with the buffer qualifier. This means that the storage for the block comes from a buffer object, similarly to Uniform Buffer Objects and uniform blocks. Unlike UBOs, storage blocks can be written to. They can also have an unbounded size.
Interface blocks
Inputs, outputs, uniforms, and buffer variables for various stages can grouped into interface blocks.
Variables declared with the shared qualifier are shared among several shader invocations. Such variables can only be used in Compute Shaders. Shared variables are shared among all invocations in a work group.
Layout qualifiers
Uniforms, buffer, inputs, and outputs can also have layout qualifiers. Different stages have their own layout qualifiers, and the different types can have their own as well.
All layout qualifiers are defined with a common syntax:
layout(qualifier1, qualifier2 = value, ...) variable definition
The qualifier values are specific to a particular use of layouts. The qualifiers are order-independent, unless otherwise noted. Some qualifiers can have values assigned to them, as with qualifier2 in the above example. These values must be literals.
Some layout qualifiers can apply to all inputs or outputs. In which case, the variable definition can just be in or out.
Vertex shader attribute index
Vertex shader inputs can specify the attribute index that the particular input uses. This is done with this syntax:
layout(location = attribute index) in vec3 position;
With this syntax, you can forgo the use of glBindAttribLocation entirely. If you try to combine the two and they conflict, the layout qualifier always wins.
Attributes that take up multiple attribute slots will be given a sequential block of that number of attributes in order starting with the given attribute. For example:
layout(location = 2) in vec3 values[4];
This will allocate the attribute indices 2, 3, 4, and 5.
Tessellation control output vertex count
|Core in version
|Core since version
|Core ARB extension
Tessellation Control Shaders (TCS) output patches with a particular vertex count. This is defined by a layout qualifier:
layout(vertices = vertex_count) out;
The TCS will be invoked once for each vertex output.
Tessellation evaluation options
The Tessellation Evaluation Shader (requires GL 4.0 or ARB_tessellation_shader) has a large number of special layout qualifiers that control its behavior.
Geometry shader primitives
Geometry Shaders take a particular primitive type as input and return a particular primitive type as outputs. Also, geometry shaders have a defined maximum number of vertices that they can output. These specifications cannot be used on a variable definition; it can only be used on the qualifiers in and out as a whole.
layout(primitive type) in; layout(primitive type, max_vertices = integer value) out;
For inputs, the primitive type can be any of the following:
- points
- lines
- lines_adjacency
- triangles
- triangles_adjacency
For outputs, the primitive type can be any of the following:
- points
- line_strip
- triangle_strip
The value of max_vertices defines the maximum number of vertices the geometry shader can every output in a single invocation.
Fragment shader coordinate origin
The gl_FragCoord predefined variable represents the location of the fragment in window-space. There are two layout qualifiers that can affect this. These are specified by redeclaring the predefined variable.
The qualifier origin_upper_left specifies that gl_FragCoord will have the origin (0, 0) in the upper-left of the screen. The standard OpenGL convention is to have it in the lower-left. This does not change the Z or W of the gl_FragCoord value.
The qualifier pixel_center_integer specifies that the X and Y of gl_FragCoord will be shifted by a half-pixel, so that the center of each pixel is an integer value. The standard OpenGL convention puts the integer values at the corner of the pixel.
These are used as follows:
layout(origin_upper_left) in vec4 gl_FragCoord;
Early fragment tests
|Core in version
|Core since version
|Core ARB extension
By the OpenGL specification, the depth and stencil tests are performed after the fragment shader's execution (implementations can and will do it before the fragment shader, but only if it won't affect the apparent output). However, with a fragment shader's ability to write to arbitrary images and buffers in OpenGL 4.2+, it is useful to be able to enforce early tests. This can be done in GL 4.2 (or with ARB_shader_image_load_store):
layout(early_fragment_tests) in;
Any writes to gl_FragDepth in a shader that defines this will be ignored.
Fragment shader buffer output
Fragment shader outputs can specify the buffer index that a particular output writes to. This uses the same syntax as vertex shader attributes:
layout(location = output index) out vec4 outColor;
As with vertex shader inputs, this allows the user to forgo the use of glBindFragDataLocation. Similarly, the values in the shader override the values provided by this function.
For dual source blending, the syntax includes a second qualifier:
layout(location = output index, index = dual output index) out vec4 outColor;
Again, this allows one to forgo the use of glBindFragDataLocationIndexed.
Program separation linkage
|Core in version
|Core since version
|Core ARB extension
Normally, when linking shaders into a program, the output variables from one stage are matched with the input variables from another stage. However, when linking programs together dynamically in a program pipeline object, an alternative method of linking is allowed. The name linking is allowed, but so is linking by location.
Input and output variables for communication between shader stages (ie: not vertex shader input or fragment shader output) can have a location associated with them. This is used instead of a name when linking between two shader stages (whether statically or dynamically via a program pipeline). This is provided by the layout location qualifier.
For example, given a vertex shader that provides these outputs:
layout(location = 0) out vec4 color;
layout(location = 1) out vec2 texCoord;
layout(location = 2) out vec3 normal;
Normally, the fragment shader would have to use exactly those names. This is not required when using separate programs. If an output has a location specified, the next stage can provide that location with a different name. So a matching fragment shader could look like this:
layout(location = 0) in vec4 diffuseAlbedo;
layout(location = 1) in vec2 texCoord
layout(location = 2) in vec3 cameraSpaceNormal;
Interface block memory layout
Variables declared in interface blocks that get their storage from buffers (uniform blocks or shader storage blocks) have a number of layout qualifiers to define the packing and ordering of the variables defined in the block.
Binding points
|Core in version
|Core since version
|Core ARB extension
Uniform and shader storage blocks, and all opaque types have a value which represents the location in the GL context where an object that is to be read/modified is stored. These binding points, like input attribute indices and output data locations can be bound in the shader when using GLSL 4.20 or the GL_ARB_shading_language_420pack extension. This is done by using the "binding" syntax:
layout(binding = 3) uniform sampler2D mainTexture;
layout(binding = 1, std140) uniform MainBlock
vec3 data;
The first line is the equivalent of getting the uniform location for "mainTexture" and setting its uniform value to "3". Similarly, the second line is the equivalent of getting the "MainBlock" block location and setting its block index to "1". This only sets the initial value; source code can modify it later.
Image formats
|Core in version
|Core since version
|Core ARB extension
Image uniform variables have qualifiers that define the format that all reading operations will convert the data into and all writing operations will convert the data from. They are grouped into 3 categories: floating-point, signed-integer, and unsigned-integer formats. These are the possible values:
- Floating-point layout image formats:
- rgba32f
- rgba16f
- rg32f
- rg16f
- r11f_g11f_b10f
- r32f
- r16f
- rgba16
- rgb10_a2
- rgba8
- rg16
- rg8
- r16
- r8
- rgba16_snorm
- rgba8_snorm
- rg16_snorm
- rg8_snorm
- r16_snorm
- r8_snorm
- Signed integer layout image formats:
- rgba32i
- rgba16i
- rgba8i
- rg32i
- rg16i
- rg8i
- r32i
- r16i
- r8i
- Unsigned integer layout image formats:
- rgba32ui
- rgba16ui
- rgb10_a2ui
- rgba8ui
- rg32ui
- rg16ui
- rg8ui
- r32ui
- r16ui
- r8ui
Atomic counter storage
|Core in version
|Core since version
|Core ARB extension
Atomic Counter variables have special layout settings that define where within a buffer object a particular variable comes from. These are required; there are no alternate methods to set these fields.
Atomic counter layout parameters
Explicit uniform location
|Core in version
|Core since version
|Core ARB extension
Precision qualifiers
There are three precision qualifiers: highp, mediump, and lowp. They have no semantic meaning or functional effect. They can apply to any floating-point type (vector or matrix), or any integer type.
Precision statements
All variables of a certain type can be declared to have a precision by using the precision statement. It's syntax is as follows:
precision precision-qualifier type;
In this case, type can only be float or int. This will affect all collections of that basic type. So float will affect all floating-point scalars, vectors, and matrices. The int type will affect all signed and unsigned integer scalars and vectors.
Memory qualifiers
|Core in version
|Core since version
|Core ARB extension
image variables, buffer variables, and shader storage blocks (and their contents) can have a number of memory qualifiers applied to them. These affect how they can be used and how values read from/written to them will be seen in other shader invocations. Multiple qualifiers can be used on the same variable.
- coherent
- Normally, the compiler is free to assume that this shader invocation is the only invocation that modifies values read through this variable. It also can freely assume that other shader invocations may not see values written through this variable.
- Using this qualifier is required to allow dependent shader invocations to communicate with one another, as it enforces the coherency of memory accesses. Using this requires the appropriate memory barriers to be executed, so that visibility can be achieved.
- When communicating between shader invocations for different rendering commands, glMemoryBarrier should be used instead of this qualifier.
- volatile
- The compiler normally is free to assume that values accessed through variables will only change after memory barriers or other synchronization. With this qualifier, the compiler assumes that the contents of the storage represented by the variable could be changed at any time.
- restrict
- Normally, the compiler must assume that you could access the same image/buffer object through separate variables in the same shader. Therefore, if you write to one variable, and read from a second, the compiler assumes that it is possible that you could be reading the value you just wrote. With this qualifier, you are telling the compiler that this particular variable is the only variable that can modify the memory visible through that variable within this shader invocation (other shader stages don't count here). This allows the compiler to optimize reads/writes better.
- You should use this wherever possible.
- readonly
- Normally, the compiler allows you to read and write from variables as you wish. If you use this, the variable can only be used for reading operations (atomic operations are forbidden as they also count as writes).
- writeonly
- Normally, the compiler allows you to read and write from variables as you wish. If you use this, the variable can only be used for writing operations (atomic operations are forbidden as they also count as reads).
These qualifiers can be used on parameters of image types. If you pass an image to a function, the function parameter's qualifier list much match that of the image declaration. The parameter could have more qualifiers, but it cannot have fewer.
Invariance qualifiers
There is a way to qualify certain output variables as being invariant. This allows different programs to compute the exact same answer, assuming certain conditions are met.
The invariant qualifier can be applied to an existing declaration, as in this case:
invariant gl_Position; //Not redeclared; just uses invariant.
in vec3 Color;
invariant Color; //Again makes existing declaration invariant.
Or you can use it at the declaration site.
invariant in vec3 Color;
Qualifier order
Unless you are in GLSL 4.20 or using ARB_shading_language_420pack, qualifiers always come in a particular order. For non-parameter values, the order is always this:
invariant-qualifier interpolation-qualifier layout-qualifier other-storage-qualifier precision-qualifier
The centroid qualifier, if present, must immediately precede in or out. For the purpose of ordering, it is considered part of the in or out storage qualifier, not part of the interpolation qualifier.
GLSL 4.20/ARB_shading_language_420pack removes the ordering restriction in most cases. centroid still has to immediate precede in or out. It also allows multiple layout qualifiers, but you can still only use one qualifier from the other groups. The groups of qualifiers match the main headings above: storage, layout, precision, etc.
Built-in redeclaration
The GLSL defines a number of predefined variables at the various shader stages. These pre-defined variables are defined with a particular set of qualifiers, as stated in the above article. If you wish to use pre-defined variables with a different qualifier, you can re-declare the variable, but the re-declaration must use the same type. Some variables cannot be redeclared with a new qualifier. For example: gl_Position in the vertex shader cannot use an interpolation qualifier at all.
Removed qualifiers
The following qualifiers are deprecated as of GLSL 1.30 (OpenGL 3.0) and removed from GLSL 1.40 and above.
The attribute qualifier is effectively equivalent to an input qualifier in vertex shaders. It cannot be used in any other shader stage. It cannot be used in interface blocks.
The varying qualifier is equivalent to the input of a fragment shader or the output of a vertex shader. It cannot be used in any other shader stages. It cannot be used in interface blocks.


text:
Garland in Tie Dye Wood Rose Pom Pom
As part of the Tie Dye Collection, this Lorena Canals Tie Dye Wood Rose Pom Pom Garland features dip-dyed cotton tassels in wood rose.
Product Features
- Construction: Hand Made
- Each Lorena Canals accessory is handmade in their private facility in India using traditional methods
- Due to its handmade nature, each accessory is unique and one of a kind
- Material: 97% Cotton 3% Other Fibres
- Using exclusively natural dyes and done with cotton makes it safe for babies, kids and pets
- Natural dyes also keeps the material soft and flexible
- Cotton is a sustainable and natural fibre that is well suited for those with allergy sensitivities
- Specifications
- Designed in Barcelona
- All Lorena Canals rugs and accessories comply with quality and safety regulations for children including ISO 9001, ISO 14001, ISO 18001
- This accessory is environmentally friendly and free from toxic dyes or contaminants
- Size: 5' 7" Length
- Colour: Wood rose
About the Brand
It started with one simple question that perhaps a lot of us parents have: 'Why can't we wash our kids' rugs at home? That was enough to set Lorena Canals on a journey to come up with a solution. Lorena Canals started her company to fill the void of modern day living. Her rug designs are stylish and practical. Made from 100% cotton, her rug collection is machine-washable and is the new standard in the world of rug design.
28 years later, Lorena Canals now operates out of offices in Barcelona and New York. Their rugs are manufactured in two of their very own facilities in India where they have full control of the quality and best practices. Their designers work side by side with 120 artisans who take care of every detail in an elaborate handmade process. The brand prides itself on quality in every aspect of production, from the finest raw materials to socially responsible labour practices. Nowadays, Lorena Canals products are found worldwide in more than 2,500 points of sale, making its products available in more than 40 countires. Their offerings have expanded to include Home Decoration serving both children and grown-ups! A nursery funded by the SAKÛLA PROJECT now has 120 boys and girls attending and continues to grow year after year.
About Cotton
Cotton is an eco-friendly and renewable fiber that can be easily cleaned and maintained. Cotton offers an unparalleled feeling of softness, comfort and warmth. It is also machine washable!
Care Instructions
- Do not wash.
- Avoid continuous exposure to the sun.
- If you find a long thread, cut it with scissors. Never pull it.
Need help?
When you buy a Lorena Canals Tie Dye Wood Rose Pom Pom Garland from Rugsbyroo.com, you will have access to our support team who will help you through any logistical issues such as tracking and delivery to your home. You will also have access to our free design consultation team who can help you plan the layout of your room to best suit your new Lorena Canals Tie Dye Wood Rose Pom Pom Garland. Read customer reviews and common Questions and Answers for Lorena Canals Tie Dye Wood Rose Pom Pom Garland on this page. We're here to help, so take us up on the offer!


text:
Need help?
Enter your e-mail and password:
New customer? Create your account
Lost password? Recover password
Enter your email:
Remembered your password? Back to login
Your cart is feeling a little lonely.
Size: NB
Condition: Like New
Additional Information: Cable knit mittens
Fit: True to size
Colour : Blue
Material: Care Instructions Removed


text:
Join or Sign In
Sign in to customize your TV listings
By joining TV Guide, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy.
Joseph Gordon-Levitt is returning to television as the creator, director and star of HitRECord on TV!, a variety show to air on...
Joseph Gordon-Levitt is returning to television as the creator, director and star of HitRECord on TV!, a variety show to air on Participant Media's soon-to-be-launched cable network, Pivot.
HitRECord on TV!, which is based on Gordon-Levitt's open collaborative production company hitRECord, will feature a variety of programming including shorts, performances, comedy and more that were created from the site's online community contributions. Each episode will focus on a different theme.
Boy Meets World's Danielle Fishel and more child stars all grown up!
The announcement was made as part of Participant's upfront presentation that revealed the name of the network and the slate of programming that include a live talk show, a docu-series starring Meghan McCain, a period drama from the writer of Moulin Rouge and a reality series based in New Jersey.
Gordon-Levitt, who recently appeared in the Oscar-winning film Lincoln, hasn't had a starring role on television since 3rd Rock from the Sun which ended its six-season run in 2001.
Pivot, which launches August 1,will be available through traditional Pay TV packages and allow subscribers to stream the network, Live and On Demand, to any device, anywhere.


text:
MURRYSVILLE, Pa. — Flailing away with two kitchen knives, a 16-year-old boy with a "blank expression" stabbed and slashed 21 students and a security guard in the crowded halls of his suburban Pittsburgh high school Wednesday before an assistant principal tackled him.
At least five students were critically wounded, including a boy whose liver was pierced by a knife thrust that narrowly missed his heart and aorta, doctors said. Others also suffered deep abdominal puncture wounds.
The rampage — which came after decades in which U.S. schools geared much of their emergency planning toward mass shootings, not stabbings — set off a screaming stampede, left blood on the floor and walls, and brought teachers rushing to help the victims.
Police shed little light on the motive.
The suspect, Alex Hribal, was taken into custody and treated for a minor hand wound, then was brought into court in shackles and a hospital gown and charged with four counts of attempted homicide and 21 counts of aggravated assault. He was jailed without bail, and authorities said he would be prosecuted as an adult.
At the brief hearing, District Attorney John Peck said that after he was seized, Hribal made comments suggesting he wanted to die.
Defense attorney Patrick Thomassey described him as a good student who got along with others, and asked for a psychiatric examination.
The attack unfolded in the morning just minutes before the start of classes at 1,200-student Franklin Regional High School, in an upper-middle-class area 15 miles east of Pittsburgh.
It was over in about five minutes, during which the boy ran wildly down about 200 feet of hallway, slashing away with knives 8 to 10 inches long, police said.
Nate Moore, 15, said he saw the boy tackle and knife a freshman. He said he going to try to break it up when the boy got up and slashed Moore's face, opening a wound that required 11 stitches.
"It was really fast. It felt like he hit me with a wet rag because I felt the blood splash on my face. It spurted up on my forehead," Moore said.
The attacker "had the same expression on his face that he has every day, which was the freakiest part," he said. "He wasn't saying anything. He didn't have any anger on his face. It was just a blank expression."
Assistant Principal Sam King finally tackled the boy and disarmed him, and a Murrysville police officer who is regularly assigned to the school handcuffed him, police said.
King's son told The Associated Press that his father was treated at a hospital, though authorities said he was not knifed.
"He says he's OK. He's a tough cookie and sometimes hides things, but I believe he's OK," Zack King said. He added: "I'm proud of him."
In addition to the 22 stabbed or slashed, two people suffered other injuries, authorities said. The security guard, who was wounded after intervening early in the melee, was not seriously hurt.
"There are a number of heroes in this day. Many of them are students," Gov. Tom Corbett said during a visit to the stricken town. "Students who stayed with their friends and didn't leave their friends."
As for what set off the attack, Murrysville Police Chief Thomas Seefeld said investigators were looking into reports of a threatening phone call between the suspect and another student the night before. Seefeld didn't specify whether the suspect received or made the call.
The FBI went to the boy's house, where authorities planned to confiscate and search his computer.
"They are a very, very nice family. A great family. We never saw anything out of the ordinary," said John Kukalis, a next-door neighbor for about 13 years.
His wife, Sonya Kukalis, said: "It should be an eye-opener for everybody. Everyone always thinks it's the other neighborhood, the other town. We need to be kinder and show compassion to more people. Something must have been going on for him to do this."
While several bloody stabbing rampages at schools in China have made headlines in the past few years, schools in the U.S. have concentrated their emergency preparations on mass shootings.
Nevertheless, there have been at least two major stabbing attacks at U.S. schools over the past year, one at a community college in Texas last April that wounded at least 14 people, and another, also in Texas, that killed a 17-year-old student and injured three others at a high school in September.
On Wednesday, Mia Meixner, 16, said the rampage touched off a "stampede of kids" yelling, "Run! Get out of here! Someone has a knife!"
The boy had a "blank look," she said. "He was just kind of looking like he always does, not smiling, not scowling or frowning."
Meixner and Moore called the attacker a shy boy who largely kept to himself, but they said he was not an outcast and they had no reason to think he might be violent.
"He was never mean to anyone, and I never saw people be mean to him," Meixner said. "I never saw him with a particular group of friends."
Michael Float, 18, said he had just gotten to school when he saw "blood all over the floor" and smeared on the wall near the main entrance. Then he saw a wounded student.
"He had his shirt pulled up and he was screaming, 'Help! Help!'" Float said. "He had a stab wound right at the top right of his stomach, blood pouring down."
Float said he saw a teacher applying pressure to another student's wound.
About five minutes elapsed between the time the campus police officer summoned help over the radio at 7:13 a.m. and the boy was disarmed, the police chief said.
Someone, possibly a student, pulled a fire alarm during the attack, Seefeld said. Although that created chaos, the police chief said, it emptied out the school more quickly, and "that was a good thing that that was done."
Also, a girl with "an amazing amount of composure" applied pressure to a schoolmate's wounds and probably kept the victim from bleeding to death, said Dr. Mark Rubino at Forbes Regional Medical Center.
Public safety and school officials said an emergency plan worked as well as could be expected. The district conducted an emergency exercise three months ago and a full-scale drill about a year ago.
"We haven't lost a life, and I think that's what we have to keep in mind," said county public safety spokesman Dan Stevens.
Success. Please wait for the page to reload. If the page does not reload within 5 seconds, please refresh the page.
Enter your email and password to access comments.
Invalid username/password.
Please check your email to confirm and complete your registration.
Use the form below to reset your password. When you've submitted your account email, we will send an email with a reset code.
Send questions/comments to the editors.


text:
Paula Deen announced Thursday that she has cut business ties with the agent who helped make her a Food Network star and launch a media and merchandising empire that has largely crumbled in the wake of her admission that she used racial slurs in the past.
Deen had worked with New York agent Barry Weiner for more than a decade. She has said he was instrumental in getting her show "Paula's Home Cooking" on the Food Network in 2002. She gave no reason for her parting with Weiner in a prepared statement.
"Paula Deen has separated from her agent," Deen's spokeswoman, Elana Weiss, said in an email Thursday. "She and her family thank him for the tireless effort and dedication over the many years."
Deen's breakup with one of her key partners comes after a turbulent two weeks that have left the celebrity chef's network of business deals in shambles. It all started within days of the public disclosure of a legal deposition in which Deen admitted under oath to having used the N-word.
The Food Network passed on renewing Deen's contract and yanked her shows off the air. Smithfield Foods, the pork producer that paid Deen as a celebrity endorser, dropped her soon after. Retailers including Wal-Mart and Target said they'll no longer sell Deen's products and publisher Ballantine scuttled plans for her upcoming cookbook even though it was the No. 1 seller on Amazon. Even the diabetes drug company that made the much-criticized deal to hire Deen as a paid spokeswoman dumped her.
Weiner worked to turn Deen into a comfort-food queen since she was little more than a Savannah restaurant owner and self-publisher of cookbooks who earned raves for her fried chicken.
In her book "Paula Deen: It Ain't All About the Cookin,'" Deen recalled meeting Weiner through TV producer Gordon Elliott, who was convinced they could turn her into a star.
"Barry and Gordon felt like there was a show somewhere inside this Paula character that could be very successful," Deen wrote. "They probably courted Food Network for two years trying to push me at them."
Deen also noted in her book: "Barry is affectionately known in my family as Barry Cuda. Perfect name for an agent."
Deen's business deals began falling apart after she was questioned under oath in May as part of a civil lawsuit filed last year by Lisa Jackson, a former manager of Uncle Bubba's Seafood and Oyster House, which Deen co-owns with her brother, Bubba Hiers. Jackson says she was sexually harassed and worked in an environment rife with racial slurs and innuendo.
Ultimately it was Deen's own words that proved damaging. Asked in her deposition if she had ever used the N-word, she replied: "Yes, of course." That she also insisted "it's been a very long time" seemed to matter little to the companies paying to use her name and image with their products. Neither were they swayed by Deen's apologies in online videos and in person with the "Today" show's Matt Lauer.
Forbes magazine last year ranked Deen as the fourth-highest-earning celebrity chef last year, figuring she had hauled in $17 million. Her company Paula Deen Enterprises generates total annual revenue of nearly $100 million, according to Burt Flickinger III, president of retail consultancy Strategic Resource Group.
Deen cast no blame in her statement announcing her split with Weiner. It ended by saying, "Paula wishes him well in all future endeavors."


text:
Sign In Don't Hesitate
Forget Password
No. of Jobs : 7278
For Job Seekers Only! Silver Membership is FREE for all registered users
If you want to Apply ( send your CV ) for this job , Please register
Copy rights EgyptCV 2007 - 2023
. All rights reserved
Website Developed By
Ashraf Kaabi (C)
[ Page generated in 0.032
Sec(s) ]