text:
Gobi Desert Dunes and Mongolia Steppes Ride
$2,095-2,456
Ride Overview
Ride Details
Book This Ride
Meet Thomas
Thomas is your senior guide for this ride. Have a questions about this ride? Ask Thomas directly!
Message Thomas
Ride Overview - Gobi Desert Dunes and Mongolia Steppes Ride
Adventure Ride
Landlocked between China and Russia, Mongolia is a mythical paradise for an amazing horseback riding vacation! This ride uniquely combines both the desert dunes and steppes in Central Mongolia. The change in your terrain is dramatic. For three days, your trail will lead you across the windswept sand dunes and rocky cliffs of the Gobi Desert. This region covers about one-third of the surface of Mongolia and served as the Silk Road. Pack camels will move your belongings. The next five days will be experienced in the verdant grasslands, savannas, and shrublands of the Orkhon Valley steppe. The valley is considered the center of the Mongolian Empire. Your mount is the ancient small Mongolian horse, legendary for its toughness. Your lodging is 7 nights camping – 2 nights in a yurt camp, 1 night in a yurt with a nomadic family, 2 nights in a 2* hotel in Ulaanbaatar. The 13th-century traditional yurt (ger in Mongolian) is constructed of wood and felt held together with braided horsehair straps. The hut is richly decorated with color and symbols. Inside, a wooden floor and carpets will isolate you from cooler temperatures and moisture. Beds, also used as sofas, are positioned left and right of the door. Showers, washbasins and toilets are available in a separate building. The nomadic family yurts provide shower tents, water can be heated on the stove and dry toilets.
guide, native to Mongolia and resident of France, understands the quality requirements of foreign riders, and the specificities of Mongolia.
"It took us years to prepare this tour: we wanted to offer a horse riding tour including both steppe and dunes. Camels add an exotic touch to the ride in Bayan Gobi Desert."
Ride Itinerary - Gobi Desert Dunes and Mongolia Steppes Ride
You will be welcomed at 10:30 A.M.(via Turkish Airlines) at the Ulan Bator Airport by your English-speaking translator. Lunch is on your own. Afterward, you can visit the Gandantegchinlin Monastery. Built in 1809, the monastery, formerly known as the Gandan Monastery, is built in the Tibetan Buddhist style. Its name means "Great Site Full of Joy." Several hundred monks currently reside there as well as the statue of Megjid-Janraiseg (Bodhisattva Avalokiteshvara – called Chenrezig in Tibetan). The figure is 87 feet tall, weighs over 20 tons, adorned with gold and nearly 2,286 precious stones, and is covered with nearly 100 kg of silk clothing. Next, you will visit the National Museum of Mongolian History that provides the story of the country, from prehistoric times to today. In this museum, there is also an ethnographic section with costumes and jewels from various ethnic groups of countries: Kazakhstan, Buriats, Üzemchins. After dinner, you will overnight in the Dream hotel or similar (2* – twin or triple room).
After breakfast, you will be transferred in a 4×4 vehicle to the Bayan Gobi Desert, the "rich Gobi." Lunch will be served along the way. On arrival, you will meet the nomadic herder who will be your equestrian guide for the next three days of horseback riding amongst the dunes and steppes in the Bayan Gobi wilderness. Your first camp will be erected in a sparsely populated area on the southern edge of the Bayan Gobi Desert. You will be responsible to set up your own tent. A shower tent and a large tent for the preparation of meals make our camp comfortable. Dinner will be served in the common meal tent.
Days 3, 4 and 5:
You will ride for three days in the wilderness of Bayan Gobi. In this environment of dunes, mountains and steppes, the pack camels are very useful to carry luggage, tents and supplies. Camels are also the typical mode of transportation in the region so riding a horse is a unique experience. Truly, the heart of Mongolia, it is at the junction of three major Mongolian ecosystems: two of the main mountain ranges in the country – the Khangai and Khentii – and a northern edge of the Gobi Desert. Mount Batkhan overlooks this area and gives rise to several rivers that mix their waters with the sand dunes of Elsentasarkhai, the "sand break," forming changing and spectacular scenery. Every night, your group will set up camp.
On day 4, you will have an opportunity to ride camels at the end of your ride.
In the afternoon of day 5, your ride will reach the Khogno Khan Cliffs, where you will visit the Ovgon Khiid Monastery located in a dramatic setting. You will dine and overnight in a yurt camp nestled at the foot of the cliffs. (2-4 riders per yurt in individual beds, showers, and toilets in a separate building).
After breakfast, a 4-5 hours drive will take you to the Orkhon Valley, a famous World Heritage Site in Central Mongolia. You will meet the nomadic herders and horses who will be our companions during the next 8 days horse ride. The change in environment is striking: after the desert and sandy expanses of Bayan Gobi, you are now in a mountainous area, a maze of green valleys with forested slopes. After lunch, you will start your ride on horseback in the larch forests covering the first slopes of the Naiman Nuur Park, located in the upstream part of the Orkhon Valley. you will set up camp in the wilderness for dinner and overnight.
Day 7 – 1o:
These 5 days on horseback are dedicated to exploring the famous Orkhon Valley, starting from the upstream region close to Naiman Nuur Park down to Karakorum, the former capital of the Mongol Empire. During this ride, you will see the Orkhon Falls, visit Tovkhon Monastery, high in the Khangai Mountains bordering the northern part of the Valley, and have a bath at Mogoit Hot Springs! Your ride ends in Karakorum where your group will visit Erdene Zuu Monastery.
Day 11:
After breakfast, your group will be driven to Karakorum, the former capital of the Mongolian Empire, founded in 1235 by Ogödei, the son of Genghis Khan. Lunch will be served the Karakorum ger camp. You will then visit the Erdene Zuu Monastery. A wall with 108 stupas surrounds it. 108 is a sacred number in Buddhism as well as the number of beads in a Buddhist rosary (mala). For centuries, Erdene Zuu was the most important religious shrine in Mongolia. In 1939, the communist leader Horloogiyn Choybalsan destroyed the monastery, in a purge that resulted in the disappearance of hundreds of monasteries in Mongolia and killed over ten thousand monks. Three small temples and the outer wall with the stupas remained; the temples became museums in 1947. After the fall of communism in Mongolia in 1990, the monastery was given to lamas and Erdene Zuu again became a place of worship. The site was restored at the end of the century and regained part of its religious aspect. Today, Erdene Zuu remains an active Buddhist monastery as well as a museum that is open to tourists. Your group's dinner and night will be at the ger camp (2 to 4 riders per yurt, with single beds, showers in a separate building).
Breakfast and early departure to Ulan Bator where your group will arrive in the afternoon. Lunch enroute. The rest of the afternoon is dedicated to shopping in stores downtown, or at the Narantuul "black market" where you will find traditional clothing and objects of daily life. In the late afternoon, you will attend a show with traditional dances, music and songs from Mongolia, especially the amazing Khoomei. You will be "on your own" for dinner and will have a varied choice of opportunities in Ulan Bator. Night at Dream hotel or similar (2* – twin or triple room).
You will be transferred to the airport for departing flights after 7:10 AM.
This itinerary may change based on unforeseen circumstances or weather.
Ride Details - Gobi Desert Dunes and Mongolia Steppes Ride
Dates: May 4th – 16th, May 25th – June 6th, June 15th – 27th, July 6th – 18th, July 27th- August 8th, August 24th – September 5th, September 14th – 26h Departing every Saturday. The final day is Thursday. This ride can be extended by 7 days to either Lake Khusvgul.
Meeting point: Ulan Bator Airport, Turkish Airline is the preferred carrier
Riding days: 8
Daily Riding Hours: 5
Group size: 2 to 10
Riding Ability: INTERMEDIATE: Confident and in control at all paces including posting trots and canters
Horses: Mongolian
Saddles: Mongolian saddle designed to fit rider and horse, Western
Hotel/s: Tents, Mongolian "GER" camp, 2* hotels in Ulaanbaatar. For 3 nights, camp and tents in the wilderness, 1 night will be spent in a guest yurt close to a nomadic family (up to 5 persons per yurt), and the last night will be spent in a touristic yurt camp in Karakorum (2 to 4 persons/yurt – showers in a separate building).
Non-rider Activities: none
Price: $2,095.00 per person, double occupancy $75.00 single supplement (2 nights in Ulan Batan only)
$296.00 supplement for groups under 4.
Single occupant tent available upon extra cost and request.
*Price is based on the USD/EURO exchange rate and will be fixed at your final payment.
Includes: 12 nights lodging which includes 7 nights in a tent, 3 nights in a ger and 2 nights in a hotel, all meals listed in the itinerary, 8 riding days, horses, tack, entrance fees, sightseeing as per itinerary, 4WD vehicle transportations, English speaking guide
Not Included: airfare, 1 dinner, booking fee (15 euro)
**Day 1: Meeting at the arrival of the Turkish Airlines flight, at 11:30 am. If you do not arrive on this flight: please book private transfers
***Day 13: Transfer to the airport for the Turkish Airlines flight departing after 8:00 am. If you do not leave on this flight: please book private transfers
ANNUAL TEMPERATURE AND RAINFALL:
Gobi Desert Dunes and Mongolia Steppes Ride: Gallery


Javi Marroquin Slams Kailyn Lowry on Twitter: "Don't Play Mother Theresa Now"
Looks like there's no chance at a reconciliation between Kailyn Lowry and Javi Marroquin.
The pregnant Teen Mom 2 star stopped by the live aftershow on Monday, March 6 with her co-star Leah Messer to chat about the current season. But when a fan wrote in and asked about her relationship with Javi, Kail said that she would like to eventually build a friendship with her ex-husband so that they can co-parent their three-year-old son Lincoln — and Javi responded on Twitter.
A fan responded to Javi and told him that the only thing that's needed to maintain a good co-parenting relationship is good communication, not friendship and Javi agreed.
"Facts. Friendship and co-parenting are [two] different things," the 24-year-old tweeted.
It seems like even though Javi and Kail were once so in love that they got matching tattoos together, that's definitely not the case anymore.
MORE: Kailyn Lowry's Rumored Baby Daddy Chris Lopez Throws Shade at Her Ex-Husband Javi Marroquin!
The state of their relationship slowly deteriorated — and after suffering a heartbreaking miscarriage and trust issues, the couple split for good. Since their divorce was finalized last December, the former couple has taken jabs at each other on social media, and after cheating allegations, abuse claims, and even Kail's pregnancy shocker — with Javi even admitting that he's not the father of Kail's unborn child — it seems like their relationship and friendship is way beyond repair.
Scroll through the gallery below to see a timeline of Kail's third pregnancy!


A global management consultancy has a vacancy for a highly experienced digital professional to join its London office in a Senior Digital Marketing Manager role with overarching responsibility for company-wide digital and social media marketing strategy and implementation.
Reporting in to the Head of Communications & Marketing and supported by a Digital Executive, the role is central in the growth of the firm's global brand and the Senior Digital Marketing Manager will be expected to significantly boost the exposure of the company's online content and generate business leads. You will advocate best digital and social marketing practices globally, including building and creating a community of social advocates, and supporting specific regional and local digital campaigns The successful candidate will be tasked with developing and driving a company-wide digital strategy, across multiple channels including content marketing, social media, website and apps and will advocate best digital and social marketing practices globally, including building and creating a community of social advocates, and supporting specific regional and local digital campaigns. Key responsibilities will include creating online engagement via the shaping and delivery of global digital campaigns; managing an external digital agency and leading the design and implementation of an initial website refresh; ensuring the website is maintained for optimal performance, regulatory compliance and security: and creating app capabilities within the company.


