text:
The Latest on the NCAA Tournament (all times Eastern):
12 a.m.
The Sweet 16 is set after a Sunday filled with close games and two huge upsets.
No. 7 seed South Carolina bounced No. 2 seed Duke, a team that opened as the betting favorite in some Las Vegas casinos. Another 2, Louisville, was taken down by Michigan to leave the ACC with only one team in the field.
The teams now return home to get ready for the next set of games that begin Thursday.
Here's a look at the Sweet 16 by region:
EAST REGIONAL: Wisconsin, Florida, Baylor, South Carolina.
MIDWEST REGIONAL: Kansas, Purdue, Oregon, Michigan.
SOUTH REGIONAL: North Carolina, Butler, UCLA, Kentucky.
WEST REGIONAL: Gonzaga, West Virginia, Xavier, Arizona.
11:45 p.m.
UCLA has shot its way into the Sweet 16.
The No. 3 seed Bruins beat sixth seeded Cincinnati 79-67 on Sunday night, capping off an exciting slate of games in the second round.
All five UCLA starters scored at least 10 points each. They will play in the South Regional in Memphis. It's the third trip to the Sweet 16 in four years under coach Steve Alford.
The Bruins hit 18 of their first 28 shots in the second half after struggling to find a rhythm in the first.
11:15 p.m.
No. 7 seed South Carolina has upset second-seeded Duke, a team some Las Vegas casinos considered the betting favorite going into the NCAA Tournament.
Sindarius Thornwell scored 24 points for South Carolina in the 88-81 win.
The Blue Devils join Louisville on Sunday as No. 2 seeds upset in the second round. Both also came from the ACC, which started the tournament with nine teams in the field but now only has North Carolina.
11:10 p.m.
UCLA is finally starting to show some offensive life.
The Bruins have been in a flow and hit 6 of their first 9 shots to open the second half against Cincinnati in the South Region.
UCLA leads 44-40 after struggling much of the first half.
10:55 p.m.
Cincinnati has controlled the clash of styles in the first half against UCLA in Sacramento to take a 33-30 lead.
The defensive-minded Bearcats have slowed the high-scoring Bruins, holding them to 12-of-32 shooting and 4 for 14 from 3-point range.
Cincinnati has hit 12 of 24 shots, including 4 of 6 from beyond the arc.
10:38 p.m.
South Carolina leads second-seeded Duke 54-51 with 10:43 left to play. The Gamecocks are dominating the inside with sophomore Chris Silva scoring 12 of his 16 points in the second half. If the Gamecocks pull off the upset, it would be their first-ever trip to the Sweet 16 in the current NCAA format.
— Pete Iacobelli reporting from Greenville, South Carolina.
10:13 p.m.
The Pac-12 is no longer unbeaten in the NCAA Tournament.
Baylor stopped the league's surprising seven-game winning streak when it upended USC 82-78 on Sunday night.
Still, what a week it was for a league that was brushed aside in favor of the ACC and the Big 12 for much of 2016-17. Arizona and Oregon reached the Sweet 16 — and UCLA would join them with a win over Cincinnati later Sunday. The Trojans also won twice after earning a First Four bid.
The Big 12 and the Big Ten each have three teams in the regional semifinals, which start Thursday.
10 p.m.
A sloppy Duke took a 30-23 lead into the locker room over seventh-seeded South Carolina on Sunday night.
The No. 2 seed Blue Devils had averaged 11 turnovers a game this year, but committed 13 in the opening half.
That defensive effort is keeping the cold-shooting Gamecocks in the mix. South Carolina shot just 20 percent in the opening period and missed 20 of its last 22 shots.
— Pete Iacobelli reporting from Greenville, South Carolina.
9:57 p.m.
The nation's top-scoring team and one of the best defensive teams have just tipped off in Sacramento.
UCLA led the nation with 90.6 points per game and with 21.6 assists per game. Cincinnati was fifth nationally in scoring defense, allowing 60.8 points per game.
Whichever team wins this clash of styles gets a trip to the Sweet 16 to face Kentucky Friday in Memphis.
— John Marshall reporting from Sacramento, California.
9:35 p.m.
Oregon has won a tight game against Rhode Island, earning a ticket to the Sweet 16 and keeping the Pac-12 undefeated in this NCAA Tournament.
Next up for the conference is 11th seeded Southern California, which is in a tight game with No. 3 seed Baylor in the tournament's East region, with about 8 minutes left.
The Ducks had to rally in the second half to get their win on Sunday. Tyler Dorsey hit a contested go-ahead 3-pointer in the final minute.
The Pac-12 now has two teams in the regional semifinals, Oregon and Arizona, with Southern Cal on the floor and UCLA still to play Sunday night.
8:57 p.m.
King McClure has 14 points on 5-of-9 shooting to lead third-seeded Baylor to a 36-31 lead over surprising USC at halftime.
The 11th-seeded Trojans, who advanced to the second round with a one-point win over SMU on Thursday, led by as many as five points early on before McClure began to take over. The 6-foot-3 sophomore hit all four of the Bears' 3-pointers in the half and added a pair of steals.
Bennie Boatwright leads USC with eight points, while Chimezie Metu has seven. The Trojans are trailing despite shooting 52 percent (13 of 25) in the half, compared to just 42.9 percent (15 of 35) for Baylor.
—Kurt Voigt reporting from Tulsa, Oklahoma.
8:42 p.m.
After 11th-seeded Rhode Island closed the first half on a 14-2 run for a 46-38 lead over third-seeded Oregon at intermission, Bob Hurley was lost for words.
Just a plain proud father moment, indeed.
Hurley is watching son, fifth-year Rams coach Dan Hurley, as the program returned to the NCAA Tournament for the first time in 18 years and won its first game against Creighton for Rhode Island's first NCAA victory since reaching the 1998 Elite Eight and losing to Stanford.
"This is why the tournament is so great," Bob Hurley said. "It's very difficult to describe."
His other son, Bobby, had to return home from Sacramento to the desert to host recruits as Arizona State's head coach.
— Janie McCauley reporting from Sacramento.
8:20 p.m.
The Atlantic Coast Conference finally has a team in the Sweet 16 – barely.
After blowing a 17-point lead, No. 1 seed North Carolina came from behind in the second half to beat Arkansas 72-65 and advance to the NCAA South Region semifinals. North Carolina next faces Butler.
The ACC had nine teams invited to the NCAA Tournament, but seven of them already have lost. The ACC still could get a second team into the Sweet 16, as Duke faces South Carolina later tonight.
North Carolina also avoided becoming the second No. 1 seed to exit this tournament. Defending national champion Villanova, the No. 1 seed in the East Region, lost to Wisconsin on Saturday.
7:35 p.m.
As Game 1 between Rhode Island and Oregon began inside Golden 1 Center on Sunday afternoon, Cincinnati's marching band was putting on a show just outside the arena's main entrance before the Bearcats took on UCLA in the second game. A large crowd gathered to watch and cheerleaders also performed.
Earlier in the afternoon, UCLA fan Paul Hale of nearby Fairfield danced solo to DJ music long before the big crowd arrived. "Old school, I love it," he said while shaking to 70s hit "Get Down Tonight" by KC and the Sunshine Band .
6:15 p.m.
Kansas led Michigan State 40-35 at halftime in their second-round NCAA Tournament game.
The score was tied at 27 before the Jayhawks went on a 9-0 run.
Frank Mason, Josh Jackson and Svi Mykhailiuk each scored nine points in the first half for Kansas, which shot 50 percent from the field in the first 20 minutes.
Michigan State's Miles Bridges left the game briefly with an injury. He was strong after his return and had 13 points in the first half.
5 p.m.
Kentucky's freshmen came up big in the end Sunday. Freshmen made big defensive plays to help Kentucky hold on for a 65-62 victory over Wichita State in the South Region on Sunday.
Malik Monk also made the final two free throws, forcing Wichita State to take a 3-pointer before the buzzer. But Landry Shamet's shot was blocked.
The Wildcats advance to the Sweet 16 in Memphis. Wildcats coach John Calipari coached Memphis – even leading the Tigers to an NCAA Tournament final in 2008 – before leaving for Kentucky.
3:38 p.m.
Kentucky and Wichita State are tangled in a physical game with the Wildcats up 26-24 at halftime in Indianapolis.
The second-seeded Wildcats are shooting 33 percent from the field, and the Shockers 30 percent. Bam Adebayo had 15 points and 18 rebounds in Kentucky's opening win over Northern Kentucky, but he's been held to two points and five rebounds.
It's far different from their second-round game three years ago, which was wide open and ended with the Wildcats winning by two.
2:30 p.m.
Michigan's 73-69 upset of Louisville exemplifies the role reversals between the Atlantic Coast Conference and Big Ten this postseason.
The ACC led all conferences with nine NCAA Tournament invitations and was billed as the best league in the nation this season. The Big Ten had a disappointing regular season and had none of its teams seeded higher than fourth in the NCAA field.
Yet the Big Ten already has sent three teams to the Sweet 16 with Purdue, Wisconsin and Michigan advancing. In the meantime, the ACC doesn't have any regional semifinalists yet and is down to just two teams left in the tournament: North Carolina and Duke.
North Carolina faces Arkansas and Duke meets South Carolina later today as the two traditional ACC heavyweights chase Sweet 16 berths.
The ACC's struggles represent a stunning turn of events for a team that had done very well in March lately. The ACC had four regional finalists last season, including Final Four participants North Carolina and Syracuse. The ACC also sent three teams to the regional finals in 2015, with Duke winning the national title.
2:25 p.m.
Michigan's amazing March tournament run is headed to the Sweet 16.
The Wolverines trailed most of the game before pulling out a 73-69 victory over second-seeded Louisville in the Midwest region at Indianapolis. They'll face either Rhode Island or Oregon in Kansas City.
Michigan was in danger of missing out on the tournament entirely before winning its final game in the regular season. The Wolverines had a plane mishap before arriving in Washington for the Big Ten tournament, then won four games in four days for the automatic bid.
Moe Wagner had a career-high 26 points, and D.J. Wilson made four free throws in the final 17 seconds to clinch it.
12:35 p.m.
Louisville is getting caught up in the coaching carousel as it plays its NCAA Tournament game.
Arkansas State has announced it has hired Louisville assistant Mike Balado as its next head coach. Arkansas State officials said Balado would be introduced at a Monday press conference.
Balado has been an assistant on Rick Pitino's staff the last four years. He replaces Grant McCasland, who resigned Monday to take over North Texas' program.
This is one of two coaching hires to be announced today. Washington announced it has hired Syracuse assistant Mike Hopkins as its next head coach. Hopkins replaces the fired Lorenzo Romar.
For more AP college basketball coverage: http://collegebasketball.ap.org and http://twitter.com/AP_Top25


