text:
Share this Story: Progress being made in promoting skilled trades, but more work to do: McNaughton
This section is Presented by West Brant Window World
Progress being made in promoting skilled trades, but more work to do: McNaughton
Ellwood Shreve
Dec 02, 2021 • December 2, 2021 • 4 minute read • Join the conversation
Ontario Minister of Labour, Training and Skills Development, Monte McNaughton, spoke with Postmedia about the progress being made to promote skilled trades to young people. File photo/Postmedia Photo by John Lappa /John Lappa/Sudbury Star
For that past two years, Ontario Minister of Labour, Training and Skills Development Monte McNaughton has been steadfast in his promotion of the skilled trades as a career choice for young people that offers numerous opportunities as many in this sector approach retirement age. Postmedia spoke with McNaughton Thursday about the recent progress that's been made attracting the province's students to the skilled trades.
PM: Has the COVID-19 pandemic hindered progress on where you wanted to be with promoting the skilled trades?
Progress being made in promoting skilled trades, but more work to do: McNaughton Back to video
MM: No. We've worked really hard throughout the pandemic to continue promoting the skilled trades as an amazing opportunity for young people. We know one in three journeypersons is over the age of 55 and the average age of an apprentice is 29 in Ontario today. That's why it's more important than ever to promote the skilled trades at a much younger age and to really put a push on getting people into the trades to fill these jobs that are going unfilled.
PM: What results are being seen in attracting people to the skilled trades?
MM: We are seeing an increase in apprenticeship registrations over the past few years. Under the former government, there was a 40 per cent decrease in apprenticeship registrations, which meant under the (Kathleen) Wynne government, it was about 20,000 fewer people that applied for apprenticeships. So, we're starting to see progress on that front. My message to young people is these are great careers that, in many cases, pay six figures with pensions and benefits. … When you have a trade, you have a job for life. We've done very well during the pandemic to continue to attract young people into the skilled trades.
PM: Is Ontario's education system on board with promoting career opportunities in the skilled trades?
MM: We are introducing the skilled trades as early as kindergarten. Skills Ontario is going into classrooms, they're doing presentations in front of students at a much younger age to get more interest in the trades and to promote these as a first career choice for many young people. I want young people and parents to know that university isn't the only pathway to be successful in life. There's great opportunities in the trades.
PM: How is the plan going to send recruiters into schools to promote the skilled trades?
MM: We're sending more than 60 recruiters into every high school across the province to compete head on with the university recruiters to tell young people that there are more than 140 different trades available and the pathway on how to get into specific trades.
PM: There are a number of young people who graduated high school but maybe didn't go to on post-secondary education right away due to the pandemic. Is there is way to target them to promote the skilled trades?
MM: Absolutely. We've put a lot of initiatives out there to encourage all people to consider the skilled trades. One of the initiatives we launched last week was the investment into pre-apprenticeship programs. These programs give people 12 weeks to try the different construction trades, for example, and we've had a lot of success with pre-apprenticeship programs. Once (someone) completes a 12-week pre-apprenticeship, then they can go into an apprenticeship. These would work for people who are 20 years and older.
PM: What kind of buy-in has there been from industry for the initiative to promote skilled trades?
MM: There's wide support across Ontario for the mission that we're on. We're all working together – unions, business, government – to spread opportunities more widely and fairly across the province and the skilled trades is a big part of that. We've been able, in the last couple of years, to bring all the partners to the table to really work together on this because, if we want to build infrastructure projects on time and on budget, we need more people in the trades. If we want to keep our manufacturing plants going and attract new factories to Ontario, we need a workforce to build these products. So there's buy-in right across the province for this.
PM: Now that the groundwork has been laid, what's the future look like for continuing to promote the skilled trades?
MM: This is the number one priority for Premier Doug Ford and our government. We're going to continue to promote the trades to fill the skills gap that we have in our economy and to ensure that we're building back a better province by promoting the trades. The government's financial commitment speaks for itself – $1.5 billion over four years – that's a $1.1 billion increase from the former government. I'm proud of the progress that we've made, but there's still a lot of work to do. We've got to continue sending that message to parents and to educators and to young people that a career in the skilled trades is an amazing opportunity for the young people and their families.


164 West Main StreetSuite DNew Market, MD 21774 … Port Orange, FL … of Chiropractic degree from Palmer College of Chiropractic Florida Campus in 2018 .
The Evidence Based Chiropractor is a research-based marketing and … Palmer College of Chiropractic Florida, Port Orange, FL- Doctor of Chiropractic, 2006. Marketing For Doctors Surfside, Fl … 1 result. marketing moving companies Port Orange, FL. Port Orange Chiropractic is Awesome.
Marketing For Small Business Lauderdale Lakes, Fl Web Design Sunrise, Fl Web Design Lakeland, Fl Marketing For lawyers port orange, Fl … CE Cruncher, Chiropractic Continuing Education and Chiropractic Seminar.
Marketing For Doctors Surfside, Fl … 1 result. marketing Moving Companies Port Orange, FL. Port Orange Chiropractic is Awesome. I can"t express enough the professionalism as well as kind office staff.
Chiropractor in Port Orange, FL | Anti-Aging & Regenerative Associates provides chiropractic adjustments to clients that help to heal pain and aide in recovery.


Discerning drivers will appreciate the 2018 Ford Transit-250. With less than 10,000 miles on the odometer, you'll be sure to appreciate this model's condition and value. Ford prioritized fit and finish as evidenced by: a tachometer, variably intermittent wipers, air conditioning, telescoping steering wheel, power door mirrors, power windows, and remote keyless entry. Storage solutions are integrated throughout the interior, demonstrating thoughtful attention to detail. Ford ensures the safety and security of its passengers with equipment such as: head curtain airbags, front side impact airbags, traction control, a panic alarm, and 4 wheel disc brakes with ABS. Brake assist technology provides extra pressure when applying the brakes. It also arrives with a Carfax history report, indicating just one previous owner. Our sales staff will help you find the vehicle that you've been searching for. We'd be happy to answer any questions that you may have. Call now to schedule a test drive.