Our first retreat, Integrating Rituals Into Your Week: 5 New Ways to Practice Self-Care, will be held at the beautiful Forage Florals barn located at Sunstone Estates, 125 North Refugio Road in Santa Ynez, California. We will focus on five main pillars of wellness: movement, creativity, nourishment, relaxation, and mindfulness. Whether you are new to these activities or an expert, our seminars are designed to elevate your well-being and provide a retreat from everyday life to focus on self-care.
For movement, Sarah Highnote leads Restorative Flow where she will guide you through a sequence of deep stretches, free-flowing poses and breath work aimed at enhancing flexibility, relieving any tension or stress and relaxing the mind.
Forage Florals covers the creativity pillar with a hands-on workshop creating intentional bath salts focus on energizing moods, healing emotions and relaxing the mind.
Melissa Hepler, an Ayurveda expert, will teach you the art of making authentic ayurvedic tea. She will explore the benefits of this powerful detoxifier that improves nutrient absorption, stimulates the lymphatic system and flushes out toxins.
A popular form of relaxation, aromatherapy, will be led by Rebecca Mendelson. In this workshop, she will cover the basics of essential oils such as what they are, how they can be used and safety tips. You will have the opportunity to mix your very own roller bottle blend to take home.
For the final pillar, Mindfulness, Lauren Bragg, will teach designing abundance through journaling. Using a variety of journalizing exercises that help attract and manifest what's most important to you, you will create a roadmap with Bragg to help you achieve your passionate goals.
A one-day retreat ticket costs $325 and includes a picnic lunch, snacks and beverages and a glass of Sunstone wine at the end of the retreat to enjoy with your new friends. With only twenty spaces available, retreats expect to sell out so we encourage you to purchase your ticket soon. Can't make this one? Valley Wellness Collective will host up to three retreats per month with different experts featured at each event. A portion of all proceeds will benefit local Santa Ynez Valley charities focused on health and wellness.
Visit http://www.valleywellnesscollective.com to purchase tickets.


DARIEN—"Never walk in a patient's room and leave half of yourself at the door. They need the other half," said Orthopedic Surgeon and author Dr. Joseph Dutkowsky, at the 25th Annual White Mass Breakfast at Woodway Country Club.
Dr. Dutkowsky, who has dedicated much of his practice to caring for patients with cerebral palsy and other special needs, said every healthcare practitioner has the obligation to know the latest in science and medicine, but also to recognize the role of faith and spirit in healing.
Dr. Dutkowsky is an Attending Orthopaedic Surgeon at Bassett Medical Center in upstate New York and an Associate Clinical Professor of Orthopaedic Surgery at Columbia University College of Physicians. He is president of the American Academy for Cerebral Palsy and Developmental Medicine.
In one of the most profound and prayerful White Mass talks, Dr. Dutkowsky said that the sacredness of human life and "the shared life force" have the power to connect faith and science and create a new sense of reverence for life.
The noted medical scientist said that faith and science are different and reasonable "ways of knowing" and that both pathways can connect to bring a new understanding of the human condition.
Dr. Dutkowsky told the breakfast gathering of more than 200 men and women that for him the greatest "cohesion of faith and science is found in the Eucharist," where the body and blood of Christ enter the body bringing God's love and mercy–his living presence– to us.
He said 1999 was a difficult year for him and also provided a transformational moment in his life and practice.
He found himself "discouraged, almost despondent" about the business of healthcare with its red tape, insurances, and balance sheets, when an encounter with an elderly patient brought his faith and medical practice together.
He was working the emergency rotation when he was told that an 85-year old woman from a rural town about 45 minutes away needed surgery for a broken wrist.
It took she and her husband, who suffered from memory loss and confusion, almost three hours to get to the hospital, and when Dr. Dutkowsky first met her, she was disconsolate—not for herself but over her husband.
"I'm afraid I've lost Gordon," she told him, noting that he probably was lost in the parking lot. Dr. Dutkowsky asked Security to look for him, and in a short time the couple, who were married 63 years, were reunited around her hospital bed.
As Dr. Dutkowsky was about to begin the procedure the patient said to her husband, "Gordon, come here and hold me tight." That simple human gesture and their love for each other that "transcended age and forgetfulness" powerfully affected Dr. Dutkowsky.
During the breakfast Bishop Caggiano presented the 2018 Father Rufin Compassionate Care Awards to Dr. Patrick Cahill and healthcare volunteer Nathaniel Beckles.
Dr. Cahill, a Stamford obstetrician and gynecologist, was honored for his mission service to serve Honduran woman and for his outreach to low-income families in the Stamford area. He was nominated by Fr. Kevin Royal, pastor of Holy Spirit Parish in Stamford, where he is a parishioner and member of the parish council.
Nathaniel Beckles was recognized for his service as a volunteer at St. Camillus Health Center in Stamford. A Brooklyn native, he began volunteering when his uncle was a patient. He often leads the Rosary for patients in the chapel. Mr. Beckles was nominated by Fr. Matt Mauriello, a member of the Pastoral Care Team at St. Camillus, nominated, who praised his for his quiet and strong service in the spirit of St. Joseph.
The bishop also presented an honorary award to Dr. Thomas Flynn of New Canaan who approached Bishop Edward Egan twenty-five years ago with the idea of bringing his colleagues together for a White Mass to celebrate their faith and role as healers in the community.
"Dr. Flynn is a pre-eminent physician and a man of great faith who has healed by is skills, his presence, and his accompaniment of those who are sick and suffering," the bishop said.
The day began when more than 300 gathered for Mass for at St. Aloysius Church in New Canaan for the White Mass con-celebrated by Bishop Caggiano and priests including those who serve in healthcare care settings throughout the diocese.
He thanked all healthcare workers for their sense of ministry as they "face the mystery of suffering everyday" and become "vehicles of God's presence" in their work to bring physical and spiritual healing.
Pictured above — Bishop Frank J. Caggiano, keynote speaker Dr. Joseph Dutkowsky, and Dr. Thomas Flynn at the White Mass breakfast held at Woodway Country Club.


A young couple debates if they should kill themselves before the impact or hide and hope for the best.
Hi Petra! Nice idea, I liked it! I agree with some of the other comments that perhaps you could start it later and focus on the debate around the suicide to make the decisions harder for each and drive home the impact of the twist at the end, but a great idea.
Enjoyed reading this. The one remaining bullet coming back at the end is very nicely done. Neat little twist, well executed. Also, good use of the imminent impact as a way of raising the stakes.
Really liked this, although it contains a pet peeve of mine - the line 'We'll figure it out!' It's a line that is used far too often in my opinion. More can be said with a look or a caress. That's maybe just me though.
Loved the way the final bullet came in useful.


text:
Tommy Aiming To Secure World Cup Spot Tonight
Skipper facing Costa Rica in World Cup Play Off
Andy Carmichael
Tommy Smith is aiming to help New Zealand to secure a spot at this year's Qatar World Cup later today, with the All Whites' play-off game.
New Zealand will be facing off against Costa Rica in Doha at 7pm this evening, and Tommy Smith will be hoping he can help his country to make it to a second World Cup in twelve years.
The All Whites successfully navigated their way through the Oceania qualifying stage earlier this year, setting up tonight's fixture against the Central American side, who sit seventy places ahead in the FIFA World Rankings.
The U's Captain played the first half of New Zealand's first warm up game, a 1-0 defeat to Peru last Sunday, and then the second half of their goalless draw to Oman on Thursday, and will be hoping to make his forty-ninth cap later today.
You can watch the game live on BBC iPlayer later this evening, click HERE to stay up to date with the game.

redpajama_set_name: RedPajamaCommonCrawl


text:
New ad supports 'Choose me or lose me' campaign
Walkers is supporting its Choose or Lose campaign with a new TV ad that's on air for six weeks. Via the campaign, Walkers is putting some of its favourite flavours in jeopardy by giving customers the chance to keep their favourite flavours or swap them for a new flavour.
Shoppers can choose between classic and new flavours either by purchasing a single pack or voting online.
The new advert features a woman who is selecting a packet of Walkers crisps from a store. Not knowing which packet of crisps to choose, suddenly she is thrown into a gameshow hosted by Gary Lineker with an audience split into two sets of supporters: Salt & Vinegar and Lime & Black Pepper, both encouraging the woman to choose their flavour.
Thomas Barkholt, marketing director at PepsiCo, commented: "We know shoppers love our flavour campaigns and we are pleased to be able to introduce a TV advert to support Choose or Lose for maximum impact. We've really highlighted the opportunity to vote in our new ad as we know our customers feel passionately about their favourite flavours and like to have their say. We're confident that it will create awareness."
0118 930 6666 www.countsformore.com


You will work internally with the account management and product team to help support customer retention, growth and happiness. You will be responsible for critical internal projects to effectively onboard and service our customers. In this role you will help build, implement, and refine the customer success and support process. In short, the entire role is to deliver a happy, satisfied, referring customer. You must be comfortable working at a fast pace and treat the "job" as your own business, and thrive on learning daily.
Maintain a deep understanding of our solutions, content and the most relevant features/functionality for each customer's specific business needs.
Resolve customer support issues quickly using resources from across the company.
Monitor customer usage throughout the customer lifecycle to not only identify and prioritize at-risk accounts but also run standardized plays to mitigate churn.
Support the resolution of delivery, implementation or technical issues.
Contribute ideas to overall company strategy and product roadmap.
Work closely with Account Management (AM) team to ensure effective and efficient onboarding of new customers and drive greater usage/adoption over time.
Partner with Account Management (AM) team to develop information and data-driven touchpoints for customers to continuously demonstrate value.
Serve as the voice of the customer and provide internal feedback to Product, Content and other teams on how Built In can better serve our customers.
Interface and collaborate with Product, Sales, Marketing and Executive Leadership to achieve client goals.
1+ years' experience in Customer Support or related field, such as Client Onboarding, Client Engagement, or Customer Service.
Empathy for customers, and a passion for helping them.
Successful track record of designing, implementing and validating processes and policies.
Team player with a strong sense of ownership and get things done attitude.
Strong project-management skills, including great attention to detail.
Diplomacy and grace under pressure.
Understand success analytics and are comfortable sharing your success metrics and being held to goals.
Past startup experience or strong desire to be at a startup and a part of a growing organization and the challenges that come with it.