text:
ATTENTION NEW PARENTS: You may want to pass this article on to your parents or in-laws as we enter the holiday shopping season.
According to the U.S. Census Bureau, 1.3 million children are entrusted to their grandparents every day. Roles of a grandparent include spoiling and enlightening their grandkids with toys they will enjoy. After all, toys are considered to be treasures of childhood. With this role comes an added responsibility to make sure that grandchildren stay safe and enjoy a toy that is age-appropriate. Grandparents make up a large percentage of toy buyers. Thousands of toys are marketed with the promise to educate and entertain kids. Unfortunately, not every toy is safe for children to play with. What can a grandparent look for when purchasing a toy for the kids that they love?
Most pediatricians and child experts believe there are a lot of hidden hazards concerning toys that people should be made aware of. Here is a guide that grandparents can use when it comes time to buy a distinctive toy for that special little person:
Make sure the toy is age-appropriate.
Labels on toy packaging should specify the age group the toy is made for. Consider that children at any age have different maturity levels. You may want to avoid buying a toy that won't hold the child's attention. Make sure to buy educational toys that match every child's age group. This will make the toy effective and fun to play with.
Personalized Christmas and birthday gifts are unique and thoughtful! Baby and kids presents provide are an affordable keepsake that will be cherished for years to come! See our personalized gifts at PersonalBabyProducts.com!
Read and follow all warning labels.
According to the Consumer Product Safety Commission or CPSC, choking is the most common cause of toy-related deaths. Warning labels are made to alert if a toy poses a choking hazard for younger children, typically under the ages of three. Federal law requires these labels. Make sure toys made for older children are kept out of the reach of younger children. Objects such as balls should not be less than 1.75″ in diameter. Avoid toys that have small parts that can potentially be pried off by tiny curious hands. Examples of toys that contain small parts are stuffed teddy bear's eyes or a wooden car's wheels. Stuffed and wooden toys are still very popular among children; just think BIG when checking out the 'parts' attached to the toy. Toys should be larger than the child's mouth. Tip: if a toy or toy part can fit inside an empty toilet paper roll, chances are the toy is too small. This would not be a safe toy. If a toy contains small parts, parts should be secured and guaranteed not to come off.
Make sure toys are free from sharp and pointy edges.
As an experienced mother or father, you are probably aware, small children have a tendency to put most things in their mouth. It is important toys are free from sharp edges as to avoid cuts and injuries. There may be danger of a child falling on top of a toy while playing. To avoid injuries, make sure pointy edges are buffered or eliminated,
Avoid LOUD toys.
Children's ears are highly sensitive and hearing can easily be damaged by loud noises. In order to find out if a toy is too loud, use your own ears as a tool. If the toy is too loud for you, it's twice as loud for the child. You can choose to take out batteries of the toy or cover speakers with tape. This method is not preferred since tape can be pulled off and the child can swallow it.
Make sure toys are free of toxic chemicals.
Toys such as art supplies, play make-up and crayons have been known to contain toxic chemicals. Before making a purchase, investigate ingredients and contents of the product by looking at the label. The same label should also provide instructions on what to do in case of accidental ingestion of any hazardous substance that the item might contain. It may be wise to consult your local poison control to use as a reference if you need one.
Some toys come with cords or strings.
If a cord or string is longer than 12 inches in length, it can pose a strangulation hazard if looped. Never cut an electrical cord! Make sure electrical cords or wires are secured and protected. Make sure to supervise if an electrical toy needs to be plugged into an outlet. Battery-operated toys are preferable to purchase, especially with young children around. However, battery doors need to be checked frequently to make sure they are secured and cannot be opened. If strings have been cut, make sure frayed edges are cut also. When purchasing crib mobiles, make sure the mobile can be safely mounted high on the crib and out of babies' reach.
If you choose to purchase a toy over the Internet there are a few things that you should be aware of:
Internet sold toys may not comply with U.S. Toy regulations. Auction sites may sell toys that have been recalled by the CPSC. This could be due to the fact the toys were hazards to children's safety. If you happen to come across a recalled toy, or you would like to see what toys have been recalled, there are web sites available to you. CPSC or https://Recalls.gov provides sites with helpful information.
Supervise and be realistic about your grandchild's abilities and maturity levels.
Ask yourself the following questions: Is the child physically ready for a certain toy? Is the toy too heavy? A heavy toy can cause severe injury if the toy falls on the child. Gauge if the child can physically control a heavy toy. Teach the child the safest way recommended by the manufacturer to use the toy properly. Again, SUPERVISE!
Follow these tips when buying video games:
Follow age recommendations of each game and observe a game's ratings. Games rated T for Teen can contain violence, profanity and content not suitable for children under the age of 13. EC for early childhood or E for everyone would be the best choice of rating when buying a video game for younger children.
Remember the days when you would buy toys for your children?
How many dollars have we spent to watch our children and now our children's children go to the kitchen cupboard, pull out all the pots and pans and wooden spoons and bang away and be happy for hours at play? Or grandparents made or bought wooden toy vehicles and wood constructed pull toys that were safe and entertaining. Maybe all the banging of pots and pans is no longer a situation we wish to experience but fun and educational wooden toys are still available.
There was a time when toys were put on the market and bought without a lot of regard for safety. Grandparents could buy any toy that surely the grandchildren would enjoy without considering if the toy was age-appropriate. It was assumed that kids were thought to have the automatic knowledge not to pick up monopoly money and put it in their mouth. Slinkys were toys made to 'walk' down your closest set of stairs. Who knew kids would start to use the Slinky as a rope from which to hoist their little brothers up to the highest treetop? Times have changed. So many toy accidents have taken place, it is now important to teach kids and grandparents the importance of toy safety. The most exciting thing about being a grandparent is watching grandchildren grow up happy and healthy. By becoming vigilantly aware shoppers, grandparents have the power to protect the grandchildren they love.
p style="text-align: center;">. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Personal Baby Products by Randesign provides these articles for entertainment, education and engagement only. We are committed to providing families with quality, affordable gifts and presents that are keepsakes that last a lifetime. See our flagship product, Personalized Baby Blankets, personalized t-shirts, nameplates and other items for unique gift ideas for babies and kids!

subset: commoncrawl


text:
Having probably given up on the locals at long last, the statue of Jesus Christ overlooking Rio de Janiero was dethroned as the world's most famous last week. Thanks to the efforts of one determined priest and after five years of building, the world's tallest Jesus was unveiled in Swiebodzin, a city of fewer than 22,000 people in western Poland.
Standing at 33 metres, the figure of Christ the King is topped by a three-metre crown made of gilded metal. Swiebodzin's Jesus weighs over 400 tonnes and its arms span an impressive 24 metres. Situated on an artificial 16 metre-high, hill made of stones and rubble, the monument stands three metres taller than Brazil's famous Christ the Redeemer statue.
While Swiebodzin's inhabitants mostly cherish the project as a potential tourist-magnet, some Poles sneer at the super-size concrete statue and say it has little to do with piety.
Local priest Sylwester Zawadzki, who kickstarted the project, says that the statue's height is meant as a reference to Christ's age at his death. He also claims that it was Jesus himself who ordered him in a dream to erect the monument.
"The idea came from Jesus. I was only supposed to build this statue," Zawadzki told local daily Gazeta Wyborcza. Asked if the statue's height was not a bit over the top, he disagreed, saying that Christ was "the king of the whole world", and not just of a tiny city.
In Poland, where religion and politics often mix, the idea of proclaiming Jesus as the country's sovereign has been firmly supported by radical circles within the Catholic Church. In December 2006, a group of right-wing deputies went so far as to submit a bill to the Parliament that, if enacted, would enthrone Christ as the king of Poland.
However, recent developments show that Poles have become increasingly tired of the Church's involvement with politics. Following July's presidential election, in which the former right-wing prime minister Jarosław Kaczynski lost to the more moderate Bronisław Komorowski, it has become clear that the backing of bishops alone is not enough in Polish politics.
Jarosław Makowski, head of the Civic Institute, a liberal think tank based in Warsaw, believes that while Poland is an overwhelmingly religious nation, Poles have traditionally denounced priests who use religion as a political tool.
"In Poland, people tend not to listen to those who mistake the priest's pulpit for a speaker's platform at a political rally," he said.
"The more some marginal circles insist on imposing their ideology on the society, the stronger will become the people's drive towards secularism," said Makowski. "Spectacular gestures are meant to obscure the fact that fundamentalists are losing their grip on the Polish society."


text:
Physical Activity Could Help Keep You Mentally Fit
Want to be more productive at work and keep your brain in good shape? Some researchers now say the answer could be as simple as hitting the gym.
Working with Dr. Michal Biron from the University of Haifa in Israel, Dr. Sharon Toker of Tel Aviv University's Recanati Faculty of Management analyzed the personal, occupational, and psychological states of 1,600 healthy Israeli workers in both the private and public sectors, who completed questionnaires at medical clinics when they went for routine check-ups and had three follow-up appointments over a period of nine years.
To learn about the effects of exercise on depression and burnout rates, the participants were divided into four groups: one that did not engage in physical activity; a second that did 75 to 150 minutes of physical activity a week; a third that did 150 to 240 minutes a week; and a fourth that did more than 240 minutes a week.
The doctors discovered that employees who engaged in physical activity saw less deterioration in their mental health, as well as fewer symptoms of burnout and depression. What's more, those who exercised at least 240 minutes a week were about half as likely to experience these pitfalls as those who didn't exercise at all, but real benefits didn't even require that much — they started to take hold when people worked out for just 150 minutes per week.
In work that was recently published in the Journal of Applied Psychology, the researchers also said companies that subsidize gym memberships could see returns in the form of decreased health care costs and absenteeism, and increased workplace productivity.


