Driving a centre console alloy boat on a cold choppy Whangarei harbour is not what I would normally classify as fun! How wrong can you be! At the end of an hour's boat test, which was a heap of fun, I was very reluctant to return this well designed Marco 570 Hunter to its trailer.
Marco Boats based in Morrinsville have been building boats for two decades. The business is owned by Bryan and Helen Horne who have only had the reins of the company for a little over a year. The day-to-day management is run by their son Dayne Horne and Bob Jarvie.
They plan to double the current production of 100 units spread over the 10 Marco models during the next 18 months. This expansion will ensure that the Marco brand will increase its share of the New Zealand recreational boating market.
Because of the hull's design, the 570 has been successfully in production for 10 years, which is a strong statement as to the quality of the design.
The hull's 4mm marine grade aluminium plating is stiffened by six 4mm L-shaped stringers, which run the full length of the hull. These stringers are locked together by 4mm ties welded at 500mm intervals. An underfloor sealed 4mm bulkhead is welded in just forward of the centre console. The fully welded 3mm treadplate floor completes the hull's strength capabilities to handle the stress and strains of pounding into a heavy sea. Also built into the hull's construction are two completely sealed underfloor buoyancy chambers. A great safety feature!
Layout of the 570 Hunter is excellent.
Everywhere I looked there was a hatch of some sort providing plenty of dry gear storage for such items as clothing and protecting vital electronic equipment. At the transom there is a full width lift up treadplate door concealing the batteries, isolating switch and the motor's oil supply/filter. There is plenty of room in this dry compartment to add an extra battery for parallel connection or for stowing fishing gear etc.
The centre fibreglass console helm is well positioned and provides ample protection for two people. The 1.9m high screen providing plenty of protection for the equipment mounted on the console's dashboard such as radio, depth sounder, GPS and the outboard's instrumentation. Navigation lights and bilge pump are standard items which are operated from a four-way switch panel set into the dashboard.
There is a small anchor hatch in the bow although there is not enough room for stowing all the warp and anchor.
The 570 Hunter's performance took me by surprise. The hull is fast, stable and remarkably dry for a centre console design. Test conditions were a half metre plus chop kicked up by a 15-20 knot sou' wester, so the chances of getting very wet were real! Apart from a little spray from time to time, generally the hull pushed the bow waves well clear from the hull. The hull's relatively shallow 15 degree deadrise delivers a very soft ride when you consider the compromises that have to be made when considering a boat's stability when at anchor and when moving through a seaway and the crew's safety and comfort when punching through a heavy sea. It didn't matter at what speed or angle we approached the sea, the handling was totally predictable and stable in all turning situations.
I think this particular rig was very well balanced with the Mercury 90 HP Saltwater Series outboard hanging off the back. With a hull weight of around 360 kg, performance was always going to be lively! At 4000 revs, we cruised at a very comfortable 30 mph. A quick squirt on the throttle and we were hitting 45 mph! At 5300 revs I backed off as sea conditions were coming into play. Maximum revs for the motor is 5600 so this boat is very capable of over 50 mph. At the end of an hour of 'the boys at play' we still had change out of 20 litres of petrol so economy of this rig is exceptional.
This is where the walk-around centre console design really excels as it caters for both diving and fishing very well.
For the diver, storage is always an issue, there is heaps of it aboard this baby! The console's fibreglass seat holds two full dive bags while two dive cylinders strap onto the front of the console. A further two cylinders can be stowed underfloor. Note this ceases to be an option if an underfloor fuel tank is installed. For divers to gear up there are two completely separate areas to don their equipment without falling over one another. An excellent feature is the wide gunwales, which makes for an extensive seating area, very handy for the diver who has completed gearing up. Once again we noted how stable the boat is even when two people are sitting on the same gunwale. The transom step comes standard while the diver's boarding ladder is an optional addition.
For the fishermen, to be able to walk right around the boat while playing that fighting fish is a luxury. The test boat had four flush mounted rod holders down each gunwale and I must admit to being impressed with the two bait boards forward and aft. The underfloor hold could also be converted into a fish hold or live bait tank if desired.
Was a breeze, in fact it wasn't until our two-litre station wagon encountered a hill that one realised the boat was there at all! I particularly liked the multi-roller trailer, which incorporates keel rollers.
This would be a very easy boat to retrieve by driving it up on to the trailer, but with 20 knots of crosswind I wasn't game, the paintwork was too new! Beach launching and retrieval would be a relatively simple task.
Marco's factory foreman Bob Jarvie has done a great job in designing the 570 Hunter. For the keen diver/fisherman this is a great rig that could be towed long distances with ease. One of the only drawbacks with this particular set up would be the lack of protection from the sun. However, for a small sum of money a marine upholsterer would be able to design a bimini top if required.
Although this is the first of the 570 Hunters off the line, I am sure that with a price tag of around $32,000 Dayne and his team will be busy. The test boat was loaned by Anchorage Marine in Whangarei and is exceptional value at just under $30,000.
Although the 570 Hunter is very aptly named, the versatility of this rig is huge. It would be quite at home as a family boat towing skiers, wake-boarders or just playing around in the lakes.


This company specialises in seed of South Australia and, in particular, that of the Murray Mallee, Lakes and Plains districts. Seed from all regions of South Australia and selected species from interstate are also available. Phone or Fax (085)344124.
This company supplies seed from a wide range of Australian trees, shrubs, ground-cover plants and wildflowers. Over a thousand Australian native species are represented, particularly from temperate and cooler regions and arid zones. Phone (047)586132; Fax (047)587022.
Bushland Flora was established in 1973 and currently lists 750 species in its catalogue including species suitable for cut flowers and dried arrangements. Retail packs suited to the home gardener are available as well as larger trade packs.Phone (09)5611636.
Ellison Horticultural is an established supplier of tree, shrub and palm seed and seedlings. The company specialises in provenance collections of a large range of Australian native seeds with over 2000 listed in its catalogue and has recently released a book "Cultivated Plants of the World" which includes more than 4000 colour pictures. Phone (044)214255; Fax (044)230859.
Goozeff Seeds is a wholesale seed company supplying a wide range of Australian native and exotic tree, shrub, grass and palm seeds. Phone or Fax (044)210731.
This company specialises in seeds of plants from central Australia. Phone or Fax (08)89528583.
Nindethana Seed Service is one of the largest suppliers of Australian native plant seeds with over 3000 species available. The company caters for both the small amateur grower by supplying small packets (@ 90 cents each) and the commercial grower with bulk supplies of most species. Phone (098)443533; Fax (098)443573.
Vaughans specialise in seed of Western Australian native plants but also include a good range of species from other parts of Australia. Phone (09)5757551; Fax (09)5757595.