text:
Local Status: Very scarce and restricted resident or migrant/wanderer.
Local Record: Grade 3 See here for explanation
Flight time: One generation, Jul-Aug
Forewing: 16-18mm.
Foodplant: Goose-foots, Oraches.
Year first recorded 1964 1985 1964
Year last recorded 2011 2005 2011
Number of records 43 10 106
Number of individuals 43 10 106
Unique positions 23 6 58
Unique locations 23 5 56
Adult records 41 10 102
Immature records 0 0 0
For the region, we have a total of 106 records from 56 sites. Earliest record on file is in 1964.
© Jack Oughton
© Tom Morris
Davey, P., 2009: A species found across much of Britain, apart from northern Scotland, the larva feeding on goosefoot (Chenopodium spp.) and orache (Atriplex spp.). In Dorset, the moth is rare (less than thirty records) and tends to be observed singly on any given night suggesting perhaps that the species is either at a very low density indeed, or it is a transient resident of high-nutrient verge and disturbed ground, or that it has immigrant rather than resident status. Unlike the Plain Pug1842 which also depends on goosefoots and oraches, this species does not seem to be associated with oraches growing on muddy shorelines, for example there are no records from the Fleet region nor from twenty-five years trapping at Arne next to Poole Harbour. The species moths appeared unexpectedly at light traps in Hampshire localities on 21 August 1996, 9 August 1998 and 29 July 1999, respectively. The following were noted in Dorset coincident with these dates: Portland, on 19 August 1996, 29 July 1999 (M Cade), Grove, on 19 August 1996 (D Walbridge), Gaunts Common, on 14 August 1996, 9 August 1998, 13 August 1998 (P Davey).


In the Oct. 10 Food Guide, one of the locations of Pastificio, a gourmet Italian carryout, was listed incorrectly as being in Downers Grove. Pastificio is located in Buffalo Grove and Highwood. The Tribune regrets the error.


text:
Egan: Raw milk, raw deal? Farmer fined $1,500, quits milking operation
Kelly Egan
GOLDEN LAKE — The cattle have all disappeared, all 11 hoofing it into nearby woods — the Jerseys named Jade, Emilie, Isabelle and Jennifer, Beverly and Apple, and various heifer hangers-on — spooked by the sound of loudly crunching snow.
How now, brown cows, with your dark eyes and terrible timing?
"They'll be back," says farmer Michael Ilgert, 54, standing in the barnyard on a beautiful sunny day at his rolling 50-acre farm deep in Renfrew County. "They know where the water is."
But here's what won't return: Ilgert's raw milk operation, which he shut down this month after pleading guilty to three provincial offences and agreeing to $1,500 in fines.
"The whole issue around raw milk in Canada screams hypocrisy," he says, now on a stool in the kitchen. "That qualifies everything I've gone through. It's just total hypocrisy from beginning to end."
It is legal to drink raw milk in Ontario — and surveys say about 80 per cent of dairy farmers do. But it is illegal to sell or distribute it, which is exactly what he was doing for about 60 customers, including a number in the Ottawa area.
Isabelle. courtesy Michael Ilgert / OTTwp
Defence lawyer Doug Baum, who has helped the dairyman's legal fight, drew attention to the double standard.
"The province says you can't drink raw milk because it's unpasteurized and dangerous. However, if you're a farm family, you can drink it. Go knock yourself out. And if I drive up to Mike's place, he can serve me all the raw milk I want.
"But he can't put it in a bottle, drive it to Ottawa and hand it to someone."
Adds Ilgert, a tradesman who jokingly refers to himself as "drywaller to the stars" for his roster of high-profile customers: "I'm doing nothing wrong. I'm giving healthy food to people who ask me for it."
And there the disagreement sharpens. Public health authorities, with all the science behind them, say dairy milk must be pasteurized, a rapid heating process that destroys harmful pathogens such as E. coli, campylobacter, salmonella and listeria, microbes that can cause serious illness.
Thus, by law, all the milk mass-retailed in Ontario and across North America has been pasteurized for decades.
Yet Ilgert and others say consumers should be permitted the choice, making their own decisions about the health risks and benefits involved in drinking unprocessed milk, as they do in dozens of American states.
Customer Jean Simon Bédard, 25, a software developer, drank Ilgert's raw milk for about two years to cope with ulcerative colitis. He said the terrible side effects of pasteurized milk — "like dumping a sandbag in my arteries" — stopped immediately and described the raw version as "tastier."
"I wish we would put more resources into figuring out what the deal is with raw milk. I know I'm not the only one who has no (allergic) reaction to it."
Bella and Julie. Courtesy Michael Ilgert / OTTwp
Ilgert started small in 2010. A farm kid, he grew up drinking raw milk and started to produce enough for himself and sharing the excess from a single cow with friends and neighbours. Then word spread.
Before long, he was listed on a U.S. real milk website and calls started coming in from Ottawa. At his peak, he was producing about 300 litres a week from five or six cows.
The milk came straight from the animal, was filtered through a cloth, then poured into one-litre jars that were refrigerated. He would make regular runs to drop-off points in Ottawa, selling the milk for about $3 a litre.
His customers fell into three categories, he said: those allergic to pasteurized milk, immigrants accustomed to raw milk in their homelands, and "foodies" who are keen on organic, locally-produced foods that don't come from a factory.
Raw milk has had a lively legal history in Ontario over the past 25 years, largely focused on Michael Schmidt, the southern Ontario farmer who has had many court battles over pasteurization.
Ilgert has taken workshops at the Schmidt farm and both were using a novel approach to get around provincial laws by exploiting an apparent loophole. They sold shares in the cows, thus making customers part-owners of the animals and a kind of long-distance farmer engaged in a co-op.
Ilgert operated on that basis, selling shares, even hosting his own website. It caught the attention of the Renfrew County health unit, which eventually sent inspectors over to have a look. Some raw milk was bought "under cover" and the farmer was slapped with five charges in 2017.
He was fighting those charges when, in January, a ruling from Ontario Superior Court Justice Phillip Sutherland in Newmarket threw out the "cow-share" defence as a way to legally distribute raw milk.
Ilgert was worried he was risking jail time, raids or seizures from health unit inspectors. So he stopped production and settled an outstanding case by pleading guilty to three charges.
So now the cows have gone dry and Ilgert is working on Plan B, which is to lobby for a change in the Health Protection and Promotion Act. He's already been in touch with policy advisers to Attorney General Yasir Naqvi.
There is no guarantee, he points out, that mass produced food is safer. He says more people have died from contaminated romaine lettuce than from raw milk in the past 45 years.
"Why are we being targeted?"
To contact Kelly Egan, please call 613-726-5896 or email kegan@postmedia.com.
Twitter.com/kellyegancolumn
 Take your pick of weather forecasts this week: Cloudy and cold,... Ontario college strike aftermath continues to impact students, faculty
Egan: Raw milk, raw deal? Farmer fined $1,500, quits milking operation
City hall blog: Inquiry on inquiries results in city staff questioning inquiry work
City bureaucrats will probably high-five each other in their offices Wednesday afternoon if council approves a measure in the governance report that could reduce staff workload.
City hall blog: RendezVous meeting in mayor's boardroom had city wanting 'evidence of partnership'
Eleven items were on the agenda when Eugene Melnyk and John Ruddy met with Mayor Jim Watson and senior city staff in the mayor's boardroom last August, including "evidence of partnership" and "plans for Kanata.
City hall blog: Transpo isn't predicting a bike overload on the Confederation Line
OC Transpo isn't predicting trains full of bikes with the opening of the Confederation Line.
Click here to let us know.


text:
North East Lincolnshire Council
Unitary authority
Humberside County Council
District councils
Great Grimsby Borough Council
Cleethorpes Borough Council
Mayor of North East Lincolnshire
Cllr Terry Walker, Liberal Democrat
since 17th May 2019
Leader of the Council
Cllr David Watson, Labour
since 11th March 2019
Rob Walsh
since 7th February 2018
42 councillors
Other Parties
Liberal Democrat (4)[1]
Length of term
First past the post
Next election
Grimsby Town Hall, Grimsby
www.nelincs.gov.uk
North East Lincolnshire Council is the local authority of North East Lincolnshire. It is a unitary authority, having the powers of a non-metropolitan county and district council combined. It was established following the abolition of Humberside County Council on 1 April 1996.[2] The council provides a full range of local government services including Council Tax billing, libraries, social services, processing planning applications, waste collection and disposal, and it is a local education authority.[3]
1 Powers and functions
2 Political Make-up
3 Wards and councillors
4 North East Lincolnshire Regeneration Partnership
Powers and functions[edit]
The local authority derives its powers and functions from the Local Government Act 1972 and subsequent legislation. For the purposes of local government, North East Lincolnshire is within a non-metropolitan area of England. As a unitary authority, North East Lincolnshire Council has the powers and functions of both a non-metropolitan county and district council combined. In its capacity as a district council it is a billing authority collecting Council Tax and business rates, it processes local planning applications, it is responsible for housing, waste collection and environmental health. In its capacity as a county council it is a local education authority, responsible for social services, libraries and waste disposal.
In July 2017 it was announced that the Council and the local Clinical Commissioning Group would have a joint chief executive.[4]
Political Make-up[edit]
Main article: North East Lincolnshire Council elections
The present political make-up of the council is: Conservative (23), Labour (14), Liberal Democrats (4) and UKIP (1).[5]
Wards and councillors[edit]
Great Grimsby constituency East Marsh Stephen Beasant Liberal Democrat 2003-22
Terry Walker Liberal Democrat 2011-23[A]
Kay Rudd Liberal Democrat 2016-20
Freshney Callum Procter Conservative 2018-22
Tom Furneaux Conservative 2019-23
Cliff Barber Labour 2008-20[B]
Heneage Chris Nichols Labour 2018–22
Matthew Patrick Labour 2011-23
Ros James Labour 2008-20[C]
Park Paul Silvester Conservative 2018–22
Debbie Woodward Conservative 2019-23
Ian Barfield Liberal Democrat 2016–20
Scartho Lia Nici-Townend Conservative 2018–22
Ian Lindley Conservative 2015–23[D]
Ron Shepherd Conservative 2012-20[E]
South Tim Mickleburgh Labour 2018–22[F]
Janet Goodwin Labour 2016-19
Jane Bramley UKIP 2019-20[I]
West Marsh Gemma Sheridan Labour 2018–22
Karl Wilson Labour 2015-23[G]
Yarborough James Cairns Conservative 2014-22[H]
Garry Abel Conservative 2019-23
Jane Hyldon-King Labour 2012-20[J]
constituency Croft Baker Oliver Freeston Conservative 2018–22
Bob Callison Conservative 2019-23
Kathryn Wheatley Labour 2016–20[L]
Haverstoe Margaret Cracknell Conservative 1999-2022
Keith Brookes Conservative 1995-2019
Bill Parkinson Conservative 1999-2020
Humberston and New Waltham Stephen Harness Conservative 2013-22[M]
Stan Shreeve Conservative 2015–19
John Fenty Conservative 2008-20
Immingham Stewart Swinburn Conservative 2018–22[N]
Karen Swinburn Labour 2019-23[O]
David Watson Labour 2012–20
Sidney Sussex Debbie Rodwell Labour 2018–22
Marie Green Labour 2019-23
Gaynor Rogers Labour 2016–20
Waltham Nick Pettigrew Conservative 2018–22[P]
Philip Jackson Conservative 2003-19
Wolds David Hasthorpe Conservative 2014-22
Henry Hudson Conservative 2019-23[Q]
A ^ Walker was previously a councillor for Scartho from 1995 to 1999, before losing his seat to the Conservatives. He left Labour in February 2019, joining the Liberal Democrats and was re-elected for that party in May 2019.
B ^ Barber was first elected as a Liberal Democrat councillor, but defected to Labour shortly before he was due to stand for re-election in 2012.
C ^ James was first elected as a Liberal Democrat councillor, but defected to Labour shortly after Labour defeated a Lib Dem councillor in the same ward at the 2011 local elections.
D ^ Lindley was previously a Labour councillor for West Marsh from 2010 to 2014.
E ^ Shepherd was first elected as UKIP, but defected to the Conservatives shortly before he was due to stand for re-election in 2016.
F ^ Mickleburgh was previously a councillor for West Marsh from 2014 to 2018, before changing wards.
G ^ Wilson was previously a councillor for Heneage from 2010 to 2014, before losing his seat to UKIP.
H ^ Cairns was first elected as UKIP in 2014, but defected to the Conservatives several months before he was due to stand for re-election in 2018.
I ^ Bramley was first elected as Labour in 2010, but defected to UKIP in 2013 and defended her seat for them in 2014. She lost her seat to Labour in 2018, coming third, but regained it in 2019.
J ^ Hyldon-King was previously a councillor for Freshney from 1995 to 2003, before losing her seat to the Conservatives, and then again from 2004 to 2008, before losing again but to the Liberal Democrats.
K ^ Darby was previously a councillor for Yarborough (as a Liberal Democrat at first, but later defected to Labour) from 2010 to 2014, before deciding to contest East Marsh in 2014 unsuccessfully.
L ^ Wheatley was previously a councillor in East Marsh from 1999 to 2003, before losing her seat to the Liberal Democrats.
M ^ Harness was first elected as UKIP councillor, but quit the party in 2015, later joining the Conservatives in 2016 and thus seeking re-election for them in 2018.
N ^ Stewart Swinburn was previously a councillor for Immingham from 2003 to 2011, before losing his seat to Labour.
O ^ Karen Swinburn was previously a councillor for Immingham from 2006 to 2010, before losing her seat to Labour.
P ^ Pettigrew was first elected as a UKIP councillor for Freshney in 2014, but defected to the Conservatives in early 2017. He sought re-election to the authority in Waltham, a much safer Conservative seat, as he likely assumed Labour might have defeated him if he sought re-election in Freshney as they had won it in every election since he won at that point. Ironically, however, the Conservatives did win there with a new candidate.
Q ^ Hudson was previously a UKIP councillor for Scartho from 2014 to 2018, at which point he stood down before rejoining the Conservative Party, having previously been a candidate for them in 2008.
North East Lincolnshire Regeneration Partnership[edit]
In 2010 North East Lincolnshire Council entered into a partnership with Balfour Beatty Workplace Limited, which was taken over by Cofely GDF SUEZ in 2013 (renamed Engie 2016) on a 10-year partnership to deliver facilities management.[6]
^ https://www.grimsbytelegraph.co.uk/news/grimsby-news/live-labour-regain-control-north-1565927
^ The Humberside (Structural Change) Order 1995, SI 1995/600
^ North East Lincolnshire Council
^ "CCG and council appoint 'first of its kind' joint chief". Health Service Journal. 14 July 2017. Retrieved 17 July 2017.
^ https://www.nelincs.gov.uk/councillors-and-democracy/elections-and-electoral-registration/election-results/local-elections-2nd-may-2019/. Missing or empty |title= (help)
^ "North East Lincolnshire Regeneration Partnership - North East Lincolnshire Council". North East Lincolnshire Council. Retrieved 12 May 2016.
North East Lincolnshire – Official website
Unitary authorities of England
Bournemouth, Christchurch and Poole
Redcar and Cleveland
Telford and Wrekin
Windsor and Maidenhead
Local authorities in Lincolnshire
County council and unitary
Retrieved from "https://en.wikipedia.org/w/index.php?title=North_East_Lincolnshire_Council&oldid=906844757"
Unitary authority councils of England
Local education authorities in England
Leader and cabinet executives
Billing authorities in England