text:
STANFORD, Calif. – Kevin Hogan threw for 254 yards and three touchdowns in his first collegiate start, and No. 16 Stanford overcame four turnovers to rally past No. 13 Oregon State 27-23 on Saturday and stay in control of its Pac-12 title hopes.
Cody Vaz fumbled late in the fourth quarter to give the Cardinal (8-2, 6-1) the ball at the Beavers 29. The only Oregon State (7-2, 5-2) turnover turned out to be the difference.
Hogan hit tight end Zach Ertz for a 13-yard touchdown for the go-ahead score and Stanford stopped the Beavers twice more. The Cardinal will head to second-ranked Oregon next week with a chance to take over sole control of the North Division and move closer to a spot in the conference championship game.
Oregon State won the turnover margin 4-1 but only converted three points out of them — and the one mistake cost the Beavers badly.
Vaz fumbled while shifting the ball during a scramble and Josh Mauro recovered. After Ertz caught the go-ahead touchdown, Oregon State got the ball back and Alex Debniak sacked Vaz on third down.
The quarterback left with an injury, and Sean Mannion — the former starter — threw incomplete on fourth-and-16 from the Oregon State 37 with 1:52 left.
Hogan, who took over the starting role from inconsistent Josh Nunes, completed 22 of 29 passes with two interceptions. He also ran for 49 yards on 11 carries.
Van finished 23-of-38 passing for 226 yards and a touchdown and Storm Woods ran for 94 yards in a deflating loss for Oregon State, which rallied from a 14-0 deficit to score 23 straight points and controlled the pace for most of the game.
The Beavers, who haven't played in the Rose Bowl since 1965, had their BCS and Pac-12 title hopes severely damaged.
Stanford started strong and closed fast.
After Ertz fumbled on Stanford's opening possession, the defense stopped Oregon State three-and-out. Then Hogan led a 13-play, 93-yard scoring drive — its longest of the season — capped by Stepfan Taylor's 1-yard touchdown run.
Hogan kept the momentum going, rolling to his right and hitting fullback Ryan Hewitt on a play-action pass. Hewitt sliced back inside and bulldozed through a defender for a 12-yard TD that gave Stanford a 14-0 lead late in the first quarter.
The Beavers came back in a hurry.
They used three different running backs on an 81-yard drive that came almost exclusively on the ground. Terron Ward finished it off when he ran for a 7-yard score to the Beavers on the board, and Trevor Romaine kicked a 19-yard field goal to slice Stanford's lead to 14-10 in the second quarter.
In the final minutes of the first half, Tyrequek Zimmerman stripped Taylor at the Oregon State 21. That ended a streak of 262 rushes for Taylor — who finished with 114 yards rushing and eclipsed the 1,000-yard mark for the third straight season just prior — without a fumble.
Oregon State converted two long third down on the opening possession of the third quarter. None better than when Vaz found Wheaton on a short screen pass over the middle on third-and-16 for a 22-yard touchdown to give the Beavers a 17-14 lead.
Rudolf Fujita tipped Hogan's pass after Hogan throws INT on a tipped pass that Feti Taumoepeau intercepted. Stanford's defense held Oregon State to a 42-yard field goal by Romaine, who made another from 44 yards later in the third quarter for a 23-14 lead.
Taylor took a short pass from Hogan while the quarterback was being tackled. Taylor made a defender miss down the sideline, cut back inside and stiff-armed another to the ground for a 40-yard TD that trimmed Oregon State's lead to 23-21 as the third quarter expired.
Rashaad Reynolds outjumped Jamal-Rashad Patterson to intercept Hogan's pass midway through the fourth. Two plays later, Vaz fumbled, and Stanford squeaked out the victory.
Antonio Gonzalez can be reached at: www.twitter.com/agonzalezAP


text:
FORT LAUDERDALE, Fla. – Authorities are searching for a Fort Lauderdale man after his boat was found run aground early Wednesday on Fort Lauderdale Beach with its engine still running.
Fort Lauderdale police said they received a report at 1:15 a.m. that a boat had washed ashore in the 300 block of South Atlantic Boulevard.
Officers arrived and found the boat unoccupied, but the lights were on and the motor was running.
Waiters working late at the Elbo Room on A1A said they could see the vessel moving south in the water. Employee Tyson Hartnett said he and his co-workers tried to send it signals.
"We were flashing our flashlights on him, trying to get his attention," Hartnett said.
When police contacted Jamie Aguiar, the wife of the boat's owner, Guma Aguiar, 35, of Fort Lauderdale, she told them she thought he was in his home office. An employee of the couple then told Jamie Aguiar that her husband had gone out on the boat about 7:30 p.m., police said.
Guma Aguiar has not been seen since.
The U.S. Coast Guard, the Broward Sheriff's Office, Fort Lauderdale police and the Florida Fish and Wildlife Conservation Commission are searching for Aguiar.
Experts at Sea Tow, which towed Guma Aguiar's boat after its discovery, said the only thing that was broken was the tie rod that holds the two outboard motors parallel. Without the rod, they said, the boat could lose control, which may have knocked him overboard.
Guma Aguiar was the CEO and co-founder of an energy company called Leor. Court records show he is in the middle of a divorce with his wife. They also show a pending dispute with a business partner at Leor, which was sued two years ago.
Aguiar is a local philanthropist, donating money to the Chabad Lubavitch in Fort Lauderdale, which bears his name above the front entrance.
Rabbi Moshe Meir Lipszyc said he was shocked and saddened to hear the news of Aguiar's disappearance.
"We hope and pray that he will be found, and that he will be safe. And it's just an accident that happened, but that he was able to swim ashore and he will be found," Lipszyc said.
Police have not ruled out anything in Guma Aguiar's disappearance, including foul play.
Anyone with information is asked to call Fort Lauderdale police at 954-828-5700.


text:
How to Manage Human Resources Like the San Antonio Spurs
To paraphrase a New York Times columnist, sports are like business, simplified. Greg Popovich and the San Antonio Spurs can teach us a lot about how to manage human resources in a business. We can win in the marketplace if we follow their example.
Build teams around key employees. The Spurs have the "Big 3" of Tim, Tony and Manu. The Spurs invest more in these players, they protect them and they take efforts to retain them. Businesses need to identify their key players, those who are in strategic positions and have a direct impact on organizational success. Invest more in them: training and development, rewards and retention efforts.
Complement your key employees with support specialists. The Spurs have Matt Bonner and Gary Neal to make three-point shots, DeJuan Blair and Tiago Splitter for rebounds and Stephen Jackson to defend against opponents' stars. Invest less in your support specialists so you have the flexibility to replace these employees when necessary, or make them key players when they demonstrate greater value. Like the Spurs, you may have to trade away a Richard Jefferson in order to get a Boris Diaw.
Identify talent that other companies overlook. The Spurs' coaching staff has been amazing over the years at finding talent that other teams have ignored, such as Gary Neal. Businesses, too, can seek out talented employees that competitors overlook. For example, recruit professionals at lesser known colleges and universities. Use the "moneyball" approach.
Prevent employee burnout. Part of the Spurs' success this year can be attributed to Popovich's strategy of constantly monitoring his players' health and preventing fatigue and injury by limiting their playing time ("managing their minutes")—even when the players resist. We forget that in business, it is easy to overwork our key employees, leave them in the game too long, and create fatigue, health issues and burnout. In today's environment, it is sometimes necessary to demand that your key employees take time off for recuperation.
Create opportunities to develop your future employees. The Spurs frequently bench their starters–creating opportunities for other players to develop their skills and learn the system. Businesses can do this too. Rotate employees into new job assignments. Create temporary assignments to build particular skills. Use naturally occurring absences (e.g., illnesses and vacations) by key employees as opportunities for developing other employees.
Build stronger teams by mixing younger and older workers. The Spurs have found a good mix of older and younger players, and they capitalize on the strengths and minimize the weaknesses. The older players have the experience and well-honed skills, but they tire more quickly. The younger players have the energy and enthusiasm, but lack the experience. But when they are combined—the wisdom and skills of the older players with the enthusiasm and vitality of the younger players—they are a daunting foe. Businesses can use combinations of older and younger employees to leverage wisdom with energy.
Create a sense of shared purpose and interdependence. The Spurs constantly stress passing the ball and making plays as a team. They are all committed to one goal: coming together as a team and winning a championship. Businesses, too, need to create an overarching goal that brings employees together in a common pursuit.
Review, restore and renew your organizational capabilities. At the end of last season, the Spurs recognized two major weaknesses in their capabilities: they couldn't defend some of the better "bigs" in the league, and they had diminished three-point shooting competence. Some deft recruiting and trading helped them restore their strengths and shore up their weaknesses. Businesses need to do the same, periodically assessing their current stock of human resource and organizational capabilities. Nothing stays the same, so you have to constantly adjust to keep up with your competitors.
Basketball players and employees are not like other organizational resources. They have feelings, emotions and sometimes they get sick or injured. There is always that unknown factor that cannot be planned for by coaches or managers. However, effective human resource management enables basketball teams and businesses to maximize their chances of winning.
—Mark Lengnick-Hall, professor of management, UTSA College of Business
Please send your comments to: email@example.com