text:
7-story building collapses in Brazil; 1 dead, others trapped
By Mauricio Savarese | The Associated Press 10/15/19, 20:08
Firefighters search for people who are trapped after a building collapsed in Fortaleza, Ceara state, Brazil, Tuesday, Oct. 15, 2019. A seven-story building collapsed Tuesday in the northeastern city of Fortaleza, killing at least one person. City authorities informed several others are under the debris, and some of them are communicating with relatives and rescue teams by telephone. (LC Moreira/Futura Press via AP)
A seven-story building collapsed Tuesday in an upscale part of the Brazilian city of Fortaleza, killing one person and leaving others trapped with some communicating with family members by cellphone from under debris, officials said.
Fire department commander Cleyton Bezerra said 10 people were missing, though it was unclear if they were under the rubble or just unreachable by relatives and friends. Ten survivors have been found along with an unidentified body.
"It is a difficult situation; there are parts (of the building) that can still collapse," said Bezerra, who led the rescue operation.
Firefighters rescue a woman from a building that collapsed in Fortaleza, Ceara state, Brazil, Tuesday, Oct. 15, 2019. A seven-story building collapsed Tuesday in the northeastern city of Fortaleza, killing at least one person. City authorities informed several others are under the debris, and some of them are communicating with relatives and rescue teams by telephone. (Kleber Goncalves/Futura Press via AP)
Authorities in the city of 2.6 million inhabitants in Brazil's northeast said two trapped people were communicating with relatives and rescuers by phone. Rescuers urged people at the site to be silent to allow them to hear noises in the rubble.
"For now we are trying to hear sounds that indicate where people are. There are several layers of debris," said fire department spokesman Romario Fernandes. He said the rescue operation is expected to last days.
Witnesses said they saw people in the building shortly before it collapsed.
Daiane Moreira was working next to the building when it collapsed.
"I just heard a boom and the building came down at once. A man came out drenched in blood and with a broken arm; he was the only one we could help," Moreira told journalists at the scene, as relatives and friends of building residents wept and waited for information.
Francineudo Rodrigues criticized the maintenance of the building where his father Francisco has worked as a doorman for eight years.
"I've seen cracks in columns; I've seen many problems that were not solved since I started coming here," Rodrigues told journalists.
Rodrigues, who also does jobs at the building, said his father is alive at a local hospital.
"Nothing ever changed in this building. It is the same as what I saw when my father started working here," he said.
Fortaleza Mayor Roberto Claudio said it was not immediately clear what caused the building to collapse. He promised a "rigorous investigation."
Andre Montenegro, the head of construction industry chamber in the state of Ceara, believes Tuesday's collapse happened "in a 30-year-old building that was clearly having problems with its maintenance, with its foundations."
Montenegro also said the crisis in Brazil's economy is preventing many owners of old buildings from investing in their renovation.
"A lot of investments in maintenance are being postponed for a later date, and sometimes that later date comes too late," he said.
The building is located in central Fortaleza about 2 miles (3 kilometers) south of the Iracema beach, one of the city's top tourist spots.
Tuesday's incident adds to a recent list of buildings collapsing in Brazil.
Another building partially gave way in Fortaleza in June. No one was injured, but the incident forced 16 families to move out.
In April a two four-story buildings collapsed in Rio de Janeiro, killing 24 people. The accident took place in a hillside area that was hard hit by rains and flash floods.
Tags:Brazil Rio de Janeiro Building collapses Categories: South America World
How Spiritual Faith and Mercy Prevail Over Communism and Violence
Record approval: Trump has 95% support among Republicans
Art 10/15/19, 16:30
Dante's Divine Comedy
South America 12/11/19, 11:06
Brazil's President Jair Bolsonaro calls Greta Thunberg a 'brat'
Trump announces tariffs on steel and aluminum from Argentina and Brazil
Brazil's ex-president could be freed after top court ruling
Business 10/02/19, 08:36
US blocks goods from companies suspected of forced labor
White House hears Brazilian delegation on US aid to fight Amazon fires
World 08/27/19, 18:41
Reports: Brazil may say no to $20 million aid pledged by G-7 to fight Amazon wildfires
Can the President of the U.S. successfully defeat communism?—Lenczowski-Part5
After the collapse of socialism - The aftermath of the Soviet Union — Waldron-Part5
Argentinians arrested at G-20 based on China's lies
U.S. News 07/23/19, 19:02
Zenon Dolnyckyj defending his right to freedom of belief in China
The World celebrates Falun Dafa Day!
Our Founding Fathers Created a Constitutional Republic, It is Essential to Keep It to Make America Great Again

redpajama_set_name: RedPajamaCommonCrawl


Shows Friday, Saturday and Sunday at 7:30pm, with a 2:00pm matinee on Saturday.
Riverside Community Centre, 148 Old Hedley Road, Princeton, BC.
Tickets $18, or $15 dollars for students. Available for purchase by phone at 250 293 6152 or at the Princeton Shoppers Drug Mart.
An upbeat musical comedy about the daily trials and triumphs of love, dating and marriage. It's "Men are from Mars, Women are From Venus" set to music, and celebrates the familiar moments of our lives with a sense of whimsy and tongue-in-cheek fun.
Shows Friday, Saturday and Sunday at 7:30 pm with a 2:00pm matinee on Saturday.
Free-spirited Connie and straight-laced Paul move into a leaky, hole-in-the-wall apartment... and their newlywed bliss quickly begins to crumble. Neil Simon's heartwarming comedy about finding love in unexpected places and learning to take a chance has been adored by audiences around the world for over fifty years.
Shows run Friday, Saturday and Sunday at 7:30pm, with a 2:00pm matinee on Saturday.
Broadway's longest-running comedy mixes spy-novel thrills with high-stakes hilarity and old-fashioned romance. This fast-paced whodunnit follows the dashing Richard Hannay, who is unexpectedly drawn into a world of intrigue and danger on the eve of World War II.


text:
My try to recreate Atari's Asteroids.
Done for trigonometry practice.

redpajama_set_name: RedPajamaGithub