text:
Dalton Brown, Alice
Dixon, Amy
Donaldson, Amy
Hendrick, Cathe
Lommers, Jennifer
Lu, Zhen Huan
Pollock, Jackson
O'Keeffe, Georgia
Ortenstone, Nancy
Rothko, Mark
Winston, David Lorenz
Bag, Board & Matted
Framed Products
Coastal 2020
The Museum Catalog
Wildlife 2019
Warhol 2019
Hospitality & Corporate Art
Museum Stores
Home Décor Retailers
Gallery & Frame Shops
Email Us Facebook Twitter Instagram
Account Wishlist (0)
Fork-Tailed Gull
$12.00 A40745-1P
8x12 image on 11x14 Paper - 12x18 image on 13x19 Paper - 14x21 image on 16x23 Paper - 16x24 image on 18x26 Paper - 20x30 image on 22x32 Paper - 24x36 image on 26x38 Paper - 30x45 image on 32x47 Paper - 36x54 image on 38x56 Paper - 8x12 image on 12x16 Giclée - 12x18 image on 16x22 Giclée - 14x21 image on 18x25 Giclée - 16x24 image on 20x28 Giclée - 20x30 image on 24x34 Giclée - 24x36 image on 28x40 Giclée - 30x45 image on 34x49 Giclée - 36x54 image on 40x58 Giclée - 8x12 image on 12x16 Unstretched Canvas - 12x18 image on 16x22 Unstretched Canvas - 14x21 image on 18x25 Unstretched Canvas - 16x24 image on 20x28 Unstretched Canvas - 20x30 image on 24x34 Unstretched Canvas - 24x36 image on 28x40 Unstretched Canvas - 30x45 image on 34x49 Unstretched Canvas - 36x54 image on 40x58 Unstretched Canvas -
© John James Audubon
John James Audubon was a French American ornithologist, naturalist, and painter. He is known for his expansive studies to document all types of American birds and for his detailed illustrations that depicted the birds in their natural habitats. His major work, a color-plate book entitled The Birds of America (1827–1839), is considered one of the finest ornithological works ever completed. This monumental work consists of 435 hand-colored, life-size prints of 497 bird species, made from engraved copper plates of various sizes depending on the size of the image. Audubon developed his own methods for drawing birds. First, he killed them using fine shot. He then used wires to prop them into a natural position, unlike the common method of many ornithologists, who prepared and stuffed the specimens into a rigid pose. When working on a major specimen like an eagle, he would spend up to four 15-hour days, preparing, studying, and drawing it. His paintings of birds are set true-to-life in their natural habitat. He often portrayed them as if caught in motion, especially feeding or hunting, basing his paintings on his extensive field observations. Audubon's influence on ornithology and natural history was far reaching. Nearly all later ornithological works were inspired by his artistry and high standards. Charles Darwin quoted Audubon three times in On the Origin of Species and also in later works. Despite some errors in field observations, he made a significant contribution to the understanding of bird anatomy and behavior through his field notes. Birds of America is still considered one of the greatest examples of book art.
© 2021, McGaw Graphics. Ecommerce Software by Shopify
A40745-1P
Fork-Tailed Gull John James Audubon


text:
Княжна Мария Николаевна Волконская, в браке графиня Толстая (10 ноября 1790 — 4 августа 1830) — мать Льва Николаевича Толстого.

Родилась в Ясной Поляне, родовом имении Волконских, в семье генерала Николая Сергеевича Волконского и его жены Екатерины Дмитриевны. Отцу её матери, князю Д. Ю. Трубецкому, принадлежал роскошный дворец на Покровке. После ранней смерти матери (в 1792 году) воспитывалась в семье её брата, князя Ивана Трубецкого, пока в 1799 году Николай Сергеевич не вышел в отставку и не поселился с дочерью в Ясной Поляне.

Под руководством строгого отца княжна Марья получила хорошее домашнее образование. Она отлично играла на клавикорде и арфе, знала пять языков, обучалась русской словесности, музыке, истории искусств, математике, физике, географии, логике, всеобщей истории, естественным наукам.

Внешняя закрытость Марии Николаевны и язвительный нрав её отца отпугивали от семьи потенциальных женихов, и княжна к 30 годам практически смирилась с участью старой девы. Она обладала крупными чертами лица, которые унаследовал Лев Толстой, и, по его мнению, была «нехороша собой».

Когда в 1821 году Николай Сергеевич неожиданно умер, это стало большим ударом для его единственной дочери и наследницы. Сразу по вступлении в права наследования Мария Николаевна подарила 75000 рублей своей компаньонке мисс Ханессен и устроила её свадьбу со своим двоюродным братом Михаилом Волконским.

Такое поведение одинокой родственницы обеспокоило Волконских и Трубецких, которые начали хлопотать о её замужестве. Жена князя Ивана Трубецкого устроила её брак с графом Николаем Ильичем Толстым, разорившимся представителем хорошей фамилии. А. Я. Булгаков писал из Москвы в мае 1822 года:

Княжна Волконская, дочь покойного Ник. Сергеевича с большими бровями, старая девушка, дурная собою и которая, не надеясь на сладость замужества, раздала часть своего имения жившей у неё англичанке, теперь сожалеет о своей щедрости, будучи помолвлена за графа Толстого.

Венчание состоялось в ясеневской церкви 9 июля 1822 года, после чего супруги переехали к Трубецким в битцевское имение. Изначально это был брак по расчету (после смерти отца Николай Ильич оказался в бедственном положении), но, к удивлению многих, оказался очень счастливым.

Графиня Толстая подружилась с троюродной сестрой мужа, Татьяной Ергольской, и регулярно переписывалась с нею. Судя по письмам, она была погружена в воспитание детей, вела дневник воспитания старшего сына Николеньки. По свидетельству Льва Николаевича, мать «превосходно рассказывала сказки, если это происходило в темноте, при свете она стеснялась».

У супругов Толстых было четыре сына и дочь:

 Николай (1823—1860)
 Сергей (1826—1904)
 Дмитрий  (1827—1856)
 Лев (1828—1910)
 Мария (1830—1912)

Через полгода после рождения дочери Мария Николаевна умерла от «нервной горячки», продолжавшейся несколько дней. Похоронена в семейном некрополе Толстых при Никольской церкви в селе Кочаки. Дочь Мария рассказывала, что вскоре после её рождения мать получила травму головы:

У неё были качели, она всегда просила, чтобы её выше раскачивали. Раз её раскачали очень сильно, доска сорвалась и ударила её в голову. После этого у неё всегда болела голова. <…> Мать умерла от воспаления мозга. Она вдруг стала говорить бог знает что, сидела — читала книгу — книга перевёрнута вверх ногами.

После смерти матери воспитанием детей занималась Татьяна Ергольская.

Хотя Лев Николаевич не помнил мать, он её боготворил, обстоятельно изучал её дневники. По воспоминаниям его жены, Толстой каждое утро проводил в нижнем саду Ясной Поляны — там, где часто отдыхала Мария Николаевна и много деревьев было посажено ею самой. Светлый образ матери отражен в повести Толстого «Детство». Во многом мать Толстого стала прообразом княжны Марьи Болконской из романа «Война и мир»: одинокая жизнь в деревне с властным и язвительным отцом, некрасивая и лишенная женственности внешность, дружба с компаньонкой, чьё счастье богатая наследница хотела устроить, большое наследство, позднее замужество за отставным офицером, привлекательным и добрым, которому этот брак позволил спастись от окончательного разорения — вот основные моменты совпадений двух биографий, реальной и вымышленной.