text:
Directoryoregon
burns junction oregon
Posted on by Spencer
Category:Oregon Directory Keywords
Burns junction: (541
Cheapest nearby gas
Building salem oregon
Longest annual charity bicycle
dog grooming in albany oregon And by too many, 43 would be a good example. "We opened up his stomach and kept removing sock after sock of all different shapes and sizes," Dr. Ashley Magee at DoveLewis Animal Hospital in Portland,
Besides reducing the amount of water available, the runoff also can introduce pollutants, as well as nutrients that create.
acupuncture astoria oregon "A lot of people aren't happy about it," said Lisa Emerson, program director for Oregon's SHIP, the Senior Health Insurance. that some never thought possible in a Medicare plan – acupuncture,towing springfield oregon When it comes to towing, hauling or hitching, Ron's Hitch N Tow is the standalone provider of parts, repairs, accessories and custom-order components in the great state of Oregon. Our products and services encompass the entire gamut of trailer hitch and towing needs, while also branching out to cover RVs and specialized vehicles as well.
Get directions, maps, and traffic for Burns Junction, OR. Check flight prices and hotel availability for your visit.
The incident took place at the late market junction, Minna. The Nation learned that the patrol operatives were on their way to the police Headquarters to hand over to the next team on duty before.
Dr Maraka's two children, then aged one and three, were watching YouTube clips and playing in the back seats as she drove on.
See our Genealogy Helper Page for Burns Junction for more information about variations on the name of Burns Junction. Burns Junction is 3,930 feet [1,198 m] above sea level. <2> In other words, the altitude of Burns Junction is ¾ mile [or ~1¼ km] above sea level. Telephone area codes for burns junction: (541) and (458) <3>
Find the cheapest nearby gas stations and prices in Burns Junction, OR. Use our layers tool to find nearby restaurants, shops, and hotels.
Last I saw (last month), the gas station at Burns Junction was closed. I think that's been true for more than a year now. I think that place cycles in and out of.
Burns Junction, Oregon, Marsing, Idaho. 28 likes · 2 talking about this · 171 were here. Burns Junction is an unincorporated community in Malheur County,
Electrical burns are a serious issue, and, for reasons that remain unclear. It's possible that there's a type of nerve.
Junction Oval, 2.10pm Erin Burns might be new to the Australian cricket team, but she's one of the only players with intel on.
Burns Junction is an unincorporated community in Malheur County, Oregon, United States, at the intersection of U.S. Route 95 and Oregon Route 78, about 80.
Looking to help the environment? Need something to suit your access needs? Or perhaps you just don't like flying? Whatever.
oregon state board of nursing disciplinary actions Oregon mortuaries. fare on inspections. The board's website says: "With the exception of egregious or continuing violations, deficiencies noted during routine inspections rarely lead to formal.
Burns Junction (at The Junction Of OR 78), Oregon Truck Scales Weigh Stations.
oregon truck camper Larry's RV is Central Oregon's RV, truck camper, travel trailer, fifth wheel, motorhome consignment specialist. Located in Bend, Oregon, serving all of central oregon including bend, Redmond, La Pine, Sisters, Prineville, Chemult, Crescent, Sun River, Madras, Warm Springs, Terrebonne, Jefferson, Crook, Deschutes, Klamath Falls, Maupin, Post, John Day and surrounding areas.
Burns Junction: maps, driving directions and local area information. Category: Oregon physical, cultural and historic features; Feature Name: Burns Junction,
Making matters more concerning is that the metatarsal bone cut (osteotomy) is at the metatarsal neck within the.
gibs rv coos bay oregon grover's medford oregon best hotels in corvallis oregon (Andrew Kilstrom/For The Oregonian) DALLAS — Before Drew Rasmussen arrived in Corvallis, nate yeskie lauded the freshman to former Oregon State ace Ben Holmes. he admittedly let emotions get the.Two years later, he began working as a session musician around the city. For the next 15 years, Miller recorded with an amazing array of artists including Elton John, Grover Washington, Jr., Chaka.micah building salem oregon The Micah building on the corner of State and Cottage will be leased for the core offices of CST at Willamette. Hybrid intensive course sessions will be held on the second floor of the Micah; other classes and events will be incorporated on the main Willamette campus. In August 2019 CST faculty, staff and students will begin to arrive in Salem.oregon truancy laws average rent in beaverton oregon wrecking yards roseburg oregon Dowis helped take the Falcons to two bowl games, rushed for a career total of 3,612 yards, scored 252 points and finished. Calhoun came to Air Force from Roseburg, Ore., where he was a prominent.For renters, Portland's $1,336 average. as Beaverton, the home of Nike. Meanwhile, Portland apartments were 95.7% occupied in October, so not many units were available – more encouragement for.amount of sick leave school districts are required to provide employees pursuant to ORS 332.507 (10 days/school year or one day/month employed). If a collective bargaining agreement has a more generous provision for sick leave than the law, the CBA will rule; otherwise, the provisions of the law will apply to ALL district employees.COOS BAY – On the longest annual charity bicycle ride in the world, the Texas 4000 team will be rolling through Coos Bay on Wednesday, July 12, just 41 days after departing from Austin, Texas on their.
lebanon oregon post office hours
portland state vs oregon state
wsu vs oregon state 2016
pigs for sale oregon
rentals in douglas county oregon
Cookies - Terms and Conditions - Sitemap

redpajama_set_name: RedPajamaCommonCrawl


Hi! Sign in to let us know how Adam Osborn-State Farm Insurance Agent was?
by RealGoodGuy at Citysearch Dec 26 .
These people are crooks. I have always trusted State Farm until dealing with this office. They play bait and switch, quoting you a price that they know is incorrect to get you to switch to them and let your previous insurance lapse. They will straight out lie to you to get your information then bill you for more than you agreed to. You don't even know you've been overcharged until after they have taken the money and you receive a letter after you've allowed whatever insurance you had to lapse. Forcing you to either let them keep the fraudulent money they stole from you or leave you with no insurance. DO NOT TRUST THEM!! When confronted Mr. Osborns attitude is basically, that everyone scams like this in the industry so live with it!! They even admit obtaining information through illegal and fraudulent manners with the attitude of... ""yeah we do it, but you can't prove it!"" I am now working with the Atty.Generals office who will be dealing with these people like the criminals they are!
This office giving State Farm a bad name!! Go elsewhere!!
If you've been to or used Adam Osborn-State Farm Insurance Agent, leave a review.


Aethia held tight to the Battle Eyrie's reigns as Adrian surged through the air.
When Queen Fyora had first suggested appointing a true captain to head the guard by the Battle Faerie's side, Aethia had backed the plan wholeheartedly. She had a number of reasons for doing so, the first being that her own title came with duties outside the guard as well as within; she could certainly use another set of hands taking care of the knights while she trained young pets to defend themselves.
On another, more private note, she was all too glad to leave Brynn to leading the charge – it meant that she and Adrian would finally get the chance to use one of her favourite tactics against the army that dared threaten her home.
With a light flicker of magic, Aethia opened up the mental link she had long ago established with her steed.
The Eyrie had burst through the clouds by this point, and now he levelled out into a glide. Aethia took the chance to spare a glance down below. The front lines of the two armies were intermeshed, writhing shadow intermixing with the bright shimmer of wings and the glint of armour. A number of those combatants who could were taking to the air as well, but none had reached anywhere near the Battle Faerie's altitude.
The silent command needed no further direction; at once, Adrian tucked his wings against his body and brought them into a dive.
A jade blur shot by them, but Aethia ignored it for the moment.
As the wind rushed past and the ground approached at an increasingly rapid pace, the Battle Faerie leaned into the momentum and released her grip on the reigns to reach back for her twin swords. Using the blades themselves at her speed in the midst of friends as well as enemies would have been risky at best, but she had a different plan for the Swords of Flame and Ice.
Aethia chose a simple light spell. The distracting and possible blinding effect of the flash would no doubt be potent against the unsuspecting Haunted Woodsmen, accustomed as they were to the shrouding darkness of their homeland, and she suspected that this would be especially true considering the nature of the attackers.
Adrian swooped low behind enemy lines, where most of the fighters were of the invading force. Aethia swung her swords out and released the spell just over their heads. The enchanted blades amplified and extended the reach of the light, one shining silver as it did so and the other a faint crimson.
Adrian had to pull up again before his rider could see whether her spell succeeded in disorienting the Woodsmen, and Aethia shifted her grip on the swords so that she could once more grab the reigns.
A shape flickered in the corner of her field of vision, and as Adrian began to climb through the sky she whipped around to see General Hirok on his Uni, the latter rushing to overtake the Eyrie.
'Adrian, we've got company!' Aethia's thoughts shouted as she loosed one hand's grip on the reigns and held its sword at the ready.
Brynn shielded her eyes when the Battle Faerie's light spell exploded overhead.
Fortunately, as the first pets to enter the fray, she and Rallon were two of only a few Faerielanders back far enough that they had to do so. The dark faerie officer had taken to the air to engage the winged defenders not long after the battle had begun, leaving Rallon to rush through enemy lines as he and Brynn worked at pushing back the wraiths.
An eerie shriek rose from the throats of the invaders as they covered their eyes and shrank back almost instinctively from the light, and Brynn took advantage of the distraction by swiftly dispatching those closest at hand. A part of her chastised the action as a futile effort – it hadn't taken her long to discover that the unnatural colouration of these pets made them nearly as vulnerable to the blade as their monstrous counterparts, but that unlike the latter, they were able to reform apparently unharmed after a few minutes or so. This would certainly explain why they wore no armour... but at least forcing these pets to stop and restructure themselves would buy her a bit of time, and perhaps sap some of their energy.
For now, any amount of borrowed time was welcome. Two things concerned Brynn, and the first had to do with the effect this writhing mess of a fighting force was having on her people. Logically, the Faerielanders knew that wraith pets were not the same things as the unholy beasts of yesteryear; that, special abilities aside, they were simply pets. Yet she could tell that the presence of such scores of them at once had unnerved many, and that the faeries especially were beginning to fall back on instinct. Some rushed, hardly thinking, headlong into battle, while others unconsciously drew back.
It wouldn't be long before this frenzied instinct cost some of them their lives.
And so Brynn pressed on, using her blade not only to block the wraiths' attacks but to scatter their shadowy fragments and thus delay their advance, and Rallon did the same with his horn and hooves. It was a temporary solution, but one that gave the magic-wielders a chance to reach them with a more effective answer.
For a time, she wondered whether another light spell of Aethia's would come in to catch her a break. None did.
A Shoyru invader dodged Rallon's horn by leaping into the air, and the Uni gave chase. Thrust abruptly away from the bulk of Hirok's forces and into a higher vantage point, Brynn used the moment to take a good look around at the rest of the battlefield.
"Lieutenant!" she suddenly shouted, pulling back on her Uni's reigns to bring him to a hover and pointing him toward the city.
The Kougra had just found the root of her second concern.
Corin did not enjoy spending the battle stuck behind city walls.
His position as a pre-guard squire – just inexperienced enough that Sir Rallon refused to allow him to help – was bad enough without the false calm of the city streets. Most of the citizens in their right mind, if they hadn't outright fled Faerieland, holed up in their homes as they waited and prayed for the danger to pass. Not he, though; if it came to the worst, if the invading forces breached the land's magical barrier and the city's walls, there would no longer be any reason for him to stay back. If it came to that, he wanted to be out and prepared to fight not matter the danger.
Even so, patrolling through the streets with the few guards stationed within the city just in case, and looking up at the archers and long-range magicians at the walls, did little to release his coiled energy.
Perhaps that was why he had taken Hanso up on his mad offer to break into the Hidden Tower instead.
"How exactly is this supposed to help again?" Corin's voice echoed through the stairwell as he gingerly made his way up the tower. Hanso kept pace a few steps ahead, the tools that had aided him with getting into the tower still in hand.
"Think about it, Corin," the Ixi replied without looking back. He reached the door at the top of the staircase and started fiddling with the lock. Corin was a bit surprised that the Hidden Tower didn't have more security, but he supposed that its secret location, privy only to those trusted by or in the service of the Queen, was generally security enough. That, or Hanso just really knew what he was doing.
"This place is practically an armoury," Hanso went on. "Some of the most powerful weapons in the world are kept in here." The lock clicked, and he swung the door open. "There's got to be something in here that someone like Brynn or Aethia can use! I just wish I'd thought of this earlier..."
Corin stepped across the threshold after the Ixi and shook his head. "Don't you think they already knew that? I'm sure Queen Fyora has already equipped the army with all of the most useful items they have." His gaze drifted over the room – sure enough, the shelves housing shields and weaponry were noticeably sparser than those displaying paint brushes and the like.
"Yeah, but this tower's been around longer than the current queen has." Corin turned his attention back to see Hanso ignoring the open shelves and looking, even feeling along the walls and poking into crevices. "And if there's anything I learned from hunting down faerie artefacts, it's that the stuff they made back in the day was a lot more powerful than most of what you can find now... and usually better hidden, too."
The Ixi had made his way down a good portion of the wall by this point, and Corin, not really knowing what he should be looking for, began to follow. Hanso went on, "And I know that Fyora's been around for a long enough time that she might have found something, but the thing is..." he trailed off, and the Uni leaned in expectantly just in time to hear another faint click. The trespassers turned to stare at one another, Corin with an incredulous look on his face and Hanso wearing a grin.
"...Until now, Fyora's never had a thief on her side. So, just who do you think should have the honour of using our new toy?"
Brynn cast another glance at the barrier rushing by.
Fortunately, the Faerielanders had prepared for this kind of assault – for the most part, at least. Brynn knew that the wraiths Hirok had presented so far couldn't have possibly made up for his entire army, and that they most likely served as a diversion as much as a frontal force. Now, it seemed, the rest of his soldiers had finally revealed themselves. Cloaked at first against prying eyes, they had managed to sneak closer to the barrier than she would have liked, but once the defensive units of the Faerieland army had discovered them and dismantled their spell, they didn't have too much trouble keeping most of the invaders back.
The problem lay in the group of Haunted Woodsmen that had looped furthest around the main battle. They had bypassed the southern border entirely before they were uncovered, and were well on their way to the eastern border with too little resistance. Because Hirok's forces had come in directly from the West, the East wall was the most lightly guarded – and now, the most vulnerable to assault.
Brynn rode Rallon at a hard gallop, the two of them leading reinforcements past the fighting at the southern border in order to catch up with these invaders before they could start hacking at the barrier.
Brynn could have sworn her heart stopped at the sound of that voice. Rallon looked over to the left and immediately stumbled; his wings flared out in shock as he caught his balance and stepped away from the rest of the group.
"Corin! What in the name of the good Queen are you and Hanso doing out here?!"
Brynn turned and quickly motioned for the rest of the reinforcements to keep going before rounding on the new arrivals. The young brown Uni alighted on the ground a few yards from his mentor – he must have gotten someone to let them past the barrier somewhere away from the fighting, as he was without armour. The Ixi seated on his back, also lacking any sort of protection, clutched a long bundle with what seemed to be a hilt sticking out of one end.
"It was his idea," Corin muttered as Rallon's eyes bored into him. Brynn merely sat speechless, waiting on a proper explanation.
Hanso tossed the bundle to her and said in a rushed voice, "Magic sword! We didn't have time to figure out what exactly it does, but it's got to be really powerful – all I had to do was touch it and it started glowing! I thought it would give you an edge over the one you normally use."
Brynn couldn't quite believe that anyone, even Hanso, was capable of pulling off such an insane stunt just to get her a weapon upgrade, but in spite of her misgivings she untied and slid the wrappings away from the sword. It was finely crafted, with a smooth amber stone embedded in both sides of the golden-hued hilt and a shallow etching of words in a language she couldn't understand along the flat of the blade. As soon as she grasped the hilt, the amber shone brightly, its warm light swiftly spreading down the rest of the weapon.
Brynn looked back toward the Ixi and shook her head. "Hanso, this is an unknown powerful artefact. It's too dangerous for me to be using!"
Hanso returned her stare with an uncharacteristically serious one of his own. "No, it isn't," he replied firmly. "The reason we have to hunt these kinds of things down is because they're dangerous in the wrong hands. You know how to handle a sword and you won't abuse its powers; your hands are far from the wrong ones."
Brynn bit back a retort – now really wasn't the time to be pointing out the flaws in his logic, as the distant clamour reminded her. She merely shook her head again and slid the new blade into her unoccupied sheath.
"All right, you've done what you came out here to do," Rallon snapped. "Now get back behind the city walls before you two get yourselves killed!"
Corin nodded and took off, though Hanso turned to spare one last glance at his best friend and her Uni before returning his focus ahead. Brynn took a deep breath and nudged Rallon on toward the east. They'd wasted enough precious time here as it was.


Not only does ShopCookware sell an extraordinary amount of saucepan sets, we sell loose saucepans and cookware as well. This category allows you to pick and choose the sizes and types of cookware from a wide variety of brands. Picking and choosing exactly what you want allows you to build the saucepan cookware collection that exactly meets your needs. Mix a Le Creuset saucepan with a Jamie Oliver pan or try one of our state-of the art Prestige Circulon Infinite or Prestige Circulon Steel Elite saucepans ranges. For even more variety, add Stellar saucepans to your non-stick Horwood stockpot. The choice is yours.
At ShopCookware, the saucepans we supply are meant to last for many years. If you follow these simple guidelines, you will be able to achieve longevity with ease.


Using manipulatives in mathematics instruction can help you to address state standards for mathematical practice.
Abstract concepts are essential to understanding and doing mathematics. They are also a source of difficulty for students who struggle with mathematics, many of whom find even basic mathematics concepts hard to understand. Teachers often use tangible materials—referred to as manipulatives—to concretely represent these abstract concepts and help their students understand them. Manipulatives can also be used to help students link these concepts with prior knowledge. Using manipulatives in mathematics instruction can help you to address math standards, particularly standards related to making sense of problems and abstract reasoning.
In the past, most classrooms only had physical manipulatives. Today, however, more classrooms have improved access to computers and the Internet, and virtual manipulatives are becoming increasingly common. Virtual manipulatives can be useful tools for students, and they can help them learn how to use appropriate technology tools for mathematics.
Virtual manipulatives are digital "objects" that resemble physical objects.
You can manipulate these digital objects, often with a mouse, just as you would manipulate physical objects. Many of the virtual manipulatives typically used in mathematics education are available for free online . These include Base-10 Blocks, Cuisenaire Rods, and tangrams. Most virtual manipulatives come with structured activities or suggestions to help teachers use them in the classroom.
These tools can be especially helpful for students with disabilities because they can improve their understanding of the abstract symbolic language of mathematics. Students who struggle in mathematics often find it hard to connect visual and symbolic representations, but virtual manipulatives can help make these connections clear.
In addition, virtual objects can be altered in ways that concrete ones cannot (for example, the size, shape, and color of a block can be changed). In many cases, this enables students to create more examples than they could with physical objects. Many virtual manipulatives also have the added benefit of providing students with hints and feedback, allowing them to practice on their own without teacher assistance.
These features mean that virtual manipulatives can be especially helpful for students with language difficulties, including English language learners. These students often have trouble explaining what they are learning in mathematics, but virtual manipulatives can help them clarify their thinking and share their thoughts with others.
Ensure that the manipulatives are linked to specific mathematics content and evidence-based strategies (and that they are not used as a separate activity).
Ensure that the manipulatives are used as part of a progression from concrete to pictorial to abstract (see the section on What the Research Says for more detail).
Can you adjust the level of difficulty for different students?
Is feedback provided? If so, what type of feedback?
Will you need to be on hand to provide additional feedback and support?
How clear are the instructions for use? Will you need to provide additional guidance?
Used wisely, virtual manipulatives can be an excellent addition to your teaching toolkit. They can provide students with opportunities for guided exploration, helping them build a solid understanding of mathematics concepts. They can also help students demonstrate and share their learning.
Studies have evaluated the effectiveness of manipulatives as a tool in mathematics instruction. One line of research has studied the Concrete-Representational-Abstract (CRA) sequence. This form of explicit instruction moves students from concrete manipulatives to pictorial representations of those manipulatives, and from pictorial representations to abstract concepts. Butler, Miller, Crehan, Babbitt, and Pierce (2003) compared the effectiveness of teaching fraction concepts to students with learning disabilities using a CRA approach versus a Representational-Abstract (RA) approach (which starts with pictorial representations and then moves to abstract concepts without using concrete manipulatives). Although both groups improved in terms of their understanding of fractions, the CRA group had higher scores overall than the RA group.
A study by Witzel, Mercer, and Miller (2003) also supports the effectiveness of adopting a CRA approach to develop the basic mathematics skills of students with learning disabilities. Students were taught to solve algebraic equations using either a CRA approach or a traditional approach. The study involved 34 matched pairs of students in Grades 6 and 7 who had either been diagnosed with learning disabilities or categorized as at risk for learning problems. Although both groups showed improvement after a four-week intervention, the CRA group significantly outperformed the group that had received traditional instruction.
In another CRA study (Maccini & Hughes, 2000), six adolescents with learning disabilities used algebra tiles to represent algebra word problems during the concrete phase of instruction. The students were able to transition successfully to pictorial and ultimately symbolic representations of the problems.
With the rapid development of technology, virtual manipulatives have become widely used in mathematics instruction and have been shown to have a positive impact on students' mathematics achievements. Bolyard and Moyer-Packenham (2012) conducted a quasi-experimental study to examine the effectiveness of virtual manipulatives in helping sixth-grade students make sense of integer arithmetic. The results revealed that the use of virtual manipulatives helped students improve integer computation achievement.
Reimer and Moyer (2005) investigated the performance of 19 third-grade students during a two-week unit on fractions that used virtual manipulatives. More than half of the students improved their conceptual understanding of fractions on a teacher-designed measure. In another study of 19 second-grade students, Moyer, Niezgoda, and Stanley (2005) observed that virtual Base-10 Blocks enabled students to demonstrate more sophisticated strategies and explanations of place value. Bolyard and Moyer-Packenham (2006) studied the use of virtual manipulatives with 99 sixth-grade students learning addition and subtraction of integers. The students showed significant gains in achievement, and the researchers concluded that virtual manipulatives can support learning these concepts.
Bouck, Satsangi, Doughty, and Courtney (2014) used virtual manipulatives and concrete manipulatives to teach subtraction skills to a group of elementary-aged students with autism spectrum disorder. Although both types of manipulatives helped students with mathematics problem solving, students using virtual manipulatives achieved greater accuracy and faster independence in solving the subtracion problems. Suh and Moyer (2007) compared the use of concrete and virtual manipulatives among third-grade students studying algebraic thinking. Both types of manipulatives were associated with higher achievement and increased flexibility in representing algebraic concepts. Steen, Brooks, and Lyon (2006) compared the academic achievement of a group of first-grade students who used virtual manipulatives for practice in geometry instruction (the treatment group) with another group who did not use virtual manipulatives (the control group). A total of 31 students were randomly assigned to either the treatment or control group. Achievement was measured by the Grade 1 and Grade 2 assessments provided by the classroom textbook's publisher. The treatment group improved significantly on both the Grade 1 and Grade 2 tests, while the control group showed significant improvement only on the Grade 1 test. The teacher of the treatment group also noted that her students showed increased motivation and spent more time on task.
Teachers also play an important role in helping students understand the concepts that manipulatives represent (Bjorklund, 2014; Moyer, 2001). This was highlighted in a one-year study of 10 middle school mathematics teachers and their use of manipulatives (Moyer, 2001). Teachers who were unable to represent mathematics concepts were more likely to use manipulatives as a diversionary rather than an instructional activity.
The CRA studies described above also demonstrate the importance of structure and guidance in linking concrete materials with abstract concepts. For example, students in Maccini and Hughes' study (2000) were taught not only to use algebra tiles to represent word problems, but also to use a structured strategy in solving them. In the Reimer and Moyer study (2005), students benefited from another important aspect of guidance: feedback. When students were interviewed regarding their impressions of the virtual manipulatives, an emergent theme was their appreciation of the immediate feedback provided by computer-based manipulatives. In addition, it is important for teachers to motivate students intrinsically when using manipulatives in mathematics instruction in order to achieve the desired outcomes (Jones, Uribe-Fiorez, & Wilkins, 2011).
Bolyard, J. J., & Moyer-Packenham, P. S. (2006, November). The impact of virtual manipulatives on student achievement in integer addition and subtraction. Paper presented at the annual meeting of the North American Chapter of the International Group for the Psychology of Mathematics Education, Mérida, Yucatán, Mexico.
Bolyard, J., & Moyer-Packenham, P. (2012). Making sense of integer arithmetic: The effect of using virtual manipulatives on students' representational fluency. Journal of Computers in Mathematics and Science Teaching, 31(2), 93–113.
Bouck, E. C., Satsangi, R., Doughty, T. T., & Courtney, W. T. (2014). Virtual and concrete manipulatives: A comparison of approaches for solving mathematics problems for students with autism spectrum disorder. Journal of autism and developmental disorders, 44(1), 180–193.
Björklund, C. (2014). Less is more–mathematical manipulatives in early childhood education. Early Child Development and Care, 184(3), 469-485.
Butler, F. M., Miller, S. P., Crehan, K., Babbitt, B., & Pierce, T. (2003). Fraction instruction for students with mathematics disabilities: Comparing two teaching sequences. Learning Disabilities Research & Practice, 18(2), 99–111.
Maccini, P., & Hughes, C. A. (2000). Effects of a problem-solving strategy on the introductory algebra performance of secondary students with learning disabilities. Learning Disabilities Research & Practice, 15(1), 10–21.
Moyer, P. S. (2001). Are we having fun yet? How teachers use manipulatives to teach mathematics. Educational Studies in Mathematics: An International Journal, 47(2), 175–197.
Moyer, P. S., Niezgoda, D., & Stanley, J. (2005). Young children's use of virtual manipulatives and other forms of mathematical representations. In W. J. Masalaski & P. C. Elliott (Eds.), Technology-supported mathematics learning environments (pp. 17–34). Reston, VA: National Council of Teachers of Mathematics.
Reimer, K., & Moyer, P. S. (2005). Third-graders learn about fractions using virtual manipulatives: A classroom study. Journal of Computers in Mathematics and Science Teaching, 24(1), 5–25.
Steen, K., Brooks, D., & Lyon, T. (2006). The impact of virtual manipulatives on first grade geometry instruction and learning. Journal of Computers in Mathematics and Science Teaching, 25(4), 373–391.
Suh, J., & Moyer, P. S. (2007). Developing students' representation fluency using virtual and physical algebra balances. Journal of Computers in Mathematics and Science Teaching, 26(2), 155–173.
Witzel, B. S., Mercer, C. D., & Miller, M. D. (2003). Teaching algebra to students with learning difficulties: An investigation of an explicit instruction model. Learning Disabilities: Research & Practice, 18(2), 121–131.


Swansea City have confirmed the appointment of former Derby County chief executive Trevor Birch as the club's new chairman.
Birch was appointed chief executive at Derby in June 2007 after replacing Mike Horton's role as managing director.
He left Pride Park in October, and it was reported he suffered a breakdown in his relationship with then-manager Billy Davies, but the former Rams boss denied there was any problem between them.
Prior to taking the role at Swansea, Birch also had spells as chief executive at Chelsea, Everton, Leeds United and Sheffield United.
"Trevor's track record in the game speaks for itself," Swansea's owners said. "He has the experience we need and a business reputation that is second to none.
"Quite frankly, he is one of the finest football executives currently in the game and will bring a new dimension to Swansea City.
"Trevor will obviously be instrumental in strengthening the business side of the club but will also work very closely with Graham Potter and Kyle Macauley on the football front and especially in terms of recruitment.
"His experience allied to Graham and Kyle's vision for the way they want to build the club on the pitch is an exciting opportunity and we believe they will work superbly together.
"We made it clear in the statement last month that the club had to press the re-set button to some extent. Trevor's arrival allows us to do that."


text:
You are here: Home > Featured > Israel's army chief gave an interview to a Saudi news outlet. That's never happened before.
Israel's army chief gave an interview to a Saudi news outlet. That's never happened before.
Gadi Eisenkot, the Israeli army's chief of staff, speaking at a ceremony for the incoming Technology and Logistics Directorate head, July 13, 2016. (Sraya Diamant/IDF Spokesperson/Flash90)
(JTA) – The Israeli army's chief of staff gave the first interview by someone in his post to a Saudi news outlet.
Gadi Eisenkot told the Elaph news website Thursday that Israel is ready to share intelligence with Saudi Arabia as part of a joint effort to curb Iranian influence in the region. The interview was his first with an Arabic media outlet.
Israel and Saudi Arabia do not have diplomatic ties. Elaph is Saudi-owned but based in London.
In the interview, Eisenkot called Iran "the biggest threat to the region" and said Saudi Arabia was in "complete agreement." He accused Iran of trying to destabilize the Middle East by building weapons factories and supplying advanced weapons to militant and terrorist groups.
"Iran seeks to take control of the Middle East, creating a Shiite crescent from Lebanon to Iran and then from the [Persian] Gulf to the Red Sea," he said. "We must prevent this from happening."
Eisenkot made clear that Israel has no interest in playing into what he said were attempts by Iran to push the Jewish state toward war with its Lebanese proxy Hezbollah.
"We see Iranian attempts at bringing about an escalation, but I don't see a high chance for this at the moment," he said.
However, Eisenkot warned that local flare-ups could "lead to a broad strategic conflict."
Eisenkot said he welcomed U.S. President Donald Trump's stated commitment to confronting Iran over its ballistic missile program and deepening presence in Syria and Iraq. He characterized it as a chance to form a regional alliance against Iran, and said Israel would be willing to share intelligence as part of the effort.
"With President Trump, there is an opportunity to build a new international coalition in the region. We need to carry out a large and inclusive strategic plan to stop the Iranian danger," he said. "We are willing to exchange information with moderate Arab countries, including intelligence information, in order to deal with Iran."
Asked whether Israel has shared "information" with the Saudis recently, Eisenkot responded, "We are prepared to share information if it is necessary. There are many mutual interests."
The Elaph news site has interviewed a number of senior Israeli defense officials in the past, including the coordinator of government activities in the territories and the IDF spokesperson.
Prime Minister Benjamin Netanyahu has boasted about growing cooperation between Israel and Arab nations it does not have diplomatic relations with, especially regarding Iran.


When the annual Shag Harbour UFO Festival is celebrated on Aug. 9 to 10 at the local Incident Museum, it may be the last of its kind.
Located on the lighthouse route, the museum is a hidden jewel that tourists often accidentally stumble upon. Despite the remote location, the Shag Harbour Incident Society has seen over 550 visitors since June 8. Unfortunately, the museum cannot thrive on admission fees alone; it is a non-profit organization that remains privately maintained by the Incident Society, a society that is slowly running low on funds.
The outcome of this weekend's Shag Harbour UFO Festival will partly determine whether the museum continues to run in 2015. Hopes are high and fingers are crossed as the festival is expected to bring in over 200 visitors.
There are many of events scheduled, including two symposiums featuring local witnesses, authors, and UFO researchers. . . .


4 Sep 2013 . Specific energy consumption also decreases with feed quantity at all ball sizes. . processing of minerals, either to liberate mineral values or to.Mineral processing is a major division in the science of Extractive Metallurgy. .. from AG or SAG mills typically feed secondary grinding mills with particles that range in ..
Secondary Operations. Elkins Secondary Operations Department is a 15 member, 8,000 square foot division of the plant. It specializes in seating and threading, Stainless Steel, 1018 Steel and working with other exotic metals.
Multi Spindle Machines Rotary Transfer Machines We have successfully served customers from a variety of industries for over 30 years and we strive to be responsive and quick to order fulfillment and requests for quotes.
Secondary Operations Universal Grinding Corporation has been a one stop shop since 1944 Many of our customers appreciate the comfort in knowing that their job is going to be managed by one source.
Naxos Union of the EMAG Group offers double head grinding machines with state of the art technology for the grinding of large printing cylinders. This machine concept enables maximum productivity, the integration of different processes into a single clamping operation and compliance with tight tolerances.
Standby Screw utilizes three different types of grinding machines for secondary processes after a piece has been machined Mitsubishi and other CNC Center Grinders, Cincinnati Centerless In Feed Grinders and Cincinnati Centerless Through Feed Grinders.
Overview. Found at the highest end of the GT610 series spectrum, the GT610 CNC High Precision Automated Infeed/Thrufeed Centerless Grinding System excels at grinding a wide range of materials and is the complete quot;lightsoutquot; solution for applications where a high degree of automation, data gathering and gauging feedback is required.
The single spindle machines are best suited for smaller lots and short runs. Sizes range up to 15 inches for the horizontals and up to 24 inches for the vertical machines. CNC Cylindrical Grinding . Modern has a Joint venture relationship with a Grinding house.
Precision CNC Machining and Secondary Operations .
machines grinding secondary. Vertimill174; for fine wet grinding Globally recognised as energy efficient grinding machines, they bring One recent project has installed 16 VTM 1500 WB in a secondary grinding application. Contact Us. Centerless Grinding of a Steel Piston Rod for the Equipment .
OD Grinding Systems Now offered on granite bases, Glebar's OD Grinders can optimize production and cut cycle times up to 100% and possibly more. Fully automatable, these machines can hold extremely tight concentricity specs.
primary and secondary grinding stage ball . Used Ball Mills for SaleBall Mill and Mining Equipment AM King. of metallic or steel balls or other media has been used in single stage fine grinding.


text:
package com.bxf.hradmin.security;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.DefaultRedirectStrategy;
import org.springframework.security.web.RedirectStrategy;
import org.springframework.security.web.savedrequest.SavedRequest;

import com.bxf.hradmin.aamgr.service.AuthService;
import com.bxf.hradmin.aamgr.service.UserMgrService;
import com.bxf.hradmin.common.web.utils.UserUtils;

/**
 * AuthenticationSuccessHandler
 *
 * @since 2016-06-26
 * @author Bo-Xuan Fan
 */
public class AuthenticationSuccessHandler implements org.springframework.security.web.authentication.AuthenticationSuccessHandler {

    /**
     * redirectStrategy
     */
    private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();

    /**
     * 登入後跳轉頁面
     */
    private String defaultTargetUrl = "/";

    @Autowired
    private UserMgrService userService;

    @Autowired
    private AuthService authService;

    @Override
    public void onAuthenticationSuccess(HttpServletRequest request,
            HttpServletResponse response, Authentication authentication)
            throws IOException, ServletException {

        // update last login dt
        userService.updateLastLoginDt(new Date(), UserUtils.getUser().getAccount());

        // generate menu
        request.getSession(false).setAttribute("rootMenu", authService.findMenu(UserUtils.getUser()));

        doRedirect(request, response);
    }

    /**
     * 根據session中保存的url做重導
     * @param request request
     * @throws IOException IOException
     */
    protected void doRedirect(HttpServletRequest request, HttpServletResponse response) throws IOException {
        HttpSession session = request.getSession();
        SavedRequest savedRequest = (SavedRequest) session.getAttribute("SPRING_SECURITY_SAVED_REQUEST");
        if (savedRequest != null) {
            redirectStrategy.sendRedirect(request, response, savedRequest.getRedirectUrl());
        } else {
            redirectStrategy.sendRedirect(request, response, defaultTargetUrl);
        }
    }

    /**
     * set default redirect url
     * @param defaultTargetUrl
     */
    public void setDefaultTargetUrl(String defaultTargetUrl) {
        if (StringUtils.isNotEmpty(defaultTargetUrl) && !defaultTargetUrl.startsWith("/")) {
            defaultTargetUrl = '/' + defaultTargetUrl;
        }
        this.defaultTargetUrl = defaultTargetUrl;
    }
}

redpajama_set_name: RedPajamaGithub


Applied Data Technologies helps maintain contract and procurement compliance, making the process easy and efficient.
We are also a minority vendor and H.U.B certified.
Applied Data Technologies can help you navigate your business problems while staying compliant, no matter the regulations or restrictions. We have dedicated people with deep understanding in all of these areas, giving you the added advantage when making IT decisions.


Just a few minutes to BNP tournament, Coachella and Stagecoach music festivals.
Master bedroom has a cal king bed and an on suit bathroom with shower and double sinks, with a door out to pool area.
Both guests rooms have queen size beds that share a bathroom with shower and tub.
Living room has 2 queen sofa sleeper with memory foam mattresses.
The backyard is very private and has a beautiful pebble tec Pool and Jacuzzi, also place to bask in the sun.
This amazing property is close to all the popular concert venues. Coachella, Stagecoach, Desert Trip and Tennis Gardens just to name a few. Old Town is just three minutes away, here you will find some great restaurants and fun shops.
For all those who love hiking, biking or just walking trails, the home is located just down the street from the trails.
This home is the perfect home for a fun getaway!
VB608 - Palm Valley CC - Spacious End Unit! PET FRIENDLY!


The mantra goes that content is king, practically every expert out there will say the same thing, but is that necessarily true? Design is often sacrificed in favour of content, as it should be surely? Well, I'm not totally convinced. Don't get me wrong, I believe that the information or products on your site is what draws people to it, and keeps them coming back, but it's the design that makes a site and it can have a major impact on visitor numbers and sales.
We've all been to sites that offer us products or services but have a bad design, and I'm not just talking the wrong choice of colours, or a misaligned image, nor having bad navigation. I'm talking about the sites where it looks like they got a nine-year-old to design it in art class; fonts of all sizes and types, coloured backgrounds, poor images, random colours or background music. It automatically makes you think twice about what you're doing, if your details will be safe, what the product will be like and just how much hassle it'll be if you have to return it.
What you have to ask yourself is: if they can't get something simple like a web site right, what else are they unprofessional at? With the number of web site templates available at low cost and designer's prices lower than ever, why is the site so bad? Maybe they're just plain penny-pinching? Poor design immediately starts people wondering about your business. Is it surprising, really? After all, our primary sense is sight. We are a species obsessed with looks, not just in other people, but in every aspect of our lives from the cars we like to the food we eat, if it doesn't look right, we tend to shy away from it. We are a culture that has been trained to expect certain things. Our big, secure, safe high-street stores have professional looks and clean windows filled with desirable products and eye-catching boxes. You only have to look at the revitalised success of Apple computers to see what a difference good design can make. Most products are now designed with an eye on desirability.
So in a design driven culture, bad design can have disastrous effects. I have personally worked on sites where sales shot up after a complete redesign. Nothing else was changed, the product images, the text on the pages, the product descriptions all remained identical to how they were before, but the look of the site was given an overhaul. The results spoke for themselves and reinforced my previous small-scale attempts at getting feedback from other browsers. An overwhelming 97% of people I questioned responded that site design played a part in deciding whether they would buy from a site, 40% said that they would not buy from a site with poor design if they could find the product elsewhere while a whopping 57% said they wouldn't touch a dodgy looking site at all. That's a fairly staggering percentage. Those aren't figures that drop margins, those are figures that destroy businesses.
Maybe it's time you took a look at your site and called in a professional to give it an overhaul, it could be money well spent. These days everyone needs a professional looking web site, whether it be from investing in a professional template or calling in an experienced designer. With the market still depressed, now is the ideal time to get bargain rates on your redesign and be in prime position for the growing market. It needn't be as expensive an exercise as you think, and your business could reap the rewards.


text:
Q: UICollectionReusableView Header not resizing on rotation - constraints? I have a UICollectionReusableView for a UICollectionView Header Section in code as follows:

    var headingLabel: UILabel!
    override init(frame: CGRect) {
       super.init(frame: frame)
       headingLabel = UILabel(frame: CGRectMake(12.0,12.0,frame.width,21.0))
       headingLabel.numberOfLines = 1
       headingLabel.textAlignment = NSTextAlignment.Center
       headingLabel.textColor = UIColor.blackColor()
       self.backgroundColor = UIColor.whiteColor()
       self.addSubview(headingLabel)
    }

I just want the heading to be centered in the display.  This is fine so long as I don't rotate the device.  If I rotate the device, the label is no longer in the center of the screen.
My guess is this is super simple, I just can't seem to find the answer.  My assumption is that I could just programatically add constraints, but I can't quite work out how to do that.
Alternatively, I think there might be some way to force it to redo the headers on a layout change, but I couldn't get that working either.
Any pointers in the right direction would be hugely appreciated.

Many thanks.

A: You have to invalidate the layout BEFORE the collectionView is re-laid out (which happens in viewDidLayoutSubviews), therefore you must invalidate it in viewWillLayoutSubviews.
override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    // Handle rotation
    collectionView.collectionViewLayout.invalidateLayout()
}