text:
Editorial | Island Voices
Easing regulations and expanding online services help Hawaii businesses
The global financial crisis of the last two years has been hard on all of us — individuals, families, and businesses. Economic stagnation has made it harder than ever for the backbone of Hawaii's economy — small businesses — to turn a profit in a state where the high cost of living and onerous tax policies have always challenged the creativity and entrepreneurial spirit of our business owners.
The best way that government can help foster a healthy business climate — so as to create jobs and strengthen the economy — is to ease regulations and reduce the cost of fees and taxes. While more can be done, especially with regard to taxes, there has been much progress over the course of the Lingle-Aiona administration.
The Department of Commerce and Consumer Affairs (DCCA) has made it more convenient, affordable and easier to do business in Hawaii by initiating or improving operations in a number of key areas. Our Business Registration Division has greatly expanded online services, including implementation in 2004 of Hawaii Business Express, a one-stop, Web-based business information service. This resource saves new businesses, especially those on the neighbor islands, time, effort and money by enabling them to register with the appropriate government agencies (DCCA, Department of Taxation, Department of Labor and the IRS) in one online transaction, without having to stand in line or mail in paperwork.
Since HBE started up, more than 70,000 people have made use of its services, forming more than 19,000 new companies in Hawaii. In 2009, we initiated "Go Green" business registration filing protocols, eliminating the distribution of paper annual filings, saving $24,000 in postage and 560 pounds of paper per year.
Our Professional and Vocational Licensing Division has also significantly improved our online customer services. Online license renewals continue to grow every year. This year, for example, of the 9,512 contractors who renewed by the Sept. 30 deadline, 75 percent renewed online. This compares to a 59 percent online renewal rate at the last biennial renewal in 2008 and a 25 percent online renewal rate in 2006.
In April, over 97 percent of all architects, land surveyors and professional engineers renewed online while 94 percent of electrologists, mortgage brokers and solicitors, occupational therapists, physical therapists and real estate brokers and salespersons renewed online in 2008.
We've cut fees, too. DCCA has reduced fees and assessments affecting businesses by approximately $50 million since Jan. 1, 2003. Among the fees reduced (some permanently, some temporarily), we've waived exam fees and related expenses for financial institutions and escrow depositories; cut online professional licensing renewal fees by 10-25 percent; slashed fees for certificates of good standing by 80 percent; and applied a 25-50 percent fee reduction for online payment for document registration/annual filings, and trademark, trade name and service mark registration.
Our Insurance Division has helped businesses by proposing successful new laws that allow association health plans (2005) and require insurance for sole proprietors (2008). And the division has increased the availability and helped hold down the cost of insurance, benefiting businesses and their customers by approving a cumulative 51.2 percent rate reduction from 2004 to 2010 in loss costs for workers' compensation rates, thanks to fewer claims being made as a result of safer workplaces. This was one of the biggest drops of any state in the nation.
None of this would have been possible without the leadership of Gov. Lingle and the dedicated men and women of DCCA who exemplify the spirit of public service.
Ron Boyer is the state's director of commerce and consumer affairs.
Leave Akaka Bill to Hawaii voters, not to the politicians in D.C.
More Island Voices
Column: Restrictions hurt Hawaii's stake in cryptocurrency market
Column: Pay it forward by becoming a mentor
Column: Bring telehealth to veterans in Hawaii
Column: 14th Amendment guards against tampering with the popular vote
Column: Don't let tunnel vision eliminate astronomy on Maunakea


text:
Roje pri Trebelnem () is a settlement in the hills south of Trebelno in the Municipality of Mokronog-Trebelno in southeastern Slovenia. It lies in the valley of Radulja Creek and its territory extends south to include most of the northern slopes of Radulja Hill. The area is part of the historical region of Lower Carniola. The municipality is now included in the Southeast Slovenia Statistical Region.

Name
The name of the settlement was changed from Roje to Roje pri Trebelnem in 1953.

References

External links
Roje pri Trebelnem on Geopedia

Populated places in the Municipality of Mokronog-Trebelno

redpajama_set_name: RedPajamaWikipedia


Our client is looking for a CRM Application Analyst with strong business analyst skills. This is an entry level job for someone looking to get their feet wet in the IT industry. This position will identify business needs, document current business processes and implement changes, and support the Microsoft Dynamics CRM and ERP systems. The position is also responsible for leading business analysis and requirements gathering during implementations. Because this is a customer facing role, we are looking for individuals with excellent customer management skills and strong communication skills.


B2B (small business) / B2C (DIY) electric supplies webshop with many optimizations: "bought together with" in shopping cart. Smart, per state/status, coloured order overview. Smart search. All optimizations were based on smart indexes.


Home / Celebrity / Celebs Pictures / Durban July / Nadia Nakai / In Pics: Nadia Nakai's dazzling dress she wore at #VDJ2018.
In Pics: Nadia Nakai's dazzling dress she wore at #VDJ2018.
The Queen of hip-jump ensured she looked shocking again in a @anitaferreiradesigns dress and in fact, she was on point. The artist was one of the latecomers to the gathering, yet what they say is valid. The individuals who come late, as a rule, are the ones will's identity dressed to execute.


Many birds, especially injured birds can be very difficult to handle. You can injure yourself and cause further damage to an injured bird by mishandling them. Because time might be critical do not post questions here that require an immediate response.