Предки

Примечания

Литература

Мария Николаевна
Мария Николаевна
Прототипы литературных персонажей

redpajama_set_name: RedPajamaWikipedia


Tarek Chemaly: Betty Ketchedjian wins the Byblos Bank photography award!
Betty Ketchedjian wins the Byblos Bank photography award!
And we have a winner! This was a vintage year for the Byblos Bank photography award and still, Betty Ketchedjian came out ahead! As I congratulate Betty for the wonderful feat, I cannot but look forward for her solo exhibition at the headquarters of the bank as per the usual custom! So again, congratulations and - for those who did not win the prize - you already are winners in my eyes as this was a super year indeed in terms of finalists!


Abstract Economic outcomes have long been neglected by students of social movements. However, recently a number of studies have emerged addressing this topic. This chapter reviews works on economic outcomes of social movements. Economic impacts of social movements are defined here as pertaining to the economic sphere either in terms of government actions to regulate the economy/impose redistribution/reform the practices of companies and corporations, or to changes in social practices and individual behavior with respect to consumption. As such, the current review addresses scholarship on movements' attempts to attain government regulation in markets, governments' direct interventions in markets, and changes in market rules and practices in the social sphere.


text:
Home Print Editions March 2018 Issue Why deal-by-deal can be addictive
Why deal-by-deal can be addictive
Shifting to this strategy used to be seen as a failure, but an early flow of carry can be very attractive.
Adam Le
James Almond
UK buyout firm Lyceum Capital dropped plans to raise its fourth institutional fund and shifted to a deal-by-deal model at the beginning of 2018. The firm, which made the decision because fundraising was tougher than expected, joins a growing group of managers who have decided they don't need steady management fees and the security of a dedicated pool of capital to win and invest in deals.
Investing deal-by-deal may sound like a crazy idea in an industry where taking a 2 percent cut of any capital raised for a blind-pool fund is the norm. Proponents of the model believe it is anything but.
"It's tough to get started because people question whether you can raise the money. It's not as straightforward as people might think," says James Almond, a partner at London-headquartered Duke Street, which shifted to the fundless sponsor deal model in 2012. "You need a dedicated fundraising-type function as well, and some good limited partner relationships with co-investors who are happy to work on that basis."
Almond says once you can prove you're able to raise capital for a transaction and successfully manage assets, investing deal-by-deal can deliver more attractive economics for a GP than managing a fund. Teams can't sit back and live off management fees, but have to hunt for attractive deals. Fundless sponsors also tend to know their assets better because they undertake more in-house due diligence and spend more time with a potential target, rather than to outsourcing it to a third-party provider. The result? More hands-on portfolio management and potentially greater value creation.
The icing on the cake is that deal-by-deal can deliver higher – and more frequently paid out – carried interest for managers because underlying investors aren't being charged management fees. This can be an attractive proposition for younger members of a team who don't have to wait 10 years until they see their first carried interest cheque, Almond argues.
Small and nimble
Christopher Good, a partner who focuses on private funds at law firm Macfarlanes, says the notion that firms resort to the deal-by-deal model when they have exhausted all other options is inaccurate.
"The assumption is that you'd always want to raise a fund because it gives you stable fee income and allows you to plan for the long term," Good says. This isn't necessarily the case; fundless sponsors can run smaller and nimbler teams and can have fewer fund and regulatory reporting requirements. He also agrees that the model can bring better alignment.
"They're very incentivised on each deal and don't have to wait on a whole fund carry to pay out. Each deal has its own set of economics which don't depend on the performance of other deals," he says.
Some market participants still see the strategy as a sign of manager failure, but that is beginning to change.
"There used to be a suggestion that it was all doom and gloom, that deal-by-deal is hugely inferior to a blind-pool fund, but actually, is it a better option for some managers than spending a lot of time raising a 10-year fund and being locked into terms that are really unattractive?" says Good. "With a select group of like-minded backers, you can get out and start to look for deals, giving up the security of a closed fund for the enhanced incentives of deal-by-deal economics."
Several firms have done just that in recent months. The latest to make the switch is Los Angeles-headquartered Gores, which raised its most recent flagship fund in 2011 and has no plans for another institutional fund, according to media reports.
Sterling Partners shifted to deal-by-deal in 2017. This has opened up the variety of deals the firm can target in terms of industries, stages of growth and structures, co-founder and chairman Steven Taslitz told Private Equity International.
The model can also be very attractive for LPs. Whit Matthews, a senior investment manager at Aberdeen Standard Investments, which invests with fundless sponsors and emerging managers, says the model is popular with institutional investors. Such investors may be disenchanted with the traditional fund model, or they may find it difficult to get into traditional funds because they're too small, as is the case for some family offices.
Fundless sponsors are also a great source of dealflow as they often find deals below the radar, Matthews adds.
"They're the ones that are less likely to participate in auction processes. They're often the groups that are able to create deals as opposed to finding deals as a function of having a less traditional capital source, of having less traditional dry powder sitting in your pocket," he says.
Whereas the economics of a fund are set in stone in a limited partnership agreement, fundless sponsors have different agreements with each of their investors. Carried interest can range from between 15 percent to more than 20 percent in exceptional circumstances. Some firms' managers will have pre-agreed terms with some of their investors so when an opportunity surfaces they can act quickly, while other investors prefer to negotiate terms on a deal-by-deal basis.
In the absence of management fees, some sponsors charge monitoring fees. Duke Street, for example, typically charges 1 percent of equity invested which is borne by the portfolio company.
The downside
The deal-by-deal model is not for everyone. Challenges include sponsors having to raise capital each time they see an opportunity, as well as convincing intermediaries and sellers they are a serious bidder. They may also have a tougher time attracting younger talent, as convincing professionals who are starting out in their careers to join a firm that doesn't have a steady stream of income derived from management fees can be tricky.
Market sources agree paying for abort costs – which are usually borne by the fund – are one of the biggest downsides of deal-by-deal. It's helpful to have balance sheet capital for this, and managers can also agree to share abort costs with their co-investors if a deal progresses past a preliminary stage. Managers also approach the costs differently; for Duke Street, which now operates a hybrid fund and deal-by-deal model, it typically bears 50 percent of the costs and splits the remainder pro rata between its co-investors.
For Almond, the benefits of not being tied to a restrictive fund are clear. Duke Street has invested in seven deals via this model since 2012, worth more than £1 billion ($1.4 billion; €1.1 billion) in combined enterprise value.
"Deal-by-deal carry is a huge driver, particularly for younger members of the team," Almond says. "Seeing real carry come through is quite a difficult drug to get off."
Private Equity News & Analysis 19 mins ago


text:
"""
This module implements the web and email interfaces to the bridge database.
"""

from cStringIO import StringIO
import MimeWriter
import rfc822
import time
import logging
import gettext
import re

from zope.interface import implements

from twisted.internet import reactor
from twisted.internet.defer import Deferred
from twisted.internet.task import LoopingCall
import twisted.web.resource
import twisted.web.server
import twisted.mail.smtp

import bridgedb.Dist
import bridgedb.I18n as I18n

import recaptcha.client.captcha as captcha
from random import randint
from bridgedb.Raptcha import Raptcha
import base64
import textwrap

try:
    import GeoIP
    # GeoIP data object: choose database here
    # This is the same geoip implementation that pytorctl uses
    geoip = GeoIP.new(GeoIP.GEOIP_STANDARD)
    logging.info("GeoIP database loaded")
except:
    geoip = None
    logging.warn("GeoIP database not found")

class WebResource(twisted.web.resource.Resource):
    """This resource is used by Twisted Web to give a web page with some
       bridges in response to a request."""
    isLeaf = True

    def __init__(self, distributor, schedule, N=1, useForwardedHeader=False,
                 includeFingerprints=True,
                 useRecaptcha=False,recaptchaPrivKey='', recaptchaPubKey='',
                 domains=[]):
        """Create a new WebResource.
             distributor -- an IPBasedDistributor object
             schedule -- an IntervalSchedule object
             N -- the number of bridges to hand out per query.
        """
        gettext.install("bridgedb", unicode=True)
        twisted.web.resource.Resource.__init__(self)
        self.distributor = distributor
        self.schedule = schedule
        self.nBridgesToGive = N
        self.useForwardedHeader = useForwardedHeader
        self.includeFingerprints = includeFingerprints
        self.domains = domains

        # recaptcha options
        self.useRecaptcha = useRecaptcha
        self.recaptchaPrivKey = recaptchaPrivKey
        self.recaptchaPubKey = recaptchaPubKey

    def render_GET(self, request):
        if self.useRecaptcha:
            # get a captcha
            c = Raptcha(self.recaptchaPubKey, self.recaptchaPrivKey)
            c.get()

            # TODO: this does not work for versions of IE < 8.0
            imgstr = 'data:image/jpeg;base64,%s' % base64.b64encode(c.image)
            HTML_CAPTCHA_TEMPLATE = self.buildHTMLMessageTemplateWithCaptcha(
                    getLocaleFromRequest(request), c.challenge, imgstr)
            return HTML_CAPTCHA_TEMPLATE
        else:
            return self.getBridgeRequestAnswer(request)

    def render_POST(self, request):

        # check captcha if recaptcha support is enabled
        if self.useRecaptcha:
            try:
                challenge = request.args['recaptcha_challenge_field'][0]
                response = request.args['recaptcha_response_field'][0]

            except:
                return self.render_GET(request)

            # generate a random IP for the captcha submission
            remote_ip = '%d.%d.%d.%d' % (randint(1,255),randint(1,255),
                                         randint(1,255),randint(1,255))

            recaptcha_response = captcha.submit(challenge, response,
                                            self.recaptchaPrivKey, remote_ip)
            if recaptcha_response.is_valid:
                logging.info("Valid recaptcha from %s. Parameters were %r",
                        remote_ip, request.args)
            else:
                logging.info("Invalid recaptcha from %s. Parameters were %r",
                             remote_ip, request.args)
                logging.info("Recaptcha error code: %s", recaptcha_response.error_code)
                return self.render_GET(request) # redirect back to captcha

        return self.getBridgeRequestAnswer(request)

    def getBridgeRequestAnswer(self, request):
        """ returns a response to a bridge request """

        interval = self.schedule.getInterval(time.time())
        bridges = ( )
        ip = None
        countryCode = None
        if self.useForwardedHeader:
            h = request.getHeader("X-Forwarded-For")
            if h:
                ip = h.split(",")[-1].strip()
                if not bridgedb.Bridges.is_valid_ip(ip):
                    logging.warn("Got weird forwarded-for value %r",h)
                    ip = None
        else:
            ip = request.getClientIP()

        if geoip:
            countryCode = geoip.country_code_by_addr(ip)

        # allow client to specify a country
        forcecc = getCCFromRequest(request)
        if forcecc != None:
            countryCode = forcecc

        # get locale
        t = getLocaleFromRequest(request)

        format = request.args.get("format", None)
        if format and len(format): format = format[0] # choose the first arg

        if ip:
            bridges = self.distributor.getBridgesForIP(ip, interval,
                                                       self.nBridgesToGive,
                                                       countryCode)
        if bridges:
            answer = "".join("%s %s\n" % (
                b.getConfigLine(self.includeFingerprints),
                (I18n.BRIDGEDB_TEXT[16] if b.isBlocked(countryCode) else "")
                ) for b in bridges)
        else:
            answer = t.gettext(I18n.BRIDGEDB_TEXT[7])

        logging.info("Replying to web request from %s.  Parameters were %r", ip,
                     request.args)
        if format == 'plain':
            request.setHeader("Content-Type", "text/plain")
            return answer
        else:
            HTML_MESSAGE_TEMPLATE = self.buildHTMLMessageTemplate(t)
            return HTML_MESSAGE_TEMPLATE % answer

    def buildHTMLMessageTemplate(self, t):
        """DOCDOC"""
        if self.domains:
            email_domain_list = "