A: import Foundation
import UIKit
import MaterialComponents

class SectionHeaderAppointment:UICollectionReusableView {

var sectionHeaderlabel: UILabel!
var nameflatButton:MDCButton!

override init(frame: CGRect) {
    super.init(frame: frame)
    configure()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func layoutSubviews() {
    super.layoutSubviews()
    print("Rotation")
     sectionHeaderlabel.frame = CGRect(x: 0, y: 0,  width: frame.width, height: frame.height)
     nameflatButton.frame = CGRect(x: (frame.width - (frame.width/3))/2, y: 6,  width: frame.width/3, height: frame.height - 8)
}
}

redpajama_set_name: RedPajamaStackExchange


Acer palmatum Atropurpureum Growing Guide How to Grow Purple japanese maple in your Garden. Acer palmatum 'Atropurpureum' with Pittosporum 'Silver Queen' in the background photograph by Leonora (Ellie) Enking.... Plant Propagation: Chinese Lanterns are grown from seed. They can be started from seed indoors, or out. Because of the long germination period, we recommend an indoor start.
where to plant japanese maples As a general rule, Japanese Maples which are green in the summer withstand a good amount of sun throughout the year. In sunnier areas of the UK they should be in semi-shade for part of the afternoon.... Japanese Maples are small to mid-sized deciduous trees grown for their architectural branching, striking foliage and amazing fall colours. Also known as Acer palmatum, these plants are excellent in both gardens and pots.
The originator of the 'Ghost' series of Japanese maple cultivars seems to be Talon Bucholz, Bucholz & Bucholz Nursery, OR. Post a comment about this plant Popular Plants... The Japanese fern tree propagates by seed. Natural germination should work just fine: sow the seeds in the fall and give them time, and they should begin to germinate in the spring.
Theoretically, you can grow bonsai seeds all year round if growing indoors, however, the best time to start germination is in the autumn. By sowing seeds in the autumn you are following nature's own natural time schedule and the seedling can take advantage of a full summer to grow in after germination in early spring. By sowing the seeds in the autumn it also means you have no need to worry... If you want to growing Japanese maples in the ground in a cold zone, site them where the winter sun isn't strong, and where the wind won't whip them. My thoughts on overwintering other tender plants, in addition to the potted maples.
My hubby would like to have our little Japanese maple live indoors next to our south facing windows. It would get a good amount of sunlight as that wall is mostly windows, but no direct sun.
If you want to growing Japanese maples in the ground in a cold zone, site them where the winter sun isn't strong, and where the wind won't whip them. My thoughts on overwintering other tender plants, in addition to the potted maples.


text:
Home > All persons > Clive Owen
Clive Owen is a Actor and Scriptwriter British born on 3 october 1964 at Coventry (United-kingdom)
Birth name Clive Owen
Nationality United-kingdom
Birth 3 october 1964 (55 years) at Coventry (United-kingdom)
Clive Owen (born 3 October 1964) is an English actor who first gained recognition in the United Kingdom for playing the lead role in the ITV series Chancer from 1990 to 1991. He then received critical acclaim for his work in the film Close My Eyes (1991) before getting international notice for his performance as a struggling writer in Croupier (1998). In 2005, he won a Golden Globe and a BAFTA Award and was nominated for an Academy Award for Best Supporting Actor for his appearance in the drama Closer (2004).
Owen has since played leading roles in films such as Sin City (2005), Derailed (2005), Inside Man (2006), Children of Men (2006), and The International (2009). In 2012, he earned his first Primetime Emmy Award nomination for Outstanding Lead Actor in a Miniseries or a Movie for his role in Hemingway & Gellhorn. Since 2014, Owen has played Dr. John W. Thackery on the Cinemax medical drama series The Knick, for which he received a Golden Globe Award nomination.
Owen married Sarah-Jane Fenton on 6 March 1995; the couple live in Highgate, London and Wrabness, Essex with their two daughters, Hannah (1997) and Eve (1999).
In November 2006, Owen became patron of the Electric Palace Cinema in Harwich, Essex, and launched an appeal for funds to repair deteriorating elements of the fabric.
Owen enjoys the music of indie rock band Hard-Fi and has been seen at two of their concerts: at Brixton Academy on 15 May 2006 and Wembley Arena on 18 December 2007.
He is also a supporter of Liverpool FC and narrated the fly on the wall documentary series Being: Liverpool.
(Actor)
The Bourne Identity
Tom Johnson
Emmanuel Lubezki
Filmography of Clive Owen (41 films)
Directed by Ang Lee
Genres Drama, Science fiction, Thriller, Fantasy, Action
Actors Will Smith, Clive Owen, Mary Elizabeth Winstead, Benedict Wong, Linda Emond, Douglas Hodge
Roles Clay Verris
Henry Brogen est un tueur à gages. Vieillissant, il s'apprête à prendre sa retraite. Il va cependant devoir faire face à son clone, un double rajeuni d'un quart de siècle programmé pour l'assassiner.
Anon (2018)
Directed by Andrew Niccol
Origin German
Genres Science fiction, Thriller
Themes Films set in the future, Dystopian films
Actors Clive Owen, Amanda Seyfried, Colm Feore, Mark O'Brien, Sonya Walger, Joe Pingue
Roles Sal Frieland
Dans un monde futur, proche du totalitarisme, le gouvernement lutte contre le crime en éliminant toute intimité et en instaurant une surveillance totale des citoyens pour une sécurité maximale. Un jour, un officier de police rencontre une hackeuse qui le pousse à se révolter contre ce gouvernement.
Three Seconds (2018)
Directed by Andrea Di Stefano
Genres Thriller, Crime
Themes Prison films
Actors Joel Kinnaman, Rosamund Pike, Clive Owen, Ana de Armas, Common
Roles Montgomery
Pete Koslow, un ancien soldat, se retrouve contraint de participer à une opération menée par le FBI dans la prison où il est incarcéré. Mais lorsque sa mission est menée à bien, le FBI finit par le laisser à la merci des autres détenus. Pour rester en vie, Pete n'a plus qu'une seule solution qui s'offre à lui : s'évader.
Valerian and the City of a Thousand Planets (2017)
Directed by Luc Besson
Genres Science fiction, Action, Adventure
Themes Time travel films, Films set in the future, Films about extraterrestrial life
Actors Cara Delevingne, Dane DeHaan, Clive Owen, Rihanna, Ethan Hawke, John Goodman
Roles Commander Arün Filitt
À la suite de la rencontre historique Apollo-Soyouz en 1975 entre les Américains et les Russes, d'autres nations envoient des cosmonautes rejoindre la station spatiale. Dans les siècles suivants, de nombreux extraterrestres, de toutes formes, les rejoignent. Rebaptisée Alpha, celle-ci devient trop vaste et risque de s'écraser sur la Terre. D'un commun accord, les dirigeants des races qui peuplent l'immense station décident de l'éloigner de la Terre. Pendant son voyage, elle continue cependant de croître jusqu'à héberger 17 millions d'êtres vivants.
The Confirmation (2016)
Directed by Bob Nelson
Actors Clive Owen, Jaeden Martell, Maria Bello, Robert Forster, Tim Blake Nelson, Patton Oswalt
Roles Walt
Un père divorcé et son jeune fils distant passent un week-end ensemble à la recherche d'une boîte à outils volée, sa seule chance d'obtenir de rares boulots payés. Leur quête soudera leur relation père-fils.
Last Knights (2015)
Directed by Kazuaki Kiriya
Genres Action, Adventure
Actors Clive Owen, Morgan Freeman, Cliff Curtis, Ayelet Zurer, Shohreh Aghdashloo, Aksel Hennie
Roles Raiden
Bartok watches over his estate, a vassal kingdom to a great empire. Protecting the Bartok clan is Commander Raiden and his elite soldiers, who also serve Bartok. Raiden is surprised when Bartok tells him he is to be his heir, and gives him a sword. The empire has become corrupt and the evil minister, Geza Mott, humiliates Bartok by beating him with a stick for failing to provide an adequate bribe, until Bartok retaliates — which is treason against the crown. Bartok is put to trial where he speaks openly of his disdain for what honour has become in the empire. He is sentenced to death and Raiden is ordered to execute his own master. Bartok's estate is divided and the Bartok clan is disbanded. Geza Mott suspects Raiden will demand vengeance, and has his trusted warrior, Ito, watch Raiden to ensure there is no possibility of revenge.
Sin City: A Dame to Kill For (2014)
Directed by Robert Rodríguez, Frank Miller
Genres Drama, Thriller, Action, Noir, Crime
Themes Films about families, Feminist films, Films about suicide, Films about domestic violence, Superhero films, Gangster films
Actors Jamie Chung, Jessica Alba, Josh Brolin, Powers Boothe, Clive Owen, Rosario Dawson
Roles Dwight McCarthy (post-facial reconstruction)
Marv (Mickey Rourke) regains consciousness on a highway overlooking the Projects, surrounded by several dead young men and a crashed police car, and with no memory of how he got there. He retraces his steps, recalling that since it's Saturday, he watched Nancy Callahan (Jessica Alba) dance at Kadie's Saloon. Stepping outside, he encounters four rich frat boys burning a homeless man alive. When Marv intervenes, the leader of the frat boys shoots him in the arm, calling him "Bernini Boy," which Marv mishears as "Bernie." They flee; Marv follows, stealing a Police car on the way, which he crashes into their car, leading to his blackout and memory loss. He follows the two surviving frat boys into The Projects, the neighborhood where he grew up. With the assistance of the deadly residents lurking in the shadows, he dispatches the frat boys. He questions the leader about being called "Bernini Boy" and learns that it is the brand of coat he is wearing. After slitting the boy's throat, he considers his coat and realizes he can't remember how he acquired it.
Directed by Fred Schepisi
Genres Drama, Comedy, Romance
Themes Films about writers, Films about education
Actors Clive Owen, Juliette Binoche, Keegan Connor Tracy, Bruce Davison, Amy Brenneman, Valerie Tian
Roles Jack Marcus
Croyden is an upscale college preparatory school in Maine that hires teachers for their advanced courses who are accomplished professionals.
Directed by Guillaume Canet
Actors Clive Owen, Billy Crudup, Marion Cotillard, Mila Kunis, Matthias Schoenaerts, Zoe Saldana
Roles Chris Pierzynski
After serving twelve years for murder (for killing a rapist and murderer he caught in the act), Chris (Clive Owen) is released from prison in 1974. His ex-wife, Monica (Marion Cotillard), is a drug-addicted prostitute. She has a son and a daughter. Chris tries to go straight with his new girlfriend Natalie (Mila Kunis) but is betrayed and sabotaged in his pursuit of a legitimate business venture. Returning to his criminal ways puts him in direct conflict with his brother Frank (Billy Crudup) who happens to be a New York City cop. Their sister, Marie (Lili Taylor), and their sick father, Leon (James Caan), want Chris and Frank to just get along with each other.
Directed by James Marsh
Origin United-kingdom
Genres Drama, Thriller, Spy
Themes Spy films, Films about terrorism, Political films
Actors Clive Owen, Andrea Riseborough, Gillian Anderson, Aidan Gillen, Domhnall Gleeson, Bríd Brennan
Roles Mac
In 1993 Belfast, Colette lives with her mother and brothers, all members of the IRA. In the opening scene, set twenty years earlier, the Troubles results in the death of her younger brother when they are children. This presumably motivates her in later life. After a failed attack in London, Colette is arrested and offered a choice: either she spends 25 years in jail, thus losing everything she loves including her young son, or she becomes an informant for MI5, spying on her own family. Colette agrees to do so. An MI5 officer, Mac, is assigned as her handler.
Directed by Philip Kaufman
Genres Drama, Biography, Romance
Themes Seafaring films, Transport films, Political films
Actors Nicole Kidman, Clive Owen, David Strathairn, Brooke Adams, Molly Parker, Connie Nielsen
Roles Ernest Hemingway
Telling the story of one of America's most famous literary couples, the movie begins in 1936 when the pair meet for the first time in a Key West bar. They ran into each other again in Spain where they were both covering the Spanish Civil War. They were staying in the same hotel on the same floor, and she resisted his advances. However, during a bombing raid, they found themselves trapped in the same room, and lust overcame them. They became lovers and stayed in Spain until 1939. In 1940 Hemingway divorced his second wife so that they could marry. Over time she became prominent in her own right. In 1945 she asked Hemingway for a divorce. He credits her with inspiring him to write the novel, For Whom the Bell Tolls.
Intruders (2011)
Directed by Juan Carlos Fresnadillo
Origin Espagne
Genres Drama, Thriller, Fantastic, Fantasy, Horror
Themes Films about children
Actors Clive Owen, Carice van Houten, Daniel Brühl, Kerry Fox, Pilar López de Ayala, Ella Purnell
Roles John Farrow
Though no one can see him, Hollow Face lurks in the corners, desperately desiring love but only knowing how to spread fear and hate. He creeps into the life of John Farrow, after Farrow's beloved 12-year-old daughter Mia is assaulted in their home. The line between the real and the imaginary blurs as fissures start to open within the family unit. It seems that no security measure can keep Hollow Face out.
Killer Elite (2011)
Directed by Gary McKendry
Genres Thriller, Action, Adventure, Crime
Themes Seafaring films, Transport films
Actors Yvonne Strahovski, Clive Owen, Jason Statham, Dominic Purcell, Robert De Niro, Adewale Akinnuoye-Agbaje
Roles Spike
In 1980, mercenaries Danny Bryce (Jason Statham), Hunter (Robert De Niro), Davies (Dominic Purcell), and Meier (Aden Young) are in Mexico to assassinate a man. Danny unwittingly kills him in front of his young child, then is injured during the getaway. Affected by this outcome, Danny retires and returns to his native Australia.
Directed by Scott Hicks
Origin Australie
Themes Films about families, Seafaring films, Transport films
Actors Clive Owen, Laura Fraser, Emma Lung, Nicholas McAnulty, George MacKay, Julia Blake
Roles Joe Warr
Joe Warr (Clive Owen) is a British sports writer who lives in Australia with his second wife, Katy (Laura Fraser) and his young son Artie (Nicholas McAnulty). Katy is diagnosed with cancer and dies, forcing Joe to cope with the responsibilities of being a single parent.
Directed by David Schwimmer
Themes Films about children, Films about families, Films about sexuality, Rape in fiction, Films about pedophilia
Actors Clive Owen, Catherine Keener, Liana Liberato, Viola Davis, Noah Emmerich, Jason Clarke
Roles William "Will" Cameron
Fourteen-year-old Annie Cameron lives in suburban Chicago. She enjoys a healthy relationship with her family. On her birthday, her parents give her a laptop. When she meets Charlie in an online chat room, she establishes an instant connection with him. At first, Charlie states that he is sixteen years old. Over time, as the two bond by sending phone text messages and through instant messaging, he bumps his age up to eighteen, twenty, then twenty-five. Annie is taken aback at first, but then dismisses these concerns. Her parents are not aware of her infatuation, or the threat Charlie poses, and Annie even deceives them a bit, as she continues the online relationship, not wanting to end things with him under the belief that they are in love.


After breakfast we travel to Evia Island at the monastery of St. John the Russian. Program at the church holy prayer, then we continue on to Kalambaka town – State of the monasteries of Meteora. Visit the monasteries. Accommodation in Kalambaka.
Free time for shopping in Thsalonik. Departure.


text:
package org.apache.oozie.sla;

import java.util.Date;

import org.apache.hadoop.conf.Configuration;
import org.apache.oozie.AppType;
import org.apache.oozie.action.email.EmailActionExecutor;
import org.apache.oozie.client.event.JobEvent;
import org.apache.oozie.client.event.SLAEvent;
import org.apache.oozie.client.event.SLAEvent.EventStatus;
import org.apache.oozie.service.Services;
import org.apache.oozie.sla.SLACalcStatus;
import org.apache.oozie.sla.SLARegistrationBean;
import org.apache.oozie.test.XTestCase;
import org.apache.oozie.util.DateUtils;
import org.junit.After;
import org.junit.Before;

import com.icegreen.greenmail.util.GreenMail;
import com.icegreen.greenmail.util.ServerSetup;

import javax.mail.Message.RecipientType;
import javax.mail.internet.MimeMessage;

import org.apache.oozie.sla.listener.SLAEmailEventListener;
import org.apache.oozie.sla.listener.SLAEmailEventListener.EmailField;
import org.apache.oozie.sla.service.SLAService;

public class TestSLAEmailEventListener extends XTestCase {