text:
The One Kidney Club
Created on Sunday, 19 June 2005 10:00
ROCHESTER HILLS, Mich. - Karen Bryce had endured kidney transplant surgery once, and frankly, that was enough for her.
Her body ached as if she'd been mowed down by a truck, but pain was a small price to pay for saving her daddy's life. Though he survived only a short time, Bryce never regretted being a donor — not even when she became seriously ill several years later and was stunned to learn why:
Her remaining kidney was failing. Now SHE needed to be rescued.
Her sister stepped up, but Bryce said: No way. By then, she'd learned her kidney disease was hereditary. She wasn't about to let a family member end up like her.
Bryce decided she'd get by on dialysis. But the three-times-a-week treatment left her too tired to work. Her skin turned gray, her weight dropped precipitously and her two teenage daughters (she's a single mother) feared she'd die.
That's when she agreed to a transplant.
Her kidney came courtesy of a man named Jim. He was in his late 50s — that was all she knew at first. It was hard to grasp that someone she'd never met was making this huge sacrifice.
"I did it for someone I loved and had no reservation," she says, "but to do it for a total stranger was beyond my comprehension. I just felt this person had to be an angel."
Her angel turned out to be more.
Jim Falsey, she discovered, was a Roman Catholic priest, a skydiver and pilot who had navigated the wilds of Alaska, a spitfire — just like her daddy.
He also happened to be part of an extraordinarily generous family: They jokingly call themselves "the one kidney club."
Five members have donated kidneys. And a sixth now waits in the wings.
There's Tom Falsey, the unofficial president, a soft-spoken, silver-haired Kansas engineer who initially wanted to help a desperately ill nephew. When that didn't work out, he decided to find someone else who could use a healthy kidney.
A stranger was just fine with him — in this case, an affable, freckle-faced Omaha teen who had survived cancer as a child.
There's Joyce Falsey, Tom's wife, who decided she, too, had something she could live without. She also donated to a stranger — a basketball-playing woman diagnosed with lupus who was buoyed by the prayers of her entire church congregation.
Then there's Father Jim, the parachuting preacher who tends to his flock of 235 families in the tiny town of Au Gres. He gave a piece of himself to Bryce, whose sacrifice to her own dad is permanently remembered with a 17-inch scar around her midsection. (She also had a rib removed for the surgery.)
While there are thousands of living kidney donors each year, almost all give to family, friends or acquaintances. The three Falseys are among the tiny fraction — 283 of 68,577 — who have donated anonymously, according to the United Network for Organ Sharing.
"I don't know what to think of this family," Bryce says with a laugh. "I don't know if they're a gift from God or if they're out of their minds."
The Falseys are just one branch of the kidney-giving clan.
Joyce's brother, Rich Schurman, a Nebraska corn and soybean farmer, has completed screening and testing to be an anonymous donor. He delayed plans while his wife, Joan, recovered from ovarian cancer, but now, she says, "he's going to sneak it in this fall."
Schurman first tried to be a donor 15 years ago to his son, Aaron, who was diagnosed with kidney disease as a teen. But his blood type was not compatible.
Schurman says he never gave up the idea of donating, knowing there are others just like his son.
But it was Joan who started the family tradition.
She gave their son, Aaron, a kidney in 1990 in a grueling operation: Doctors sliced through her muscles, leaving her unable to lift her new grandson or ride a tractor through the bumpy fields for months.
But every day of discomfort was worth it.
"I remember laughing — it was just wonderful to see him up and so pink," she says, recalling those first moments after surgery.
'You ... can't not do anything' Aaron's kidney worked for eight years, but then the same disease started eating at his transplanted kidney.
"I didn't want to tell my mom," he says. "I figured she'd be crushed."
Not feeling sick and dreading more dialysis, he avoided the doctor.
By the time he resumed treatment two years later, his kidney was barely working. He eventually lost about 40 pounds, his face was sunken and clay-colored. He developed nerve damage in his legs from dialysis, and though he was a college student in his 20s, he shuffled like an 85-year-old man.
Still, when Aaron's older sister, Michelle Desler, offered her kidney, he was adamant.
"I'm not taking any more from this family," he insisted.
Michelle had her blood tested without telling him. She worried Aaron couldn't survive long. More than 3,800 people died waiting for a kidney last year, according to the organ network.
When his uncle, Tom Falsey, saw Aaron's decline, he volunteered. "You can't watch something like that and not do anything," he says.
Initially, Falsey turned out to be a good match. He took a leave from his job, packed his bags, then 18 hours before surgery, final tests showed the risk of rejection would be too high. The operation was off.
"I was devastated," Falsey says. But the seed had been planted.
"We knew Aaron had come close to dying," he says. "We knew there were other people out there dying, too."
Meanwhile, Michelle learned she was a match for Aaron. "Are you going to take me up on my offer?" she asked her brother. "He knew that he was running out of time," she says.
He agreed. By then, he'd been on a waiting list for nearly three years.
But Tom Falsey wasn't done. He told The Nebraska Medical Center he wanted to be an anonymous donor. It was an unusually generous offer, but the hospital didn't have that kind of program — not yet.
Falsey, now 50, called repeatedly. "I'm not getting any younger," he'd joke. "I'm going to donate this kidney if you take it or not."
His pestering paid off. The hospital started an anonymous donor program, aware the dynamics are different when strangers are involved.
"You want to make sure this is a balanced person and is not doing this out of a need for attention, so if things go well, great, but if things don't go well, they wouldn't themselves have a problem," says Dr. Lucy Wrenshall, a transplant surgeon at the center who performed two Falsey operations.
Falsey completed two psychological evaluations before he was approved.
'I feel like a new man'
As doctors began surgery, a nearby operating room held Jordan Shaw, a high school student and a born optimist, an indispensable trait for a kid stricken with cancer at age 2.
"The radiation had really fried my kidneys and my whole insides," he explains. By age 15, Jordan was on a transplant list, but he wasn't wringing his hands.
"I've always had kind of a fearless attitude — that what happens, happens," he says with a hint of pride.
After the transplant, Jordan was eager to meet his donor to "show him it wasn't a bad choice."
The two at first exchanged notes. (The hospital requires a three-month wait until either side can contact the other.)
"I feel like a new man," wrote Jordan. He referred to his new organ as "your kidney."
No, Falsey replied, it's all yours and by the way, "your kidney has been in 49 of the 50 states."
Falsey assured Jordan the transplant had gone smoothly. Unlike years earlier, most kidney transplants are now done with laparoscopic surgery, which is far less invasive and requires only small incisions. Recovery is much quicker.
The two met in late 2003 and Jordan, now 18, says he's forever grateful.
"You can't really say thank you just once," Jordan says.
A few months after Falsey's donation, his older brother, Jim, called. He was ready to be a donor.
The decision surprised Tom (a skydiver, too) but made perfect sense to Jim.
He has always charted his own path, whether it's jumping from planes for fun, piloting his Cessna 172 to visit parishioners in remote corners of Alaska, kayaking in the wilderness — or undergoing life-changing surgery.
"I preach stewardship — that everything we have is not our own but the Lord's gift," he says. "Our talents, our body should be used for the good of everybody else. Granted, it's not the normal way .... but if it works, it works. ... It served me well for 59 years. Now it's somebody else's responsibility."
That somebody would be Karen Bryce, who met the stranger who saved her life last year.
Bryce, 43, gleefully rattles off small things she can do now that were once impossible: watch her daughter's soccer games, take out-of-town trips, even eat bacon occasionally.
There are silver linings even in unlikely places.
"I gained weight on steroids," she says. "When people would say, 'How are you doing? I'd say 'fat and sassy.' I couldn't say that when I was on dialysis."
A few months after Tom's surgery, Joyce, now 60, joined the one kidney club. "Maybe it's the mom thing," she says. "You want to help."
Her kidney went to Regina McDonald, a 39-year-old factory worker who had been on dialysis six years. "I saw people who died," she says. "I saw people who gave up. Some people got tired of being sick. They didn't want to fight anymore."
Not her. "I just continued to pray," she says.
For the recipients, the transplant is a second chance at life.
But they all keep a close watch on their health, with anti-rejection medicines and checkups.
Later this month, Bryce will visit Jim Falsey; the two will be interviewed for a documentary. When they get together, she says, it's like a family reunion. They barely talk about the transplant.
But that doesn't mean she ever forgets how — or why — they met.
"I think of Jim every single day of my life," she says. "I know he's the reason I'm alive and kicking."
Home > Media > Kidneys > Other Kidney Stories > The One Kidney Club


text:
#pragma once
#ifndef __GETOPT_H__
/**
 * DISCLAIMER
 * This file is part of the mingw-w64 runtime package.
 *
 * The mingw-w64 runtime package and its code is distributed in the hope that it
 * will be useful but WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESSED OR
 * IMPLIED ARE HEREBY DISCLAIMED.  This includes but is not limited to
 * warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
/*
 * Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Sponsored in part by the Defense Advanced Research Projects
 * Agency (DARPA) and Air Force Research Laboratory, Air Force
 * Materiel Command, USAF, under agreement number F39502-99-1-0512.
 */
/*-
 * Copyright (c) 2000 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Dieter Baron and Thomas Klausner.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#pragma warning(disable : 4996)

#define __GETOPT_H__

/* All the headers include this file. */
#include <crtdefs.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <windows.h>