" \
                + "".join(("
%s
"%d for d in self.domains)) + "
"
        else:
            email_domain_list = "
" + t.gettext(I18n.BRIDGEDB_TEXT[8]) + "
"
        html_msg = ""\
                   + "<meta http-equiv=\"Content-Type\" content=\"text/html;"\
                   + " charset=UTF-8\"/>" \
                   + "" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[0]) \
                   + "
" \
                   + "%s" \
                   + "

" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[1]) + "
" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[2]) + "
" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[3]) + "
" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[4]) + "
" \
                   + email_domain_list \
                   + "

Note for experts: if you can use IPv6, try upgrading to Tor 0.2.3.12-alpha and use this IPv6 address in your bridge line:
<tt>[2001:948:7:2::164]:6001</tt>
Let us know how it goes!
" \
                   + ""

        return html_msg

    def buildHTMLMessageTemplateWithCaptcha(self, t, challenge, img):
        """Builds a translated html response with recaptcha"""
        if self.domains:
            email_domain_list = "
" \
                + "".join(("
%s
"%d for d in self.domains)) + "
"
        else:
            email_domain_list = "
" + t.gettext(I18n.BRIDGEDB_TEXT[8]) + "
"

        recaptchaTemplate = textwrap.dedent("""\
            <form action="" method="POST">
              <input type="hidden" name="recaptcha_challenge_field"
                id="recaptcha_challenge_field"\
                        value="{recaptchaChallengeField}">

                {bridgeDBText12}

                <input name="recaptcha_response_field"\
                        id="recaptcha_response_field"
                type="text" autocomplete="off">

                <input type="submit" name="submit" value="{bridgeDBText13}">

            </form>
            """).strip()

        recaptchaTemplate = recaptchaTemplate.format(
                recaptchaChallengeField=challenge,
                recaptchaImgSrc=img,
                bridgeDBText12=t.gettext(I18n.BRIDGEDB_TEXT[13]),
                bridgeDBText13=t.gettext(I18n.BRIDGEDB_TEXT[14]),
                bridgeDBText14=t.gettext(I18n.BRIDGEDB_TEXT[15]))

        html_msg = "" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[1]) + "
" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[9]) + "
" \
                   + "
" + recaptchaTemplate + "
" \
                   + "
" + t.gettext(I18n.BRIDGEDB_TEXT[4]) + "
" \
                   + email_domain_list \
                   + ""
        return html_msg

def addWebServer(cfg, dist, sched):
    """Set up a web server.
         cfg -- a configuration object from Main.  We use these options:
                HTTPS_N_BRIDGES_PER_ANSWER
                HTTP_UNENCRYPTED_PORT
                HTTP_UNENCRYPTED_BIND_IP
                HTTP_USE_IP_FROM_FORWARDED_HEADER
                HTTPS_PORT
                HTTPS_BIND_IP
                HTTPS_USE_IP_FROM_FORWARDED_HEADER
                RECAPTCHA_ENABLED
                RECAPTCHA_PUB_KEY
                RECAPTCHA_PRIV_KEY
         dist -- an IPBasedDistributor object.
         sched -- an IntervalSchedule object.
    """
    Site = twisted.web.server.Site
    site = None
    if cfg.HTTP_UNENCRYPTED_PORT:
        ip = cfg.HTTP_UNENCRYPTED_BIND_IP or ""
        resource = WebResource(dist, sched, cfg.HTTPS_N_BRIDGES_PER_ANSWER,
                       cfg.HTTP_USE_IP_FROM_FORWARDED_HEADER,
                       includeFingerprints=cfg.HTTPS_INCLUDE_FINGERPRINTS,
                       useRecaptcha=cfg.RECAPTCHA_ENABLED,
                       domains=cfg.EMAIL_DOMAINS,
                       recaptchaPrivKey=cfg.RECAPTCHA_PRIV_KEY,
                       recaptchaPubKey=cfg.RECAPTCHA_PUB_KEY)
        site = Site(resource)
        reactor.listenTCP(cfg.HTTP_UNENCRYPTED_PORT, site, interface=ip)
    if cfg.HTTPS_PORT:
        from twisted.internet.ssl import DefaultOpenSSLContextFactory
        #from OpenSSL.SSL import SSLv3_METHOD
        ip = cfg.HTTPS_BIND_IP or ""
        factory = DefaultOpenSSLContextFactory(cfg.HTTPS_KEY_FILE,
                                               cfg.HTTPS_CERT_FILE)
        resource = WebResource(dist, sched, cfg.HTTPS_N_BRIDGES_PER_ANSWER,
                       cfg.HTTPS_USE_IP_FROM_FORWARDED_HEADER,
                       includeFingerprints=cfg.HTTPS_INCLUDE_FINGERPRINTS,
                       domains=cfg.EMAIL_DOMAINS,
                       useRecaptcha=cfg.RECAPTCHA_ENABLED,
                       recaptchaPrivKey=cfg.RECAPTCHA_PRIV_KEY,
                       recaptchaPubKey=cfg.RECAPTCHA_PUB_KEY)
        site = Site(resource)
        reactor.listenSSL(cfg.HTTPS_PORT, site, factory, interface=ip)
    return site

class MailFile:
    """A file-like object used to hand rfc822.Message a list of lines
       as though it were reading them from a file."""
    def __init__(self, lines):
        self.lines = lines
        self.idx = 0
    def readline(self):
        try :
            line = self.lines[self.idx]
            self.idx += 1
            return line
        except IndexError:
            return ""

def getBridgeDBEmailAddrFromList(ctx, address_list):
    """Loop through a list of (full name, email address) pairs and look up our
       mail address. If our address isn't found (which can't happen), return
       the default ctx from address so we can keep on working.
    """
    email = ctx.fromAddr
    for _, address in address_list:
        # Strip the @torproject.org part from the address
        idx = address.find('@')
        if idx != -1:
            username = address[:idx]
            # See if the user looks familiar. We do a 'find' instead
            # of compare because we might have a '+' address here
            if username.find(ctx.username) != -1:
                email = address
    return email

def getMailResponse(lines, ctx):
    """Given a list of lines from an incoming email message, and a
       MailContext object, parse the email and decide what to do in response.
       If we want to answer, return a 2-tuple containing the address that
       will receive the response, and a readable filelike object containing
       the response.  Return None,None if we shouldn't answer.
    """
    # Extract data from the headers.
    msg = rfc822.Message(MailFile(lines))
    subject = msg.getheader("Subject", None)
    if not subject: subject = "[no subject]"
    clientFromAddr = msg.getaddr("From")
    clientSenderAddr = msg.getaddr("Sender")
    # RFC822 requires at least one 'To' address
    clientToList = msg.getaddrlist("To")
    clientToaddr = getBridgeDBEmailAddrFromList(ctx, clientToList)
    msgID = msg.getheader("Message-ID", None)
    if clientSenderAddr and clientSenderAddr[1]:
        clientAddr = clientSenderAddr[1]
    elif clientFromAddr and clientFromAddr[1]:
        clientAddr = clientFromAddr[1]
    else:
        logging.info("No From or Sender header on incoming mail.")
        return None,None

    # Look up the locale part in the 'To:' address, if there is one and get
    # the appropriate Translation object
    lang = getLocaleFromPlusAddr(clientToaddr)
    t = I18n.getLang(lang)

    try:
        _, addrdomain = bridgedb.Dist.extractAddrSpec(clientAddr.lower())
    except bridgedb.Dist.BadEmail:
        logging.info("Ignoring bad address on incoming email.")
        return None,None
    if not addrdomain:
        logging.info("Couldn't parse domain from %r", clientAddr)
    if addrdomain and ctx.cfg.EMAIL_DOMAIN_MAP:
        addrdomain = ctx.cfg.EMAIL_DOMAIN_MAP.get(addrdomain, addrdomain)
    if addrdomain not in ctx.cfg.EMAIL_DOMAINS:
        logging.info("Unrecognized email domain %r", addrdomain)
        return None,None
    rules = ctx.cfg.EMAIL_DOMAIN_RULES.get(addrdomain, [])
    if 'dkim' in rules:
        # getheader() returns the last of a given kind of header; we want
        # to get the first, so we use getheaders() instead.
        dkimHeaders = msg.getheaders("X-DKIM-Authentication-Results")
        dkimHeader = "<no header>"
        if dkimHeaders: dkimHeader = dkimHeaders[0]
        if not dkimHeader.startswith("pass"):
            logging.info("Got a bad dkim header (%r) on an incoming mail; "
                         "rejecting it.", dkimHeader)
            return None, None

    # Was the magic string included
    #for ln in lines:
    #    if ln.strip().lower() in ("get bridges", "subject: get bridges"):
    #        break
    #else:
    #    logging.info("Got a mail from %r with no bridge request; dropping",
    #                 clientAddr)
    #    return None,None

    # Figure out which bridges to send
    try:
        interval = ctx.schedule.getInterval(time.time())
        bridges = ctx.distributor.getBridgesForEmail(clientAddr,
                                                     interval, ctx.N,
                                                     countryCode=None)
    except bridgedb.Dist.BadEmail, e:
        logging.info("Got a mail from a bad email address %r: %s.",
                     clientAddr, e)
        return None, None

    # Handle rate limited email
    except bridgedb.Dist.TooSoonEmail, e:
        logging.info("Got a mail too frequently; warning %r: %s.",
                     clientAddr, e)

        # Compose a warning email
        f = StringIO()
        w = MimeWriter.MimeWriter(f)
        w.addheader("From", ctx.fromAddr)
        w.addheader("To", clientAddr)
        w.addheader("Message-ID", twisted.mail.smtp.messageid())
        if not subject.startswith("Re:"): subject = "Re: %s"%subject
        w.addheader("Subject", subject)
        if msgID:
            w.addheader("In-Reply-To", msgID)
        w.addheader("Date", twisted.mail.smtp.rfc822date())
        body = w.startbody("text/plain")

        # MAX_EMAIL_RATE is in seconds, convert to hours
        EMAIL_MESSAGE_RATELIMIT = buildSpamWarningTemplate(t)
        body.write(EMAIL_MESSAGE_RATELIMIT % (bridgedb.Dist.MAX_EMAIL_RATE / 3600))
        f.seek(0)
        return clientAddr, f

    except bridgedb.Dist.IgnoreEmail, e:
        logging.info("Got a mail too frequently; ignoring %r: %s.",
                      clientAddr, e)
        return None, None

    # Generate the message.
    f = StringIO()
    w = MimeWriter.MimeWriter(f)
    w.addheader("From", ctx.fromAddr)
    w.addheader("To", clientAddr)
    w.addheader("Message-ID", twisted.mail.smtp.messageid())
    if not subject.startswith("Re:"): subject = "Re: %s"%subject
    w.addheader("Subject", subject)
    if msgID:
        w.addheader("In-Reply-To", msgID)
    w.addheader("Date", twisted.mail.smtp.rfc822date())
    body = w.startbody("text/plain")

    if bridges:
        with_fp = ctx.cfg.EMAIL_INCLUDE_FINGERPRINTS
        answer = "".join("  %s\n" % b.getConfigLine(with_fp) for b in bridges)
    else:
        answer = "(no bridges currently available)"

    EMAIL_MESSAGE_TEMPLATE = buildMessageTemplate(t)
    body.write(EMAIL_MESSAGE_TEMPLATE % answer)

    f.seek(0)
    logging.info("Email looks good; we should send an answer.")
    return clientAddr, f