text:
[OT] Perl Code Embedded in an Imageby ktross (Deacon)
|on Mar 30, 2005 at 15:25 UTC ( #443504=obfuscated: print w/replies, xml )
|Need Help??
There has been a lot of talk about people of nefarious nature hiding information in otherwise normal looking images. After hearing about this prospect, I wondered if it was possible to make an image containing runnable perl code. For several days I had trouble getting around the image headers, as they all cause syntax errors. Eventually, Joost showed me the light of the -x switch.
As of now, my user image ktross's user image is a JAPH script, and a picture of a camel.Steps to run:
The code contained in the image is a re-run of System Independant Rand-JAPH, but I thought the concept was interesting.
Back to Obfuscated Code


text:
Update Your Home Without Emptying Your Wallet
Quick, easy, inexpensive – whoever thought those adjectives could apply to home improvement projects in Circleville, Ashville, Mt. Sterling or Chillicothe? But, they can!
To spruce up your home on a budget, check out these five ideas for projects that yield maximum results with minimal effort and cost:
1. Paint: All you need is a can of paint to make big changes. Completely transform the mood of a room, or turn your front door into the main attraction of your porch. You can even paint a tile backsplash or turn worn vinyl flooring into something that resembles stone.
2. Lighting: If you have lamps, you don't necessarily need new ones — simply changing lamp shades is a great way to update a room. You also can install new overhead lighting, such as a pendant lamp, or add inexpensive LED strips underneath your kitchen cabinets. Finally, dimmer switches can cast a whole new glow on your lighting options.
3. Furniture: You don't need to buy new furniture to have "new" furniture. A slipcover or new upholstery can refresh a tired couch or chair. Or, if you like your pieces the way they are, why not rearrange them? That won't cost you anything at all.
4. Don't forget the hardware: Do your cabinet pulls and handles look dated or worn? Replacing them will make a bigger difference than you might think. And, while you can buy new ones at a local home improvement or department store, check online auction sites or local "freecycle" groups for other interesting options. A new faucet for your bathroom or kitchen is another great update that won't break your budget.
5. Take a look outside: Spruce up your porch and create an inviting atmosphere with container plants, which are easy to swap out. A new welcome mat, door-knocker or house numbers could further lend an entirely new feel to your curb appeal.
Your options are limitless, and some are even easier than you think. One of the easiest fixes of all? Clearing up clutter around the house. It might not be as much fun as these other projects, but you'll be just as happy with the results!
If you have questions about insurance coverage or need help with a claim, we here at Hummel and Plum Insurance Agency are happy to help. Call us at 740-477-3311.


text:
Lost: What to Do When You Realize You're Off Route
Heading out the door? Read this article on the new Outside+ app available now on iOS devices for members! Download the app.
Nothing compares to the jilting moment when you realize you may be lost, when you realize the sun will be setting soon and you only have your tiny running pack
Illustration by Daniel Yagmin
You glide effortlessly down the trail. Everything is flowing. Hills come and go, the trees are a blur and your legs feel strong. It is one of those special days … then, suddenly, you realize that you have blown by the trail junction where you were supposed to turn. How many miles back was it? Where are you?
Nothing compares to the jilting moment when you realize you may be lost, when you realize the sun will be setting soon and you only have your tiny running pack with a wind jacket, a couple of gels and a few ounces left in your hydration bladder. Things spiral and you begin to panic. You curse yourself for not carrying your cell phone, GPS, headlamp, map or telling someone where you were headed. What should you do?
Stay Calm
Remaining calm is crucial. A clear head and slow, meticulous thinking allow you to better evaluate your situation and make good decisions. It may sound trite, but take some deep breaths. Step back and pretend you are an outsider looking in, or imagine you're watching a TV show of yourself. You know how you critique show plots or joke about the cheesiness of that B movie? Sit down, take a sip of water and think rationally.
How long ago did you pass the turn off? When will it get dark? Did you pass other trail junctions? Would you recognize those junctions (keeping in mind that you will be coming from a different direction)? Is it a full moon providing enough light to keep moving safely? Is a storm moving in? How much gas do you have left in the tank? How cold are the overnight temps? Is there a real chance of getting hypothermia and exposure?
Best Case
In the best-case scenario, you can reorient yourself by identifying a landmark from a nearby hilltop, or simply having confidence that you can backtrack, even in the dark, safely to the trailhead or civilization. Be careful, though, not to fool yourself into recognizing landmarks, i.e. in a panic, it is easy to convince yourself that you recognize a distinctive bush or rock formation.
If you decide to backtrack, it is best to stay on trail and backtrack the way you came, especially after dark, rather than taking off cross country, where you could encounter cliffs, downed trees or impassable vegetation. Leave "bread crumbs," or clues (e.g. arrows scratched in the dirt or made from branches) along your travel route, especially at intersections and junctions, so that in case you head the wrong way, you can turn around and retrace your route. Such clues will also aid potential search-and-rescue (SAR) personnel, if it comes to that.
If you cannot simply backtrack, there are options. Is there a road that you know parallels the area on one side that you could drop down to? Do you see car lights indicating a road nearby? Can you follow a creek or river drainage to safety?
If you make it out, great! Go home, have a beer, sit on the couch and watch the next episode of Survivorman. If you try to make it out but end up even more lost, stop. Eat a snack, take a drink. Do not let embarrassment keep you from admitting you are lost.
Worst Case
OK, now you admit it—you are really lost. It is cold and getting dark. Your best course of action is to stay put, and prepare to bivy.
Look for a sheltered spot, e.g. a rock overhang, a low, thick-branched tree, close to the trail so you will hear people if they pass by. If you can't find a natural option, create your own. Drape some thick branches a few feet over your bed area to create beams in a lean-to style. Lean the branches up against something sturdy like a solid tree or rock. Then collect more branches and boughs to create an insulating roof. The best branches to collect are evergreen boughs, which layer well and cover a lot of surface area.
Inside your shelter, create a bed of pine needles, leaves and/or more boughs to insulate you from the ground. Then, when you bed down, pile on more duff, boughs or branches. You can also sleep on top of your pack (if you have one) or slip your feet inside for more warmth.
If you get cold, perform light exercise, e.g. pushups and jumping jacks, every so often to elevate your body temperature.
The Morning After
Day breaks, you rise from your sleepless, endless night but your nightmare hasn't ended. If you feel you cannot find your way out in the daylight, stay put, and help SAR find you. The more you move, the more they have to play cat and mouse.
Do not play by Leave No Trace standards. Leave your shelter standing. Then provide more clues for the SAR teams. Draw or make arrows to direct searchers to your position. If there is an opening in tree cover, like a meadow or alpine zone, stay there. Make a big "X" in the opening by placing sticks, rocks or anything of a contrasting color to the ground so a search helicopter or plane can see it.
If you can start a fire, make a "smudge" (a smoky fire with not many flames) to draw searchers' attention. Alert rescuers by making noise, whistling or yelling. Three long blasts on a whistle are the universal help signal. Don't make coyote yips, raven caws or wolf howls. Those definitely won't help! If searchers make verbal contact, tell them you need help and talk them into your location.
Getting lost can be a harrowing experience but staying calm and acting rationally will keep you alive.
Next Time
What you should have brought and how it could have saved you. You don't need all of the items listed below but a good combination and working knowledge is key.
■ GPS. Know how to use it before you set out. At the trailhead, waypoint your position. You can also leave "bread crumbs" on your GPS so you can backtrack if you get lost. An added bonus, it will tell you the exact mileage, fastest speed and average speed of your run.
■ Headlamp (with fresh batteries). Can mean the difference between making it out that first night or not.
■ Cell phone. Cell-phone coverage is becoming more widespread, but don't depend on it. With reception, you can call SAR, and notify your significant other or relative.
■ Matches/lighter/firestarter. The classic "I wish I had …" A small fire can save your life.
■ Pencil and paper. Telling someone your intended route and/or leaving a note in your car at the trailhead is a no brainer. If you have writing implements in your pack, you can leave notes/clues for
SAR teams.
■ PLB. If you carry a personal locator beacon, like SPOT, you can send out a distress signal, an OK message or tether it to your smartphone to send out a text message. If necessary, SAR can read that platform to pinpoint your location.
■ Map and compass. Know how to use this old standby system, and you can usually find yourself if temporarily misoriented.
Justin Lichter (www.justinlichter.com), trail name "Trauma" in the hiking world, has hiked over 35,000 miles in the past eight years, including trips across the Himalayas, Southern Alps of New Zealand, East Africa, Iceland and United States. In 2006, he hiked over 10,000, averaging almost 30 miles a day.


text:
Wed, Mar 22nd 2023
There are not any items at the moment.
You are about to leave Steffi's Cloud to get redirected to the following address:
Please note, that the target website is not operated by us. We are not responsible for it's content nor does our privacy policy apply there.
There are not any items at the moment.


text:
Health & Wellness
The NYU Student Health Center and the Department of Campus Safety work closely with program staff to plan for safe, healthy, and enriching opportunities long before you arrive. You will be introduced to many of these services in the months leading up to your program abroad while others will be explained in detail during the mandatory on-site orientation. Get a head start on familiarizing yourself with global health and wellness resources by visiting the NYU Student Health Center website.


text:
I'm so excited to bring you my ebook on Clean Eating, "Clean Eating for Wellness and Weight Loss". It's available as a PDF file and on Amazon Kindle.
Clean eating is something we talk about and recommend all the time here on our blog and our Facebook page. It is a very effective way to eat for anyone who wants to not only lose pounds, but also eat healthier in general. I really believe that this a great way to get on track with healthy eating, but still feel full and satisfied.
In this book, I explain the benefits of Clean Eating and how to go about changing your eating habits. You may ask, "What is Clean Eating?" Basically, When you eat clean you will be eating unprocessed, whole foods that are prepared or cooked in ways that don't add extra chemicals and toxins. We are talking about fresh fruits, fresh vegetables, lean meats, meat substitutes like tofu, soy, whole grains, lots of water, healthy dairy and fresh juice. The "clean" in clean eating refers to cleaning out highly processed, negative impact foods from your daily meals. That means being free from the junk at least 70-90% of the time.
Clean eating is a great option for those who want a true lifestyle change instead of just another short term diet plan. I've created this guide to show you the benefits and lay out the ground rules, so that you can begin eating clean today and get a jumpstart on your weight loss and wellness goals.
Download your copy today for $7.99
(Reg $10.00)
In this book I cover:
- Benefits of Eating Clean
- What Foods are Clean?
- How to Eat Clean
- Importance of Hydration
- Eating Clean on the Go and at Work
- Frequently Asked Questions
- Exercising While Eating Clean
- Recipes
- Quick Meal Planning Ideas
… and MUCH MORE!
After your purchase is processed, you will receive a link via email to download the ebook (PDF file) for viewing on your computer or mobile device.
If you do not have a PayPal account, simply click the "Don't Have A PayPal Account?" link at checkout to pay with a debit or credit card.
Health Disclaimer: All information provided within this book is for informational and educational purposes only, and is not to be construed as medical advice or instruction. No action should be taken solely on the contents of this book. Please consult your physician or a qualified health professional on any matters regarding your health and well being or on any opinions expressed within this book. The information provided in this site is believed to be accurate based on the best judgment of the author/individual member posting. However, you as the reader must be responsible for consulting with your own health professional on matters raised within.


text:
The Indian Rupee May Offer Relative Value
Important Risks Related to this Article
Foreign investing involves special risks, such as risk of loss from currency fluctuation or political or economic uncertainty. Investments in emerging, offshore or frontier markets are generally less liquid and less efficient than investments in developed markets and are subject to additional risks, such as risks of adverse governmental regulation and intervention or political developments. Investments focused in China and/or India are increasing the impact of events and developments associated with the region, which can adversely affect performance.


text:
Want more WOW! moments in your business?
"The world keeps changing…great marketing is timeless"
– Nancy A. Shenker
"The world keeps changing…great marketing is timeless"
– Nancy A. Shenker
Forbes calls Nancy A. Shenker (CEO of theONswitch) a "bad girl" because she selectively breaks rules and takes calculated risks to help companies innovate and grow. Her fun and practical keynotes, workshops, webinars, books, and blogs can help you do the same. Invite her into your conference, workplace, bookshelf, or tablet – and be a little bad – so your business can be really good!
The world keeps changing. Great marketing is timeless. What are the 7 timeless truths that will guide you and your business into the next decade? Grab some popcorn, click the arrow below or click on the TV to the right, and find out – in less than 2 minutes!


text:
I hit 100 on Thursday. My last run of October on Friday brought me to 106.
It felt awesome to see this new trophy on Nike+, and to go back and look at my progress over the last couple months.
|From DailyMile. Last November was my highest mileage to date; 79 miles including the marathon!
After listening to me daydream of pizza for five miles, Elizabeth checked in to make sure I'd had my reward.
|Artichoke hearts, roasted red peppers, and bacon!
|The night I hit 100! Woohoo!
What was your highest mileage month?
How do you celebrate big achievements?


text:
Resin Documentation
app server
database configuration
Resin provides a robust and tested connection pool that is used to obtain connections to databases.
A basic <database> configuration specifies the following:
<web-app xmlns="http://caucho.com/ns/resin"> <database jndi-name='jdbc/test_mysql'> <driver type="com.mysql.jdbc.Driver"> <url>jdbc:mysql://localhost:3306/test</url> <user></user> <password></password> </driver> </database> </web-app>
This <database> will configure a javax.sql.DataSource and store it in JNDI at java:comp/env/jdbc/test_mysql. To use the data source, follow the database use pattern in the DataSource tutorial.
Although some deployments will specify driver and connection pool parameters, the default values will be fine for most applications.
A database connection is used to allow the Java program, running in a JVM, to communicate with a database server.
Connection Pool
Connection pools are used to reduce the overhead of using a database. Establishing a connection to the database is a costly operation. A connection pool keeps a pool of open connections, each connection can be used for a time as needed, and then released back to the pool. A connection that has been released back to the pool can then be reused.
Connection pooling is especially important in server applications. The overhead of opening a new connection for each new client request is too costly. Instead, the database pool allows for a connection to be opened once and then reused for many requests.
Resin provides an implementation of
A Driver provides an interface and is responsible for the communication with the database. Every different database (i.e Oracle, MySQL) has their own means of enabling communication from the client (in this case Resin and you applications) and the database. The Driver provides a common interface that hides the details of that communication.
Transactions are especially important in server applications where many threads of processing may be interacting with the database at the same time.
For a simple example, imagine a set of operations that reads a value, calculates a new value, and then updates the database.
read value A=1 calculate A=A+1 update A=2 read value A=2 calculate A=A+1 update A=3
Imagine if one thread is performing this operation, and in the middle of this read/calculate/update, another thread performs an update. The data that the first thread obtained from the read and is using for the calculation and update is no longer valid.
Thread 1 Thread 2 -------- -------- read value A=1 read value A=1 calculate A=A+1 calculate A=A+1 update A=2 update A=2
Placing the read/calculate/update operations in a transactions guarantees that only one thread can perform those operations at a time, if a second thread comes along and tries to perform the operation, it will have to wait for the first thread to finish before it can begin.
Thread1 Thread 2 ------- -------- read value A=1 calculate A=A+1 (tries to read A, but has to wait for thread 1) update A=2 read value A=2 calculate A=A+1 update A=3
Distributed Transaction
If the guarantees that transactions apply need to apply to operations that occur on two databases within the same transaction, distributed transactions are needed.
read value db1.A=1 read value db2.B=99 calculate A=A+1 calculate B=B-A update db1.A=2 update db2.B=97
Distributed transactions are rarely needed, and few databases really support them.
<database> defines a database (i.e. DataSource) resource.
database = element database { backup-driver* & close-dangling-connections? & commit-on-timeout? & connection? & connection-wait-time? & driver+ & jndi-name? & max-active-time? & max-close-statements? & max-connections? & max-create-connections? & max-idle-count? & max-idle-time? & max-overflow-connections? & max-pool-time? & name? & password? & ping? & ping-interval? & ping-query? & ping-table? & prepared-statement-cache-size? & save-allocation-stack-trace? & spy? & transaction-timeout? & user? & wrap-statements? & xa? & xa-forbid-same-rm? } backup-driver = element backup-driver { class? & url? & element * { * }? } connection = element connection { catalog? & read-only? & transaction-isolation? } driver = element driver { class? & url? & element * { * }? }
<web-app xmlns="http://caucho.com/ns/resin"> <database jndi-name='jdbc/test_mysql'> <driver type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"> <url>jdbc:mysql://localhost:3306/test</url> <user></user> <password></password> </driver> </database> </web-app>
child of <database>
Configure a database. The driver is a class provided by the database vendor, it is responsible for the communication with the database.
The jar file with the driver in it can be placed in
The class that corresponds to <driver> is com.caucho.sql.DriverConfig
Choosing a driver class for <type>
Database vendors usually provide many different classes that are potential candidates for. The JDBC api has developed over time. The driver you choose depends on the options the vendor offers, and whether or not you need distributed transactions.
JDBC 2.0 - ConnectionPoolDataSource
JDBC 2.0 defined the interface
A driver that implementsis better than a JDBC 1.0 driver that implements .
JDBC 2.0 - XADataSource
JDBC 2.0 defined the interfacefor connections that can participate in . A distributed transaction is needed when transactions involve multiple connections. For example, with two different database backends, if the guarantees that transactions apply need to apply to operations that occur on both databases within the same transaction, distributed transactions are needed.
Distributed transactions are rarely needed, and few databases really support
them. Some vendors will provide
Set driver properties with init-param
is used to set properties for java.sql.Driver database drivers. More modern drivers like ConnectionPoolDataSource will not use init-param, but will use IoC-style tags directly.
For example, MySQL drivers accept the
<database> <jndi-name>jdbc/mysql</jndi-name> <driver> <type>com.mysql.jdbc.Driver</type> <url>jdbc:mysql://localhost:3306/dbname</url> <user>username</user> <password>password</password> <init-param useUnicode="true"/> </driver> ... </database>
<database> <jndi-name>jdbc/mysql</jndi-name> <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://localhost:3306/dbname</url> <user>username</user> <password>password</password> <useUnicode/> </driver> ... </database>
Pooling configuration controls the behaviour of Resin's pooling of database connections. For most applications and databases the only needed change is to increase the max-connections value to meet high demand. Other pooling parameters have defaults that are based on our years of experience with many different databases in many different applications. Changes from the defaults should only be done in response to specific problems, and with a good understanding of how pooling works.
Resin's database pool can test if the pooled database connection is still alive by configuring a pooling parameters are changed from their default values.query. This is typically only necessary if the
If the pool is configured with a long max-idle-time the database connection may become stale if the database is restarted, or if the database is configured with a shorter connection timeout value than the configuration of the Resin pool. Normally when a database connection is returned to the pool it will wait there until the next request or the idle-time expires. If the database goes down in the meantime or closes the connection, the connection will become stale. Theconfiguration can test the database connection.
When pinging, Resin's DBPool will test a table specified with the
<database jndi-name="..."> <driver type="..."> ... </driver> <ping>true</ping> <ping-table>BROOMS</ping-table> </database>
You can test the ping using the following steps:
<driver> list
If there is a pool of database servers available that can be used for database operations, Resin can be configured with a list of <driver> tags. Resin uses a round robin algorithm to cycle through the list of drivers when obtaining connections. If a particular <driver> fails to provide a connection, Resin continues the attempt to obtain a connection. If all of the configured drivers fail to provide a connection the exception is propogated to the caller.
<database jndi-name="jdbc/hogwarts"> <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.110:3306/hogwarts</url> ... </driver> <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.111:3306/hogwarts</url> ... </driver> ... </database>
<backup-driver> list
Drivers in a driver list can be marked as backups. The drivers configured with <backup-driver> are used only if all of the drivers configured with <driver> have failed.
Each time a new connection is needed Resin goes through the process of first attempting to use one of the <driver> configured drivers to get a connection, and if that fails then the <backup-driver> are used. A new connection is needed from the driver if the pool of connections that is maintained by Resin does not contain an idle connection. The Pooling configuration and the usage pattern of the application determine how often a connection is obtained from a driver. The pooling configuration typically allows a single real connection to be reused by the application many times.
The lifetime of a connection obtained from a <backup-driver> is determined by the Pooling configuration, thus even if the main <driver> becomes available again a connection previously obtained from a <backup-driver> will continue to be used until it expires from the pool.
<database jndi-name="jdbc/hogwarts"> <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.110:3306/hogwarts</url> ... </driver> <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.111:3306/hogwarts</url> ... </driver> <backup-driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.112:3306/hogwarts</url> ... </backup-driver> <backup-driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type> <url>jdbc:mysql://192.168.0.113:3306/hogwarts</url> ... </backup-driver> ... </database>
Getting the DataSource
Ideally, the JNDI lookup of
import javax.sql.*; import javax.inject.*; public class .... { @Named("jdbc/test") DataSource _pool; ... }
Getting a Connection
A connection is obtained from the
It is very important that the
close() in a finally block, to guarantee that it is called.
The following example shows the use of a
package javax.inject.*; package javax.sql.*; public class MyBean() { @In DataSource _pool; public void doStuff() { Connection conn = null; try { conn = _pool.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(" ... "); ... rs.close(); stmt.close(); } catch (SQLException e) { throw new ServletException(e); } finally { try { if (conn != null) conn.close(); } catch (SQLException e) { } } } }
Getting the underlying driver connection
The connection obtained by
In rare circumstances it is necessary to obtain the real connection returned by the driver. Typically this is a requirement for situations where the driver provides a specialized API that is not available with the standard JDBC API.
Connection driverConn = ((com.caucho.sql.UserConnection) connection).getConnection(); // never do this: driverConn.close()
Resin provides facilities that allow you to plugin your own custom code that returns a password to Resin. However any solution is vulnerable, unless you require a person to type in a password every time Resin starts (or restarts). Typically the security of the machine hosting Resin, and proper permissions on the readability of the resin.xml file, are sufficient to protect your database password.
The solution shown below is not really secure because you can disassemble the Password code to get the decryption key, but it may be marginally better than plaintext.
<driver type="..."> <password xmlns:hogwarts="urn:java:com.hogwarts"> <hogwarts:Password value="mX9aN9M=="/> </password> ...
You will need to provide com.hogwarts.Password:
package com.hogwarts; public class Password { private String _value; public void setValue(String value) { _value = value; } public Object replaceObject() { return decrypt(_value); } private String decrypt(String encrypted) { ... custom code ... } }
This solution is completely general, you can use <mypkg:MyClass/> anywhere in the configuration files where a string value is allowed.
Resin does not provide the equivalent of com.hogwarts.Password because it's not really secure. Providing that kind of solution would lead some to believe it was a secure solution.
Resin comes with JPA 2.0 interfaces that are not compatible with Hibernate and JPA 2.1+. To override Resin's classes, add the Hibernate jar to the directory that you can specify in <jvm-classpath>.
<resin xmlns="http://caucho.com/ns/resin"> <cluster id="web-tier"> <server-default> <jvm-classpath>/tmp/test-classpath</jvm-classpath> </server-default> <server id="app-a" address="192.168.2.10"/> ... </cluster> </resin>
An alternative is to reverse the normal classloading order by adding <servlet-hack> to your resin-web.xml, which gives webapp classes priority over Resin's classpath classes.


text:
Lidar Analysis of Vegetation Structure
This exercise was initially created as a session in a GIS training for the U. S. Fish and Wildlife Service in May, 2016 by Doug Newcomb.
Session Objectives
At the conclusion of this session, you will be able to:
- Open GRASS GIS and Create a Location from an existing file
- Link external raster elevation data to the Location
- Import LAS point cloud data to assess DEM accuracy
- Import LAS point cloud data to create various vegetation structure products
- Export raster vegetation structure data layers from GRASS to GeoTiff
Material Created By: Doug Newcomb (May 2016)
Software: GRASS 7.2
Directory Path: D:\grasslidar (assumed at some places, use any directory you want)
Image Files: D05_37_20026801_20141209.tif D05_37_20026803_20141209.tif D05_37_20026802_20141209.tif D05_37_20026804_20141209.tif
LAZ format LiDAR files: LA_37_20026801_20141209.laz LA_37_20026803_20141209.laz LA_37_20026802_20141209.laz LA_37_20026804_20141209.laz
Data can be accessed online here
Elevation data is commonly used in landscape analysis, but it is also quite useful in vegetation analysis. This exercise will walk you through basic analysis of a LiDAR point cloud to better understand vegetation structure.
All data are located in c:\grasslidar\data, unless otherwise noted.
Step 1: Creating GRASS Workspace
The first thing to do when starting to work in GRASS is to create a Location. GRASS Locations are single projection areas with a defined resolution and extent. The initial location can be easily created from an existing data set.
In Windows, Click on Start-->All Programs-->GRASS GIS 7.2--> GRASS GIS 7.2 GUI
Two windows will open, the GRASS startup window ( to select or create a workspace) and the GRASS command prompt.
- Click on the New button between the Location and Mapset windows. This will bring up the menu to define a new Location.
The GIS Data Directory is where all of your grass workspaces will reside. Creating a new directory with a unique name for grass data is recommended. This directory can be created anywhere that the user has write access. Project location is a subdirctory name for this particular project. Like with ArcGIS, it is best to avoid spaces in Directory names to avoid problems down the road. Click on the Browse button and select c:\grasslidar\grassdata. The data is from Bladen County, NC and is in the North Carolina State Plane NAD83(2011) projection with units feet, so call it bladen_stpft
- Enter the Data Directory and Project Location – this brings up the location creation method menu
- Click on the radio button for Read projection and datum terms from a georeferenced file.
- Click Next
This brings up the georeferenced file dialog.
- Browse to C:\grasslidar\data and look at the data available:
In this directory, you will see 4 file types: asc, laz, tif, and vrt. LiDAR data is usually distributed as tiles of point clouds and Digital Elevation Models (DEMs) ASC and TIFF are common file formats to distribute DEM data. Asc is an ArcInfo ASCII Grid file, which is simply a text file representing a grid and does not have any projection data associated with it. Generally .tif files distributed as DEMs have projection information embedded in the file. LAZ is an open method of compression for LAS files. VRT is a virtual raster index of the 4 .tif files in this directory.
In this directory, and select D05_37_20026801_20141209.tif as the georeferenced file.
- Click Next.
GRASS reads the georeference data from the elevation file and displays the projection data.
- Click Finish
The next message relates to setting a default path for GRASS startup.
- Click OK
In the following message, you have the option if importing the data set you used for georeferencing the workspace.
- Click No
The location has been created. You are prompted to set the default region extents and resolution.
- Click No
You are then prompted to create a new mapset.
- Click Cancel
You have finished creating a Location with the default PERMANENT mapset. The next time GRASS is started, you can either select an existing Location and Mapset, create a new Mapset within the Location, or create a new Location.
- Click on the PERMANENT Mapset
- Click Start GRASS session
You will then see the Layer Manager Window, the Map Display Window for Display 1.
Step 2: Adding a data layer
We are now ready to add data to the Mapset. We can either import Raster and Vector data using the GDAL translation library, or we can link to existing external data sets read only to reduce data duplication. In this case, we will link to the 1m elevation data we used to create the Location using the r.external command.
- In the Layer Manager window, click File-->Link external data-->Link external raster data.
This brings up the r.external dialog.
We would like to treat the 4 tiles of LiDAR and elevation data as a single seamless unit, to accomplish this, we are going to first select the demo05ft.vrt image index as our input raster.
- Browse to C:\grasslidar\data\dem05ft.vrt and select it. Note that the Add layers into layer tree is checked. For large data sets, leave this unchecked.
- Click on the import settings tab at the bottom
- Click on the box for Extend region extents based on new dataset.
- Click back to the Source settings tab and Click Link.
The Layer Manager window will switch to the Command console tab and display the results of the r.external command . Click the close button on the r.external dialog.
The 4 DEM rasters are displayed in the Map Display window as a single seamless data set . Any GIS software built with Geodata Abstraction Library(GDAL) ( including ArcGIS 10.0 and above) will see a vrt mosaic as a single raster layer. Creating the vrt is as simple as going to the black GRASS command window ,navigating to the directory in the with the rasters and typing: gdalbuildvrt dem05ft.vrt *.tif
For larger data sets, it takes much less time to link to a raster data set than import it and linking also saves on storage space.
Step 3: Setting up the region
The region in a GRASS mapset defines the extent and resolution of the results of any raster actions. To make sure that all of a raster layer is affected by a command, it is customary to set the region's extent and resolution to match the raster layer. To set the region to match the elevation raster that we just linked to ,
- From the Layer Manager window drop down options, click the Settings-->Region-->Set region
- In the g.region menu, in the Set region to match raster map section, use the drop down to select dem05ft@Permanent.
- Click Run
When the command finishes, your will see "Command finished" and the time taken in the g.region window .
- Click Close in the g.region window
- Click Settings-->Region-->Display region
In the command console tab of the Layer Manager window, you see the current region definintion: resolution, bounds, rows and columns. The output resolution of raster layers created will usually match the region resolution. To change the output resolution, you will need to change the resolution of the region.
A quick note about the results. The datum is not recognised and assumed to be WGS84 by GRASS. The datum is NAD83 (2011). The data coordinates have not changed, the datum information has not been recognized on import. We can work with the data and assign the correct datum information after export from GRASS. This should be corrected by the final release of this version of GRASS.
Step 4: Processing the Lidar data
There are 4 lidar tiles that correspond to the 4 tiles of elevation data. The data is in the Compressed LAS files (laz) format. LASZip, http://www.laszip.org/, is an open compression method that losslessly compresses LAS format LiDAR data files to about 25 -30 percent of the original size.
You will be using the GRASS 7.1 r.in lidar. R.in.lidar uses a binning process, performing an analysis on the points that fall in each raster cell. It's best to process las tiles as a single unit to avoid border effects. There are two ways to do this: 1) Merge the las files together into a single file using tools such as lastools lasmerge, https://rapidlasso.com/lastools/lasmerge/ . Many software packages are still limited to LAS format 1.2 which can only handle up to 4.2 billion points per file ( a current limitation in GRASS7.1) . This option can also take up hard drive space. 2) The second option available in r.in.lidar is to give a filename with a list of adjacent LAS/LAZ files and it will treat it as a virtual seamless LiDAR data set. If you look in the data directory, you will see laslist.txt. The contents of the file are: C:\grasslidar\data\LA_37_20026801_20141209.laz C:\grasslidar\data\LA_37_20026802_20141209.laz C:\grasslidar\data\LA_37_20026803_20141209.laz C:\grasslidar\data\LA_37_20026804_20141209.laz
This is a list of the compressed las files in the directory that you will be processing. Give r.in.lidar c:\grasslidar\data\laslist.txt as the input file list, and it will treat all 4 files as a single point cloud. This method has been tested on file lists up to 966 las files.
This exercise will use the second method. To start r.in.lidar, go to File-->Import raster data-->LAS Lidar points import.
This will bring up the r.in.lidar menu.
You will notice that there are several tabs across the top of the command window. The first tab is the Input tab . You can either enter the name of the individual las or laz file, or you can enter the name of a txt file with a list of las or laz files. In the second option, browse to the location of the laslist.txt file and select it as shown.
Next we will set the output raster layer.
- Click on the Output tab
- In the Name for output raster layer box, type " bladen_test_5ft_pt_count" as the output layer
You will be binning the data using a 5ft resolution cell. In this case, you will be counting how many LiDAR returns are in each 5ft cell.
- Click on the Statistic tab
- Select n from the Statistic to use for raster values drop down menu
- Click on the selection tab
- You want all points except the low noise ( class 7) so put 1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20 into the box for "Only import points of selected classes." (feel free to copy and paste)
- Click on the Optional tab
- Select the check box for Override projection check
- Click Run.
Your display should look like this, with the result of the point count automatically added to the display.
To add a legend to the display:
- Click on the Add map elements button on the top of the Display window
- Select show/hide legend
The default legend is not clear for this data set, so simplify the legend by:
- Double clicking on the legend to bring up the d.legend menu.
- Click on the Gradient tab and check the Draw smooth gradient and Add histogram to smoothed legend.
- Change the number of text labels from the default of 5 to 8.
- Click OK
As you can see in the illustration above, the histogram on the legend tells you that most of the cells have fewer than 10 points per cell. For any valid statistical analysis of the point values in the cell you would need to pick a cell size larger than 5ft if you are performing statistics on the point values within each cell.
You can also see the overlap of the LiDAR data collection flight lines. This makes the use of direct point count density useless as a measure of vegetation density unless all overlap points are removed.
Step 6: Canopy Heights and Other Forest Structure Metrics
Calculation of canopy heights involves determining the distance between the ground and the top of the vegetation. It can be done two steps , creating a digital surface model (DSM) and subtracting the Digital Elevation Model (DEM) With GRASS, this can be done in one step.
Go back to the r.in.lidar menu:
- Set the output raster to bladen_test_5ft_ch.
- Go to the statistic tab and select max from the drop down menu.
- Select the Transform tab
- From the Subtract raster values from the z coordinates, select dem05ft from the dropdown menu.
- Go to the Optional tab
- Check the boxes next to Override projection check and Use base raster actual resolution instead of computational region
- Click Run
- Select the Display window and double-click on the legend.
- Select as the input raster layer bladen_test_05ft_ch
You have just used the 5 ft resolution DEM to convert the z values of the point cloud to height above ground. Selecting the maximum value in each cell now gives the canopy height in each cell. Using this proceedure allows you to convert the LiDAR point Z values to height above ground at the 5ft resolution, but the calculations after the conversion will be done for the cell size of the current resolution of the location.
Look back at the legend. You will notice that the bottom value is negative 4. Why is that? Run r.in.lidar again with the statistic st to min and the output raster set to bladen_test_05ft_min.
- Go back to d.legend and set the raster to bladen_test_05ft_min.
- Click on the Gradient tab and set the number of text labels to 20
- Click apply
You can see that the bulk of the minimum values are less than the DEM surface. Turn off all layers except the DEM layer. Zoom into the large oval area in the Southeast corner of the DEM.
This feature is called a Carolina bay. The northern half has been ditched and drained, and the southern half remains in the native thick vegetation. Turn the min values back on.
- Go to raster-->Manage colors --> Color tables. This will open the r.colors menu.
- Select the Define tab and in the Name of color table dropdown select elevation.
You will notice that in the light green and yellowish areas are significantly above the DEM surface. This is an indication that the laser did not penetrate the vegetation to hit the ground. While the DEM is not perfect, it gives us a better ground surface than just using the min value. There are ways to work around those differences, but that is not the topic for today.
Look at the other end
- Set the region to match the 5ft dem
- Remove the base raster in the Transform tab and in the Optional tab
- Remove the zrange on the Selection tab
- Set the output raster to top_of_canopy_5ft
- Run r.in.lidar with the max method
Change your legend to match the top of canopy layer. What is the max height that you see?
- Click Raster-->Reports and statistics-->Basic raster metadata (r.info)
- Select dem05ft
- Click Run
R.info gives basic information about the raster layer. You see the rows, columns, number of cells, projection, the command that created the raster is listed as well. This is all useful information for metadata construction. The min and max values of the raster is what you need to look at now. The maximum value in the DEM is 2264.559. Since we have no trees in NC over 200ft, it seems we have some invalid high points. To remedy this:*
- Go back to the Selection tab and and
- for the zrange enter -10,250.
- Click Run
This gives a -10, 250 range around the high and low ground in the area (93-10 =83 and 128+250 = 378). This should exclude most of the extraneous points and leave a 5 ft resolution Digital Surface Model(DSM). Change the legend to display the new raster layer. What differences do you see?
For now we are going to leave this dataset, but we will come back to it later.
- Go back to Settings-->Region--> Set region to open the g.region dialog.
- Select the Resolution tab.
- Enter 20 in the 2D grid resolution box
- Click Run
If you go to Settings-->Region-->Display region You will see : nsres: 20 ewres: 20
The Region resolution setting is now for 20ft cells.
- Go back to the r.in.lidar menu and:
- Set the output raster to bladen_test_20ft_ch and
- Set the statistic to max.
- Set the transform layer back to dem05ft
- Check the box for use base raster resolution
- Click Run
- Set the legend to bladen_test_20ft_ch
The Z values were converted to height above ground using the 5ft DEM and then statistics were calculated for 20ft cells. Notice how you see the outlines of the ditches.
- Make sure that the bladen_test_20ft_ch is highlighted
- Click on the Query selected raster/vector button ( 4th from the left in the display window)
- Place the crosshairs on one of the ditches
- Left Click
A window will pop up giving the location coordinates, the layer being queried, the color of the feature, and the value of the feature. In this case, the canopy height of the feature. The Z conversion to height above ground is not perfect and may depend on the accuracy of the DEM and the steepness of the slope represented by the raster.
Remember that a slope is a smooth surface that is being interpolated to a grid format.
Choosing a cell size can be important. At a 20ft resolution, you will be getting parts of larger trees and 60ft may be more appropriate to capture a more completepicture of the landscape vegetaion. Converting to height above ground allows for the use of cells of arbitrary size. Your analysis can match up with the cell size and footprint to exactly match the cell alignment of existing data.
There are several other statistical measures that are available in r.in lidar: n, mean, range, sum, standard deviation, variance, coefficeint of variance, median,percentile, skewness, trimmean. Mean height, variance and skewness are metrics used in vegetation analysis.
At the 20ft resolution, repeat r.in.lidar for variance and mean methods. What differences do you see in the resulting rasters?
Repeat r.in.lidar at 20ft resolution using n as the statistic to create a point count layer.
- Go to the Selection tab and
- Set the z range to 3,10
- Set the output raster to bladen_20ft_shrub_count
- Click Run
- Go to the Selection tab
- Set the zrange to 10,20
- Set the output raster to bladen_20ft_midstory_count
- Click Run
As stated above, using the raw point count is not suitable for vegetation analysis in areas where there are overlaps in collection. However, if horizontal sections of the point counts per cell are divided by the total point count per cell you can compare the percentage of the points that occur in horizontal sections. In this case, we will be using raster algebra to divide the shrub and midstory point counts by the total point counts using r.mapcalc, https://grass.osgeo.org/grass71/manuals/r.mapcalc.html .
- Go to Raster-->Raster map calculator (r.mapcalc)
This will open the r.mapcalc menu:
- Enter bladen_per_shrub in the Name for new raster map to create
- Use the dropdown in the Insert existing raster map section to select bladen_20ft_shrub_count
- Click on the / button for division
- Use the dropdown to select bladen_20ft_count
Now things get interesting. The point count rasters are integers. Mathmatical operations between integers results in an integer. Dividing an integer by a larger integer number results in a number less than one. In an integer grid, this truncates to 0.
To get around this, you convert each integer grid before the operation to a floating point grid, so bladen_20ft_shrub becomes float(bladen_20ft_shrub) and bladen_20ft_count becomes float(bladen_20ft_count) and you divide one floating point grid by another floating point grid and you get a floating point grid.
Multiply this floating point grid by 100 to put the values back in the range of 100 to 0. Finally, convert results of the entire operation back to an integer grid by enclosing it with int() . The final command in the Expression box is:
The resulting raster should look like this:
Repeat the exercise with the midstory layer and compare the two layers. Do you see differences between the shrub and midstory percentage of points layers?
We will continue the vegetation analysis, but first we need to take a short side trip into terrain analysis that will relate back to our vegetation analysis.. Terrain analysis will be done using geomrphons.
Step 5: Terrain analysis with geomorphons
What are geomorphons? Geomorphon is a new technique for classifying terrain based on a line of sight analysis, see http://geomorphometry.org/system/files/StepinskiJasiewicz2011geomorphometry.pdf , and http://www.sciencedirect.com/science/article/pii/S0169555X12005028
The technique uses a line of sight metric for terrain form calculation. There are options for a simple 10 class representation, a 498 class numeric coding, or positive and negative encoding per cell on line of sight.
For this activity, we will use the simple 10 class calculation. Outputs will be cells with the following classes: Flat, peak, ridge, shoulder, spur, slope hollow, footslope, valley, and pit.
To do our terrain classification, we will need to load the r.geomorphon addon to GRASS.
GRASS has an online repository of Addons much like QGIS has for plugins. Most addons do not require administrative access to install.
- In the Layer Manager window, click on Settings-->Addons extentions-->Install extention from addons
This will open the Fetch and install extension window. GRASS commands are named by their function: r.* commands are raster commands, v.* commands are vector commands, i.* commands are image analysis commands.
- Click on the + next to raster to expand the view on all raster commands
- Select r.geomorphon
- Click install
In the Layer Manager window you can follow the progress of the installation.
In this case, downloading and installing the addon took 4 seconds on a 2010 vintage Windows 7 laptop.
Step 6: Running r.geomorphon
The r.geomorphon command documentation is at http://grass.osgeo.org/grass70/manuals/addons/r.geomorphon.html and the publications for the technique can be found at the end of the command description.
To start r.geomorphon,
In the GRASS Command window, type r.geomorphon and press Enter.
Entering the command without arguments brings up the r.geomorphon menu. You will notice that there are tabs across the top. The first tab is the Required Tab, with required data inputs to run the command.
- From the dropdown for Input DEM, dem05ft@PERMANENT ( remember, the current resolution for the region is 20ft. GRASS will take the center value of the 5ft DEM in each 20ft cell and use that for the 20ft cell value, your output raster will be 20ft resolution)
- In the Outer search radius, enter 30 ( number of cells around each cell to analyze) This is a very flat area, so the number may need to be higher to extract some features.
You will note that as the command arguments are entered, they are echoed across the bottom.
- Click on the patterns tab.
- Type common_20ft_30cell in the box under Most common geomorphic forms.
- Click Run
The tab will immediately switch to the Command Output tab, the command options will be echoed , and a progress bar will show the progress of the command. You will need to manually add the result to the Display.
- At the top of the Layer Manager window, Click Add raster map layer button
- In the d.rast menu that pops up, select common_20ft_30cell
- Click OK
Your results should look like this ( once you select the legend to show the current raster):
A check of the Windows Task Manager shows that the r.geomorphon command is using less than 100 MB of RAM to process the area. This process will take 7.5 minutes on a 2010 vintage i7 laptop.
Larger areas and larger cell radius extents will require more memory. This process scales fairly well. It has been used on the Statewide 20ft elevation grid for North Carolina ( 6.6 billion cells) with a radius of 30 cells, but it required more than 4GB of RAM and took overnight to run on a Linux workstation. GRASS 7.2 on Windows is 64 bit and will address more than 4 GB of RAM on that platform.
You can see a lot of different patterns, but what do they mean? Click on the Query raster / vector maps tool and you can click individual cells to extract the value.
For example, a blue pixel represents integer value 9 or valley.
Alternatively, you can
- Click on the Add map elements Button
- Select Show/Hide legend
- Click on the Gradient tab
- Check the boxes for draw smooth Gradient and ad histogram
- Put 10 in Number of text labels
- Click Apply
You should then see the following legend with the integer values, classes and histogram by class.
Pretty handy way of describing the landscape. What does this have to do with vegetation?
Step 7: Extracting canopy features using geomorphons
- Add the bladen_test_5ft_ch ( add raster) .
- Set the region to match bladen_test_5ft_ch(SettingsRegionSet regionSet region to match raster map)
- Run a 3 cell common geomorphon analysis on the 5ft canopy height
We want to look at the top of the canopy to pick out treetops and canopy openings. The treetops should be summits and the canopy openings should be depressions. We don't care about any other class, so let's create a new layer with just those two classes.
- Go to Raster-->Change category values and classes-->Reclassify (r.reclass)
- Select common_5ft_ch_3cell for the Name of raster to be reclassified.
- Set the output raster to treetops_openings_5ft
- Go down to the enter values directly box and type in:
1 = Null 2 = 1 Treetops 3 thru 9 = NULL 10 = 2 Openings
- Turn off all other layers
- Set your legend to treetops_openings_5ft
Your display should look like this ( zoomed into the carolina bay)
First, a note about r.reclass. It does not create a new layer, it just creates a virtual layer with a filter pointing to the orginal raster. This makes it very fast and saves on hard drive space. GRASS will treat it like a real layer.
Second, notice the line of "canopy openings" where the transmission right of way going across the pocosin vegetation and the line in the upper left and the tree tops in the field beyond the ditch. We need to filter out by canopy height.
The best way to do that is to create a canopy height-based mask. In GRASS, the r.mask command, https://grass.osgeo.org/grass71/manuals/r.mask.html, is used. One issue is that our canopy height is a floating point raster and r.mask needs an integer raster. To fix this, we go back to r.mapcalc:
- Start r.mapcalc
- Select bladen_test_5ft_ch from the insert existing raster map layer dropdown
- Click on the / button and type 20
- Type int( at the front of the equation and ) at the end
Your mapcalc window will look like this:
With int(bladen_test_5ft_ch@PERMANENT /20) as the equation in the Expression box Your mask raster should look like this:
All we care about for tree tops are the areas in class 1 or higher, so start r.mask.
- Select Raster-->Mask{r.mask]
- In the Raster tab , Select bladen_5ft_treemask_20ft
- In the box for Raster values to use for mask type: 1 thru 8
- Click Run
The same area now looks like this:
- Turn off the mask layer
You should now see the treetops and canopy openings. Of the two classes here, the treetops are probably valid, but the canopy openings that show up with this mask are 20ft or more above the ground and are probably just low spots in the canopy rather than true canopy openings.
The raster mask will remain in place and affect all raster layers and raster operations until it is removed. To remove a raster mask:
- Click on the Remove tab
- Check the box for Remove existing mask
- Click Run
Step 8: Exporting to GeoTiff
While GRASS is a rich environment for analysis, the GRASS native datasets are not easily accessible by other applications. Exporting to a common file format such as geotiff would make the data more generally available.
To export the a raster layer from GRASS :
- From the Layer Manager window select File-->Export Raster map-->Common export formats
This will open the r.out.gdal menu, which uses the gdal library give you the option to write to many different raster formats.
- Select bladen_per_shrub from the Name of raster map drop down
- In the Name for output raster file option, Browse to the directory ( c:\grasslidar) and enter the name of the output file as bladen_per_shrub_20ft..tif
- Keep the Raster data format as GTiff
- Click on the Creation tab
- Set the data type to byte ( 0-255 integer range)
- In the Creation options window, type COMPRESS=DEFLATE,PREDICTOR=2
The compression options in the creation options will cause the output geotiff to be losslessly compressed using the deflate method. Predictor= 2 makes the compression more efficient. The export process finishes in about 2 seconds.
Wikitext Preview Changes Bold Italic Link Embedded file Reference Advanced Special characters Help


text:
Hi everyone,
For the fifth year in a row, Le Micro Festival will take place in the mid-rural, mid-urban surroundings of Espace 251 Nord, within the area of Saint-Léonard (Liège), next August 1st and 2nd.
Five years of existence need to be celebrated! On the agenda, twelve different bands will make you travel through experimental disco, psychedelic pop, tribal indie or even electronic country! And for the first time, the festival site will become a dance floor to wrap up this anniversary with a wild DJ set coming straight from the 60s!
You will of course enjoy DJ sets between each concert, drink at reasonable prices, try local and home-made food, as well as take part in a record fair and various activities on Sunday, August 3rd.
Please don't hesitate to take precautions and get your presale ticket: the first four editions were quickly sold out!


text:
Plant a seed, get a tree
It's easy and fun to plant a seed and grow a tree. It takes time, though.
Planting seeds is a satisfying way to grow trees and shrubs, and gives you a special affection for the plants.
Don't be put off by how long it takes: Unless you are interested in flowering or fruiting, you can expect plenty of shoot growth from most young trees and shrubs. And even if years are required, shouldn't some aspects of gardening be a long-term proposition?
Variety is the spice of...
Seed-grown plants, unlike cuttings and grafts, are not genetic replicas of their parents, so each new plant is a genetic individual, just as each child in a human family is.
With some species, such as green ash, each seedling may be noticeably different from the others in form or leaf color. At the other extreme is Amur honeysuckle, all seedlings of which appear almost identical to each other, superficially at least, and to their parents.
You can buy tree and shrub seeds mail-order or collect them yourself. In the case of a tree or shrub with a wide natural range, increase the likelihood that the seedlings will be adapted to your backyard by choosing seeds from plants growing under similar weather and soil conditions as those in your yard.
Overcoming inhibitions
Obtaining seed is just the first step in growing a tree or shrub. Most seeds need pretreatment before they will sprout and grow.
Seeds that ripen in autumn generally just sit after planting until they experience enough cold that they feel winter is over. If they grew immediately, the tender young seedlings would be killed by the first frosty night.
You can fool such seeds into sprouting by giving them an artificial winter. Pack them into plastic bags along with slightly moist potting soil, then put the bags in a refrigerator for a couple of months. Of course, you also could give the seeds a real winter, sowing them directly in the ground outside, but that exposes them to squirrels, birds, flooding and other natural hazards.
Another common roadblock to germination is a hard seedcoat that's impervious to water. Make such seeds permeable to water by nicking them with a file, or soften them by packing them into plastic bags with potting soil for two or three months at room temperature.
Some seeds — honeylocust, locust and Kentucky coffeetree, for example — sprout right after this treatment. Others, such as redbud, juniper and hophornbeam, need the cool, moist treatment after their seedcoats are made permeable.
And then there are those tree and shrub seeds that sprout without any pretreatment at all. Catalpa and sycamore ripen in autumn, but sprout almost as soon as they touch ground — which may not happen under natural conditions until spring. Seeds that ripen in the spring, such as silver maple and red maple, also need no treatments.
Plant with forethought
Once seeds are ready for planting, perhaps already sprouting, they are ready to plant outside. If outdoor weather is still too cold, hold back growth by keeping the seeds refrigerated, or pot them up in containers in potting soil.
Keep growing plants in containers in a cool room exposed to as much light as possible. When it comes time to move a potted tree or shrub outdoors, acclimate the plant gradually, with increasing exposure to sun, wind and cold, just as you would with tomato seedlings.
Before planting a seedling tree or shrub in its permanent location, try to picture the plant 30 years hence. That special affection you can develop for a woody plant raised from seed makes it especially hard to cut down, even if it is in the wrong place.
"Tall oaks from little acorns grow." Likewise for maples, sycamores, junipers, and others.
Editor's note: For more on gardening, see the Monitor's main gardening page, which offers articles on many gardening topics. Also, check out our blog archive and our RSS feed. You may want to visit Gardening With the Monitor on Flickr. Take part in the discussions and get answers to your gardening questions. If you join the group (it's free), you can upload your garden photos and enter our contests.