#ifdef __cplusplus
extern "C" {
#endif

#define REPLACE_GETOPT /* use this getopt as the system getopt(3) */

#ifndef REPLACE_GETOPT_DEFINED
#ifdef REPLACE_GETOPT
#define REPLACE_GETOPT_DEFINED
static inline int opterr = 0;   /* if error message should be printed */
static inline int optind = 0;   /* index into parent argv vector */
static inline int optopt = 0;   /* character checked for validity */
#undef optreset   /* see getopt.h */
static inline  int optreset;     /* reset getopt */
// #define optreset __mingw_optreset
static inline char* optarg = nullptr; /* argument associated with option */
#endif
#endif

//extern int optind;		/* index of first non-option in argv      */
//extern int optopt;		/* single option character, as parsed     */
//extern int opterr;		/* flag to enable built-in diagnostics... */
//				/* (user may set to zero, to suppress)    */
//
//extern char *optarg;		/* pointer to argument of current option  */

#define PRINT_ERROR ((opterr) && (*options != ':'))

#define FLAG_PERMUTE 0x01  /* permute non-options to the end of argv */
#define FLAG_ALLARGS 0x02  /* treat non-options as args to option "-1" */
#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */

/* return values */
#define BADCH (int) '?'
#define BADARG ((*options == ':') ? (int) ':' : (int) '?')
#define INORDER (int) 1

#ifndef __CYGWIN__
#define __progname __argv[0]
#else
extern char __declspec(dllimport) * __progname;
#endif

#ifdef __CYGWIN__
static char EMSG[] = "";
#else
#define EMSG ""
#endif

static int getopt_internal(int, char* const*, const char*,
                           const struct option*, int*, int);
static int parse_long_options(char* const*, const char*,
                              const struct option*, int*, int);
static int gcd(int, int);
static void permute_args(int, int, int, char* const*);

static char* place = EMSG; /* option letter processing */

/* XXX: set optreset to 1 rather than these two */
static int nonopt_start = -1; /* first non option argument (for permute) */
static int nonopt_end = -1;   /* first option after non options (for permute) */

/* Error messages */
static const char recargchar[] = "option requires an argument -- %c";
static const char recargstring[] = "option requires an argument -- %s";
static const char ambig[] = "ambiguous option -- %.*s";
static const char noarg[] = "option doesn't take an argument -- %.*s";
static const char illoptchar[] = "unknown option -- %c";
static const char illoptstring[] = "unknown option -- %s";

static void
_vwarnx(const char* fmt, va_list ap) {
    (void) fprintf(stderr, "%s: ", __progname);
    if (fmt != NULL)
        (void) vfprintf(stderr, fmt, ap);
    (void) fprintf(stderr, "\n");
}

static void
warnx(const char* fmt, ...) {
    va_list ap;
    va_start(ap, fmt);
    _vwarnx(fmt, ap);
    va_end(ap);
}

/*
 * Compute the greatest common divisor of a and b.
 */
static int
gcd(int a, int b) {
    int c;

    c = a % b;
    while (c != 0) {
        a = b;
        b = c;
        c = a % b;
    }

    return (b);
}

/*
 * Exchange the block from nonopt_start to nonopt_end with the block
 * from nonopt_end to opt_end (keeping the same order of arguments
 * in each block).
 */
static void
permute_args(int panonopt_start, int panonopt_end, int opt_end,
             char* const* nargv) {
    int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
    char* swap;

    /*
	 * compute lengths of blocks and number and size of cycles
	 */
    nnonopts = panonopt_end - panonopt_start;
    nopts = opt_end - panonopt_end;
    ncycle = gcd(nnonopts, nopts);
    cyclelen = (opt_end - panonopt_start) / ncycle;

    for (i = 0; i < ncycle; i++) {
        cstart = panonopt_end + i;
        pos = cstart;
        for (j = 0; j < cyclelen; j++) {
            if (pos >= panonopt_end)
                pos -= nnonopts;
            else
                pos += nopts;
            swap = nargv[pos];
            /* LINTED const cast */
            ((char**) nargv)[pos] = nargv[cstart];
            /* LINTED const cast */
            ((char**) nargv)[cstart] = swap;
        }
    }
}

#ifdef REPLACE_GETOPT
/*
 * getopt --
 *	Parse argc/argv argument vector.
 *
 * [eventually this will replace the BSD getopt]
 */
static inline int getopt(int argc, char* const argv[], const char* optstring) {
    if ((optind >= argc) || (argv[optind][0] != '-') || (argv[optind][0] == 0)) {
        return -1;
    }

    int opt = argv[optind][1];
    const char* p = strchr(optstring, opt);

    if (p == NULL) {
        return '?';
    }
    if (p[1] == ':') {
        optind++;
        if (optind >= argc) {
            return '?';
        }
        optarg = argv[optind];
        optind++;
    }
    return opt;
}
#endif /* REPLACE_GETOPT */

//extern int getopt(int nargc, char * const *nargv, const char *options);

#ifdef _BSD_SOURCE
/*
 * BSD adds the non-standard `optreset' feature, for reinitialisation
 * of `getopt' parsing.  We support this feature, for applications which
 * proclaim their BSD heritage, before including this header; however,
 * to maintain portability, developers are advised to avoid it.
 */
#define optreset __mingw_optreset
extern int optreset;
#endif
#ifdef __cplusplus
}
#endif
/*
 * POSIX requires the `getopt' API to be specified in `unistd.h';
 * thus, `unistd.h' includes this header.  However, we do not want
 * to expose the `getopt_long' or `getopt_long_only' APIs, when
 * included in this manner.  Thus, close the standard __GETOPT_H__
 * declarations block, and open an additional __GETOPT_LONG_H__
 * specific block, only when *not* __UNISTD_H_SOURCED__, in which
 * to declare the extended API.
 */
#endif /* !defined(__GETOPT_H__) */

#if !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__)
#define __GETOPT_LONG_H__