    private Services services;
    private static final int SMTP_TEST_PORT = 3025;
    private GreenMail greenMail;
    private SLAEmailEventListener slaEmailListener;
    private Configuration conf = null;

    @Before
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        services = new Services();
        conf = services.getConf();
        conf.set(EmailActionExecutor.EMAIL_SMTP_HOST, "localhost");
        conf.set(EmailActionExecutor.EMAIL_SMTP_PORT, String.valueOf(SMTP_TEST_PORT));
        conf.set(EmailActionExecutor.EMAIL_SMTP_AUTH, "false");
        conf.set(EmailActionExecutor.EMAIL_SMTP_USER, "");
        conf.set(EmailActionExecutor.EMAIL_SMTP_PASS, "");
        conf.set(EmailActionExecutor.EMAIL_SMTP_FROM, "oozie@localhost");
        conf.set(SLAEmailEventListener.BLACKLIST_CACHE_TIMEOUT, "1");
        conf.set(SLAEmailEventListener.BLACKLIST_FAIL_COUNT, "2");
        conf.set(SLAService.CONF_ALERT_EVENTS, SLAEvent.EventStatus.START_MISS.name() + ","
                + SLAEvent.EventStatus.END_MISS + "," + SLAEvent.EventStatus.DURATION_MISS);

