text:
Blog/Events
Long-term Outcomes of Moderate to Severe Brain Injuries Studied
A recent study of outcomes among military veterans five or more years after moderate-to-severe traumatic brain injury has produced mixed findings. The study, conducted by researchers from the Defense and Veterans Brain Injury Center and three civilian hospitals, analyzed information from interviews with 119 one-time recipients of acute inpatient TBI rehabilitation. The interviews took place five to 16 years after injury, and were designed to assess occupational, educational, and social reintegration, independence in functioning, and cognitive, neurologic, and psychiatric symptoms.
A majority of those surveyed showed successful functioning in at least one phase of life: more than half were working or studying, one third were married, and one third had no persistent disability. However, varying degrees of deficits were also apparent: community integration was lacking on average, one quarter of the respondents had moderate or severe disability, and most individuals evinced at least one cognitive, neurological, or psychiatric symptom.
The study serves to highlight that although the vast majority of individuals who sustain mild traumatic brain injuries (concussions) will fully recover in days and weeks following concussion, those who sustain moderate to severe brain injuries have a more uncertain outcome. Moderate to severe TBI outcome is generally based on the location and severity of the injury. For example, in this study, greater durations of loss of consciousness and post-traumatic amnesia were moderately to strongly associated with occupational functioning and strongly associated with disability ratings. In evaluating any TBI claim, it is important to determine not only the severity of the TBI, but also whether there is evidence indicating a poor outcome.
To read the abstract of this article, click here.
Post-Traumatic Headaches: Concussion Claims 2.0
Concussion Claims 2.0
Chronic Traumatic Encephalopathy: Basic Issues to Consider in Traumatic Brain Injury Litigation
Brandon Woodard Talks Legal Issues Surrounding Traumatic Brain Injuries.
© 2020 Porter Rennie Woodard Kendall, LLP. All rights reserved. Disclaimer


So how do you sort through all that new parent stuff? Trial and error. No, really. It's true. Unfortunately, you probably won't have the luxury of being able to try and make errors during the post apocalypse, especially if there are all sorts of bad guys lurking around the corner waiting for the chance to swoop in and make off with your baby.
Because I'm ever so helpful (I'm nice like that), I'm giving a quick overview of what you'll actually need to have come your post-apocalyptic new parenthood phase.
Your tiny human will need a place to sleep. Drawers with blankets will work in a pinch, as will baskets (the Moses basket is popular as a bassinet nowadays). And hey, if it worked for a holy prophet, it'll work for us poor schmucks, right?
Of course, if you're into co-sleeping, your baby can sleep right next to you in your pallet/bed/mattress/pile of straw. Just make sure not to smother the poor thing, okay?
Newborns love to be swaddled. Make sure you've got some extra blankets or scrap pieces of cloth lying around to swaddle little Johnny or Sally while they sleep.
Of course, your new little one will need to wear clothes. Forget the designer gear you can get today. Instead, you'll have to make do with whatever you've got. If possible, make as many little outfits in as many different sizes as you can during your pregnancy. You don't really want to be making outfits while your child is squalling in his little Moses basket next to you. If you're not craftily inclined, make mu-mus and baby sarongs and such out of blankets and curtains. For socks and booties, just wrap cloth around their feet. They're not going to be walking for a while anyway.
The solution, then, is the cloth diaper. It's not as bad as it sounds. Really. Both of my kids were in cloth until we moved to a different country and the movers put my stash in storage (because diapers are useful in storage, of course they are). There's no need to get fancy and insist only on diapers like the BumGenius—keep in mind that the makers of these fancy diapers might very well be dead in the post apocalypse. Instead, stick to the basic prefold or flat diaper. These are also the easiest to make, which is important for the post-apocalyptic parent. Use whatever you can to pin it in place.
For wipes, scrap pieces of cloth will work well. Just dampen it a bit before use. And make sure to wash them with your diapers. Also, don't forget to wash the diapers. Otherwise, ew.
I hate to say this for fear of sounding like a parenting fundie (yes, they do exist), but breastmilk will be best during the post apocalypse. I say this because there likely won't be any formula to be found (not at first, anyway).
But what do you do if you can't breastfeed? Some women can't (I couldn't) for all sorts of reasons—like low or no milk production. If you can't breastfeed, go back to what our ancestors did a couple hundred years ago—find a wet nurse. It'll be the only way your tiny one will be able to eat.
Of course, necessity is the mother of invention, so I have no doubt that some enterprising parent—probably a mother—will (re)invent formula for the post-apocalyptic baby. But until then, you'll have to use a wet nurse.
This is just a snapshot of what you'll need to prepare for once your child arrives. You'll no doubt run into many more issues as a new post-apocalyptic parent. Good luck!
I think you missed the most utilzed object for the parent in a post apocalyptic world… the sling/baby carrier. It's easy to make and would be worth it's weight in gold during an apocalyptic situation. It would help the baby not to cry, increase breastmilk production, make it easier to travel, sleep, no worries about babyproofing or baby escaping, keep the baby warm if it's cold and clothing are lacking, etc.
Ah yes, the sling. I'm not knocking it, since I wore both of my girls for the first four to six months. I went through about half a dozen carriers until I finally found the one that worked: a simple baby wrap. It was a godsend; it really was.
However, having said that, a wrap/carrier/sling only works for so long. I can honestly tell you that I do not (and cannot) wear my toddler, because she's just too heavy and too tall for me to wear (I'm very short). Neither can I wear my preschooler. So at some point, you're still going to have to worry about babies escaping.
But the first few months? Babywearing. Absolutely.
Next Next post: Surviving the winter months.


text:
Read Next:	Tresor Films Plots $72 Million 'Asterix & Obelix: The Silk Road,' New Projects (EXCLUSIVE)
October 27, 2012 5:00AM PT
Gill leads Millenium's upgraded pic slate
Nu Image @ 20
Todd Longwell
Todd's Most Recent Stories
'Jumanji' Sequel Team Raced to Overcome Creative Obstacles
How Home Entertainment Companies Are Navigating the Streaming Apocalypse
Variety's Business Managers Elite Honoree Bill Tanner Looks Back, and Ahead
When Mark Gill signed on as president of Nu Image's Millennium Films division in July 2011, many people in Hollywood scratched their heads. The production company known for its meat-and-potatoes action fare seemed like an odd fit for the former Miramax L.A. and Warner Independent Films president.
But Gill was eager for a fresh start following the collapse of the Film Department, where, as CEO and co-founder, he had produced the hit thriller "Law Abiding Citizen" before running into financial difficulties. And Nu Image co-founder and chairman Avi Lerner said all the right things.
"He said, 'I want to upgrade and I need somebody to come in and help make that happen,'" Gill recalls. "Unlike my Warner Bros. experience, where they said they really wanted to shake things up, here, they actually meant it."
The company, which made millions on straight-to-video fare in its early days, was already greenlighting more ambitious projects, such as the upcoming "Playing for Keeps," directed by Gabriele Muccino ("The Pursuit of Happyness," "Seven Pounds"). Gill's hire signified a deeper commitment to those projects.
Not everyone was convinced. When Gill put out the word he was looking for prestige projects, "there were several people who said, 'Gee, I don't know about that,' and I said, 'Look. I bet my career on it. You can bet one script on it.'"
Are the Nu Image founders, infamous as brash, crass, bottom-line dealmakers who scoff at artistic ambition, trying to Miramax the place?
"Just a touch," Gill says. "Once or twice a year, we'll do a prestige movie, like 'The Iceman' and 'The Paperboy' for very moderate budgets so you don't get hurt too badly if they don't work out. The rest of the time, let's try to do a great thriller that, in your fantasies, is as good as 'The French Connection.'"
"The main thing that I get from Mark is support on the creative part," Lerner says. "Mark is very knowledgeable about where to get the script, director, cast — all the rest. I don't have this expertise."
"Olympus Has Fallen," an upcoming Antoine Fuqua project starring Gerard Butler and Morgan Freeman, centers on a Secret Service agent trying to thwart a takeover of the White House.
"You think it's just 'Die Hard in the White House,' but when you read the script, it's surprisingly astute about Washington," Gill says.
"Olympus" is not due in theaters until 2014. In the meantime, Millennium has "Playing for Keeps" (Dec. 7), "Texas Chainsaw 3D" (Jan. 13) and "The Big Wedding" (April), starring Robert De Niro and Diane Keaton. It's planning a Sundance bow for the biopic "Lovelace," toplining Amanda Seyfried.
Company also recently acquired the spec "Cold Warriors," an action-comedy in the vein of "Midnight Run."
"Usually, those sort of genre movies are very poorly written and then you try to fix the script," Gill says.
Not this one, he adds. Within two days of its purchase, "we were already trying to get it cast."
Lessons of indie war survivors | Duo disdain prestige without discipline | Gill leads Millenium's upgraded pic slate | Meet the key players | Lerner: 'The Grey Zone' is my favorite mistake | Sharp shots happen on their own backlots
GALLERY: Top 10 worldwide Grossers
Mark Gill
Millenium Films
Nu Image/millennium
Nu-image/millenium
More Film
'The Glorious Acceptance of Nicolas Chauvin': Nationalism Wrapped in Charisma
Winner of Locarno's Signs of Life section, Benjamin Crotty's "The Glorious Acceptance of Nicolas Chauvin" has enjoyed more than 12 months of festival success and critical acclaim as it reaches the end of its festival run at UniFrance's MyFrenchFilmFestival. A modern take on one of France's most influential yet widely unknown characters, the film headlines [...]
Alexander Ludwig on Sharing his Recovery Journey, Playing the 'Bad Boys' Tech Guy
With his towering height and stature, Alexander Ludwig looks every bit the action star, first appearing as Cato in "The Hunger Games," and more recently as fierce Norse Viking chief Bjorn Ironside on History Channel's "Vikings" and in "Bad Boys for Life," the third installment of the "Bad Boys" franchise, with Will Smith and Martin [...]
"Bad Boys for Life" is showing plenty of power at the North American box office with an impressive launch of around $66 million at 3,740 venues over the four-day holiday weekend. Sony's sequel to 1995's "Bad Boys" and 2003's "Bad Boys II" far exceeded the studio's pre-release forecasts of a $38 million weekend. The film, [...]
'A Bump Along the Way': Film Review
While "Derry Girls" continues to be the last word in young, raucous female rebellion on the Emerald Isle, "A Bump Along the Way" has a little something to add. Sin the same Northern Irish city as the hit Netflix sitcom, but shedding the '90s nostalgia for the Snapchat age, Shelly Love's appealing, unassuming debut feature [...]
Tresor Films Plots $72 Million 'Asterix & Obelix: The Silk Road,' New Projects (EXCLUSIVE)
After delivering two of the highest-grossing French films of last year, Alain Attal's Paris-based production company Tresor Films ("Sink or Swim," "Little White Lies 2") is kicking off 2020 with its most ambitious project yet, Guillaume Canet's "Asterix & Obelix: The Silk Road." Co-produced and financed by Jerome Seydoux's Pathé, "Asterix & Obelix" is budgeted [...]
Anais Bertrand on the Obstacles She Faced to Produce Sundance Player 'Jumbo'
Zoé Wittock's debut feature, "Jumbo," screening in Sundance's World Cinema Dramatic Competition, is also the first feature film produced by up-and-coming French producer Anais Bertrand, of Insolence Productions, who has cut her teeth on award-winning shorts, including winning the Procirep Short Film Producer Award last year. "Jumbo" is about a young woman, played by Noémie [...]
Gabrielle Union Posts Sweet B-Day Dedication For Dwyane Wade — 'So Proud Of The Friend You Are'

redpajama_set_name: RedPajamaCommonCrawl