#ifdef __cplusplus
extern "C" {
#endif

struct option /* specification for a long form option...	*/
{
    const char* name; /* option name, without leading hyphens */
    int has_arg;      /* does it take an argument?		*/
    int* flag;        /* where to save its status, or NULL	*/
    int val;          /* its associated status value		*/
};

enum /* permitted values for its `has_arg' field...	*/
{
    no_argument = 0,   /* option never takes an argument	*/
    required_argument, /* option always requires an argument	*/
    optional_argument  /* option may take an argument		*/
};

/*
 * parse_long_options --
 *	Parse long options in argc/argv argument vector.
 * Returns -1 if short_too is set and the option does not match long_options.
 */
static int
parse_long_options(char* const* nargv, const char* options,
                   const struct option* long_options, int* idx, int short_too) {
    char *current_argv, *has_equal;
    size_t current_argv_len;
    int i, ambiguous, match;

#define IDENTICAL_INTERPRETATION(_x, _y)                         \
    (long_options[(_x)].has_arg == long_options[(_y)].has_arg && \
     long_options[(_x)].flag == long_options[(_y)].flag &&       \
     long_options[(_x)].val == long_options[(_y)].val)

    current_argv = place;
    match = -1;
    ambiguous = 0;

    optind++;

    if ((has_equal = strchr(current_argv, '=')) != NULL) {
        /* argument found (--option=arg) */
        current_argv_len = has_equal - current_argv;
        has_equal++;
    } else
        current_argv_len = strlen(current_argv);

    for (i = 0; long_options[i].name; i++) {
        /* find matching long option */
        if (strncmp(current_argv, long_options[i].name,
                    current_argv_len))
            continue;

        if (strlen(long_options[i].name) == current_argv_len) {
            /* exact match */
            match = i;
            ambiguous = 0;
            break;
        }
        /*
		 * If this is a known short option, don't allow
		 * a partial match of a single character.
		 */
        if (short_too && current_argv_len == 1)
            continue;

        if (match == -1) /* partial match */
            match = i;
        else if (!IDENTICAL_INTERPRETATION(i, match))
            ambiguous = 1;
    }
    if (ambiguous) {
        /* ambiguous abbreviation */
        if (PRINT_ERROR)
            warnx(ambig, (int) current_argv_len,
                  current_argv);
        optopt = 0;
        return (BADCH);
    }
    if (match != -1) { /* option found */
        if (long_options[match].has_arg == no_argument && has_equal) {
            if (PRINT_ERROR)
                warnx(noarg, (int) current_argv_len,
                      current_argv);
            /*
			 * XXX: GNU sets optopt to val regardless of flag
			 */
            if (long_options[match].flag == NULL)
                optopt = long_options[match].val;
            else
                optopt = 0;
            return (BADARG);
        }
        if (long_options[match].has_arg == required_argument ||
            long_options[match].has_arg == optional_argument) {
            if (has_equal)
                optarg = has_equal;
            else if (long_options[match].has_arg ==
                     required_argument) {
                /*
				 * optional argument doesn't use next nargv
				 */
                optarg = nargv[optind++];
            }
        }
        if ((long_options[match].has_arg == required_argument) && (optarg == NULL)) {
            /*
			 * Missing argument; leading ':' indicates no error
			 * should be generated.
			 */
            if (PRINT_ERROR)
                warnx(recargstring,
                      current_argv);
            /*
			 * XXX: GNU sets optopt to val regardless of flag
			 */
            if (long_options[match].flag == NULL)
                optopt = long_options[match].val;
            else
                optopt = 0;
            --optind;
            return (BADARG);
        }
    } else { /* unknown option */
        if (short_too) {
            --optind;
            return (-1);
        }
        if (PRINT_ERROR)
            warnx(illoptstring, current_argv);
        optopt = 0;
        return (BADCH);
    }
    if (idx)
        *idx = match;
    if (long_options[match].flag) {
        *long_options[match].flag = long_options[match].val;
        return (0);
    } else
        return (long_options[match].val);
#undef IDENTICAL_INTERPRETATION
}

/*
 * getopt_internal --
 *	Parse argc/argv argument vector.  Called by user level routines.
 */
static int
getopt_internal(int nargc, char* const* nargv, const char* options,
                const struct option* long_options, int* idx, int flags) {
    char* oli; /* option letter list index */
    int optchar, short_too;
    static int posixly_correct = -1;

    if (options == NULL)
        return (-1);

    /*
	 * XXX Some GNU programs (like cvs) set optind to 0 instead of
	 * XXX using optreset.  Work around this braindamage.
	 */
    if (optind == 0)
        optind = optreset = 1;

    /*
	 * Disable GNU extensions if POSIXLY_CORRECT is set or options
	 * string begins with a '+'.
	 *
	 * CV, 2009-12-14: Check POSIXLY_CORRECT anew if optind == 0 or
	 *                 optreset != 0 for GNU compatibility.
	 */
    if (posixly_correct == -1 || optreset != 0)
        posixly_correct = (getenv("POSIXLY_CORRECT") != NULL);
    if (*options == '-')
        flags |= FLAG_ALLARGS;
    else if (posixly_correct || *options == '+')
        flags &= ~FLAG_PERMUTE;
    if (*options == '+' || *options == '-')
        options++;

    optarg = NULL;
    if (optreset)
        nonopt_start = nonopt_end = -1;
start:
    if (optreset || !*place) { /* update scanning pointer */
        optreset = 0;
        if (optind >= nargc) { /* end of argument vector */
            place = EMSG;
            if (nonopt_end != -1) {
                /* do permutation, if we have to */
                permute_args(nonopt_start, nonopt_end,
                             optind, nargv);
                optind -= nonopt_end - nonopt_start;
            } else if (nonopt_start != -1) {
                /*
				 * If we skipped non-options, set optind
				 * to the first of them.
				 */
                optind = nonopt_start;
            }
            nonopt_start = nonopt_end = -1;
            return (-1);
        }
        if (*(place = nargv[optind]) != '-' ||
            (place[1] == '\0' && strchr(options, '-') == NULL)) {
            place = EMSG; /* found non-option */
            if (flags & FLAG_ALLARGS) {
                /*
				 * GNU extension:
				 * return non-option as argument to option 1
				 */
                optarg = nargv[optind++];
                return (INORDER);
            }
            if (!(flags & FLAG_PERMUTE)) {
                /*
				 * If no permutation wanted, stop parsing
				 * at first non-option.
				 */
                return (-1);
            }
            /* do permutation */
            if (nonopt_start == -1)
                nonopt_start = optind;
            else if (nonopt_end != -1) {
                permute_args(nonopt_start, nonopt_end,
                             optind, nargv);
                nonopt_start = optind -
                               (nonopt_end - nonopt_start);
                nonopt_end = -1;
            }
            optind++;
            /* process next argument */
            goto start;
        }
        if (nonopt_start != -1 && nonopt_end == -1)
            nonopt_end = optind;

        /*
		 * If we have "-" do nothing, if "--" we are done.
		 */
        if (place[1] != '\0' && *++place == '-' && place[1] == '\0') {
            optind++;
            place = EMSG;
            /*
			 * We found an option (--), so if we skipped
			 * non-options, we have to permute.
			 */
            if (nonopt_end != -1) {
                permute_args(nonopt_start, nonopt_end,
                             optind, nargv);
                optind -= nonopt_end - nonopt_start;
            }
            nonopt_start = nonopt_end = -1;
            return (-1);
        }
    }

    /*
	 * Check long options if:
	 *  1) we were passed some
	 *  2) the arg is not just "-"
	 *  3) either the arg starts with -- we are getopt_long_only()
	 */
    if (long_options != NULL && place != nargv[optind] &&
        (*place == '-' || (flags & FLAG_LONGONLY))) {
        short_too = 0;
        if (*place == '-')
            place++; /* --foo long option */
        else if (*place != ':' && strchr(options, *place) != NULL)
            short_too = 1; /* could be short option too */

        optchar = parse_long_options(nargv, options, long_options,
                                     idx, short_too);
        if (optchar != -1) {
            place = EMSG;
            return (optchar);
        }
    }

    if ((optchar = (int) *place++) == (int) ':' ||
        (optchar == (int) '-' && *place != '\0') ||
        (oli = (char*) strchr(options, optchar)) == NULL) {
        /*
		 * If the user specified "-" and  '-' isn't listed in
		 * options, return -1 (non-option) as per POSIX.
		 * Otherwise, it is an unknown option character (or ':').
		 */
        if (optchar == (int) '-' && *place == '\0')
            return (-1);
        if (!*place)
            ++optind;
        if (PRINT_ERROR)
            warnx(illoptchar, optchar);
        optopt = optchar;
        return (BADCH);
    }
    if (long_options != NULL && optchar == 'W' && oli[1] == ';') {
        /* -W long-option */
        if (*place) /* no space */
            /* NOTHING */;
        else if (++optind >= nargc) { /* no arg */
            place = EMSG;
            if (PRINT_ERROR)
                warnx(recargchar, optchar);
            optopt = optchar;
            return (BADARG);
        } else /* white space */
            place = nargv[optind];
        optchar = parse_long_options(nargv, options, long_options,
                                     idx, 0);
        place = EMSG;
        return (optchar);
    }
    if (*++oli != ':') { /* doesn't take argument */
        if (!*place)
            ++optind;
    } else { /* takes (optional) argument */
        optarg = NULL;
        if (*place) /* no white space */
            optarg = place;
        else if (oli[1] != ':') {    /* arg not optional */
            if (++optind >= nargc) { /* no arg */
                place = EMSG;
                if (PRINT_ERROR)
                    warnx(recargchar, optchar);
                optopt = optchar;
                return (BADARG);
            } else
                optarg = nargv[optind];
        }
        place = EMSG;
        ++optind;
    }
    /* dump back option letter */
    return (optchar);
}

/*
 * getopt_long --
 *	Parse argc/argv argument vector.
 */
static inline int getopt_long(int nargc, char* const* nargv, const char* options,
                const struct option* long_options, int* idx) {

    return (getopt_internal(nargc, nargv, options, long_options, idx,
                            FLAG_PERMUTE));
}

/*
 * getopt_long_only --
 *	Parse argc/argv argument vector.
 */
static inline int getopt_long_only(int nargc, char* const* nargv, const char* options,
                     const struct option* long_options, int* idx) {

    return (getopt_internal(nargc, nargv, options, long_options, idx,
                            FLAG_PERMUTE | FLAG_LONGONLY));
}

//extern int getopt_long(int nargc, char * const *nargv, const char *options,
//    const struct option *long_options, int *idx);
//extern int getopt_long_only(int nargc, char * const *nargv, const char *options,
//    const struct option *long_options, int *idx);
/*
 * Previous MinGW implementation had...
 */
#ifndef HAVE_DECL_GETOPT
/*
 * ...for the long form API only; keep this for compatibility.
 */
#define HAVE_DECL_GETOPT 1
#endif

#ifdef __cplusplus
}
#endif