def buildMessageTemplate(t):
    msg_template =  t.gettext(I18n.BRIDGEDB_TEXT[5]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[0]) + "\n\n" \
                    + "%s\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[1]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[2]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[3]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[6]) + "\n\n"

    return msg_template

def buildSpamWarningTemplate(t):
    msg_template =  t.gettext(I18n.BRIDGEDB_TEXT[5]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[10]) + "\n\n" \
                    + "%s " \
                    + t.gettext(I18n.BRIDGEDB_TEXT[11]) + "\n\n" \
                    + t.gettext(I18n.BRIDGEDB_TEXT[12]) + "\n\n"
    return msg_template

def replyToMail(lines, ctx):
    """Given a list of lines from an incoming email message, and a
       MailContext object, possibly send a reply.
    """
    logging.info("Got a completed email; deciding whether to reply.")
    sendToUser, response = getMailResponse(lines, ctx)
    if response is None:
        logging.debug("getMailResponse said not to reply, so I won't.")
        return
    response.seek(0)
    d = Deferred()
    factory = twisted.mail.smtp.SMTPSenderFactory(
        ctx.smtpFromAddr,
        sendToUser,
        response,
        d)
    reactor.connectTCP(ctx.smtpServer, ctx.smtpPort, factory)
    logging.info("Sending reply to %r", sendToUser)
    return d

def getLocaleFromPlusAddr(address):
    """See whether the user sent his email to a 'plus' address, for
       instance to bridgedb+fa@tpo. Plus addresses are the current
       mechanism to set the reply language
    """
    replyLocale = "en"
    r = '.*(<)?(\w+\+(\w+)@\w+(?:\.\w+)+)(?(1)>)'
    match = re.match(r, address)
    if match:
        replyLocale = match.group(3)

    return replyLocale

def getLocaleFromRequest(request):
    # See if we did get a request for a certain locale, otherwise fall back
    # to 'en':
    # Try evaluating the path /foo first, then check if we got a ?lang=foo
    default_lang = lang = "en"
    if len(request.path) > 1:
        lang = request.path[1:]
    if lang == default_lang:
        lang = request.args.get("lang", [default_lang])
        lang = lang[0]
    return I18n.getLang(lang)

class MailContext:
    """Helper object that holds information used by email subsystem."""
    def __init__(self, cfg, dist, sched):
        # Reject any RCPT TO lines that aren't to this user.
        self.username = (cfg.EMAIL_USERNAME or
                         "bridges")
        # Reject any mail longer than this.
        self.maximumSize = 32*1024
        # Use this server for outgoing mail.
#        self.smtpServer = "127.0.0.1" # XXX should make configurable
        self.smtpServer = "172.22.121.1"
        self.smtpPort = 25
        # Use this address in the MAIL FROM line for outgoing mail.
        self.smtpFromAddr = (cfg.EMAIL_SMTP_FROM_ADDR or
                             "bridges@torproject.org")
        # Use this address in the "From:" header for outgoing mail.
        self.fromAddr = (cfg.EMAIL_FROM_ADDR or
                         "bridges@torproject.org")
        # An EmailBasedDistributor object
        self.distributor = dist
        # An IntervalSchedule object
        self.schedule = sched
        # The number of bridges to send for each email.
        self.N = cfg.EMAIL_N_BRIDGES_PER_ANSWER

        self.cfg = cfg

class MailMessage:
    """Plugs into the Twisted Mail and receives an incoming message.
       Once the message is in, we reply or we don't. """
    implements(twisted.mail.smtp.IMessage)

    def __init__(self, ctx):
        """Create a new MailMessage from a MailContext."""
        self.ctx = ctx
        self.lines = []
        self.nBytes = 0
        self.ignoring = False

    def lineReceived(self, line):
        """Called when we get another line of an incoming message."""
        self.nBytes += len(line)
        logging.debug("> %s", line.rstrip("\r\n"))
        if self.nBytes > self.ctx.maximumSize:
            self.ignoring = True
        else:
            self.lines.append(line)

    def eomReceived(self):
        """Called when we receive the end of a message."""
        if not self.ignoring:
            replyToMail(self.lines, self.ctx)
        return twisted.internet.defer.succeed(None)

    def connectionLost(self):
        """Called if we die partway through reading a message."""
        pass

class MailDelivery:
    """Plugs into Twisted Mail and handles SMTP commands."""
    implements(twisted.mail.smtp.IMessageDelivery)
    def setBridgeDBContext(self, ctx):
        self.ctx = ctx
    def receivedHeader(self, helo, origin, recipients):
        #XXXX what is this for? what should it be?
        return "Received: BridgeDB"
    def validateFrom(self, helo, origin):
        return origin
    def validateTo(self, user):
        """If the local user that was addressed isn't our configured local
           user or doesn't contain a '+' with a prefix matching the local
           configured user: Yell
        """
        u = user.dest.local
        # Hasplus? If yes, strip '+foo'
        idx = u.find('+')
        if idx != -1:
            u = u[:idx]
        if u != self.ctx.username:
            raise twisted.mail.smtp.SMTPBadRcpt(user)
        return lambda: MailMessage(self.ctx)

class MailFactory(twisted.mail.smtp.SMTPFactory):
    """Plugs into Twisted Mail; creates a new MailDelivery whenever we get
       a connection on the SMTP port."""
    def __init__(self, *a, **kw):
        twisted.mail.smtp.SMTPFactory.__init__(self, *a, **kw)
        self.delivery = MailDelivery()

    def setBridgeDBContext(self, ctx):
        self.ctx = ctx
        self.delivery.setBridgeDBContext(ctx)

    def buildProtocol(self, addr):
        p = twisted.mail.smtp.SMTPFactory.buildProtocol(self, addr)
        p.delivery = self.delivery
        return p

def addSMTPServer(cfg, dist, sched):
    """Set up a smtp server.
         cfg -- a configuration object from Main.  We use these options:
                EMAIL_BIND_IP
                EMAIL_PORT
                EMAIL_N_BRIDGES_PER_ANSWER
                EMAIL_DOMAIN_RULES
         dist -- an EmailBasedDistributor object.
         sched -- an IntervalSchedule object.
    """
    ctx = MailContext(cfg, dist, sched)
    factory = MailFactory()
    factory.setBridgeDBContext(ctx)
    ip = cfg.EMAIL_BIND_IP or ""
    reactor.listenTCP(cfg.EMAIL_PORT, factory, interface=ip)
    # Set up a LoopingCall to run every 30 minutes and forget old email times.
    lc = LoopingCall(dist.cleanDatabase)
    lc.start(1800, now=False)
    return factory

def runServers():
    """Start all the servers that we've configured. Exits when they do."""
    reactor.run()

def getLocaleFromRequest(request):
    # See if we did get a request for a certain locale, otherwise fall back
    # to 'en':
    # Try evaluating the path /foo first, then check if we got a ?lang=foo
    default_lang = lang = "en"
    if len(request.path) > 1:
        lang = request.path[1:]
    if lang == default_lang:
        lang = request.args.get("lang", [default_lang])
        lang = lang[0]
    return I18n.getLang(lang)

def getCCFromRequest(request):
    path = re.sub(r'[^a-zA-Z]', '', request.path)
    if len(path) ==  2:
        return path.lower()
    return None

redpajama_set_name: RedPajamaGithub


When did your love of baking begin?
My earliest memories of baking were with my Nanny. Every Christmas, we'd make sugar cookies, shortbread and fudge. I absolutely loved having that time with her and baking all her traditional classics. I can still remember her teaching me that it was very important to always get your measurements correct. She showed me to level off my spoons and cups with a knife. It's a baking lesson that stuck, and I have learnt it to be very true.
You first started selling your cupcakes at Balgownie Hotel?
I was working as a manager at Balgownie Hotel, and every year the Leukaemia Foundation ran a charity event through pubs called The U.G.L.Y Bartender. I wanted to do something a little different to get the patrons to donate, so I decided to bake cupcakes. A couple of years prior, when I'd just moved to Australia and was waiting for my defacto visa to be granted, I couldn't work, so I started baking again and realised how much I enjoyed it. When my boss at The Bally told me that the pub would pay for my ingredients and that all the money I raised would go towards the charity, I baked. The response was more than I could have imagined and really, the rest is history.
Your business took off… when did you choose to dedicate your career to baking?
After my start at Bally Pub, I was approached by Sassy Catering and asked if I could be one of their cake vendors. I'll never forget my first wedding. I got back from the Southern Highlands, looked at my hubby and said, "I just delivered cakes for a WEDDING!" I burst out laughing. It was such a crazy thought that people actually wanted one of my cakes for their big day.
For years, I did this casually, but it was when I found 'my style' that It's Homebaked became something. I stopped saying yes to every request and only took on cakes that I'd be proud to make. I started having fun with flavours and piping styles, and that's when my cakes started getting noticed. I was approached by Bread, Espresso & in Thirroul after they saw an Instagram post. I dropped them off some cakes and they were keen to stock my little treats. Another milestone for this baker! The thought that my sweets would be on display in a cafe was so amazing! I went on to supply many beautiful cafes on our coast.
It was just over a year ago that I'd decided to try this cake gig full-time. I was working a 9-5 job, and with the orders I was getting for It's Homebaked, I was practically working two full-time jobs. Something had to give. I knew this was my time to see if my cake business was my future.
I want to say it was, but the reality is, it was a relief. I have always considered myself a hard worker, but this past year was a kind of hard I never anticipated. I love baking, but I was not in love with running a business. I take a lot of pride in my work and this is something that made me feel like I was constantly trying to keep up. When you work for yourself, there is always something you could/should be doing. I was missing so much time with my husband, family and friends, that I decided I needed to make some changes. Another big reason for my decision, and one I'd never considered when I made the move in the first place – I was so lonely. I love talking to people, and while I was baking full-time, some days I was spending 12-18 hours in a kitchen alone. It was an easy decision with many tears.
Was the reaction from the community overwhelming?
The community reaction was completely overwhelming. While my decision was easy, the public response certainly made me think twice. The messages I received from people locally and around the world was so humbling and made me very grateful for everything I'd accomplished. This chick definitely went out on a high.
You've said you won't be able to give up baking completely – what does the future hold?
Right now, I'm trying to get my body back into good shape. This past year had a massive effect on me and my wrists, to the point that they were going completely numb at night. I don't plan to give up baking all together, as I really do love it. I may look to enjoy baking in a different way and have considered starting a blog.
Fairy Meadow beach where I can take my pups.
At the risk of offending, I have to say from my Canadian brother from another mother, Frank, from The Happy Barista.
Going out for a punt with my ladies at Towradgi Beach Hotel.
Without question, chocolate peanut butter.