        greenMail = new GreenMail(new ServerSetup(SMTP_TEST_PORT, null, "smtp"));
        greenMail.start();
        services.init();
        slaEmailListener = new SLAEmailEventListener();
        slaEmailListener.init(conf);
    }

    @After
    @Override
    protected void tearDown() throws Exception {
        if (null != greenMail) {
            greenMail.stop();
        }
        services.destroy();
        super.tearDown();
    }

    public void testOnStartMiss() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        Date actualstartDate = DateUtils.parseDateUTC("2013-01-01T01:00Z");
        event.setEventStatus(EventStatus.START_MISS);
        event.setJobStatus(JobEvent.EventStatus.STARTED.toString());
        event.setId(id);
        eventBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setNominalTime(startDate);
        eventBean.setExpectedStart(startDate);
        eventBean.setNotificationMsg("Notification of Missing Expected Start Time");
        eventBean.setAlertContact("alert-receiver@oozie.com");
        event.setActualStart(actualstartDate);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);

        slaEmailListener.onStartMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        MimeMessage msg = msgs[0];
        // check message header
        assertEquals(msg.getFrom()[0].toString(), "oozie@localhost");
        assertEquals(msg.getRecipients(RecipientType.TO)[0].toString(), "alert-receiver@oozie.com");
        assertEquals(msg.getSubject(), "OOZIE - SLA " + EventStatus.START_MISS
                + " (AppName=Test-SLA-Start-Miss, JobID=0000000-000000000000001-oozie-wrkf-C@1)");
        // check message body
        String msgBody = msg.getContent().toString();
        String headerSep = SLAEmailEventListener.EMAIL_BODY_HEADER_SEPARATER;
        String sep = SLAEmailEventListener.EMAIL_BODY_FIELD_SEPARATER;
        String indent = SLAEmailEventListener.EMAIL_BODY_FIELD_INDENT;
        assertTrue(msgBody.indexOf("Status" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EVENT_STATUS.toString() + sep
                + EventStatus.START_MISS.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_STATUS.toString() + sep
                + JobEvent.EventStatus.STARTED.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOTIFICATION_MESSAGE.toString() + sep
                + "Notification of Missing Expected Start Time") > -1);
        assertTrue(msgBody.indexOf("Job Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_TYPE.toString() + sep + AppType.COORDINATOR_ACTION) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_NAME.toString() + sep + "Test-SLA-Start-Miss") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.USER.toString() + sep + "dummyuser") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C") > -1);
        assertTrue(msgBody.indexOf("SLA Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOMINAL_TIME.toString() + sep + startDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_START_TIME.toString() + sep + startDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_START_TIME.toString() + sep + actualstartDate) > -1);
    }

    public void testOnEndMiss() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date expectedStartDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        Date actualStartDate = DateUtils.parseDateUTC("2013-01-01T01:00Z");
        Date expectedEndDate = DateUtils.parseDateUTC("2013-01-01T12:00Z");
        Date actualEndDate = DateUtils.parseDateUTC("2013-01-01T13:00Z");
        event.setId(id);
        eventBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
        event.setEventStatus(EventStatus.END_MISS);
        event.setJobStatus(JobEvent.EventStatus.SUCCESS.toString());
        eventBean.setAppName("Test-SLA-End-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setNominalTime(expectedStartDate);
        eventBean.setExpectedStart(expectedStartDate);
        eventBean.setExpectedEnd(expectedEndDate);
        eventBean.setNotificationMsg("notification of end miss");
        eventBean.setAlertContact("alert-receiver-endmiss@oozie.com");
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setExpectedStart(expectedStartDate);
        eventBean.setExpectedEnd(expectedEndDate);
        event.setActualStart(actualStartDate);
        event.setActualEnd(actualEndDate);

        slaEmailListener.onEndMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        MimeMessage msg = msgs[0];
        // check message header
        assertEquals(msg.getFrom()[0].toString(), "oozie@localhost");
        assertEquals(msg.getRecipients(RecipientType.TO)[0].toString(), "alert-receiver-endmiss@oozie.com");
        assertEquals(msg.getSubject(), "OOZIE - SLA " + EventStatus.END_MISS
                + " (AppName=Test-SLA-End-Miss, JobID=0000000-000000000000001-oozie-wrkf-C@1)");
        // check message body
        String msgBody = msg.getContent().toString();
        String headerSep = SLAEmailEventListener.EMAIL_BODY_HEADER_SEPARATER;
        String sep = SLAEmailEventListener.EMAIL_BODY_FIELD_SEPARATER;
        String indent = SLAEmailEventListener.EMAIL_BODY_FIELD_INDENT;
        assertTrue(msgBody.indexOf("Status" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EVENT_STATUS.toString() + sep + EventStatus.END_MISS.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_STATUS.toString() + sep
                + JobEvent.EventStatus.SUCCESS.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOTIFICATION_MESSAGE.toString() + sep
                + "notification of end miss") > -1);

        assertTrue(msgBody.indexOf("Job Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_TYPE.toString() + sep + AppType.COORDINATOR_ACTION) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_NAME.toString() + sep + "Test-SLA-End-Miss") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.USER.toString() + sep + "dummyuser") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C") > -1);

        assertTrue(msgBody.indexOf("SLA Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOMINAL_TIME.toString() + sep + expectedStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_START_TIME.toString() + sep + expectedStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_START_TIME.toString() + sep + actualStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_END_TIME.toString() + sep + expectedEndDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_END_TIME.toString() + sep + actualEndDate) > -1);

    }

    public void testOnDurationMiss() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date expectedStartDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        Date actualStartDate = DateUtils.parseDateUTC("2013-01-01T00:10Z");
        Date expectedEndDate = DateUtils.parseDateUTC("2013-01-01T00:20Z");
        Date actualEndDate = DateUtils.parseDateUTC("2013-01-01T00:40Z");
        long expectedDuration = expectedEndDate.getTime() - expectedStartDate.getTime();
        long actualDuration = actualEndDate.getTime() - actualStartDate.getTime();
        long expectedDurationInMins = expectedDuration / 60000;
        long actualDurationInMins = actualDuration / 60000;
        event.setId(id);
        eventBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
        event.setEventStatus(EventStatus.DURATION_MISS);
        event.setJobStatus(JobEvent.EventStatus.SUCCESS.toString());
        eventBean.setAppName("Test-SLA-Duration-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setNominalTime(expectedStartDate);
        eventBean.setExpectedStart(expectedStartDate);
        eventBean.setExpectedEnd(expectedEndDate);
        eventBean.setNotificationMsg("notification of duration miss");
        eventBean.setAlertContact("alert-receiver-durationmiss@oozie.com");
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setExpectedStart(expectedStartDate);
        eventBean.setExpectedEnd(expectedEndDate);
        event.setActualStart(actualStartDate);
        event.setActualEnd(actualEndDate);
        eventBean.setExpectedDuration(expectedDuration);
        event.setActualDuration(actualDuration);

        slaEmailListener.onEndMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        MimeMessage msg = msgs[0];
        // check message header
        assertEquals(msg.getFrom()[0].toString(), "oozie@localhost");
        assertEquals(msg.getRecipients(RecipientType.TO)[0].toString(), "alert-receiver-durationmiss@oozie.com");
        assertEquals(msg.getSubject(), "OOZIE - SLA " + EventStatus.DURATION_MISS
                + " (AppName=Test-SLA-Duration-Miss, JobID=0000000-000000000000001-oozie-wrkf-C@1)");
        // check message body
        String msgBody = msg.getContent().toString();
        String headerSep = SLAEmailEventListener.EMAIL_BODY_HEADER_SEPARATER;
        String sep = SLAEmailEventListener.EMAIL_BODY_FIELD_SEPARATER;
        String indent = SLAEmailEventListener.EMAIL_BODY_FIELD_INDENT;
        assertTrue(msgBody.indexOf("Status" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EVENT_STATUS.toString() + sep
                + EventStatus.DURATION_MISS.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_STATUS.toString() + sep
                + JobEvent.EventStatus.SUCCESS.toString()) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOTIFICATION_MESSAGE.toString() + sep
                + "notification of duration miss") > -1);

        assertTrue(msgBody.indexOf("Job Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_TYPE.toString() + sep + AppType.COORDINATOR_ACTION) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.APP_NAME.toString() + sep + "Test-SLA-Duration-Miss") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.USER.toString() + sep + "dummyuser") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOBID.toString() + sep
                + "0000000-000000000000001-oozie-wrkf-C") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C@1") > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.PARENT_JOB_URL.toString() + sep
                + conf.get(SLAEmailEventListener.OOZIE_BASE_URL) + "/?job=" + "0000000-000000000000001-oozie-wrkf-C") > -1);

        assertTrue(msgBody.indexOf("SLA Details" + headerSep) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.NOMINAL_TIME.toString() + sep + expectedStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_START_TIME.toString() + sep + expectedStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_START_TIME.toString() + sep + actualStartDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_END_TIME.toString() + sep + expectedEndDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_END_TIME.toString() + sep + actualEndDate) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.EXPECTED_DURATION.toString() + sep + expectedDurationInMins) > -1);
        assertTrue(msgBody.indexOf(indent + EmailField.ACTUAL_DURATION.toString() + sep + actualDurationInMins) > -1);
    }

    public void testUserAlertEventSetting() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        // user choose only END MISS, thus, START_MISS email should not be sent
        eventBean.setAlertEvents(EventStatus.END_MISS.name());

        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        Date actualstartDate = DateUtils.parseDateUTC("2013-01-01T01:00Z");
        event.setEventStatus(EventStatus.START_MISS);
        event.setId(id);
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setNominalTime(startDate);
        eventBean.setExpectedStart(startDate);
        eventBean.setAlertContact("alert-receiver@oozie.com");
        event.setActualStart(actualstartDate);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);

        slaEmailListener.onStartMiss(event);

        // START_MISS should not be sent
        MimeMessage[] msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 0);

        // DURATION_MISS should not be sent
        event.setEventStatus(EventStatus.DURATION_MISS);
        slaEmailListener.onDurationMiss(event);
        msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 0);

        // END_MISS should be sent
        event.setEventStatus(EventStatus.END_MISS);
        slaEmailListener.onEndMiss(event);
        msgs = greenMail.getReceivedMessages();
        assertNotNull(msgs[0]);
    }

    public void testInvalidDestAddress() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        // set invalid address as alert contact
        eventBean.setAlertContact("invalidAddress");
        event.setEventStatus(EventStatus.START_MISS);
        event.setId(id);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setExpectedStart(startDate);
        eventBean.setNotificationMsg("notification of start miss");
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));

        slaEmailListener.onStartMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 0);
    }

    public void testNoDestAddress() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        // set empty address as alert contact
        eventBean.setAlertContact("");
        event.setEventStatus(EventStatus.START_MISS);
        event.setId(id);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setExpectedStart(startDate);
        eventBean.setNotificationMsg("notification of start miss");
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));

        slaEmailListener.onStartMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 0);
    }

    public void testMultipleDestAddress() throws Exception {
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
        // set multiple addresses as alert contact
        eventBean.setAlertContact("alert-receiver1@oozie.com, alert-receiver2@oozie.com");
        event.setEventStatus(EventStatus.START_MISS);
        event.setId(id);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setExpectedStart(startDate);
        eventBean.setNotificationMsg("notification of start miss");
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));

        slaEmailListener.onStartMiss(event);

        MimeMessage[] msgs = greenMail.getReceivedMessages();
        MimeMessage msg = msgs[0];
        assertEquals(msg.getFrom()[0].toString(), "oozie@localhost");
        assertEquals(msg.getRecipients(RecipientType.TO)[0].toString(), "alert-receiver1@oozie.com");
        assertEquals(msg.getRecipients(RecipientType.TO)[1].toString(), "alert-receiver2@oozie.com");
    }

    public void testBlackList() throws Exception {
        String blackListedEmail = "alert-receiver@oozie.com";
        // add email to blacklist
        slaEmailListener.addBlackList(blackListedEmail);
        String id = "0000000-000000000000001-oozie-wrkf-C@1";
        SLACalcStatus event = _createSLACalcStatus(id);
        SLARegistrationBean eventBean = event.getSLARegistrationBean();
        event.setEventStatus(EventStatus.START_MISS);
        eventBean.setAlertContact(blackListedEmail);
        eventBean.setAppType(AppType.COORDINATOR_ACTION);
        eventBean.setAppName("Test-SLA-Start-Miss");
        eventBean.setUser("dummyuser");
        eventBean.setAlertContact("alert-receiver@oozie.com");
        event.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));

        // blacklist blocks email from being sent out
        slaEmailListener.onStartMiss(event);
        MimeMessage[] msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 0);

        // wait 1.5 sec (cache timeout set to 1sec in test's setup)
        Thread.sleep(1500);

        // cache is evicted
        slaEmailListener.onStartMiss(event);
        msgs = greenMail.getReceivedMessages();
        assertEquals(msgs.length, 1);
    }

    private SLACalcStatus _createSLACalcStatus(String actionId) {
        SLARegistrationBean reg = new SLARegistrationBean();
        reg.setId(actionId);
        reg.setAppType(AppType.COORDINATOR_ACTION);
        return new SLACalcStatus(reg);
    }
}