A Chinese bride traditionally goes into seclusion with her closest friends. This Chinese custom gives the bride-to-be some time to symbolically mourn the loss of her friends and family.
Some time before the couples are married, the groom's family carries wedding gifts in red baskets and boxes to the bride's house. One of the baskets will contain 'milk money'. Others will contain personal things for the bride, so that on her wedding day all of her personal belongings will be in the groom's house.
The bride takes the gifts to another room where they are sorted through. Three days before the wedding day, women from the bride's family reciprocate, bearing gifts - including some 'returns'. - in red wrappings to the groom's family.
A small ritual is performed one day before the wedding to invoke the blessings of the family deity to ensure that the wedding preparations proceed smoothly. The family of the bride and the groom pray to the deity who is symbolically represented by a bamboo pole.
When the groom and his family arrive at the wedding hall on the morning one day before the wedding, they are welcomed with a tray containing offerings of flowers, paan supari, fruits and mishri. Rose water is sprinkled on the groom. The bride's brother applies a tilak of sandalwood paste and kumkum on his forehead and garlands him. The bride's mother offers the groom's parent's a sweet dish prepared from condensed milk. A senior female member of the bride's family performs aarti and welcomes them. It is also customary to break a coconut to the ground as this is believed to help ward off evil spirits.
Vratham is performed a day before the wedding by the family of the bride as well as that of the groom. They recite Vedic hymns in the presence f a priest (Vaadyar) and seek the blessings of a family deity. They also invoke the blessings of all their ancestors and pray for their intervention in removing those obstacles that threaten to disrupt the wedding proceedings.
Guests are invited to partake in a meal on a Sunday. The wedding preparation is often based on the gotong-royong (co-operation) among friends and relatives for which the Malays are well known. The wedding takes place, in most cases, in the house of the bride. Guests are presented with a bunga telur each. Literally, this means 'flower and egg'.
Earlier, the gifts were eggs, dyed red, placed in a cup or container with some glutinous rice at the base. Sometimes, a paper flower is added to decorate the gift. The egg symbolises a fertile union and the hope that the marriage will produce many children.
The arrival of the groom is heralded by the hadrah troupe. This group, mostly comprising teenagers, will beat the kompang (hand drums) and sing Quranic verses and good wishes. The groom is often flanked by bunga manggar (palm blossoms) carriers and a busload of relatives and friends.
The mak andam (beautician) as well as members of the bride's family waylay the groom and ask for 'entrance fee'. Only when they are satisfied with the amount would they allow the groom to see his bride.
After successfully overcoming the 'obstacles', the ceremony takes place. The ceremony encompasses a lot of the age-old Malay traditions, too many to elaborate on, but quite akin to the Hindu rituals in certain aspects. The final ceremony is one where relatives sprinkle petals and rice (fertility symbols) on the couple seated on the 'throne'.
How many of us have sent a 'Thank You' note after our wedding? Show your gratitude for gift givers by sending out thank you cards. It's a great way to show your appreciation for the gift they gave as well as the thoughtfulness of their generosity. Whether you receive gifts for a wedding, shower, or birthday, all gifts and acts of kindness should be reciprocated with a thank you card.
1. Thank you cards should be handwritten. While this may require extra time, it is more polite to personalize your note with your own handwriting rather than having it printed. Your recipients will appreciate the time you took to write them out.
2. Don't forget to send thank you cards to the people who helped you plan your event. For weddings, this can include your bridesmaids or groomsmen, your parents and your pastor. For birthday parties, send them to those who cooked the food, helped set up the tables, cleaned out the backyard, and anyone who was instrumental in helping your event run smoothly.
3. Send thank you cards for all gifts, even if the gift is something you don't particularly care for or don't know what to do with. Remember, you are thanking them for their thoughtfulness, not just the gift.
4. Treat monetary gifts the same you would your other gifts by sending thank you cards for them as well. Don't mention the amount in your note, but you can say what you intend to use it for. Your intentions should relate to the event. Send thank you notes earlier than later-within a week after the event is appropriate. For a wedding, two weeks after you return from your honeymoon is a good time. If you receive a gift in the mail prior to the event, send a thank you card immediately so as not to increase the gap between the time the gift was sent to the time the gift-giver receives the note.
5. If someone sends you multiple gifts for different events, regardless of how close in time those events may be, send that person a card for each gift. For instance, a friend may give you a gift for your wedding shower as well as another gift for your wedding a month later. Send a separate card addressing each gift, even if they're both addressed to her.
Personalise the note by hand writing and stamping it.
Open with your reaction to the specific gift or its impact.
Write: " I can't tell you how delighted we were to receive the dinner set ", Don't write: " Thank you for your kind gift."
Compliment the thoughtfulness of the giver.
Keep thank-you notes short. Two, three or four sentences are fine and double-check neatness, spelling, and grammar.Allow no scribbling out.
Even if you did not like the gift, you still thank the giver forhis/her thoughtfulness and consideration.
Do take care to use the correct spelling and gender of the receiver."Dear Kim Lewis" is good if you don't know gender or whether to use first names, "Dear Kim," or "Dear Ms. /Mr. Lewis."
Thank you guest for sharing your special event with you.
Thank her/him for the gift and describe it with glowing terms and also an identifying detail (cheerful yellow bath towels, exquisite crystal vase).
Tell your guest how you plan to use her gift and that you'll think of her/him wherever you use it.
Don't sign off too formally (avoid " sincerely"). Use words like "with thanks." "much love," "warmly," or "yours."
If you receive a gift from a group of people send a combined note of thanks to them, and try to thank each individual personally.
Do not pre-print the content of Thank-you notes - ever.
Do not write "Thank-you for the..." as the first sentence. The actual words, "Thank-you" are better deeper in the note or as the last sentence.
Do not say, "Thank-you" more than once in the note. As you receive gifts keep a record of from whom it was from and whether or not you have sent a thank-you note.
Determine how much of your budget you are willing to allocate to these guest gifts.
Search for gifts ideas from craft shops, bridal stores or at bridal fairs. Your wedding stationer may be able to make them.
Decide if you are going to buy ready-made gifts or make your own.
Shop around and compare prices before you pay anyone. Ask for written quotes outlining all the costs involved including delivery.
If you are making your own gifts, buy supplies you need. Set aside time to put them together in the coming months. Weekends are good as you can enlist the help of friends. If your gifts are edible or perishable (eg cakes or chocolates) pick a time that is closer to the wedding.
Call your gifts supplier to confirm the order. Be sure to go over the date, time place of delivery. Pay outstanding costs.
If your gifts are homemade, make sure they are finished so you're not stressed out in the week before the wedding.
Organise for the reception manager, co-ordinator or a friend to arrange gifts on tables, or in baskets by the door for guests to take home.
Valentine's Day is just over. So did your guys get down on one knee? Or alternatively, will you? Everyone knows that a man traditionally offers a woman as engagement ring as a promissory gesture during the proposal. But if a woman is proposing to her man, substitute a similar sentimental token or piece of jewellery for " the ring" in all of these ideas.
A great proposal should be memorable. You want to feel good whenever you remember it - and be able to tell the story to your children and grandchildren.
Have your proposal painted on a billboard en route to his or her office?
In the biggest letters space will allow, spell out, "Will you Marry Me?" Park beneath it or await their arrival at work, armed with champagne ready for toasting.
Read them to him or her in front of a crowd, have a singing telegram deliver them, or send them written on note cards one by one over the course of a day (or ten!), with the last card arriving via personal messenger (you!).
Leave your sweetie a clue with the Web address written on it - don't say a word. After the proposal has been officially accepted (which of course it will be!), he or she can proudly send the page to friends and family.
Want to really surprise your sweetheart?
Cut out the bottom of a big box, wrap it with pretty paper and ribbon, and attach a card that says, "What's inside the box is a gift to last a lifetime." "Deliver" yourself to his or her office or front door.
Is sweetie a deep sleeper?
Slip the ring on his or her finger while they're dozing and wake them with champagne and strawberries. The gesture will just seem romantic - until they discover a new piece of jewellery adorns them!
The way to loved one's heart: through the stomach!
Surprise your honey with an intricate gift basket.
Pile in yummy delicacies - the best chocolate, caviar, coffee - but don't limit yourself to food. You could also include silk slippers, a book or CD. Hide the ring among all these wonderful presents (in its box, so it doesn't get lost in the goodies).
If you're dining in a fancy restaurant, ask the wait staff to write, "Will you marry me?" in chocolate sauce around the rim of his or her dessert plate.
Gather your families together for a summer barbecue and make your proposal a family affair.
Hire a Hot Air Balloon to fly a banner with your " Marry me (insert name here)" message written on it and propose her high in the sky - a quick escape - without traffic jams and the rush of the city.
What else exists solely to look beautiful? ( Except your fiancÈ, of course!) String the ring on a ribbon and use it to tie a bouquet of wonderful flowers (daffodils, tulips, lilies, or whatever reminds you of him or her) together.
Many services boast about having a wedding planner when all they are really offering is someone on site to announce and direct elements of a wedding reception, help with the floral or menu selection, supervise the food service or assist at the wedding ceremony. What about the planning and obtaining the necessary elements of the entire wedding? Some vendors even claim to provide the bride with a list of photographers, florists, etc. Is this vendor really trained to know the budgetary needs and the bride's personal taste? In addition to those very absent elements in vendor choice, the vendor has not been scrutinized and qualified by a bridal consultant that really has the bride's interest in mind.
The perfect wedding planner interviews the bride and groom thoroughly to acquire a personal connection to their vision and personal taste for their wedding. Is a professional who has been trained to see to the every need of the bride and groom from the planning process to the last dance.
The perfect wedding planner will offer vendor choices to the bride based on that information and will set up and attend interviews along with the bride.
The perfect wedding planner will scrutinize contract offers and advise the bride so that she is able to make an informed decision.
The perfect wedding planner will be in touch with the bride and the vendors throughout the planning process and then will be there to oversee the delivery of the contracted services. Do whatever it takes to make sure the event runs smoothly, whether that means mopping the floor to keep the musicians from being electrocuted in a downpour or climbing under and over a deck to provide additional electrical service to a band whose equipment is blowing fuses during the reception.
The perfect wedding planner knows that it is not all flowers and romance and will not be unable to deal with details that are necessary to create the bride's vision. Becomes the right hand of the bride throughout the entire engagement period. Today's bride is busier with continuing education, highly demanding professions and more often than not, a remote family.
Let's face it... although planning a wedding is surely one of the most romantic and exciting times in a woman's life, it can also be very stressful and time consuming. Many newly engaged women of today are busy working and/or going to school, without a lot of time to spend fussing over details and searching for wedding services. Time after time when I meet a young woman and tell her that I am professional Wedding Consultant, I hear, "Wow... I wish I'd known about you when I got married".
Why is this? Well, it seems that all of the responsibility of planning the wedding falls on the bride and the bride's mother (usually) to come up with all of the details that come together (hopefully) to make a perfect day. They will sometimes have to depend on friends' and family's' recommendations for finding just the right wedding service professionals such as reception venues photographers and entertainment, and other times they will have to rely on yellow page hunting and internet shopping.
The problem of relying on family and friend's recommendations is that everyone does not have the same taste or style envisioned for their weddings. What was just the right photographer for Aunt May and Uncle Max wedding could be your worst nightmare if there is a personality or style conflict between you and the photographer.
Tick the items you would like to receive. Don't worry if you think an item may be too expensive... some of your guests and family will get together to purchase the larger items. If you are using a gift register, photocopy this list and take it to the store to make sure you select everything you need.
Write the amount you have budgeted next to each task and who will be paying for that item (eg. bride, groom, bride's family, bridesmaids, groomsmen etc). Print this page and give a copy to everyone will be contributing to the wedding expenses.
Just as your invitations launch a wedding celebration, bomboniere conclude the event. The small favours are a perfect parting momento for guest to cherish, offered in appreciation of their presence and support.
With so much attention centred you and your partner throughout the wedding, bomboniere are one aspect of the celebration where your guests are the focus of your plans. Selection a favours can take some time but guests will cherish your choice for years to come, so make the effort to find that perfect present.
Sunflower Paper Passion & Things aims to bring the fun back into shopping for bomboniere, offering fresh, exciting ideas for modern brides. The innovative range provides the perfect finishing touch for a truly memorable wedding celebration.


Walt 디즈니 Book Scans - The Little Mermaid: The Story of Ariel (English Version). Walt 디즈니 Book Image of Ursula, Princess Ariel and Prince Eric from the Walt 디즈니 Book "The Little Mermaid: The Story of Ariel" (2016). HD Wallpaper and background images in the 월트 디즈니 캐릭터 club tagged: walt disney characters walt disney book scans the little mermaid: the story of ariel ursula princess ariel prince eric.
This 월트 디즈니 캐릭터 photo contains 붉은 양배추.


text:
Q: Get field from first table by foreign key from second Two tables: categories, and their many-to-many relations:
categories
id | name
1    first
2    second
3    third

relations
parent | child
1        2
1        3

How can I get this result?:
first | second
first | third

I only can
SELECT c.name, r.child
FROM categories AS c
LEFT JOIN relations AS r ON c.id = r.parent

And result is
first | 2
first | 3

So, how can I get child name in this table?

A: SELECT c1.name, c2.name
FROM relations AS r
LEFT JOIN categories AS c1 ON r.parent = c1.id
LEFT JOIN categories AS c2 ON r.child = c2.id
WHERE c1.id = 1

A: Select categories table twice.
select parent_c.name parent, child_c.name child
from categories parent_c, categories child_c, relations r
where r.parent = parent_c.id and r.child = child_c.id

redpajama_set_name: RedPajamaStackExchange


text:
During the past three years, Nancy has assisted in the expansion of the STEM magnet programs in CMS through targeted professional development for staff and recommendations for quality STEM curriculum materials for students.
Sergio Anaya
With a strong background in History, Anthropology and Instructional Technology, Mr. Anaya provides support to curriculum development.
Dr. Maria Appeaning
Examples of Dr. Appeaning's work include the synthesis of novel dental monomers with 's Dental Health Care Division ( ESPE) to developing antimicrobial coatings with 's Medical Division.
Mr. Barnes has served on many state committees in the review and refinement of content standards and various state science organizations, and is the current Vice President of Virginia Association of Science Teachers.
Dr. Raha Been
Dr. Been's work at 3M focuses on the development of advanced wound care technologies and products and holds a central role in 3M's future in regenerative medicine.
Dr. Olester Benson
Since joining in 1988, Benson has spent the majority of his career leading research efforts to develop environmentally friendly manufacturing process technologies using high-energy radiation.
Kandyce Bohannon
Data and analytics are Kandyce Bohannon's passion. This, she says, feeds her fascination for technology and helps her gain a greater understanding of human behavior.
Tesha Alston Dampier
Through effective problem solving and opportunity-mining, Tesha Alston Dampier has excelled in various roles—from biochemistry to engineering—over the past 14 years at 3M.
Dr. Döne Demirgöz
Dr. Döne Demirgöz's passion for science and engineering expands into many scientific areas at 3M. And when Dr. Demirgöz is not solving problems on the job, she's inspiring and encouraging the next generation of young scientists through mentorship programs.
Kathy Dong
Kathy Dong has served at the state level in the Arizona Education Association on the Instruction and Professional Development Committee.
After working for ten years as a food chemist, Patti Duncan made the switch to education teaching middle school and high school science for twelve years.
Dr. Kevin Eberman
Dr. Eberman creates higher energy materials for batteries that power smart-phones, tablets, and electric vehicles.
Jeffrey Emslander
From graphic films for vehicles and reflective materials on traffic signs to more energy-efficient construction materials, Jeffrey Emslander is helping to create a greener planet.
Dr. Belma Erdogan-Haug
Dr. Erdogan-Haug serves as a volunteer tutor for students in St. Paul, MN area high school and is actively involved in mentoring students through the 3M Science Training Encouragement Program.
Milagros Fornell
Milagros Fornell's numerous awards include, but are not limited to: 1984 Miami-Dade County Public Schools Teacher of the Year, 1998 South Florida Phi Beta Kappa Superior High School Principal, and 2001 Region VI Principal of the Year.
Dr. Ann Fornof
As an inventor with more than 25 granted patents, Dr. Ann Fornof brings practical knowledge of technology development to help 3M business divisions commercialize its innovative products.
Dr. Benton Free
As a part of his role with the Electronics and Energy Group Laboratory, Dr. Free has worked on a diverse set of technologies.
Sara Frisco
Driven by her passion for disruptive technology platforms and innovation, Sara enjoys working on new product development, new technologies and intellectual property strategy.
Tina Powers Garrett
As a Prekindergarten through twelfth grade STEM Coordinator, Tina sets high goals for the district curriculum and for all educators while being a role model for students.
Dr. Patrick Hager
Dr. Hager has been instrumental in the invention and development of several key technologies including Command brand adhesives, simultaneous film orientation, surface structure and functionalization.
Dr. Jen Hanson
In the Consumer Healthcare division, Jen creates new products that help people heal and get back to living their lives.
Dr. Cordell Hardy
While a project developer for 3M's Consumer and Office business, Dr. Hardy guided the development of various adhesives, tapes, and home cleaning products.
Jonathan Harper
In his career with Grand Rapids Public Schools, Mr. Harper has taught high school science including Biology, Chemistry, Anatomy, Bench Science, and AP Biology.
The impact of John Henderson's work can be seen anywhere there's been an impact – between vehicles, that is.
Dr. Pam Henson
Dr . Henson is a former science teacher and has developed numerous programs for students in Baldwin County and in the State of Alabama.
Dr. Satish Jagnandan
Dr. Jagnandan holds a Bachelor of Science in Chemistry from Fordham University, Master of Art in Mathematics Education and Master of Education with a specialization in School Administration and Supervision from City University of New York (CUNY) Graduate Center. Dr. Jagnandan completed a doctorate degree in Executive Leadership at St. John Fisher College at the College of New Rochelle in July of 2012. His study focused on mathematics achievement among high school dropouts under the direction of Dr. Ronald D. Valenti and Dr. Welton Sawyer.
Dr. James Jonza
Dr. Jonza is an inventor on over 45 patents, with more than 15 pending, and has authored 11 publications.
Dr. James M. Jonza
James completed his undergraduate studies in environmental and polymer chemistry at the State University of New York College of Environmental Sciences and Forestry and received his Ph.D. in polymer science and engineering from the University of Massachusetts.
For three decades, Dr. James M. Jonza has improved lives by pioneering technology advancements in films.
Libbey Kitten
Libbey Kitten's twenty-two year teaching career spans three states in both public and private school settings.
Dr. Delony Lager-Anderson
Dr. Langer-Anderson invents products for the healthcare industry, using science and imagination to make products more comfortable, durable or easy to use, helping people feel better every day.
Dr. Delony Langer-Anderson
I have an awesome job. I come to work and use my imagination, education, and experience to translate ideas into physical products that people can use every day in their homes and at work.
Kellie Lauth
Ms. Lauth opened one of the first K-8 STEM schools in the nation in 2011, serving public school children with no entrance requirement.
Arny Leslie
Since 1996 Arny has taught in the Lake Washington School District in Redmond, Washington. He spent thirteen years at Redmond Junior High teaching ninth grade science, punctuated by three years out of the classroom as a full-time new teacher mentor. He has served on the planning committee for Nikola Tesla STEM High School, which opened in the fall of 2012, and has taught engineering and AP Environmental Science there ever since.
Dr. Jesse Miller
Before joining 3M, Dr. Miller was a marine biologist with the University of Mississippi, focusing on coral reef disease research.
Margaux Mitera
Collaboration is key to taking ideas further, and having the right tools can make all the difference.
Rodney Moore
As Science Learning Specialist, Rodney Moore plays a key role in STEM expansion in his district which includes collaboration between local organizations, businesses, colleges and the community around STEM education.
Dr. Cristin Moran
As a 3M scientist, Dr. Moran identifies new market opportunities and develops new consumer product platforms by combining technologies with consumer needs to create unique solutions.
Dr. Cindy Moss
Dr. Moss holds a bachelor's degree in zoology from the University of North Carolina at Chapel Hill, master's degree in science from Syracuse University and doctorate in science curriculum and instruction from the Curtin Institute of Technology in Perth, Western Australia.
As senior director of global STEM initiatives for Discovery Education, Dr.Moss designs, develops and implements initiatives to inspire students' curiosity in STEM.
Michael O'Toole
O'Toole has been immersed in education and coaching for more than two decades.
Dr. Joe Oxman
With 81 issued patents and more than 20 pending, Oxman played a key role in revolutionizing the dental industry by helping to create tooth colored restorative filling materials to replace conventional metal fillings.
Currently a corporate scientist with 3M's Oral Care Division, Dr. Oxman has worked at 3M for 34 years and has 99 issued patents.
Godfrey Rangasammy
Godfrey has designed, implemented and coordinated and facilitated numerous professional development sessions, as well as professional learning communities, focused on best practices for improving 21st Century teaching and learning within STEM education.
Sam Reiss
3D printing is an exciting technological development that is helping change the way we live our lives. It's even more exciting when you're printing one of the most robust polymers humans have ever discovered.
Casey Rimmer, M.Ed.
Casey is an experienced Technology Facilitator with a history of working in the education management industry with experience in E-Learning, K-12 Education, Classroom Management, Lesson Planning, and Educational Technology. She received her Masters Degree focused in Curriculum and Instruction, Technology Leadership from Concordia University, Portland.
Dr. Vasav Sahni
Vasav identifies disruptive ideas that lead to new adhesive technologies and products.
Dr. Matt Scholz
Dr. Scholz is an inventor on over 110 issued United States patents and has facilitated numerous healthcare products through to commercialization.
Jonah Shaver
"Protecting the sensors of an autonomous vehicle is like protecting one's eyesight," just ask Jonah Shaver, Ph.D. and product development specialist at 3M.
Dr. Kris Thunhorst
Dr. Thunhorst collaborates closely between the Industrial Business Group Research and Development Laboratory to scout and research new technologies
As the lead meteorologist and professional storm chaser on Discovery Channel's award-winning series Storm Chasers, Reed is one of the world's most respected experts on severe weather forecasting, safety and survival.
Sherry Ulery
A former Reading/English Language Arts teacher who has taught grades 7 - 12, Ms. Ulery has also served in DC Public Schools and Cleveland Municipal School District.
Dr. Martin Wolk
Over the past 20 years, Dr. Wolk has worked on the application of micro- and nano-scale patterning techniques to potential 3M products for printing, displays and graphics.
Dr. Caroline Ylitalo
Dr. Ylitalo has focused her career on developing new technologies that can be used across many businesses and has over 30 issued patents.


text:
Calendar | About Us | FAQ | E-News Signup
BuyTix
"Retrospective Works of Sara Bridgman 1967-2014"
May 9 through August 2, 2014
(Please note: the gallery will be closed on Friday, July 4.)
Opening Reception: Friday, May 9, 5:30 to 8 pm, FREE
Artist Talk: Saturday, June 21, 2 to 4 pm, FREE
Saturday, June 21: Audio description and ASL interpretation are available upon request.
To request services, please contact Nancy at 802-652-4505 by June 9.
Watch Sara's tour on July 12.
If you are interested in purchasing any of Sara Bridgman's work please contact gallery curator/manager Nancy Abbott-Hourigan at 802-652-4505 or nabbott@flynncenter.org to make arrangements. Private viewing during business hours may also be arranged upon request.
Charlotte artist Sara Bridgman presents a solo exhibit in the Amy E. Tarrant Gallery and an opening reception on Friday, May 9 at 5:30 pm. The exhibit, Retrospective Works of Sara Bridgman 1967–2014, can be seen in the gallery on Saturdays through August 2. Bridgman also gives an artist's talk on Saturday, June 21 from 2-4 pm.
Bridgman's art began in the 1970s with etchings and she later incorporated oil painting into her work. She spent a good deal of time in the 1980s exploring landscapes. It was during this period that she formed a strong bond by using a practice she calls "using the magic and wonder and developing the spirit of art and sight." Working in the 1990s, Bridgman worked tirelessly and quietly and became "close to being with the power and intelligence of life itself."
Bridgman's paintings of Mary Francis La'Monge began when she envisioned Mary Francis wearing a see-through dress with daisies all over. Mary Francis is an inspirational presence in Bridgman's art.
Bridgman studied art at the Montréal Museum of Fine Arts, the Boston Museum School of Fine Arts, and she spent four years studying etching at The School of Visual Arts in New York, NY. Her work has been shown at Herbert F. Johnson Museum, Ithaca, NY; Saint Michael's College, Colchester, VT; Pierson Library, Shelburne, VT; Webb & Parson Gallery, Burlington, VT; and most recently at JDK Gallery, Burlington, VT.
Special thanks to John E. Bates for curating this exhibition.
Contact Flynn Marketing at 802-652-4500 or marketing@flynncenter.org for more information.
This exhibition is generously supported by Amy E. Tarrant. This exhibit is also supported in part by the Vermont Arts Council, The Vermont Community Foundation, and the Surdna Foundation.
Pictured: "Mary Francis La'Monge," Oil on Canvas
Flynn Center Presents
Amy E. Tarrant Gallery
Exhibit Archives
Gallery Rental Information PDF
Discover Jazz Festival
Give the Gift of the Arts
FlynnTix Regional Box Office
Workshops, Masterclasses & Free Events
Sensory-Friendly Programming
View Full Calendar of Events at the Flynn
View Full Calendar of Regional Events
Website Designed and Engineered By:
Providing Web-based
& Networking Business Solutions
Flynn Season Sponsor
Concession Sponsor
Collapse Site Map
Take a Class or Camp
Flynn at Your School
Major Gifts & Foundations
Special Campaigns
Memorial & Honorary Gifts
Board and Staff Listing
Our Mission, Vision, Values
Area/ Directions/ Parking
The Flynn Center for the Performing Arts seeks to comply with the web site accessibility standards of the Americans with Disabilities Act (ADA). Our web site represents a good-faith effort to comply with those standards.
Vermont website design, graphic design, and web hosting provided by Vermont Design Works
Flynn Center for the Performing Arts
153 Main Street, Burlington, Vermont 05401
Tickets: 802-863-5966, voice/relay calls welcome
Administrative Offices: 802-652-4500 (P) 802-863-8788 (F)


text:
Q: PhpStorm console does not support ANSI colors I'm having problem using console of PhpStorm: it won't support ANSI colors.
Any suggestion that help me?
The console look like this

A: you can use this script in your .bashrc file for colorize prompt :
# Customize Bash settings.
cat <<EOF > /home/vagrant/.bashrc
# Colorize the prompt.
yellow=\$(tput setaf 3)
green=\$(tput setaf 2)
blue=\$(tput setaf 104)
bold=\$(tput bold)
reset=\$(tput sgr0)

PS1="\[\$yellow\]\u\[\$reset\]@\[\$green\]\h\[\$reset\]:\[\$blue\$bold\]\w\[\$reset\]\$ "

# Don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options.
export HISTCONTROL=ignoreboth

# Append to the history file, don't overwrite it.
shopt -s histappend

# History size up to 1000 commands.
export HISTSIZE=1000

# Make less more friendly for non-text input files, see lesspipe(1).
[ -x /usr/bin/lesspipe ] && eval "\$(SHELL=/bin/sh lesspipe)"

# Enable color support of ls and also add handy aliases.
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "\$(dircolors -b ~/.dircolors)" || eval "\$(dircolors -b)"
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# Enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

# Set your favorite editor here.
VISUAL=vim; export VISUAL
EDITOR=vim; export EDITOR

# Append /usr/local/bin to the path.
export PATH=/usr/local/bin:/usr/local/share/python/:\$PATH
EOF


text:
ScreenLaunch
Feature film financing, sales and distribution
ScreenLaunch announces two new Aussie films 'Skin Deep' and 'Safe Water' for AFM
ScreenLaunch announces two new Aussie films 'Skin Deep' and 'Safe Water' for the American Film Market
Sydney, Australia, 1 November 2013 – Innovative film sales and distribution company, ScreenLaunch, will introduce two new Australian titles to the American Film Market (AFM) in November 2013. ScreenLaunch will represent Skin Deep, a drama about two young women discovering life in urban Sydney and Safe Water, a new 3D horror, set in an Australian coastal town.
Skin Deep, currently in post-production, was written by award winning artist Monica Zanetti and stars Zara Zoe and Zanetti, with Elizabeth Blackmore from the recent remake of Evil Dead. It is set in Sydney's Inner West, where a troubled university student Caitlin Davis (played by Zanetti) meets Leah (Zoe), a young woman from the other side of town. Caitlin and Leah couldn't be more different. Their chance meeting leads them on a random adventure, where they discover their needs are surprisingly alike.
The horror film Safe Water, currently being financed, reunites Producer Ross Howden and Director Nathan Christoffel who created the visionary, award-winning indie feature Eraser Children. The movie is about a former surf champion, Shelly, who returns to the sleepy beachside community that she grow up in, before she made worldwide headlines. Now disgraced, she braces herself for small town backlash – but, when it comes in an unexpectedly horrific form, Shelly has to muster all her resources just to survive. Ross Howden will produce the film along with LA based producer, Diana Ward, and the film will be shot in 3D – returning to the horror style of films such as Halloween 3D.
ScreenLaunch CEO Ross Howden said: "They are two different films but both unique Australian tales that should garner strong international interest. Safe Water is already drawing investment interest ahead of the event. Horror is big at the moment and if you add the Aussie surf and beach lifestyle, it's a double attraction."
Mr Howden said it is important now, more than ever, for Australian films to be formally represented at international markets to strengthen the local industry. "With the lines between local and international deals blurring, it's all about global sales so it's vital to reach buyers from all over the world," he said.
Also amongst ScreenLaunch's line-up for the AFM is Survival Tactics – a hip hop urban drama which was recently selected for the 2013 Beijing International Film Festival, Johnny Ghost – a thriller about a musician whose attempt to suppress her wild past comes back to haunt her, and The Tunnel – which is still selling internationally despite being given away on the internet.
To view the trailer for Skin Deep, head to: http://www.screenlaunch.com/film/skin-deep/
For more information on ScreenLaunch and the slate of films for the AFM visit www.screenlaunch.com
About ScreenLaunch
Screenlaunch focuses on innovative digital forms of sales, distribution and production.
Screenlaunch works with clients from concept to launch by assisting with digital strategies, finance, production and sales. They offer new methods of community distribution, streamlining revenue returns and maximising audience exposure. They also partner on co-productions seeking to take advantage of the new Australian tax incentives, including overseas production companies or companies interested in production and post-production in Australia.
Laura Douglas laura@screenlaunch.com +612 9492 1002 / +61452 505 859
Theme — Timber
All contents © ScreenLaunch 2016
At ScreenLaunch we focus on financing and innovative digital forms of sales, distribution and production.
ScreenLaunch works with clients from concept to launch by assisting with digital strategies, finance, production and sales. We offer new methods of community distribution, streamlining revenue returns and maximising audience exposure.
Skin Deep officially selected in to prestigious USA writer's festival, Austin Film Festival
ScreenLaunch expands services to include Australian theatrical distribution
TOUCH TO LAUNCH AT SYDNEY FILM FESTIVAL
AFM Wrap-Up
Digging it!


Klean Strip Citristrip Stripping Gel contains no methylene chloride. Strips multiple layers, stays wet up to 24 hours. For indoor/outdoor use. Pleasant orange scent.
Copyright © 2019 ThePaintStore.com. All Rights Reserved.


Post by foo.bar. Filed under work. 30356 reads.
Select the skin-option from "skinning"-menu of widget configuraion. The skin should now be selectable.
Open the skinning-menu from widget configuration.
After that you can select skin-option and open the skin manager. The skin will get updated.
Create an XML-Textfile and name it skin_config.xml (you can find an example file here: skin_config.xml (xml, 611 bytes)).
Create a background png image. If you want to create a scalable background please use the background png of one of the provided skins as template and copy the nine_patch_chunk information into you skin-xml. You can also just create a background image for your desired skin size without the nine_patch_chunk, but this has to be of the correct image size.
Optional: Create some icon png images for refresh and config buttons.
Optional: Set the font color for header and text lines (RGB in hex with format #RRGGBB, #000000 = Black, #FFFFFF = White), default is black. You can use the html color picker to select a desired color.
But when i check at Skin settings only the default is showed.
I also tryd to create a directory in: sdcard/.de.foobarsoft.emailwidget/.
Please get back to me, if this doesn't help.
I don't really like the unread icon (orange envelope), looking at the 'creating own skins' section above I'm assuming it can't be skinned, is this correct?
unfortunately this is correct until now. I will provide some more customization for layouts on one of the next releases and this includes the mail icons, too.
Thanks foo.bar, I have another qustion: I had to move the apk into the /system folder using clockwork recovery and ADB shell to be able to access my exchange accounts, what happens when there is a new update available? Will i have to go through the same porocess?
you have to move the apk from /system/app back to /data/app. Then you can update it via market on a regular basis. Afterwards please move it back to /system/app. You can do this easily with Super Manager.
I've left a message in the email widget thread about how to overcome the issue with all widgets being labelled 'INBOX'. The easiest way to do this, require no coding, is to simply make some new skins (or use any of the above) and in the 'background.png' file include (at the bottom) the logo for Gmail, yahoo, hotmail etc.. Then instead of calling your skins glass_skin, glass-blue_skin etc… simply call them gmail-skin, yahoo-skin, hotmail-skin etc.. The top label will still show INBOX but the widget will be much easier to identify especially if you have mutiple mailboxes.
Great idee. There is only one problem. I changed the name in the xlm and also the name of the skin, but after saving, the app didn't recognized the new skins. Can you tell me what went wrong?
you only have to change the name of the skin within the xml / skin-tag and replace the background.png. Afterwards zip the contents together in a new skin file and name it like you want, but with suffix _skin.zip. Then place it in the skin-folder on your device and hit the "Clear Design Cache" button under skin preferences.
Now it's almost perfect. There is only one problem left. After rebooting my device, the new skins are all changed in the default skin. The skins i have made are rewritten.
Whan I del the skin cash it's oke. So is there a way to skip this action?


Halloween is here and Henrietta Hudson is going to help you kick of the long spooky weekend in freaky fashion! Are you a super freak? Maybe a super hero? Whatever your fancy, bring your fine selves to NYC's #1 lesbian bar to party with all the glammy ghosts and cool ghouls!
DJ Nikki Lions and DeejayBk Strm are in this haunted house dropping all the best beats to get the undead babes of HHNY shaking!
« FACE/OFF CLINTON VS TRUMP- THE FINAL ROUND- DEBATE WATCHING PARTY WEDS!


text:
Nasinu je součástí rozsáhlé suvské městské sídelní aglomerace na ostrově Viti Levu ve Fidži. Statut "města" získalo až v roce 1999. Nasinu je nejlidnatější město na Fidži, dokonce předstihuje i (hlavní město) Suvu, a je jedním z nejrychleji rostoucích měst na Fidži. Rozlohou 4,5 km² je největší ze všech městských oblastí na Fidži a je více než dvakrát větší než Suva.

Dějiny
Na území dnešního města Nasinu bylo původně několik malých osad, za II. světové války byla v Laucala Bay významná vojenská základna. Ve 2. polovině 20. století se začala rozvíjet zástavba kolem hlavní spojnice mezi Suvou a Nausori. V roce 1999 získala tato rychle se rozvíjející sídelní oblast vlastní samosprávu a statut města.

Zeměpis a charakteristika
Nasinu se rozkládá při jihovýchodním pobřeží ostrova Viti Levu, mezi Suvským poloostrovem, na kterém se rozkládá Suva, a deltou řeky Rewa, na jejíž březích leží město Nausori. Pobřežní oblast je porostlá mangrovníkem, dále od pobřeží se území mírně zvedá do pobřežní mírně zvlněné roviny.

Městské části
Město tvoří sedm městských obvodů:
 Caubati.
 Kinoa-Laucala Bay.
 Makoi-Tuirara-Tovata.
 Muanikoso-Narere-Laqere.
 Nadawa-Caqiri-Nasole-Nepani.
 Nadera.
 Newtown-Naveiwakau-Valelevu-Kalabu.

Podnebí
Nasinu leží ve vlhké části ostrova Viti Levu.

Obyvatelstvo

Samospráva
Nasinu spravuje 21členná městská rada, což je nejvyšší orgán pro obyvatele obce na Fidži. Radní mají tříleté funkční období, volí starostu na dobu jednoho roku s možností opakované volby.
Při posledních obecních volbách, které se konaly dne 22. října 2005, vyhrála Fidžijská labouristická strana (FLP), která získala 14 křesel, kdežto dříve vládnoucí Soqosoqo Duavata ni Lewenivanua (SDL) získala jen 7 křesel. Radní SDL bojkotovali první zasedání nové městské rady, která zvolila nového starostu Rajeshwar Kumar, a pohrozila, že napadne výsledky voleb u soudu.
V současnosti (2011) město nemá starostu, zastupuje ho jmenovaný zvláštní správce Mr. Mosese Kama.

Hospodářství
 Kanalizační čistírna Kinoa - největší městská čistírna odpadních vod na Fidži
 Elektrárna FEA v Kinoa

Instituce
 Fidžijská národní univerzita (FNU) - dříve Fidžijský technologický institut
 Sídlo Úřadu pro pozemní dopravu na Fidži (Land Transport Authority of Fiji)
 Sídlo Úřadu pro bydlení (Housing Authority)
 Základna Vojenské výcvikové skupiny Ozbrojených sil republiky Fidži (Force Training Group RFMF)
 Věznice v Nasinu (Nasinu Prison) - fidžijské nápravné zařízení pro mladistvé
 Sídlo Vodoprávního úřadu Fidži (Water Authority of Fiji)

Reference

Externí odkazy

 Městská rada Nasinu - oficiální web města (Nasinu Town Council website). Dostupné online (anglicky)

Města na Fidži

redpajama_set_name: RedPajamaWikipedia


text:
require 'json'

class BenchmarksController < ApplicationController

  def p1
    render :json =>{:msg=>'hello world'}
  end

  def p2
    render :json =>{:msg=>
                        """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec risus enim, egestas eget auctor in, fermentum in neque. Proin et lectus nibh. Maecenas at elementum eros. Etiam orci augue, molestie et porta ut, faucibus in orci. Donec pulvinar eros dictum nunc molestie, id congue ligula elementum. Aenean feugiat pretium nunc ac ornare. Sed est lectus, accumsan facilisis eros vel, mattis blandit felis. Phasellus luctus mattis mauris, tincidunt pharetra ante dapibus non. Aliquam erat volutpat. Morbi eget volutpat metus. Ut pharetra quam turpis, at imperdiet purus convallis adipiscing. Curabitur ut quam dictum, placerat nisi sed, vehicula mauris. Morbi tincidunt posuere iaculis.

Ut nec blandit sapien. Vivamus et fermentum nibh, quis rutrum mauris. Pellentesque ipsum turpis, vulputate ullamcorper lectus sed, consectetur scelerisque magna. Donec vestibulum libero ut sem congue consectetur sit amet sed ipsum. Fusce elit diam, faucibus posuere arcu vel, viverra ullamcorper lacus. Nulla malesuada tristique libero, ac rhoncus velit hendrerit id. Praesent eget nibh erat. Suspendisse tincidunt felis libero, imperdiet vestibulum purus vehicula sit amet. Maecenas porta, dolor vel pretium auctor, ante nunc sagittis velit, eget varius tellus lorem vel nisl. Aliquam ultricies posuere pellentesque. Etiam vel purus quis nibh pulvinar egestas. Quisque tellus nulla, congue at lorem nec, mollis lacinia nunc.

Curabitur ac leo eu nibh aliquet tincidunt et sed tellus. Aenean mauris ligula, luctus vitae odio sed, pulvinar placerat tortor. Sed ut purus accumsan dolor interdum vulputate. Aenean pretium risus et nibh condimentum, a volutpat massa porta. Sed tristique ipsum nec erat tincidunt viverra. Etiam et tortor tristique quam sollicitudin dignissim. Donec suscipit nulla vel feugiat viverra. Aliquam non est eget risus varius venenatis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum varius massa non eros varius, vel vehicula velit convallis. Morbi et condimentum quam, id dignissim sapien. Nulla suscipit congue nisi et vestibulum.

Integer varius eu ante sed vestibulum. Quisque vitae lacus quis augue varius imperdiet. Praesent erat massa, hendrerit ut risus pretium, auctor auctor ante. Proin posuere elit lacus, at convallis leo convallis eu. Pellentesque volutpat sed est sit amet ullamcorper. Maecenas tempor feugiat leo, et laoreet purus imperdiet et. Nunc sed purus ac risus porta mattis in quis velit. Morbi tellus diam, blandit sit amet mi eget, viverra suscipit nulla. Maecenas id dignissim ligula, eget mattis risus. Mauris mattis enim quis nisi fringilla, quis vestibulum leo ultricies. Quisque dolor turpis, egestas id facilisis in, tempor eu quam. Donec a elementum velit. Vestibulum porttitor ligula eu blandit consectetur.

Praesent aliquam, tellus sed adipiscing pellentesque, magna augue rhoncus augue, eu semper est mauris sed tellus. Aliquam dictum eros in sollicitudin dapibus. Donec sollicitudin tellus ac metus accumsan adipiscing. Praesent iaculis dapibus scelerisque. Mauris sit amet massa diam. Cras interdum orci fermentum varius scelerisque. Curabitur ultrices bibendum erat, eget tempus ante faucibus non. Vestibulum placerat vitae justo id varius. Nullam lobortis dictum luctus. Donec non purus vel augue consectetur faucibus ac id turpis.

    "
    }
  end

  def p3
    hash = JSON.parse(request.body.string)
    render :json => {:msg=> hash["content"].length} , status=> 200
  end

  def p4
    render :json => {:msg => fib(10)}, status=> 200
  end

  def p5
    if request.headers['test']
      render :json => {:msg => 'OK'}, status=> 200
    else
      render :json => {:msg => 'Error'}, status => 400
    end
  end

  def p6
    r = Random.new
    id = r.rand(1...1000)
    render :json => {:obj=>SmallData.find(id)}
  end

  def p7
    r = Random.new
    id = r.rand(1...1000)
    render :json => {:obj=>LongData.find(id)}
  end

  def p8
    r = Random.new
    id = r.rand(1...900)
    render :json => {:obj=>SmallData.where(id: [id...(id+100)])}
  end

  def fib(n)
    n <= 2 ? 1 : fib(n-2) + fib(n-1)
  end
end

redpajama_set_name: RedPajamaGithub


Cheyenne is locked between Dry Creek and Crow Creek in the southeast corner of Wyoming. Cheyenne has a cool semi-arid climate characterized by cool winters with interrupting wind. Cheyenne is a great family destination and should be on your priority list if you are making plans to move to a new city.
When you are in Cheyenne, you will find lots of recreational areas where you can hang out with your family and friends. North Cheyenne Community Park, for example, features eight soccer fields, play equipment, an archery range, and mountain biking and hiking trails.
Cheyenne Botanic Gardens is also another breathtaking scene with its variety of landscapes plus a solar-heated conservatory and play area for kids.
Cheyenne is home to some of the best restaurants in the state. You will find restaurants like Guadalajara Mexican Restaurant offering Mexican cuisines in a cozy environment. Poor Richard`s Restaurant is a romantic but casual destination for a steak dinner or lighter lunch.
The economy of Cheyenne has grown tremendously in the last couple of years, increasing the employment and investment options available to those who dare to call this area their home.
The manufactured homes offered by Clayton Homes gives you the opportunity to become a homeowner if your budget is somewhere between $46,382 and $225,715. When you buy a modular home, you can use the money saved from the lower cost to equip your new manufactured home with luxury fittings and high-end appliances.
Modular homes have parts that are fitted in a controlled factory before being transported to the site of assembly. The entire process eliminates human errors and speeds up the building process. No matter the number of bedrooms you want, you will always find a modular home in Cheyenne that meets your needs.
NewHomeSource will be glad to be your search partner to find that befitting manufactured home in Cheyenne.


On December 5th, Youth Center of Khashuri organized informational meeting for youth and interested parties. Main goal of the meeting was to introduce the project Youth Reflex 2.0, application SAVER and future activities to the society. In total about 40 people attended the meeting. In the near future 15 local volunteers will join the team of Khashuri.


text:
Lincoln Rhyme
The Never Game
Written by Jeffery Deaver — He's taken on new technology before in the likes of The Blue Nowhere, Roadside Crosses and The Steel Kiss, now Jeffery Deaver turns his attention to the cut-throat world of computer gaming – to explosive effect. The Never Game introduces…
The Cutting Edge
Written by Jeffery Deaver — Can you imagine the reaction when Jeffery Deaver pitched his first Lincoln Rhyme novel. 'Oh yes, and my protagonist is quadriplegic, solving everything from the confines of his apartment…' What's the betting that they said it'd never catch on? How…
The Steel Kiss
Written by Jeffery Deaver — He's the master of smoke and mirrors, disguise and deceit, and this time Jeffery Deaver sets his brain-twisting new Lincoln Rhyme novel in the most hi-tech of situations. Quadriplegic crime-solver Rhyme relies upon the latest technology to help him function. He's…
Interview: Jeffery Deaver
"Technology is everywhere: it makes our lives easier, our connections faster and journeys quicker. But in the hands of someone smart enough, every piece of technology can be a murder weapon." So reads the blurb of the latest Lincoln Rhyme thriller from the pen of…
Face Off edit by David Baldacci
By DavidPrestidge
Remember the rock supergroups of the 1970s? Blind Faith; Crosby, Stills, Nash and Young; Derek and the Dominoes; Emerson, Lake and Palmer? Did the whole ever equal the sum of its parts? That's an argument for another day, but what if a similar collaborative concept…
Death Can't Take a Joke
On the Radar — This week our new books column brings you novellas, short stories and novels from writers across the spectrum of crime fiction. We've got Anya Lipska's second novel entitled Death Can't Take a Joke, a new one from Laura Lippman and 12…
The October List
Written by Jeffery Deaver — This author is high up on many people's list of favourite crime authors, with Lincoln Rhyme his finest creation. He's sold millions upon millions of books and appears on bestseller lists all around the world, so why would Jeffery Deaver…


When Canon needed a new assembly facility for their advanced ink cartridge process, they came to Warwick to assist in the design process to make sure they had a building that would be operational in record time. The 800,000 SF building was completed in ten months, two months ahead of schedule.
The manufacturing floor was fully heated and cooled utilizing chillers and steam boilers. We installed 72,000 feet of pipe on 40 ft. pre-fabricated pipe racks, 30 feet above the ground. The racks were fabricated in our Hampton Virginia fabrication facility and transported to the job site. 93,000 man hours were worked and the project was completed in a record 10 month time frame.


Superb à la carte dishes served in our restaurant will transform your summer or winter vacation in the Dolomites into an unforgettable experience in culinary respect, as well. Our restaurant is also open at midday for our hotel guests. We offer a wide range of tempting treats, from South Tyrolean specialties to mediterranean cuisine. And everything is whipped up using only natural products.


text:
Remember Jack Nicholson?
October 20th, 2021 under Jack Nicholson. [ Comments: 2 ]
Welcome back, Jack. It wasn't the same without you. pic.twitter.com/22tPGT0tdq
— Los Angeles Lakers (@Lakers) October 20, 2021
It used to be that we would see Jack Nicholson everywhere. But that was then. Now, we rarely see the legendary actor. And yesterday was one of the rare opportunities where we got to see that distinctive face with his sunglasses on, inside at night doing what he loves second most. Watching his LA Lakers play basketball.
What do I assume his favorite activity to be? Let's just say it also deals with bouncing balls.
When it comes to Jack? The 84-year-old Oscar winner looks as cool as he always does. Now, let's get him back in the movies because the theaters are missing him.
BTWF: Jack Nicholson in The Terror
March 23rd, 2020 under Before They Were Famous, Jack Nicholson. [ Comments: none ]
Before Jack Nicholson was dealing with the Witches with Eastwick, he had a run in with another on in The Terror. He looks the same now as he did when he was 25 in that 1963 movie.
Anjelica Huston says that Jack Nicholson has a very big d-thing!
May 14th, 2019 under Andy Cohen, Anjelica Huston, Jack Nicholson. [ Comments: none ]
Anjelica Huston was on Watch What Happens Live yesterday and Andy Cohen asked her to play Plead the Fifth. Since she is an open book, she agreed to play.
When asked which co-star gave her the first worst impression, she said it was Bill Murray when they worked on The Life Aquatic with Steve Zissou. He threw a dinner party on the first day and invited everyone but her. The actress said he redeemed himself as production went on.
When it came to the second question, she pled the fifth and would not reveal which famous actor she turned down.
For his third question, the Bravo host wanted her to describe Jack Nicholson, her ex of 17 years, as a lover. She turned to RuPaul and asked, "What is that d-thing?" Ru proudly said to her, "dick." Cohen said that was only one word, she needed two more. Thus, she added, "very big." Then she elaborated, "For the moment."
However, after the game, she said the game "was really hard. And sort of inaccurate. But we won't go into that."
Now that we know Jack, it is hard to believe she said hit the road, Jack. Can we call him Jack Hammer from now on? I am Jacked up with these jokes.
Look, it is Jack Nicholson!
January 24th, 2019 under Jack Nicholson. [ Comments: none ]
Jack Nicholson makes rare public appearance to catch Lakers game with son Ray https://t.co/WX2rdhfhxT pic.twitter.com/92fitRBmMk
— Yahoo Entertainment (@YahooEnt) January 24, 2019
Remember when it used to be that every awards season, we would see Jack Nicholson all over the place? That was then, and now we rarely see him during any of the other seasons too.
Well according to Yahoo News, earlier this week he came out to watch his Lakers play some ball with the thing that came out of his balls. His son, Ray.
You know what, he looks great. I wish he would come out of retirement and do another movie. His movies always that Jack feel that no other actor can replicate. Thus, why is he such an awards season staple. Which is a shame that he is spending his time at Staples and not in front of the camera.
BTWF roles: Jack Nicholson in The Cry Baby Killer
April 22nd, 2015 under Before They Were Famous, Jack Nicholson. [ Comments: none ]
Before Jack Nicholson had an epic shootout as the happy faced Joker in Batman, he a much milder one in The Cry Baby Killer. Don't you just adore his 20 year old baby face in that 1958 movie?


text:
Salix foetida är en videväxtart som beskrevs av Schleicher. Salix foetida ingår i släktet viden, och familjen videväxter. Inga underarter finns listade i Catalogue of Life.

Bildgalleri

Källor

Externa länkar

Viden
foetida


A simple but useful grammar package for the rule files in the free version of kangarko's spigot plugin ChatControl.
To use the grammar package you have to open on the rule files of CC (ChatControl).
To the first line of all of these files.
I personally really love the plugin ChatControl and thought it would be useful to have some grammar for it. I started this private and I think others probably like it to.


Let's all give a big round of applause to giant corporations.
It's a good time to be an executive at a giant corporation.
Fortune's annual Fortune 500 list noted that companies who made the cut earned a combined total revenue of $12.5 trillion, up almost three percent from last year, and an an all-time high. Congrats, rich people!
For New Yorkers: The state had the most companies on the list, with 55.


text:
/*
 * demand-loading started 01.12.91 - seems it is high on the list of
 * things wanted, and it should be easy to implement. - Linus
 */

/*
 * Ok, demand-loading was easy, shared pages a little bit tricker. Shared
 * pages started 02.12.91, seems to work. - Linus.
 *
 * Tested sharing by executing about 30 /bin/sh: under the old kernel it
 * would have taken more than the 6M I have free, but it worked well as
 * far as I could see.
 *
 * Also corrected some "invalidate()"s - I wasn't doing enough of them.
 */

/*
 * Real VM (paging to/from disk) started 18.12.91. Much more work and
 * thought has to go into this. Oh, well..
 * 19.12.91  -  works, somewhat. Sometimes I get faults, don't know why.
 *		Found it. Everything seems to work now.
 * 20.12.91  -  Ok, making the swap-device changeable like the root.
 */

/*
 * 05.04.94  -  Multi-page memory management added for v1.1.
 * 		Idea by Alex Bligh (alex@cconcepts.co.uk)
 */

#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/head.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/types.h>
#include <linux/ptrace.h>
#include <linux/mman.h>
#include <linux/mm.h>
#include <linux/swap.h>

#include <asm/system.h>
#include <asm/segment.h>
#include <asm/pgtable.h>
#include <asm/string.h>

unsigned long high_memory = 0;

/*
 * We special-case the C-O-W ZERO_PAGE, because it's such
 * a common occurrence (no need to read the page to know
 * that it's zero - better for the cache and memory subsystem).
 */
static inline void copy_page(unsigned long from, unsigned long to)
{
	if (from == ZERO_PAGE) {
		memset((void *) to, 0, PAGE_SIZE);
		return;
	}
	memcpy((void *) to, (void *) from, PAGE_SIZE);
}

#define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE)

mem_map_t * mem_map = NULL;

/*
 * oom() prints a message (so that the user knows why the process died),
 * and gives the process an untrappable SIGKILL.
 */
void oom(struct task_struct * task)
{
	printk("\nOut of memory for %s.\n", task->comm);
	task->sig->action[SIGKILL-1].sa_handler = NULL;
	task->blocked &= ~(1<<(SIGKILL-1));
	send_sig(SIGKILL,task,1);
}

/*
 * Note: this doesn't free the actual pages themselves. That
 * has been handled earlier when unmapping all the memory regions.
 */
static inline void free_one_pmd(pmd_t * dir)
{
	pte_t * pte;

	if (pmd_none(*dir))
		return;
	if (pmd_bad(*dir)) {
		printk("free_one_pmd: bad directory entry %08lx\n", pmd_val(*dir));
		pmd_clear(dir);
		return;
	}
	pte = pte_offset(dir, 0);
	pmd_clear(dir);
	pte_free(pte);
}

static inline void free_one_pgd(pgd_t * dir)
{
	int j;
	pmd_t * pmd;

	if (pgd_none(*dir))
		return;
	if (pgd_bad(*dir)) {
		printk("free_one_pgd: bad directory entry %08lx\n", pgd_val(*dir));
		pgd_clear(dir);
		return;
	}
	pmd = pmd_offset(dir, 0);
	pgd_clear(dir);
	for (j = 0; j < PTRS_PER_PMD ; j++)
		free_one_pmd(pmd+j);
	pmd_free(pmd);
}

/*
 * This function clears all user-level page tables of a process - this
 * is needed by execve(), so that old pages aren't in the way.
 */
void clear_page_tables(struct task_struct * tsk)
{
	int i;
	pgd_t * page_dir;

	page_dir = tsk->mm->pgd;
	if (!page_dir || page_dir == swapper_pg_dir) {
		printk("%s trying to clear kernel page-directory: not good\n", tsk->comm);
		return;
	}
	flush_cache_mm(tsk->mm);
	for (i = 0 ; i < USER_PTRS_PER_PGD ; i++)
		free_one_pgd(page_dir + i);
	flush_tlb_mm(tsk->mm);
}

/*
 * This function frees up all page tables of a process when it exits. It
 * is the same as "clear_page_tables()", except it also changes the process'
 * page table directory to the kernel page tables and then frees the old
 * page table directory.
 */
void free_page_tables(struct mm_struct * mm)
{
	int i;
	pgd_t * page_dir;

	page_dir = mm->pgd;
	if (!page_dir || page_dir == swapper_pg_dir) {
		printk("Trying to free kernel page-directory: not good\n");
		return;
	}
	for (i = 0 ; i < USER_PTRS_PER_PGD ; i++)
		free_one_pgd(page_dir + i);
	pgd_free(page_dir);
}

int new_page_tables(struct task_struct * tsk)
{
	pgd_t * page_dir, * new_pg;

	if (!(new_pg = pgd_alloc()))
		return -ENOMEM;
	page_dir = pgd_offset(&init_mm, 0);
	flush_cache_mm(tsk->mm);
	memcpy(new_pg + USER_PTRS_PER_PGD, page_dir + USER_PTRS_PER_PGD,
	       (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof (pgd_t));
	flush_tlb_mm(tsk->mm);
	SET_PAGE_DIR(tsk, new_pg);
	tsk->mm->pgd = new_pg;
	return 0;
}

static inline void copy_one_pte(pte_t * old_pte, pte_t * new_pte, int cow)
{
	pte_t pte = *old_pte;
	unsigned long page_nr;

	if (pte_none(pte))
		return;
	if (!pte_present(pte)) {
		swap_duplicate(pte_val(pte));
		set_pte(new_pte, pte);
		return;
	}
	page_nr = MAP_NR(pte_page(pte));
	if (page_nr >= MAP_NR(high_memory) || PageReserved(mem_map+page_nr)) {
		set_pte(new_pte, pte);
		return;
	}
	if (cow)
		pte = pte_wrprotect(pte);
	if (delete_from_swap_cache(page_nr))
		pte = pte_mkdirty(pte);
	set_pte(new_pte, pte_mkold(pte));
	set_pte(old_pte, pte);
	mem_map[page_nr].count++;
}

static inline int copy_pte_range(pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long address, unsigned long size, int cow)
{
	pte_t * src_pte, * dst_pte;
	unsigned long end;

	if (pmd_none(*src_pmd))
		return 0;
	if (pmd_bad(*src_pmd)) {
		printk("copy_pte_range: bad pmd (%08lx)\n", pmd_val(*src_pmd));
		pmd_clear(src_pmd);
		return 0;
	}
	src_pte = pte_offset(src_pmd, address);
	if (pmd_none(*dst_pmd)) {
		if (!pte_alloc(dst_pmd, 0))
			return -ENOMEM;
	}
	dst_pte = pte_offset(dst_pmd, address);
	address &= ~PMD_MASK;
	end = address + size;
	if (end >= PMD_SIZE)
		end = PMD_SIZE;
	do {
		/* I would like to switch arguments here, to make it
		 * consistent with copy_xxx_range and memcpy syntax.
		 */
		copy_one_pte(src_pte++, dst_pte++, cow);
		address += PAGE_SIZE;
	} while (address < end);
	return 0;
}

static inline int copy_pmd_range(pgd_t *dst_pgd, pgd_t *src_pgd, unsigned long address, unsigned long size, int cow)
{
	pmd_t * src_pmd, * dst_pmd;
	unsigned long end;
	int error = 0;

	if (pgd_none(*src_pgd))
		return 0;
	if (pgd_bad(*src_pgd)) {
		printk("copy_pmd_range: bad pgd (%08lx)\n", pgd_val(*src_pgd));
		pgd_clear(src_pgd);
		return 0;
	}
	src_pmd = pmd_offset(src_pgd, address);
	if (pgd_none(*dst_pgd)) {
		if (!pmd_alloc(dst_pgd, 0))
			return -ENOMEM;
	}
	dst_pmd = pmd_offset(dst_pgd, address);
	address &= ~PGDIR_MASK;
	end = address + size;
	if (end > PGDIR_SIZE)
		end = PGDIR_SIZE;
	do {
		error = copy_pte_range(dst_pmd++, src_pmd++, address, end - address, cow);
		if (error)
			break;
		address = (address + PMD_SIZE) & PMD_MASK;
	} while (address < end);
	return error;
}

/*
 * copy one vm_area from one task to the other. Assumes the page tables
 * already present in the new task to be cleared in the whole range
 * covered by this vma.
 */
int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
			struct vm_area_struct *vma)
{
	pgd_t * src_pgd, * dst_pgd;
	unsigned long address = vma->vm_start;
	unsigned long end = vma->vm_end;
	int error = 0, cow;

	cow = (vma->vm_flags & (VM_SHARED | VM_WRITE)) == VM_WRITE;
	src_pgd = pgd_offset(src, address);
	dst_pgd = pgd_offset(dst, address);
	flush_cache_range(src, vma->vm_start, vma->vm_end);
	flush_cache_range(dst, vma->vm_start, vma->vm_end);
	while (address < end) {
		error = copy_pmd_range(dst_pgd++, src_pgd++, address, end - address, cow);
		if (error)
			break;
		address = (address + PGDIR_SIZE) & PGDIR_MASK;
	}
	/* Note that the src ptes get c-o-w treatment, so they change too. */
	flush_tlb_range(src, vma->vm_start, vma->vm_end);
	flush_tlb_range(dst, vma->vm_start, vma->vm_end);
	return error;
}

static inline void free_pte(pte_t page)
{
	if (pte_present(page)) {
		unsigned long addr = pte_page(page);
		if (addr >= high_memory || PageReserved(mem_map+MAP_NR(addr)))
			return;
		free_page(addr);
		if (current->mm->rss <= 0)
			return;
		current->mm->rss--;
		return;
	}
	swap_free(pte_val(page));
}

static inline void forget_pte(pte_t page)
{
	if (!pte_none(page)) {
		printk("forget_pte: old mapping existed!\n");
		free_pte(page);
	}
}

static inline void zap_pte_range(pmd_t * pmd, unsigned long address, unsigned long size)
{
	pte_t * pte;

	if (pmd_none(*pmd))
		return;
	if (pmd_bad(*pmd)) {
		printk("zap_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd));
		pmd_clear(pmd);
		return;
	}
	pte = pte_offset(pmd, address);
	address &= ~PMD_MASK;
	if (address + size > PMD_SIZE)
		size = PMD_SIZE - address;
	size >>= PAGE_SHIFT;
	for (;;) {
		pte_t page;
		if (!size)
			break;
		page = *pte;
		pte++;
		size--;
		if (pte_none(page))
			continue;
		pte_clear(pte-1);
		free_pte(page);
	}
}

static inline void zap_pmd_range(pgd_t * dir, unsigned long address, unsigned long size)
{
	pmd_t * pmd;
	unsigned long end;

	if (pgd_none(*dir))
		return;
	if (pgd_bad(*dir)) {
		printk("zap_pmd_range: bad pgd (%08lx)\n", pgd_val(*dir));
		pgd_clear(dir);
		return;
	}
	pmd = pmd_offset(dir, address);
	address &= ~PGDIR_MASK;
	end = address + size;
	if (end > PGDIR_SIZE)
		end = PGDIR_SIZE;
	do {
		zap_pte_range(pmd, address, end - address);
		address = (address + PMD_SIZE) & PMD_MASK;
		pmd++;
	} while (address < end);
}

/*
 * remove user pages in a given range.
 */
int zap_page_range(struct mm_struct *mm, unsigned long address, unsigned long size)
{
	pgd_t * dir;
	unsigned long end = address + size;

	dir = pgd_offset(mm, address);
	flush_cache_range(mm, end - size, end);
	while (address < end) {
		zap_pmd_range(dir, address, end - address);
		address = (address + PGDIR_SIZE) & PGDIR_MASK;
		dir++;
	}
	flush_tlb_range(mm, end - size, end);
	return 0;
}

static inline void zeromap_pte_range(pte_t * pte, unsigned long address, unsigned long size, pte_t zero_pte)
{
	unsigned long end;

	address &= ~PMD_MASK;
	end = address + size;
	if (end > PMD_SIZE)
		end = PMD_SIZE;
	do {
		pte_t oldpage = *pte;
		set_pte(pte, zero_pte);
		forget_pte(oldpage);
		address += PAGE_SIZE;
		pte++;
	} while (address < end);
}

static inline int zeromap_pmd_range(pmd_t * pmd, unsigned long address, unsigned long size, pte_t zero_pte)
{
	unsigned long end;

	address &= ~PGDIR_MASK;
	end = address + size;
	if (end > PGDIR_SIZE)
		end = PGDIR_SIZE;
	do {
		pte_t * pte = pte_alloc(pmd, address);
		if (!pte)
			return -ENOMEM;
		zeromap_pte_range(pte, address, end - address, zero_pte);
		address = (address + PMD_SIZE) & PMD_MASK;
		pmd++;
	} while (address < end);
	return 0;
}

int zeromap_page_range(unsigned long address, unsigned long size, pgprot_t prot)
{
	int error = 0;
	pgd_t * dir;
	unsigned long beg = address;
	unsigned long end = address + size;
	pte_t zero_pte;

	zero_pte = pte_wrprotect(mk_pte(ZERO_PAGE, prot));
	dir = pgd_offset(current->mm, address);
	flush_cache_range(current->mm, beg, end);
	while (address < end) {
		pmd_t *pmd = pmd_alloc(dir, address);
		error = -ENOMEM;
		if (!pmd)
			break;
		error = zeromap_pmd_range(pmd, address, end - address, zero_pte);
		if (error)
			break;
		address = (address + PGDIR_SIZE) & PGDIR_MASK;
		dir++;
	}
	flush_tlb_range(current->mm, beg, end);
	return error;
}

/*
 * maps a range of physical memory into the requested pages. the old
 * mappings are removed. any references to nonexistent pages results
 * in null mappings (currently treated as "copy-on-access")
 */
static inline void remap_pte_range(pte_t * pte, unsigned long address, unsigned long size,
	unsigned long offset, pgprot_t prot)
{
	unsigned long end;

	address &= ~PMD_MASK;
	end = address + size;
	if (end > PMD_SIZE)
		end = PMD_SIZE;
	do {
		pte_t oldpage = *pte;
		pte_clear(pte);
		if (offset >= high_memory || PageReserved(mem_map+MAP_NR(offset)))
 			set_pte(pte, mk_pte(offset, prot));
		forget_pte(oldpage);
		address += PAGE_SIZE;
		offset += PAGE_SIZE;
		pte++;
	} while (address < end);
}

static inline int remap_pmd_range(pmd_t * pmd, unsigned long address, unsigned long size,
	unsigned long offset, pgprot_t prot)
{
	unsigned long end;

	address &= ~PGDIR_MASK;
	end = address + size;
	if (end > PGDIR_SIZE)
		end = PGDIR_SIZE;
	offset -= address;
	do {
		pte_t * pte = pte_alloc(pmd, address);
		if (!pte)
			return -ENOMEM;
		remap_pte_range(pte, address, end - address, address + offset, prot);
		address = (address + PMD_SIZE) & PMD_MASK;
		pmd++;
	} while (address < end);
	return 0;
}

int remap_page_range(unsigned long from, unsigned long offset, unsigned long size, pgprot_t prot)
{
	int error = 0;
	pgd_t * dir;
	unsigned long beg = from;
	unsigned long end = from + size;

	offset -= from;
	dir = pgd_offset(current->mm, from);
	flush_cache_range(current->mm, beg, end);
	while (from < end) {
		pmd_t *pmd = pmd_alloc(dir, from);
		error = -ENOMEM;
		if (!pmd)
			break;
		error = remap_pmd_range(pmd, from, end - from, offset + from, prot);
		if (error)
			break;
		from = (from + PGDIR_SIZE) & PGDIR_MASK;
		dir++;
	}
	flush_tlb_range(current->mm, beg, end);
	return error;
}

/*
 * sanity-check function..
 */
static void put_page(pte_t * page_table, pte_t pte)
{
	if (!pte_none(*page_table)) {
		free_page(pte_page(pte));
		return;
	}
/* no need for flush_tlb */
	set_pte(page_table, pte);
}

/*
 * This routine is used to map in a page into an address space: needed by
 * execve() for the initial stack and environment pages.
 */
unsigned long put_dirty_page(struct task_struct * tsk, unsigned long page, unsigned long address)
{
	pgd_t * pgd;
	pmd_t * pmd;
	pte_t * pte;

	if (page >= high_memory)
		printk("put_dirty_page: trying to put page %08lx at %08lx\n",page,address);
	if (mem_map[MAP_NR(page)].count != 1)
		printk("mem_map disagrees with %08lx at %08lx\n",page,address);
	pgd = pgd_offset(tsk->mm,address);
	pmd = pmd_alloc(pgd, address);
	if (!pmd) {
		free_page(page);
		oom(tsk);
		return 0;
	}
	pte = pte_alloc(pmd, address);
	if (!pte) {
		free_page(page);
		oom(tsk);
		return 0;
	}
	if (!pte_none(*pte)) {
		printk("put_dirty_page: page already exists\n");
		free_page(page);
		return 0;
	}
	flush_page_to_ram(page);
	set_pte(pte, pte_mkwrite(pte_mkdirty(mk_pte(page, PAGE_COPY))));
/* no need for invalidate */
	return page;
}

/*
 * This routine handles present pages, when users try to write
 * to a shared page. It is done by copying the page to a new address
 * and decrementing the shared-page counter for the old page.
 *
 * Goto-purists beware: the only reason for goto's here is that it results
 * in better assembly code.. The "default" path will see no jumps at all.
 *
 * Note that this routine assumes that the protection checks have been
 * done by the caller (the low-level page fault routine in most cases).
 * Thus we can safely just mark it writable once we've done any necessary
 * COW.
 *
 * We also mark the page dirty at this point even though the page will
 * change only once the write actually happens. This avoids a few races,
 * and potentially makes it more efficient.
 */
void do_wp_page(struct task_struct * tsk, struct vm_area_struct * vma,
	unsigned long address, int write_access)
{
	pgd_t *page_dir;
	pmd_t *page_middle;
	pte_t *page_table, pte;
	unsigned long old_page, new_page;

	new_page = __get_free_page(GFP_KERNEL);
	page_dir = pgd_offset(vma->vm_mm, address);
	if (pgd_none(*page_dir))
		goto end_wp_page;
	if (pgd_bad(*page_dir))
		goto bad_wp_pagedir;
	page_middle = pmd_offset(page_dir, address);
	if (pmd_none(*page_middle))
		goto end_wp_page;
	if (pmd_bad(*page_middle))
		goto bad_wp_pagemiddle;
	page_table = pte_offset(page_middle, address);
	pte = *page_table;
	if (!pte_present(pte))
		goto end_wp_page;
	if (pte_write(pte))
		goto end_wp_page;
	old_page = pte_page(pte);
	if (old_page >= high_memory)
		goto bad_wp_page;
	tsk->min_flt++;
	/*
	 * Do we need to copy?
	 */
	if (mem_map[MAP_NR(old_page)].count != 1) {
		if (new_page) {
			if (PageReserved(mem_map + MAP_NR(old_page)))
				++vma->vm_mm->rss;
			copy_page(old_page,new_page);
			flush_page_to_ram(old_page);
			flush_page_to_ram(new_page);
			flush_cache_page(vma, address);
			set_pte(page_table, pte_mkwrite(pte_mkdirty(mk_pte(new_page, vma->vm_page_prot))));
			free_page(old_page);
			flush_tlb_page(vma, address);
			return;
		}
		flush_cache_page(vma, address);
		set_pte(page_table, BAD_PAGE);
		flush_tlb_page(vma, address);
		free_page(old_page);
		oom(tsk);
		return;
	}
	flush_cache_page(vma, address);
	set_pte(page_table, pte_mkdirty(pte_mkwrite(pte)));
	flush_tlb_page(vma, address);
	if (new_page)
		free_page(new_page);
	return;
bad_wp_page:
	printk("do_wp_page: bogus page at address %08lx (%08lx)\n",address,old_page);
	send_sig(SIGKILL, tsk, 1);
	goto end_wp_page;
bad_wp_pagemiddle:
	printk("do_wp_page: bogus page-middle at address %08lx (%08lx)\n", address, pmd_val(*page_middle));
	send_sig(SIGKILL, tsk, 1);
	goto end_wp_page;
bad_wp_pagedir:
	printk("do_wp_page: bogus page-dir entry at address %08lx (%08lx)\n", address, pgd_val(*page_dir));
	send_sig(SIGKILL, tsk, 1);
end_wp_page:
	if (new_page)
		free_page(new_page);
	return;
}
/* lux 权限校验,是否可以读写*/
/*
 * Ugly, ugly, but the goto's result in better assembly..
 */
int verify_area(int type, const void * addr, unsigned long size)
{
	struct vm_area_struct * vma;
	unsigned long start = (unsigned long) addr;

	/* If the current user space is mapped to kernel space (for the
	 * case where we use a fake user buffer with get_fs/set_fs()) we
	 * don't expect to find the address in the user vm map.
	 */
	if (!size || get_fs() == KERNEL_DS)
		return 0;

	vma = find_vma(current->mm, start);//lux 定位虚拟内存
	if (!vma)
		goto bad_area;
	if (vma->vm_start > start)
		goto check_stack;

good_area:
	if (type == VERIFY_WRITE)
		goto check_write;
	for (;;) {
		struct vm_area_struct * next;
		if (!(vma->vm_flags & VM_READ))
			goto bad_area;
		if (vma->vm_end - start >= size)
			return 0;
		next = vma->vm_next;
		if (!next || vma->vm_end != next->vm_start)
			goto bad_area;
		vma = next;
	}

check_write:
	if (!(vma->vm_flags & VM_WRITE))
		goto bad_area;
	if (!wp_works_ok)
		goto check_wp_fault_by_hand;
	for (;;) {
		if (vma->vm_end - start >= size)
			break;
		if (!vma->vm_next || vma->vm_end != vma->vm_next->vm_start)
			goto bad_area;
		vma = vma->vm_next;
		if (!(vma->vm_flags & VM_WRITE))
			goto bad_area;
	}
	return 0;

check_wp_fault_by_hand:
	size--;
	size += start & ~PAGE_MASK;
	size >>= PAGE_SHIFT;
	start &= PAGE_MASK;

	for (;;) {
		do_wp_page(current, vma, start, 1);
		if (!size)
			break;
		size--;
		start += PAGE_SIZE;
		if (start < vma->vm_end)
			continue;
		vma = vma->vm_next;
		if (!vma || vma->vm_start != start)
			goto bad_area;
		if (!(vma->vm_flags & VM_WRITE))
			goto bad_area;;
	}
	return 0;

check_stack:
	if (!(vma->vm_flags & VM_GROWSDOWN))
		goto bad_area;
	if (expand_stack(vma, start) == 0)
		goto good_area;

bad_area:
	return -EFAULT;
}

/*
 * This function zeroes out partial mmap'ed pages at truncation time..
 */
static void partial_clear(struct vm_area_struct *vma, unsigned long address)
{
	pgd_t *page_dir;
	pmd_t *page_middle;
	pte_t *page_table, pte;

	page_dir = pgd_offset(vma->vm_mm, address);
	if (pgd_none(*page_dir))
		return;
	if (pgd_bad(*page_dir)) {
		printk("bad page table directory entry %p:[%lx]\n", page_dir, pgd_val(*page_dir));
		pgd_clear(page_dir);
		return;
	}
	page_middle = pmd_offset(page_dir, address);
	if (pmd_none(*page_middle))
		return;
	if (pmd_bad(*page_middle)) {
		printk("bad page table directory entry %p:[%lx]\n", page_dir, pgd_val(*page_dir));
		pmd_clear(page_middle);
		return;
	}
	page_table = pte_offset(page_middle, address);
	pte = *page_table;
	if (!pte_present(pte))
		return;
	flush_cache_page(vma, address);
	address &= ~PAGE_MASK;
	address += pte_page(pte);
	if (address >= high_memory)
		return;
	memset((void *) address, 0, PAGE_SIZE - (address & ~PAGE_MASK));
	flush_page_to_ram(pte_page(pte));
}

/*
 * Handle all mappings that got truncated by a "truncate()"
 * system call.
 *
 * NOTE! We have to be ready to update the memory sharing
 * between the file and the memory map for a potential last
 * incomplete page.  Ugly, but necessary.
 */
void vmtruncate(struct inode * inode, unsigned long offset)
{
	struct vm_area_struct * mpnt;

	truncate_inode_pages(inode, offset);
	if (!inode->i_mmap)
		return;
	mpnt = inode->i_mmap;
	do {
		unsigned long start = mpnt->vm_start;
		unsigned long len = mpnt->vm_end - start;
		unsigned long diff;

		/* mapping wholly truncated? */
		if (mpnt->vm_offset >= offset) {
			zap_page_range(mpnt->vm_mm, start, len);
			continue;
		}
		/* mapping wholly unaffected? */
		diff = offset - mpnt->vm_offset;
		if (diff >= len)
			continue;
		/* Ok, partially affected.. */
		start += diff;
		len = (len - diff) & PAGE_MASK;
		if (start & ~PAGE_MASK) {
			partial_clear(mpnt, start);
			start = (start + ~PAGE_MASK) & PAGE_MASK;
		}
		zap_page_range(mpnt->vm_mm, start, len);
	} while ((mpnt = mpnt->vm_next_share) != inode->i_mmap);
}

static inline void do_swap_page(struct task_struct * tsk,
	struct vm_area_struct * vma, unsigned long address,
	pte_t * page_table, pte_t entry, int write_access)
{
	pte_t page;

	if (!vma->vm_ops || !vma->vm_ops->swapin) {
		swap_in(tsk, vma, page_table, pte_val(entry), write_access);
		flush_page_to_ram(pte_page(*page_table));
		return;
	}
	page = vma->vm_ops->swapin(vma, address - vma->vm_start + vma->vm_offset, pte_val(entry));
	if (pte_val(*page_table) != pte_val(entry)) {
		free_page(pte_page(page));
		return;
	}
	if (mem_map[MAP_NR(pte_page(page))].count > 1 && !(vma->vm_flags & VM_SHARED))
		page = pte_wrprotect(page);
	++vma->vm_mm->rss;
	++tsk->maj_flt;
	flush_page_to_ram(pte_page(page));
	set_pte(page_table, page);
	return;
}

/*
 * do_no_page() tries to create a new page mapping. It aggressively
 * tries to share with existing pages, but makes a separate copy if
 * the "write_access" parameter is true in order to avoid the next
 * page fault.
 *
 * As this is called only for pages that do not currently exist, we
 * do not need to flush old virtual caches or the TLB.
 */
void do_no_page(struct task_struct * tsk, struct vm_area_struct * vma,
	unsigned long address, int write_access)
{
	pgd_t * pgd;
	pmd_t * pmd;
	pte_t * page_table;
	pte_t entry;
	unsigned long page;

	pgd = pgd_offset(tsk->mm, address);
	pmd = pmd_alloc(pgd, address);
	if (!pmd)
		goto no_memory;
	page_table = pte_alloc(pmd, address);
	if (!page_table)
		goto no_memory;
	entry = *page_table;
	if (pte_present(entry))
		goto is_present;
	if (!pte_none(entry))
		goto swap_page;
	address &= PAGE_MASK;
	if (!vma->vm_ops || !vma->vm_ops->nopage)
		goto anonymous_page;
	/*
	 * The third argument is "no_share", which tells the low-level code
	 * to copy, not share the page even if sharing is possible.  It's
	 * essentially an early COW detection
	 */
	page = vma->vm_ops->nopage(vma, address,
		(vma->vm_flags & VM_SHARED)?0:write_access);
	if (!page)
		goto sigbus;
	++tsk->maj_flt;
	++vma->vm_mm->rss;
	/*
	 * This silly early PAGE_DIRTY setting removes a race
	 * due to the bad i386 page protection. But it's valid
	 * for other architectures too.
	 *
	 * Note that if write_access is true, we either now have
	 * a exclusive copy of the page, or this is a shared mapping,
	 * so we can make it writable and dirty to avoid having to
	 * handle that later.
	 */
	flush_page_to_ram(page);
	entry = mk_pte(page, vma->vm_page_prot);
	if (write_access) {
		entry = pte_mkwrite(pte_mkdirty(entry));
	} else if (mem_map[MAP_NR(page)].count > 1 && !(vma->vm_flags & VM_SHARED))
		entry = pte_wrprotect(entry);
	put_page(page_table, entry);
	/* no need to invalidate: a not-present page shouldn't be cached */
	return;

anonymous_page:
	entry = pte_wrprotect(mk_pte(ZERO_PAGE, vma->vm_page_prot));
	if (write_access) {
		unsigned long page = __get_free_page(GFP_KERNEL);
		if (!page)
			goto sigbus;
		memset((void *) page, 0, PAGE_SIZE);
		entry = pte_mkwrite(pte_mkdirty(mk_pte(page, vma->vm_page_prot)));
		vma->vm_mm->rss++;
		tsk->min_flt++;
		flush_page_to_ram(page);
	}
	put_page(page_table, entry);
	return;

sigbus:
	force_sig(SIGBUS, current);
	put_page(page_table, BAD_PAGE);
	/* no need to invalidate, wasn't present */
	return;

swap_page:
	do_swap_page(tsk, vma, address, page_table, entry, write_access);
	return;

no_memory:
	oom(tsk);
is_present:
	return;
}

/*
 * The above separate functions for the no-page and wp-page
 * cases will go away (they mostly do the same thing anyway),
 * and we'll instead use only a general "handle_mm_fault()".
 *
 * These routines also need to handle stuff like marking pages dirty
 * and/or accessed for architectures that don't do it in hardware (most
 * RISC architectures).  The early dirtying is also good on the i386.
 *
 * There is also a hook called "update_mmu_cache()" that architectures
 * with external mmu caches can use to update those (ie the Sparc or
 * PowerPC hashed page tables that act as extended TLBs).
 */
static inline void handle_pte_fault(struct vm_area_struct * vma, unsigned long address,
	int write_access, pte_t * pte)
{
	if (!pte_present(*pte)) {
		do_no_page(current, vma, address, write_access);
		return;
	}
	set_pte(pte, pte_mkyoung(*pte));
	flush_tlb_page(vma, address);
	if (!write_access)
		return;
	if (pte_write(*pte)) {
		set_pte(pte, pte_mkdirty(*pte));
		flush_tlb_page(vma, address);
		return;
	}
	do_wp_page(current, vma, address, write_access);
}

void handle_mm_fault(struct vm_area_struct * vma, unsigned long address,
	int write_access)
{
	pgd_t *pgd;
	pmd_t *pmd;
	pte_t *pte;

	pgd = pgd_offset(vma->vm_mm, address);
	pmd = pmd_alloc(pgd, address);
	if (!pmd)
		goto no_memory;
	pte = pte_alloc(pmd, address);
	if (!pte)
		goto no_memory;
	handle_pte_fault(vma, address, write_access, pte);
	update_mmu_cache(vma, address, *pte);
	return;
no_memory:
	oom(current);
}


text:
Sterling Jewelers alleged to have continued to call consumer after he revoked consent
By Jenie Mallari-Torres | Apr 1, 2017
OCALA – A Marion County consumer claims a jeweler continued to place collection calls after he revoked his consent.
George Ward filed a complaint on March 27 in the U.S. District Court for the Middle District of Florida, Ocala Division against Sterling Jewelers Inc., doing business as Kay Jewelers, alleging that the foreign profit corporation violated the Telephone Consumer Protection Act.
According to the complaint, the plaintiff alleges that he has suffered and will continue to suffer from harm and injury, from receiving harassing calls in an attempt by the defendant to collect on an alleged debt. The plaintiff holds Sterling Jewelers Inc. responsible because the defendant allegedly continued to make calls despite plaintiff's explicit demand to stop the improper calls and unlawfully utilized an automatic telephone dialing system and/or an artificial or pre-recorded voice.
The plaintiff requests a trial by jury and seeks judgment against defendant, actual damages, statutory damages of $500 for every violation, costs of action, attorney's fees, and other relief the court deems just. He is represented by Christopher W. Boss of Boss Law in St. Petersburg.
U.S. District Court for the Middle District of Florida, Ocala Division Case number 17-cv-128
Want to get notified whenever we write about U.S. District Court for the Middle District of Florida, Ocala Division ?
Sign-up Next time we write about U.S. District Court for the Middle District of Florida, Ocala Division, we'll email you a link to the story. You may edit your settings or unsubscribe at any time.
U.S. District Court for the Middle District of Florida, Ocala Division