#endif /* !defined(__UNISTD_H_SOURCED__) && !defined(__GETOPT_LONG_H__) */


Wind River®, a world leader in delivering software for the Internet of Things, was named among the 'Best Places to Work 2016' by the San Francisco Business Times and Silicon Valley Business Journal. Wind River was recognized for the second consecutive year based on employee satisfaction across several are as, including career growth, workplace environment, and company management.
The annual Best Places to Work awards recognize the top 125 employers in the Greater Bay Area. The assessment and resulting rankings were determined by survey results provided voluntarily from company employees, rating satisfaction across a number of key areas. The survey included questions about overall work culture, personal growth, morale, compensation, and benefits. The results were tabulated by research firm Quantum Workplace.
Wind River has a unique advantage within the industry with its Wind River HelixTM product portfolio for the Internet of Things (IoT). To learn more about careers at Wind River, visit https://windriver.tms.hrdepartment.com.
The Wind River Blog Network is made up of a variety of voices: executives, technologists and industry enthusiasts. We hope to foster conversations and encourage the sharing of insights regarding the evolving landscape of intelligent, connected systems with our ecosystem of customers, partners and colleagues.


text:
Burton U.S. Open looks to extend Vail deal
News News | May 21, 2015
smiller@vaildaily.com
Cheryl Maas of the Netherlands flies off a jump during the Burton U.S. Open woman's slopestyle semi-finals in Vail March 4.Now in the midst of a five-year agreement to host the U.S. Open in Vail, Burton company officials say they're now working on an agreement to keep the events in Vail through 2022.
Townsend Bessent | Townsend@vaildaily.com |
VAIL — Burton Snowboards made a big move three years ago, shifting its annual U.S. Open Snowboard Championships from the company's home state of Vermont to Vail. Company officials seem to want to make that move a long-lasting one.
Burton is now in the midst of a five-year agreement for Vail Mountain to host the U.S. Open. At a Tuesday meeting with the Vail Town Council, Nick Sargent, Burton's vice president of global business alliance, told the council that the company expects to announce another five-year commitment to Vail sometime in the next year or so. The desire for a longer-term commitment springs from a simple fact — this event works well in Vail. And Vail seems to like Burton right back.
Sargent's report had all kinds of information town officials like to see, from lodging occupancy rates to the mix of visitors coming to the resort.
ATTRACTING YOUTH
One of the biggest boosts is in the number of millennial guests, a demographic group with birth years ranging from the early 1980s to the early 2000s. Vail officials have for some time now pondered how to bring more members of that younger generation to town. Events like the U.S. Open seem to be good attractions.
Sargent's presentation indicates that 45 percent of the people who attended the events between March 2-7 were age 34 or younger. Nearly two-thirds of all the parties that came had people in that age range. Just more than half of all spectators booked rooms in the valley, most of which are in Vail. For the event's final weekend, the town's lodging inventory was 96 percent occupied, and the rates paid for those rooms increased 12 percent from the same period in 2014. The town of Vail's overall March sales tax collections increased 7 percent from the same month in 2014.
The U.S. Open is also putting more snowboarders on Vail Mountain. Sargent said Vail Resorts estimates the usual skier/boarder mix at Vail is about 25 percent snowboarders. For the U.S. Open, Sargent said that number rose to about 30 percent.
A growing number of people answering guest surveys are indicating they want to return to Vail — one of the reasons the town put $400,000 into the event's $4.5 million budget for 2015. The survey indicates that 70 percent of spectators said they'd be "extremely likely" to recommend the U.S. Open events to friends.
Another reason the town put money into the U.S. Open is return on investment. Research done by RRC Associates, a Denver-based market research and consulting firm, shows that every "partnership" dollar generates $7.70 in economic activity.
If Burton stays in Vail until 2022, Mayor Andy Daly asked Sargent how he sees the U.S. Open evolving during that period.
"We don't want to grow for growth's sake," Sargent said. But, he added, the company is looking to revive its "Junior Jam" events for younger competitors. The company dropped that part of the U.S. Open when it moved west.
"Now that we're established, we want to bring that youth component back," Sargent said, adding that it's important to Burton, and the sport, to develop what he called "tomorrow's heroes."
Sargent also mentioned perhaps trying to bring the U.S. Open to Vail for a full week. That could be a very big benefit, since filling rooms in the middle of the week is a challenge even during high seasons.
"If you can get families here on a Tuesday, that's a go," council member Greg Moffet said.
Vail Daily Business Editor Scott Miller can be reached at 970-748-2930, smiller@vaildaily.com and @scottnmiller.
Timbers Bachelor Gulch
Bell / Valet, Owner Services Specialist, Reservations Agent
Sold Out Owners Club next to The Ritz at Beaver Creek, Bachelor Gulch luxury village in Avon is now hiring…
JOIN OUR LADIES & GENTLEMEN
Join our ladies and gentlemen. Continuously learn and grow in your career. Start your career at the Ritz-Carlton. https://jobs.marriott.com/marriott/jobs?lang=en-US&utm_medium=jobboard&utm_source=MarriottCareersWebsite&location=bachelor%20gulch&stretch=0&stretchUnit=MILES&page=1 -…
Front of House Manager
We are looking for someone who has managerial experience, experience dealing with customers and employees, loves a good working environment…
West Vail Shell
Night Manager / Tow Truck Operator
Night Manager / Store Attendant Good second job flexible. Good Pay
Assistant Controller
Full Time. B.S. in accounting and 5+ years experience in accounting required. Benefits include medical & life, paid vacation &…
Retail Store Manager - Salary is commensurate with experience starting at $72,000+ per year and upwards dependent on skillset and…
Foods of Vail
Gourmet Market Retail Sales
Foods of Vail is a looking for a sales associate for the front market! Foods of Vail is a gourmet…
Sheraton Mountain Vista Villas
Overnight Maintenance Technician II - $26.20/hr
Respond and attend to guest repair requests. Communicate with guests/customers to resolve maintenance issues with little to no supervision. Perform…