Within the scope of a ceremonial opening, the Charité - Universitätsmedizin Berlin inaugurated its new training and research centre on schedule and just in time for the beginning of the semester. The state-of-the-art building at the historical Campus Charité Mitte unites for the first time important basic disciplines of the Medical Faculty, the NeuroCure Cluster of Excellence as well as training facilities in particular for the scientific disciplines of medical studies.
The pit was excavated in March 2010; the topping-out ceremony took place in May 2011. All in all, the CharitéCrossOver has a gross floor area of 27,000 square metres. A part of the building has been occupied by the NeuroCure Cluster of Excellence, which was recommended for further funding until 2017 by an international expert committee in June. The research of the Cluster of Excellence is focussed on widespread neurological diseases such as stroke, multiple sclerosis and epilepsy. Furthermore, the scientists are also investigating psychiatric diseases such as Alzheimer's disease, autism, depression and schizophrenia. The objective is to better understand these diseases so that they can be treated even more effectively in the future. The special thing about the Cluster of Excellence is the transfer of basic neuroscientific research findings into clinical practice and vice versa. This translation is enabled by clinical studies, which can be initiated by both basic researchers and clinicians.
To NeuroCure scientists, the relocation to the state-of-the-art research facility means finding a common home under one roof. Investigators from six partner institutions and various special disciplines now have the opportunity to use the short distances within the building, the common infrastructure and the forums for lively interaction, which is expected to generate new cooperative partnerships.


Spider-Man Hoodie Is Legit -- But Is It "Civil War" Related?
With merchandise and toys already containing what appear to be spoilers for "Captain America: Civil War," the arrival of a Spider-Man hoodie sporting a new design caused many to wonder if this could be a sneak peek at what Peter Parker will wear when he makes his Marvel movie debut. The hoodie, spotted on Monday, has since been confirmed as officially licensed and produced by Merchoid.
While the hoodie's existence has been confirmed, it's ties to "Civil War" are now much less certain. In Merchoid's press release for the clothing item, the manufacturer says that "Marvel is doing a fantastic job of keeping the new Spider-man costume under wraps, so we haven't yet seen it!" The release then notes that the hoodie was designed "in partnership with Marvel, who provided all the design elements from their 2016 merchandise range, including the 'messy' webbing which we haven't yet seen in any prior Spider-man costume."
The hoodie is available for preorder in the Merchoid store, which offers a closer look at the hoodie and the aforementioned "messy" webbing.
Birmingham, UK, 14th January 2016, - Merchoid's highly anticipated Spider-man hoodie has finally been unveiled today, which is their latest hoodie after the previously announced Civil War Captain America Hoodie. The zip-up hoodie (which is brand new for 2016) is a modern, sports style design with the iconic Spider symbol on the chest and brand new 'messy' webbing pattern all over.
Rumours have been circulating around the web that the new hoodie would provide the first look at Spider-man's new Civil War costume. Merchoid's community manager, Jessica Adams, had the following to say "There's been lots of talk online and people have been really excited that this could be what reveals the new look Spider-man. However, Marvel is doing a fantastic job of keeping the new Spider-man costume under wraps, so we haven't yet seen it! What we can say is this hoodie was designed in partnership with Marvel, who provided all the design elements from their 2016 merchandise range, including the 'messy' webbing which we haven't yet seen in any prior Spider-man costume. We're really excited to see what Spider-man fans think! If this is the first look at the new costume, are you happy with the new direction?"
Jessica continues "Whether or not this is based on the new Spider-man costume, the reaction so far has been incredible. We can't wait to hear what people think about the final product when it releases in July." The Spider-man Premium Hoodie is officially licensed from Marvel and available to pre-order now from Merchoid for £39.99/$54.99/€59,99 (all of which include free worldwide shipping) for dispatch on 29th July 2016.


Facebook adverts can be an exceptional method in promoting your products and services to potential customers. We at Essex Media Solutions are on hand to help you navigate the confusing terms and create an alluring advert to significantly bolster your marketing campaign.
If you want to maximise your marketing strategies and get help with designing, setting up, and monitoring your facebook advert, get in touch with us today. By outsourcing your facebook ads to ourselves, you can avoid the stress that comes with marketing campaigns and dedicate more time to other urgent business tasks.
You can zone in to the facebook users that are most likely to buy your product or service. This can be done on an array of demographic information, as well as user location and behaviour.
Facebook are also owners of other platforms such as Instagram and Facebook Messenger. You can easily publish your ad to these other platforms to maximise your ad's reach.
Facebook is massive and people are forever having a quick scroll down their feed. The amount of potential users you can reach with a facebook advert vastly outshines other advertising locations. This is especially true when considering most people use facebook from their mobile, and facebook adverts appear on the mobile platform too.
Facebook advertising is an economic choice in comparison to similar advertising on the same large scale. In fact, reaping the benefits here may mean ditching your other, less effective and more expensive methods, saving you money.
You can track the performance of your add so you can make relevant adjustments if needed.
By using a facebook advert, you will direct more traffic to your website which gives you a greater opportunity for further advertisement and improved search engine rankings.
Your facebook advert will be published immediately.
Your competitors are probably making use of this effective marketing tactic and if you are not, they may be stealing some of your market share.


We are looking for a few experienced ID/OD Grinders to start ASAP in the Chicago, IL production facility. This is a temp to hire opportunity!
Involves a wide variety of material where chucking and alignment are critical.
Follow departmental procedure with regard to first piece and routine inspections.
Incumbent must physically and mentally perform the job demands as listed above.
Results oriented with the ability to pay strong attention to detail.
Needs to be a pro-active self-starter that can work independently or with a team.
Handle multiple projects (multi-task) in a fast-paced organization with shifting priorities.


text:
Q: Avoiding having to go back twice after writing html with an onload=document.form.submit() to HttpContext.Current.Response So that's a long title, here's what I'm doing: To avoid having report parameters show up in the URL I'm doing this in a button click handler in the code-behind to show the report:
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Write("");
System.Web.HttpContext.Current.Response.Write("");
System.Web.HttpContext.Current.Response.Write(string.Format(CultureInfo.InvariantCulture, "<form name=\"mainform\" method=\"post\" action=\"{0}\">", ReportURL));
foreach (string key in Params.Keys)
{
    System.Web.HttpContext.Current.Response.Write(string.Format(CultureInfo.InvariantCulture, "<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", key, Params[key]));
}
System.Web.HttpContext.Current.Response.Write("</form>");
System.Web.HttpContext.Current.Response.Write("");

This works great, but when I go back from the report I'm taken to the page I just generated which immediately submits the form due to the onload event. I can hit back twice really quickly to go back past it but this isn't ideal.
I've tried opening a new window with JavaScript using ClientScript.RegisterStartupScript before writing the html but I don't know how (or if it's even possible) to get the HttpContext for the new window.

A: I wasn't able to recreate the problem using your code, so more context may help. Depending on how the rest of the page is structured, you may be able to use PostbackURL instead of a click handler:
<form id="form1" runat="server">
    <asp:HiddenField runat="server" ID="Key1" Value="Value1"/>
    <asp:HiddenField runat="server" ID="Key2" Value="Value2"/>
    <asp:Button runat="server" ID="button"
        Text="ok" PostBackUrl="ReportURL.aspx"/>
</form>

This way you don't have to worry about an extra/replaced page in the browser history.

A: I ended up opening a new window. I added two small javascript functions
function openNewWin() {
    $('form').attr('target', '_blank');
    setTimeout('resetFormTarget()', 500);
}

function resetFormTarget() {
    $('form').attr('target', '');
}

Then in the linkbutton I set
OnClientClick="openNewWin();"

The OnClick still executes the code above server-side but the response is written to the new window. The setTimeout in the openNewWin function resets the form's target property so the app will still function normally after coming back to it.

redpajama_set_name: RedPajamaStackExchange


text:
VIDEO: Evening Lava Update – Friday, Dec. 12
on Dec 12, 2014 at 7:02 pm
Scientists say the active tip of the flow was about 1.6 miles from the upslope edge of Pahoa Marketplace.
(ABOVE VIDEO) This morning's Civil Defense message with Friday overflight video courtesy the County of Hawaii.
Tonight, USGS Hawaiian Volcano Observatory scientists say the active tip of the flow was about 1.6 miles from the upslope edge of Pahoa Marketplace along the path of steepest descent that the flow is currently following.
USGS Hawaiian Volcano Observatory (HVO) scientists conducted field mapping around the leading tip of active lava on the June 27th lava flow. The active lobe has advanced about 900 meters (0.6 miles) since the afternoon of December 9, which is equivalent to an average advance rate of approximately 320 meters per day (0.2 miles per day).
The leading edge of this lobe was 2.7 km (1.7 miles) upslope from the intersection of Highway 130 and Pāhoa Village Road at the Pahoa Marketplace, as measured along a straight line. The active lobe is following a steepest-descent path that takes the flow towards the intersection of Pāhoa Village Road and Highway 130, in the vicinity of the Pahoa Marketplace. The leading edge of the lobe was 2.6 km (1.6 miles) upslope from the edge of Pahoa Marketplace, as measured along this path of steepest-descent. USGS Hawaiian Volcano Observatory on Dec.12 at 7:35 p.m. HST
Satellite image of area around front of Kīlauea's East Rift Zone lava flow, provided by USGS HVO.
This map uses a satellite image acquired in March 2014 (provided by Digital Globe) as a base to show the area around the front of Kīlauea's active East Rift Zone lava flow. The area of the flow on December 9, 2014, at 2:30 PM is shown in pink, while advancement of the flow as mapped on the ground on December 12 at 10:00 AM is shown in red. This represents an advancement of 0.9 km (~0.6 miles) in slightly less than 3 days.
The active tip of the flow was about 2.6 km (~1.6 miles) from the upslope edge of the Pahoa Marketplace along the path of steepest descent that the flow is currently following. Tick marks have been placed along the steepest-descent path at an interval of 0.4 miles, measured from Pahoa Marketplace. The front of the flow was at 19.493432, -154.978043 (Decimal Degrees) at an elevation of about 250 meters (~820 ft).
The blue lines show steepest-descent paths calculated from a 1983 digital elevation model (DEM; for calculation details, see http://pubs.usgs.gov/of/2007/1264/). Steepest-descent path analysis is based on the assumption that the DEM perfectly represents the earth's surface. DEMs, however, are not perfect, so the blue lines on this map can be used to infer only approximate flow paths. USGS Hawaiian Volcano Observatory on Dec. 12
USGS photo of the active flow front on December 12, 2014
An HVO geologist uses a handheld GPS unit to mark the flow margin coordinates. The flow field map today was updated by taking a series of GPS points like this around the leading portion of the flow. (USGS photo)
Filed Under: Uncategorized Tagged With: June 27 lava flow, Pahoa