text:
Q: Spring @Transactional annotations ignored My @Transactionnal annotations seems to be ignored. I have no errors on the initialization of the Spring container. It looks like my method has not been proxied by Spring TX framework. During the execution of my service's method, an expected RuntimeException is thrown by the JDBCTemplate. The problem is that the JDBC connection is not rolledbacked and changes are persisted. The stacktrace doesn't show any sign of the proxy who is supposed to wrap my service's method.
Edit : Added the Controller's code
Edit 2 : Added the Service's Interface
Here is my Service Interface.
public interface ApplicationsService {
    public Application getApplicationById(int id);

    public void createApplication(Application application);

    public void createInstance(Application application);

    public Map<Integer, Application> getUserApplications(String username);

    public Application newApplication(String email);
}

Here is my Service.
@Service
public class ApplicationsServiceImpl implements ApplicationsService {
    ...
    @Transactional
    public void createApplication(Application application){
        // Persisting the application.
        applicationDAO.createApplication(application);
        application.setId(
            applicationDAO.findApplicationId(application.getName(), application.getAccount().getEmail())
        );

        // Creating the physical instance.
        createInstance(application);
    }
    ...
}

Spring Controller responsible for the method call.
@Controller
@RequestMapping("/applications")
public class ApplicationsController {
    ...
    @Autowired
    private ApplicationsService applicationsService;
    ...

    @RequestMapping(method=RequestMethod.POST)
    public String saveApplication(
        @Valid Application application,
        BindingResult bindingResult,
        Principal principal
    ){
        application.setAccount(this.accountService.getAccount(principal.getName()));
        this.applicationsService.createApplication(application);

        return "application/creatingApplication";
    }
    ...
}

Here is my Spring transaction configuration
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="    http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

                            http://www.springframework.org/schema/tx
                            http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"
>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="DADataSource"/>
    </bean>

    <tx:annotation-driven />
</beans>

During the execution of the createApplication, a RuntimeException is launched by the JDBCTemplate and the transaction is not rollbacked.
GRAVE: Servlet.service() for servlet [DACloudWeb] in context with path [/DACloudWeb] threw exception [Request processing failed;
nested exception is org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO instances (  serverId,   appId,  lastDeployment ) VALUES (   ?,?,? ) ]; SQL state [HY000]; error code [1364]; Field 'status' doesn't have a default value; nested exception is java.sql.SQLException: Field 'status' doesn't have a default value] with root cause
    java.sql.SQLException: Field 'status' doesn't have a default value
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:818)
        at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:1)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:587)
        at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:812)
        at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:868)
        at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:876)
        at com.cspinformatique.dacloudWeb.applications.dao.InstanceJDBCDAO.createInstance(InstanceJDBCDAO.java:50)
        at com.cspinformatique.dacloudWeb.applications.service.InstanceService.createInstance(InstanceService.java:42)
        at com.cspinformatique.dacloudWeb.applications.service.ApplicationsService.createInstance(ApplicationsService.java:63)
        at com.cspinformatique.dacloudWeb.applications.service.ApplicationsService.createApplication(ApplicationsService.java:52)
        at com.cspinformatique.dacloudWeb.applications.controller.ApplicationsController.saveApplication(ApplicationsController.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:680)

A: You need to define an interface for the @Transactional annotations to work:
public interface ApplicationsService {
    public void createApplication(Application application);
}

And the concrete class:
@Service
public class ApplicationsServiceImpl {
    @Transactional
    public void createApplication(Application application) {
        // ...
    }
}

Alternatively, per Kevin Welker's comment, if don't want an interface (though you probably should write an interface), you can configure use proxy-target-class:
<tx:annotation-driven proxy-target-class="true" />

edit
The message from your SQLException is:
Field 'status' doesn't have a default value

So maybe you're passing in null where you should be providing a value? Alternatively, check this post for some weirdness associated with this error.

A: After three days of debugging, I finally found the reason why my annotations were ignored.
The <tx:annotation-driven/> instruction located in a child context file doesn't have access to the beans created by its parent Spring context.
I had to move it to the myapp-servlet.xml used by my request dispatcher.
Now, it is working properly.

A: My guess is that you've put your service beans in the context that belongs to the dispatcher servlet, where only controller beans are supposed to live, and then you've declared your transaction beans in the root context. The annotation-based transaction auto-proxying only applies within a single context, so your service beans in the other (wrong) context won't be affected. See my answer to "Why DispatcherServlet creates another application context?" for a fuller description of the problem. The root problem is that you don't understand how contexts are organized in a Spring MVC application.

redpajama_set_name: RedPajamaStackExchange