text:
Ah, the holidays. Christmas is all about love, sharing, sweetness, and light — and keeping the antacids handy. In keeping with the spirit of the season, our food blog, Chow Bella (www.phxfood.com), presents "Eating Christmas," in which some of our favorite writers nosh on the real lessons we learn this time of year.
By Sativa Peterson
My grandma and her sisters liked to try and out-craft one another.
New Times cafe column
A new craft project would start with one of them but spread like wildfire to the other sisters once they had been exposed to the craft du jour. One whole year when I was a kid they began making Christmas ornaments. The ornaments were "people" made out of two brightly colored silk Christmas balls stacked on top of one another, the lower ball forming the torso, the upper becoming the head. They each had different hats, feet, and hairstyles made out of felt, push pins, chenille pipe cleaners, pompons, sequins, yarn, tacky craft glue, and the magic ingredient — glitter. They made so many characters: Santa and Mrs. Claus, of course, but also an elf, a Jack Frost, a Swiss chalet girl, a boy and girl skier (whose ski poles were made from toothpicks), a snowman, a snow woman, an angel, a toy soldier, a jack-in-the-box.
But they also included a slew of barnyard animals: a duck, a frog, a pig, a skunk, an owl. Also a Carmen Miranda with fruit on her head, some Pilgrims, a beatnik cat playing a guitar, an elephant, storybook characters like Little Red Riding Hood, and many more. They would get together and show each other the new characters they had come up with. This went on for months. The crafting flotsam and jetsam swelled.
The production of the ornaments spread out, eventually overtaking the entire kitchen table. My grandpa would look for a little space to place his coffee cup; a corner to rest his paper. He was losing ground daily and there was glitter everywhere. On every surface. On his toast. On his shirt. It smelled like drying craft glue. You could see him mumbling "goddamn it" quietly to himself in vain.
I, on the other hand, loved it. My grandma's dining room table was like peeking into the elves' workshop at the North Pole. Little piles of spilled sequins lay here and there as if in the aftermath of a raging little party.
But even this wasn't enough. The sisters brought food to their crafting get-togethers. Cinnamon rolls, festive wreaths made out of green food-colored Rice Krispies treats, homemade bread, and a hot drink mixture that was one of their earlier fads. Called Friendship Tea, its ingredients included Tang, lemonade mix, and clove. Sticky fingers adhered to plates and mugs.
By the time this Christmas ornament craft wave passed, my grandmother had made several complete sets of these people, with enough variety to cover an entire Christmas tree or two. I thought they were marvelous.
Now, Liam, the man in my life, finds them overwhelming. Especially taken in total. But we always put a few of them out each year at Christmastime. I like what they represent: a little good-natured family competition, food as an integral part of being together, going overboard, and being one of those people who, from time to time, gets a little carried away. Isn't that what the holidays are all about?
By Laurie Notaro
At the mention of the word "Brie," I immediately became terrified for my sister.
For the first time in our lives, Christmas Eve was not going to be at my mother's house, and my sister had stepped up to the plate.
"I've done it for 40 years," my mom had announced suddenly. "Figure it out on your own."
It came as a significant shock to most of my family. How would our holiday stay intact if we changed venues? What about tradition? No one's ever decided to light a Christmas tree in front of the Empire State Building — it would be heresy! We had never had Christmas Eve anywhere else, and it was very much akin to my mother canceling the holiday altogether.
What were we supposed to do now? Gather at the buffet at Outback, my parents' favorite restaurant (but only before 5 p.m.), or, even worse, meet up in the parking lot of the casino where she'd suggested we have Thanksgiving? If we started having milestone events at the casino, I had no idea what the future held for my family, but if this was the direction we were heading, it wasn't good and could only involve myriad single-wides on a dirt lot somewhere in West Phoenix with a cardboard sign that said "Notaro Village" in Sharpie nailed to the mailbox. And possibly a communal outhouse.
But my baby sister Lisa took it in stride. She simply shrugged and said, "So? Let's just have Christmas at my house."
"Do you — do you think we're . . . allowed?" I stammered.
"Why not?" Lisa said. "She was the one who said she was sick of being everyone's Christmas servant. In my book, that leaves it wide open."
I thought about it for a minute, and it seemed plausible. Why couldn't we have it at Lisa's house? Our traditional Christmas Eve antipasto was easy enough to re-create. I knew where all the good Italian delis in town were. I knew how to make roasted peppers and garlic in olive oil; I could roll up prosciutto and sopressata. It could actually be like Christmas!
Until my sister said, "And I'm thinking about making this thing I had at a restaurant that was so good. It was Brie baked in blueberries!"
Brie and blueberries, the hair standing up on my neck screamed. Not only are we changing locales but we're also introducing unknown variables? I began to panic. Didn't she know how this might tip the balance of the holiday dynamic? Everything had been the same — exactly the same — on Christmas Eve for as long as I knew. We used the same plates. We sat in the same seats. We had the same arguments, although the subject of Jill Biden's promiscuity was a new topic introduced in 2009 and we had to clear the room of everyone under 18.
And now, Brie and blueberries? That might knock us out of orbit, only to end up at the casino next year! It wasn't Italian, I knew that, but what nationality are blueberries?
I looked at my sister, and she was so excited. She had just taken on a lot, I knew, and if need be, I thought, I could do damage control once my mother saw the new dish on the antipasto spread. I would take the blame. She hates me the most, anyway, and I could just say that I borrowed the recipe from my husband's kin, who have been in the United States for so long that they are an eighth of everything, including Pilgrim, Native American, slave owners, abolitionists, sharecroppers, and people who eat cornbread. It was the cornbread faction that made my mother cry when I got engaged.
As my sister and I set everything up for dinner that Christmas Eve, she pulled the Brie and blueberries out of the oven. It looked delicious. She placed it in the very center of the table, within eyeshot of everyone. I knew this had the potential of a Jill Biden-type evacuation of the young, and I just crossed my fingers that we could get past this potential disaster without wills being redrawn and paternity tests challenged (which is always Plan A with the cornbread side of the family).
I waited nervously as the rest of our family arrived and assembled around the table, ready to dig into the antipasto. It was then that I watched my mother do a double-take when she saw something that wasn't a cured meat in front of her. She leaned forward, raised a brow, and sniffed.
"Get the kids," I whispered to my sister, whose eyes suddenly went wide. "This thing is gonna blow."
But my mother, instead of furrowing her brow and looking for a dish towel to use as a whip, picked up a cracker and dipped it in the blueberries.
I held my breath as she chewed, trying to figure out if people wearing natural fibers could even pass the dress code of the casino. I was going to have to get some gold bracelets and ask relatives still in New Jersey for makeup tips. I might have to procure a clothing item in a leopard-skin pattern.
My mother looked up, and looked me in the eye for a moment.
Oh, God, I thought, feeling chilled. Am I going to have to start smoking again?
And then she picked up a second cracker and went in for another bite.
By Tania Katan
Being Chosen to be in covenant with God is not as glamorous as it sounds. Look, it wasn't my choice to be chosen. It was God's! And let me tell you a little something about being one of God's favorites: It sucks. It's like being your boss' favorite or your teacher's favorite. Everyone hates you, and you get more work/assignments/pogroms thrown at you because your boss/teacher/God doesn't want co-workers/fellow students/Christians to think that you're getting any special treatment.
So, it's Christmas day, for some a celebration, for others a day when finding a decent cup of coffee and a sweet treat is nearly impossible. A Chosen friend of mine, with an equally compelling coffee habit, told me about a place in Scottsdale that might be open. "Gelato Spot. And it has great espresso, too. Shalom!"
The sign said, "G Spot OPEN!" Espresso, gelato, and arousal all at the same time? This is my idea of a Christmas miracle. The man behind the counter looked like a young Ronald Reagan. Stiff hair, blue coruscate eyes, and a simple smile. "Welcome to the Gelato Spot. What can I get for you?" he asked and meant it.
"I'll have a cappuccino and a small gingerbread gelato. Do you have a restroom? I'm going to stay for a bit and write."
"Yes, the restrooms are right over there."
As if little chunks of gingerbread scattered throughout creamy vanilla gelato weren't enough, my cappuccino tasted like it was shipped in from Italy! But there is nothing more arousing than a super-clean cafe bathroom! Except for what I found in that bathroom.
Amid the lotions and pomegranate pump-soaps, I found an envelope. A sandy, 5-by-7 envelope. Totally unremarkable. I opened it. There was a $20 bill, and another 20, and another, and another. A hundred dollars in wrinkly $20 bills, smoothed out and carefully grouped together!
So, I did what anyone who has been Chosen by God to receive this cash would have done: I thought about all the things I could buy with it, then I turned it in to Mr. Gelato Reagan. He thanked me, and I left the G Spot feeling morally stimulated.
This wasn't the first time God challenged me on my path to righteousness. When I was 9 years old, my twin brother and I were riding bikes through El Dorado Park, which would have been totally unremarkable except for the fact that on that day, instead of looking up, I looked down. That's when I saw a dollar bill on the ground. Then another, and another, and another, and after six $1 bills in a row, the money trail went cold. I grabbed the cash and told my brother to follow me to the rec center. When I emerged from the rec center with no money in my hands, he asked, "What happened?"
"I turned it in. It belongs to someone else," I said.
"Are you stupid?" my brother asked. "No one can prove it's their money. The rec center people are just gonna keep it, Tania."
His logic made sense, plus the rec center people were mean to kids and seemed undeserving of all that cash. I came up with a plan. "Okay," I said, "I'll give you two bucks if you go in and claim the money." He got the cash.
As a struggling writer, I was compelled by both the story and the money that sprang from the G Spot (pun intended). I called, almost daily, to inquire about it. Did someone claim it? What did they look like? Why did they leave it behind? Each time, Mr. Gelato Reagan told me that no one had claimed it. After months, my inquiries being dismissed by the manager who had no idea what I was talking about, and with Mr. Reagan getting more and more irritated by my calls, I stopped. The money seemed to have disappeared as mysteriously as it appeared. So, I decided to take matters into my own hands, to do the righteous thing. I called my mother. "Mom, you have to call Gelato Spot and tell them that you left a 100 dollars, in an unmarked envelope, in their bathroom. I'll give you 50 bucks if you do it!"
My mother and I conducted rehearsals by phone.
"Okay, Tania, how's this: Hello, Gelato Spot. I am Joelle Katan. I think I left 100 dollars — that's five 20s — in your bathroom, at the Gelato Spot."
"It sounds stiff, Mom, like you're reading a script. What's your motivation?"
"My daughter asked me to do something and I love my daughter."
"That's not motivation! I'll give you motivation. You've got babies — a lot of them, 15 — and you can't afford diapers, and you all live in a 1978 Toyota Corona station wagon. And there's a cop knocking on your door, I mean, hatchback! Now pick up that phone and call Gelato Spot!"
I'm certain that my mother gave a compelling performance — albeit a little stiff — but the manager told her that there was no money turned in. So, almost a year after I turned in the money, I decided to go into the G Spot and find out what happened to it.
Mr. Gelato Reagan was at the register. "Single, wet, cappuccino, right?" he said.
"Yes, good memory," I said. "What ever happened to that $100 I turned in about a year ago?"
"I don't know what you're talking about." he said.
"The 100 bucks? From the bathroom? Remember?"
"No. Sorry."
Any smug barista who remembers your coffee drink has to remember a Jewish writer, on Christmas day, finding $100 in the bathroom, and turning it in!
"You really don't remember?"
"Well," he started, "about a month after you turned it in, no one claimed it, so . . . I just spent it."
I was stunned. I told Mr. Gelato Reagan that I would not be paying for my cappuccino today! "Since you're a hundredaire, you can buy it for me!" He smiled nervously and said, "Yeah, sure. So . . . we're okay, right? You and me," he asked.
"Sure," I said. "We're fine."
"Because, you know, I thought that you were a psychologist conducting some sort of social experiment."
"And stealing the money was the right choice to make on this hidden-camera show in your mind?"
"I guess."
"What are your professional aspirations?" I asked him.
"I'm a business major," he said, with no irony.
Here's the deal with choices: When you're lucky enough to make the right one, you often don't realize it until later, sometimes years later. And when you make the wrong one, you feel it instantly and try to save face by making odd excuses. So, the next time God chooses to throw someone else's money my way, I hope that I choose to turn it in. Or get my mom some acting classes. Not sure which one yet, but I'll keep you posted.
By Robrt L. Pela
It's the week before Thanksgiving, and I am making 80 dozen Christmas cookies.
Surrounded by metal contraptions that resemble waffle irons, I am cranking out hundreds of flat, round, paper-thin Italian holiday cookies that signal — at least to Italian Americans from northeastern Ohio — that Christmas is nearly here.
I don't eat pizzelles, a traditional Italian cookie I've heard people describe as resembling snowflakes and giant drinks coasters, but I've been making them practically since I was old enough to stand. I've got it down to a science: Plop two spoonfuls of sticky, anise-flavored batter onto the grooved face of the electric pizzelle iron; close iron; open second iron and remove cookies and place on cooling rack; fill second iron with batter; move on to third iron, filling it with batter and closing it, by which time the cookies in the first iron are done and I'm ready to start again.
To my palate, pizzelles don't taste like much, no matter what kind of flavoring I add. But white people seem to like them, and I can make a lot of them in very little time. Today, I've been making pizzelles for a half-hour and I've already got about 400 cookies made.
My spouse, Tevye, wanders through the dining room where I've set up my pizzelle assembly line. "Oh, hurray!" he sneers. "Sawdust cookies! It must be Christmastime!"
Ha ha. Tevye contends that all the Italian sweets I make are dry and flavorless. Not because he's unkind or because I'm preparing the recipes badly. Because he's right. The seven dozen biscotti I made yesterday are exactly perfect, and just like the ones for which people pay three bucks apiece at coffee houses and better delis. They're also like roofing shingles: brittle and flavor-free. I've attempted biscotti recipes other than the traditional one used by my grandmother, ones with exotic ingredients like rosemary and toasted almonds and dipped in melted chocolate, and the cookies are certainly tastier. But they're not traditional. They're someone else's Christmas.
"At least someone else's Christmas doesn't require a half-gallon of milk to force down," Tevye reminds me as I plop out my 800th spoonful of pizzelle batter. "Please tell me you're not going to make taralli this year."
"Too late," I mutter into my mixing bowl. "They're in the freezer."
"Oh, good!" Tevye crows. "Because it's not Christmas without freeze-dried pepper-and-fennel pretzels!"
Well, no. It isn't. At least according to my family traditions. Last year, though, I tossed tradition out the window and, in an attempt to compensate for the parched sweets of my people, I swapped a soaked-in-rum English Christmas cake for the traditional New Year's Eve rice pie (or, as Tevye calls it, Sahara Desert Pie) that my great-grandmother used to serve every December 31. We'd had Christmas cake at a friend's house in London on Boxing Day the year before, and it was the moistest holiday dessert I'd ever eaten. The very complicated recipe involved making a dense, candied-fruit-filled cake that one "fed" with cognac, once a day for a whole month before the holidays. Then, just before serving, one covered the cake with sheets of marzipan and topped it off with a two-inch-thick layer of royal icing.
"So you're replacing the New Year's Eve pie made from wood shavings and sand with a cake filled with rubbing alcohol and smeared with lard," Tevye clarified. "One into which you've poured $80 worth of hooch, and that will set off carbon monoxide meters all over downtown Phoenix?"
I remained resolute, and served my Christmas cake to the neighbors who came for a midnight toast on New Year's Eve.
They were polite. Mostly. Two or three of them took a nibble, but even the drunkest of our guests left most of their Christmas cake on their Santa plates. The next morning, I had about 30 pounds of rum-drenched fruitcake to unload.
In the end, we left it on the sidewalk in front of the neighborhood park, hoping a homeless person with a drinking problem might want it.
"Maybe you should go back to baking with splinters and sawdust," Tevye suggested as we headed back to our house. "At least pizzelles look nice."
By Kim Porter
My friend Lisa and I stand on Estelle's porch between two precarious towers of unread newspapers. "Oh, no. I had an uncle who was a hoarder," Lisa says. "I hope she's not a hoarder," she says as she presses the doorbell.
"Wait. She's not related to you?" I ask, still unclear how she knows this old lady.
Lisa shakes her head. "She shops at my store. I think she thinks I'm Jewish."
"But, you say she's like Maude from Harold and Maude, right?" I say, picturing the two braids that feisty Ruth Gordon wore pinned atop her head.
"Well . . .," she fumbles to clarify. "I meant, she's eccentric."
I imagine Estelle pounding out showtunes on the piano and trusting us with a peek at her newest invention. I'm going to love being friends with an eccentric old Jew.
I'm nervous. I've never been to Hanukkah before, and I hope this Estelle person will be able to tell, even though I was born in the Bible Belt to Methodist parents and at 24 I have met only a handful of Jewish people in my life and don't actually know anything about Jews (aside from the stereotypes made irresistible by the Woody Allen movies I consumed obsessively like an antidote to the country music I was forced to listen to as a teen), that deep down I am a Jew. I'm a Jew trapped in a shiksa, waiting to be discovered. I hope Estelle will be able to sense that.
More importantly, I am eager to finally try a latke. I've heard they are to be eaten with either applesauce or sour cream and I don't know if one is considered more Jewish than the other, so I plan to follow our hostess' lead. I'm also hoping she'll serve other famous Jewish foods like blintz or gefilte fish or matzoh balls or chopped liver.
The door opens, and when I see Estelle's two naked foot-long breasts dangling to the waist band of her white cotton underpants, I realize that Lisa and I should have synchronized our definitions of eccentric.
"You're late! You're late!" she screams. And we are. Still, I can't help wondering how much more flesh we'd be seeing if we'd arrived on time.
"Come in and meet my boyfriend, " she commands, her breasts oscillating with impatience. Lisa and I exchange perfectly concealed looks of horror as Estelle trots off toward the kitchen.
"Hoarder," Lisa whimpers as we step into the living room and see the full picture.
In my experience, there are two kinds of squalor: clean squalor (from too much stockpiling) and dirty squalor (from broken perfectionism). Estelle's squalor was the clean kind. It looked like the entire contents of a Big Lots store had been dumped into a 1,600-square-foot house; demoralizing, yes, but not infectious.
In the kitchen, Estelle introduces us to her boyfriend, a silk-screened beach towel bearing the likeness of Tom Selleck. Lisa says, "Hi," but, Tom, being a towel, does not reply.
Before this evening is over, Lisa and I will, at Estelle's insistence, put on toy gun belts and felt cowboy hats and accompany her to her local kosher deli for latkes. Only, because we are so late, they will already be out of latkes. We will put out two separate kitchen fires. We will pretend to eat still-bloody chicken served on a bed of chopped hot dogs, grapes, and spoon-size shredded wheat. And around midnight, when I think I might become "eccentric" myself if we don't escape this place, we will spend over an hour being shown, over and over, the same four tchotchkes (one of which is a Happy Meal toy) as Estelle clings to our elbows begging, "Don't go! I want to show you this beautiful thing."
We will never get around to lighting the candles, which are rumored to be integral to Hanukkah. I will never eat a latke with applesauce or sour cream. And, sadly, my latent Judaism will not be revealed.
But, for now, in the kitchen, Estelle asks, "Manishewitz?" and Lisa nods.
"What's Manischewitz?" I whisper to Lisa. "Another one of her boyfriends?"
"I think it's something Jewish," she says.
Bring it on.
By Elizabeth Maria Naranjo
One holiday season, I stumbled across an inspiring magazine article. The glossy photo showed a cashmere-draped, model-thin mother beaming at her husband while he trimmed the Christmas tree. All the ornaments were homemade. By the tree sat a curly-headed toddler, proudly clutching her crooked tinfoil star. What children treasure most about the holidays, this article proclaimed, are unique family traditions.
Suddenly, oodles of presents under the tree weren't enough. My daughter needed a unique tradition. I thought back to my childhood. Was there anything that stood out? A particular book my mother read every Christmas Eve, pillow fights on Christmas morning, hot chocolate with presents? And then I remembered.
Fantasy fudge. We'd made it every winter, using the recipe on that blue-capped, wide-hipped marshmallow creme jar. I would sit on the counter, strategically positioned by the chocolate chips, while my mother measured out sugar and margarine. She poured in a can of milk and the kitchen was filled with the quiet sounds of bubbling and stirring. I dumped the remaining chocolate chips into the pot, and my mother watched carefully as I stirred with a big wooden spoon. Chocolate melted and swirled; the luxurious aroma made my mouth water. When it was time to add the marshmallow creme, my mother held the jar while I slid a butter knife inside and twisted out a thick glob. I plopped it into the mixture and stirred until my arms ached. My mother finished, and while we waited for the fudge to cool, I licked the spoon.
This is the tradition I decided to re-create with Abigail. Christmas was a week away, but first we were taking a snowy vacation up north. We could have some fudge to take with us.
I ceremoniously tied an apron on my daughter and propped her next to the chocolate chips. Abigail stirred in the marshmallow creme and licked the spoon while I finished mixing. (How did my mother make this look so effortless?) I poured the thick silky chocolate into a pan, and we bundled up in the family room to watch The Polar Express while the fudge cooled.
By the end of the movie, the fudge still hadn't set. Instead of soft velvety blocks, I had a pan of grainy mush.
"What the hell happened?" I asked my husband. "No one screws up fudge."
He peered into the pan. "That's supposed to be fudge?"
"Never mind," I snapped. "I guess we can't take it to Flagstaff."
"No, let's take it," he said, his mouth working against a smile. "We can stick the pan in the snow, maybe it'll set."
"That's very funny. You're such a funny guy." I grabbed the pan and a couple of spoons and headed back to the family room, where The Polar Express was restarting. I dimmed the lights, snuggled up with my little girl, and handed her a spoon. This was good enough for me.
By Judy Nichols
To me, Christmas is Kansas roads, drifting snow, and corn casserole, a down-home dish that gets no respect until you taste it.
When I was little, we would drive for hours across the flat farmland to get from one house of grandparents to another, the beams of our headlights catching only snowflakes and the unending yellow centerline of a Kansas highway.
My sister and I would squeal as we reached the familiar turnoff to Hanover and came over the hill to see the tiny main drag lined with twinkly lights and big plastic candy canes. It looked like the North Pole.
My grandmother Ida would be watching through the frosty window in her front door, waiting with a table loaded with steaming food: pheasant my grandfather had saved from a hunt, potatoes dug from the backyard garden after the first frost and stored in the root cellar, jars of pickles put up in the heat of summer with help from the neighbor ladies, and homemade pie made from frozen cherries picked off the tree outside the back porch.
At the Dunwells, my father's side, my grandmother Mollie laid a table with recipes born of the Depression, like meatballs stretched with rice, and rabbits she trapped in the backyard.
Her corn casserole was brilliant in its Kansas flavor and its mistake-proof simplicity. The "recipe" is not written anywhere, just remembered, passed from my father's mother, to my mother, to me: a can of creamed corn, an egg and saltine crackers, crushed, some stirred in and some sprinkled on top. Bake at 350 degrees until golden and set in the middle. It is easily expanded to feed whatever number is coming to dinner.
The first time I made it for my Italian in-laws in New York, they scoffed as it bubbled in the oven.
"Oh, my, you opened a can of corn," Carmella said, with more than a hint of sarcasm. "You'd better sit down." Granted, my brother-in-law, Ray, had spent hours making lobster sauce for the pasta.
But once that piece of Kansas Depression hit the table, the Italians were beguiled, and, not to put too fine a point on it, they "woofed" it.
In fact, Carmella was so enamored that corn casserole became her go-to dish.
Unfortunately, she keeps trying variations, like adding a higher proportion of egg to make a sort of corn soufflé, or using Triscuits instead of saltines. Do not go there.
I will admit to two slight alterations: using one can of drained whole-kernel corn for every can of creamed corn to give the dish more texture, and adding more crackers than my grandmother did to make it stiffer. Any other changes mess with perfection.
My grandmother died while I was in college and, in March, my father passed away. I realize that it's time to teach the next generation how to make corn casserole, so this year, my son Nate, a college freshman, will be crunching the crackers.
And I hope that, somewhere on Staten Island, Carmella will be handing the can opener to her son Mario.
By Zachary Fowle
Growing up in Las Vegas, you're not allotted many of the Christmas-y traditions of cooler climes. Snowmen are hard to make when it's 60 degrees, and you could only organize a neighborhood snowball fight if you shaved the ice yourself.
So, around Christmas of 1996, my father got the notion that if we were going to have any traditions at all, we would have to make our own. But family customs, like nicknames, have to arise organically — you can't make them up yourself, or the universe will correct your mistake with hilarious consequence. So it was with the chestnuts.
For his first attempt at tradition-genesis, Dad found inspiration from what he thought was the purest of muses: "The Christmas Song." To him, that lovely tune heard every winter season on the radio exemplified everything Christmas was about. And if we couldn't have Yuletide carols being sung by a choir or Jack Frost nipping at our noses, then, by God, we would at least have chestnuts roasting on an open fire.
But this was Nevada, where a warm embrace is enough to cause a brushfire, and open flames were outlawed. So we used a grill.
Two things wrong with this. First, a grill concentrates all the heat on one area of the food; that's why you've got to flip burgers. Second, you're supposed to cut notches in chestnuts before roasting to let the pressure escape. We neglected to recognize either issue, which is why, as we gathered around the grill to watch our first tradition come to life, the chestnuts began to whistle.
Our gazes narrowed at the shells. "Are they supposed to do that?" my sister asked.
Nope, the universe answered.
Pop pop pow pop pow! It was like someone had set off a string of Black Cats. We dove for cover as woody shrapnel shot across the yard. Molten chestnut guts spat from the grill as if shot from an IED. It was a grisly scene.
After the chaos subsided, we dusted off the bits of shell covering our clothes and began the arduous process of cleaning chestnut goo from my sister's hair. A tradition was born that day, in a way — the telling of the chestnut assault. But there would be more custom-creating attempts before we were through.
By Kristin Grady Gilger
There are two types of holiday meals: the kind I'd like to make and the kind I actually make.
It's not that I'm bad in the kitchen. I'm actually pretty good, considering that I spend so little time there. Holidays are the one day a year when my husband and I reverse our reversed roles: Gary does the traditional husband thing — watch football, eat dip, and nap — while I hunt for the knives and try to remember the old rhythms of cutting-chopping-basting-tasting. (Well, I never actually forgot the tasting part.)
Gary cooks almost every other day of the year, so I figure this is the least I can do. And I kind of enjoy it.
I make my own cranberry sauce from real cranberries with cherries added to take away a little of the tartness. I make pie crusts from the St. Francis DeSalle's cookbook my aunt gave me for my wedding, and if there's any dough left over, I carve little leaves and decorate the crusts before putting the pies in the oven. I thaw two loaves of frozen bread dough and stretch and twist them together, letting the braided loaf rise again before slathering it with butter and baking it to a golden brown. I pile oranges and cranberries in a big vase and place it at the exact center of the table. I get out my blue plates and grandma's old silver and the (slightly stained) white linen napkins.
It all looks so perfect in those few minutes when everyone gathers around the table, before the first bite. Then one of my daughters will ask: "Where's the Jell-O?"
There must — always — be Jell-O. And Jell-O is the one thing I cannot make. No matter how carefully I follow the directions, my Jell-O ends up a red soupy affair, with grains of sugar that refuse to dissolve and marshmallows that float off the plate. My Jell-O is sadly undeserving of the name.
This does not deter my children. Their grandmother made this Jell-O, and it has been served every Thanksgiving and every Christmas of their lives. It is tradition. It is sacred. And so I do the only thing I can: I ask my husband to make the Jell-O. For reasons I cannot explain, his Jell-O always comes out perfectly: You can cut it into nice little squares and the marshmallows actually stay put.
Still, I resist. We are, after all, talking about Jell-O, the homeliest of desserts, beloved in elementary school cafeterias and Iowa farm homes and a staple of church potlucks. But on my holiday table? Where am I supposed to put it? Certainly not next to the nice cranberry, orange, and endive salad with toasted pecans. And nowhere near the steaming dish of sliced apples and squash drizzled with brown sugar and syrup.
I give up and just pass the dish. "Have some Jell-O," I say as cheerfully as I can. "It wouldn't be a holiday if we didn't have Jell-O!"
Most of our guests look at the wobbly concoction and pass — unless they're from another country. In my experience, people from other countries who happen to find themselves at your Thanksgiving table are far too polite to turn down anything, even if it resembles cat food (not that I'm comparing Jell-O to cat food. I know of no cat that would eat it).
Last Thanksgiving, a woman from China was one of our guests, and when the Jell-O came around, she scooped up a big spoonful and ate it without comment. She ate everything else, too, so I did not take this as a sign of approval. But when dinner was over and I was packing up leftovers for people to take home, I asked her what she would like.
"Please," she said pointing to the Jell-O. "Very, very good!"
"The Jell-O?" I asked, incredulous.
I gave her all of it, although I knew my children would squeal in protest the next day when they found no Jell-O in the fridge. How often do you get to serve Jell-O to someone from the other side of the planet — someone who actually likes it and wants to take it home with them?
My ideal holiday meal — the one I would like to cook — would not include Jell-O or ketchup (something my daughter insists on having with her turkey. I make her keep it under the table). In fact, it would not include anything red at all except for a few cranberries and a nice pinot noir.
But that is not the meal I cook. It is not the meal I will ever cook — because if I did, it would not be our family's holiday meal.
By Susan Tully
Last Christmas Eve, no one who came to my house for dinner knew Dad was dying except me. He didn't want knowledge of his cancer diagnosis to project gloom over the evening. He wanted the holiday, his last Christmas, to seem as "normal" as possible.
Although I was hosting 22 people for dinner, my attention was on Dad all night. I mingled as I cooked, but always, out of the corner of my eye, I was watching him. He's laughing and chatting. That's nice . . . He still seems to have some energy . . . He looks so frail . . .
Dad had been having a lot of trouble keeping food down, so I discreetly included some items in the menu that I thought he could eat: a puréed sweet potato dish that he loved, savory garlic mashed potatoes, soft chewy dinner rolls, and creamy chocolate cheesecake for dessert. I watched him throughout dinner.
Normally, Dad ate a lot and ate it fast. But this night, he paced himself carefully, putting his fork down and letting minutes pass between bites. As I dished out seconds around the table, I leaned close and whispered in his ear, "How are you doing? How is your stomach?"
"I'm okay," he answered. "The food tastes really good."
Two days later, he was admitted to the Mayo Clinic. Throughout his hospital stay, he clung to a small, pink emesis basin, afraid of losing whatever small meal he managed to get down. We brought him home on New Year's Eve for what would be the last nine days of his life.
My brother, John, a chef, flew in from Chicago. We planned a long day of cooking at Dad's house to fill his fridge and freezer. We agonized over how to nourish Dad's ailing body, wanting desperately to prepare healthy foods that would taste good to him and most importantly, that he could keep down. It became our mission.
Cooking with my brother is a rare treat. I enjoy how he teases me about my rudimentary culinary skills, teaches me chef's techniques like the proper way of handling a knife, and inspires me to take risks in the kitchen. Cooking together over the holidays should have been an especially festive experience, but not on this day. My brother and I worked shoulder to shoulder, practically in silence. I made simple soups in my crockpot: a healthy split pea; a rich cream of potato. John tasted what I made and in hushed tones gave me tips on how to season and add flavor.
John roasted a chicken and shredded the meat for creamed chicken and dumplings. He boiled potatoes and made gnocchi with béchamel sauce from scratch. I watched in awe as he assembled the ingredients from memory and sculpted each morsel into a tender bite of carefully considered size and texture for Dad. I glanced at my brother's face as he kneaded the dumplings and saw that his eyes were wet with tears.
Though he couldn't eat much, Dad savored these small gifts of food we offered him. He expressed pleasure over the flavors, and it was clear that these little meals brought him brief moments of joy in his final days. Best of all, for the first time in months, he kept it all down. It was a small triumph.
We Believe Local Journalism is Critical to the Life of a City
Engaging with our readers is essential to Phoenix New Times's mission. Make a financial contribution or sign up for a newsletter, and help us keep telling Phoenix's stories with no paywalls.
Support Our Journalism
A few days later, Dad was gone.
As we cleaned out his house in the coming weeks, we found that his freezer was still packed with the soups and chicken and dumplings. I was told to take it home and feed it to my family. I thawed it on the countertop and warmed it in the microwave. As I took the lid off the Tupperware bowl and looked inside, I was overcome with emotion.
I thought of Dad on Christmas Eve. That day of silent cooking in Dad's kitchen. The tears in my brother's eyes.
I couldn't eat the food. And I couldn't serve it to my family. I knew that despite all the love and care that went into cooking it, it would just taste too sad.


text:
All News Releases By Date
Richford, Vt. Dairy Farmers Pay Consequences for Filling 41 Acres of Wetlands
Release Date: 09/04/2008
Contact Information: David Deegan, (617) 918_1017
(Boston, Mass. – Sept. 4, 2008) – The owners of the Richford, Vt. Pleasant Valley Farm, Mark and Amanda St. Pierre, will pay a significant penalty, restore damaged wetlands, and perform additional environmental projects under the terms of a settlement with EPA and the U.S. Dept. of Justice for converting 41 acres of wetlands to corn and hay production areas on their dairy farm.
An EPA investigation concluded that the dairy farmers filled slightly more than 40 acres of wetlands between 1998 and 2002, during the course of expanding forage acres to support their dairy herd. The St. Pierres did not seek or obtain environmental review of or permits for these actions, violating the federal Clean Water Act by illegally discharging dredged and fill material into approximately 41 acres of wetlands and a stream.
"Losing more than 40 acres of wetlands in New England is significant," said Robert W. Varney, regional administrator of EPA's New England office. "Wetlands are incredibly productive and important ecological areas. All property owners can be good stewards of the land by following appropriate steps before altering wetlands, to ensure that these valuable areas are protected. "
Undisturbed wetlands provide many environmental benefits, including wildlife habitat, groundwater discharge and recharge areas, sediment and toxin removal and flood water storage. The wetlands filled were located in the watersheds of the Missisquoi and Pike Rivers, both of which flow into Lake Champlain. These wetlands likely helped stabilize stream banks, detained nutrients and sediments, filtered pollutants and helped absorb flood waters.
The St. Pierres' violation was more than double the largest permitted fill in Vermont in almost fifteen years. Under the settlement with EPA and DOJ, the St. Pierres will pay a civil penalty, restore most of the damaged wetlands, restore additional areas as compensatory mitigation, and perform a supplemental environmental project. The combined value of the penalty restoration, compensatory mitigation, and supplemental environmental project exceeds $100,000.
The settlement requires complete restoration of approximately 29 acres of wetlands, while allowing the St. Pierres to retain approximately 12 acres of wetlands that had been converted to hay fields at several different sites in the course of squaring off existing hay fields and where the impacts of converting the wetlands were minimal. The St. Pierres must provide compensatory mitigation for the acreage that will not be restored, including restoration of wetlands – currently in corn production – within the floodplain of the Pike River.
Further, the supplemental project under the settlement will require the St. Pierres to restore approximately 9.4 acres of wetlands – currently in corn production and adjacent to the Missisquoi River – which are next to two of the sites filled by the St. Pierres. The settlement also requires these additional restored areas to be protected through a conservation easement.
More information:Enforcing wetlands requirements in New England (http://epa.gov/ne/enforcement/wetlands/index.html)
Search this collection of releases | or search all news releases
View selected historical press releases from 1970 to 1998 in the EPA History website.

subset: commoncrawl


text:
Technology assures deaf student learns surgery at UC Davis School of Medicine
Amanda Mooneyham admits that she "dreaded" the prospect of a surgery rotation in her third year at UC Davis School of Medicine.
Mooneyham has a 90 decibel hearing loss in both ears, which is considered profound. She can read lips and, with the help of hearing aids, can hear speech as long as the words are spoken clearly and in her direction. In a hospital operating room, where physicians are more apt to mumble than use complete sentences and where everyone wears masks and directs their attention toward the patient, Mooneyham faced a frustrating — if not entirely ineffective — surgical learning experience.
A level playing field
Thanks to the Department of Surgery's determination to maintain a level playing field and to Mooneyham's innovative spirit, the surgery rotation has gone beautifully.
"We have a variety of different medical students with different interests, backgrounds and disabilities, but the point is to provide them all with a roughly similar experience," said David Wisner, professor and vice chair of surgery at UC Davis. "If we said, 'well, she can't hear so she can't go to the operating room,' the experience she would have would be inferior to that of the rest, and that would not be right."
Utilizing technology to 'listen'
Using tablet technology to link the sounds in the operating room to an off-site medical transcriptionist, Mooneyham is able to "listen" — in real time — to every word uttered by the surgeon performing the operation. With a microphone clipped to surgical scrubs, the surgeon proceeds normally — discussing the procedure, quizzing and interacting with the student. A transcriptionist, working like a court reporter, receives the audio and simultaneously types the surgeon's words, which Mooneyham can watch on an overhead monitor while also observing — and even assisting when asked — the surgeon.
"I am actively able to participate in the surgery, which of course makes it more interesting," says Mooneyham. "Deaf people are visual learners by nature. It's nice to take part in something that kind of uses our strengths."
The technological solution has pleased everyone, from the surgeons teaching the next generation of physicians to Amanda, who says she now is taking a serious look at the possibility of pursuing surgery after graduating from medical school next year.


text:
Информация о COVID-19Советы по безопасности путешествий
Located deep into the gorge formed by Mundo river, in a unique and rough natural setting, we find Ayna, one of the most picturesque towns in the area.
Because of its special location, and in order to take advantage of the limited available surface, the people of Ayna have dug terraces on the mountain sides for farming. As an example of the town's historic-artistic heritage, we must mention the hermitage of Nuestra Señora de los Remedios, whose most prominent feature is the Mudejar coffered ceiling that covers its nave, and the Castle of Yedra, of Islamic origin, located in the outskirts of the town. As we leave the town we come to Diablo Mirador, highly recommended because of the spectacular panoramic views that it provides. Also interesting is the cave of Niño, with Paleolithic paintings.


text:
- December 28, 2016
Services we offer:
Please note: As an independent repairer, we are not agents or affiliated with any of these brands or their manufacturers/suppliers.
Please use our online booking system to see all available suburbs and available booking times, or visit our Frequently Asked Questions section for further information about the services we provide.
*Limited to certain models. Fixed labour charge may vary depending on oven and stove type. Additional conditions may apply.
Definitely would recommend to my friends.
(03) 8566 7799 or
DBHL Services Pty Ltd
South Yarra VIC 3141, Australia
DBHL Service provides a fixed labour fee electric and gas oven repair service in Melbourne. All our repair work is carried out by a fully insured, licensed, and qualified technician. /p>
*Please refer to our Opening hours | Working Schedule page. All bookings are subject to availability.


text:
Barclays has a new chief executive officer—Antony Jenkins, head of its consumer business, is taking over the spot vacated by Bob Diamond in the heat of the LIBOR scandal. His new position is effective immediately.
Bloomberg reported Thursday that Jenkins will serve under incoming chairman David Walker, once head of Morgan Stanley's European investment bank. Walker succeeds Marcus Agius, who also stepped down over the furor over interbank rate manipulation.
While Jenkins "has been on the board, he's knows what the bank's been doing, he knows the strategy," according to Chris Wheeler, a London-based analyst at Mediobanca, "… he's never been a practicing investment banker." Wheeler was quoted saying, "That will make the people in investment banking nervous, particularly in New York."
The incoming CEO will likely not have an easy time of it. In addition to calls from both shareholders and analysts for the bank to either sell off its investment bank or shrink, he faces a criminal probe by the U.K.'s Serious Fraud Office (SFO) over payments the bank made to Qatar's sovereign wealth fund in 2008 while it was trying to boost cash to avoid a government bailout.
The agency is working with Britain's Financial Services Authority (FSA), which was revealed by the bank last month to be conducting an investigation of four current and former senior employees, including Finance Director Chris Lucas. In a statement on July 27, Barclays said, "The FSA is investigating the sufficiency of disclosure in relation to fees payable under certain commercial agreements and whether these may have related to Barclays capital raisings in June and November 2008."
On Tuesday the bank issued a statement that the SFO has "commenced an investigation into payments under certain commercial agreements between Barclays and Qatar Holding LLC." Barclays managed to avoid having the government step in with a bailout, as it did in the cases of Royal Bank of Scotland Group and Lloyds Banking Group, by raising 7 billion pounds ($11.087 billion) of capital from investors that included both the Qatar and the Abu Dhabi sovereign wealth funds.
In a statement, Jenkins said, "Barclays is a strong universal bank. We have made serious mistakes in recent years. We have much to do."


text:
- 2001 HUMMER H1 used on TV show
- USA Network searched on HUMMER forums
- Available for $45,000 in Miami Beach, Fla.
While most of our featured vehicles were owned by celebrities, this 2001 HUMMER H1 is a star in itself. That's because it was used in an episode of USA Network's hit drama Burn Notice, which follows the life of a former covert operations agent based in Miami. Now it's for sale on AutoTrader.com.
According to Luis, the HUMMER's owner, he found out that USA Network needed to use an H1 through an Internet HUMMER forum. Since the show is filmed in Miami, Luis — a resident of Miami Beach — offered up the H1 for a few days of filming.
"I thought it would be cool to see it on TV, and since I don't drive it much I gave it to them," said Luis, who admitted that he hadn't watched the show before contacting the USA Network. "They were really careful with it and it came back perfect. Sometimes I still watch the episode it was on."
It's easy to see why the Burn Notice crew zeroed in on Luis's H1. The exterior is finished in a highly distinctive Ocean Blue paint scheme, while other features include roof-mounted driving lights, brush guards and oversized wheels that give it a prominent appearance. The truck also boasts distinctive HUMMER styling thanks to 90-degree corners and HUMMER spelled out on the tailgate.
While Burn Notice didn't show the inside of Luis's HUMMER, he says the interior is immaculate, with all items working properly and few showing major wear. That certainly looks to be the case in the photos, and Luis says it's in especially good shape considering its odometer reading of more than 93,000 miles — a lot for an H1, says Luis, since they're mostly used as weekend toys or third vehicles.
But to Luis, and to many other H1 owners, the miles shouldn't be a problem considering the truck's turbodiesel engine, which is known for longevity if maintained properly. If you feel the same way, consider purchasing Luis's truck, which is available for $45,000. Who knows, its film career might not be over yet.
What it means to you: The HUMMER H1 is already a unique off-roader, but Luis's 2001 model is even more special thanks to its previous use on USA Network's Burn Notice TV show.
Looking for a Hummer H1 with a famous past? Tell us in the comments below.


text:
I keep noticing this in most people's introductions, so I figured that I'd make a thread about it here in Off Topic. I've looked through the entire section, and can"t find a pre-existing topic in this vein, so…
What was your first computer?
Mine was a Commodore 64 (the later off-white coloured model), which I got when I was about five or six years old.
Whilst I never really got my head around programming (I don't have the mindset for it – I seem to struggle with learning any sort of second language, for some reason ), I learned several valuable lessons from having a computer of my own, like the need to treat things with care, the value of trying new things, and the very basics of telling a computer what to do from a command-line. The latter is what sometimes causes me to get a bit confused when I encounter people who have a fear of command-lines, as I just can't see what there is to worry about. (I didn"t really deal with GUIs until 1996, when my family got a computer with Windows 95 installed, and I remember all too well how incredibly confusing and unintuitive I found it.)
What was everyone else's?


text:
Sodexo signs ten-year integrated facilities management contract with Rio Tinto
Sodexo announced it has been awarded a ten-year contract with leading global mining company Rio Tinto, estimated at AUD 2.5 billion over the ten years, to deliver integrated facilities management services in the company's extensive operations in Australia's Pilbara region. This is the largest contract of its kind for Sodexo and exemplifies the Group's ability to deliver on major contracts in the Energy & Resources sector.
Sodexo signs ten-year integrated facilities management contract with Rio Tinto
Rio Tinto's assets in Australia's Pilbara region comprise ports, towns, aerodromes, operational sites, accommodation sites, commercial buildings, and residential properties.
Sodexo was successfully awarded the contract after demonstrating a number of strengths in keys areas such as consistency and quality in services, alignment with improving quality in village life, and strong engagement with communities located within their operational footprint.
Michel Landel, CEO, Sodexo, said: "This contract is a major step forward for Sodexo. It demonstrates the value our unique global footprint and deep sectoral knowledge brings to clients like Rio Tinto, to enhance quality of life for teams operating in challenging environments. Mobilizing an international team of nearly 100 industry experts, we designed a solution for Rio Tinto that reflects the commitments of both companies to improved performance, responsible growth and development of the communities in which we operate. I am extremely pleased and proud to expand this partnership, which will bring the best of Sodexo to Rio Tinto."
Johnpaul Dimech, CEO, Mining Worldwide, Sodexo, said: "Looking to the future, Sodexo's role is to support Rio Tinto's long-term strategic plan by continually reengineering ourselves to operate at the right cost while providing seamless service solutions and anticipating evolving needs in quality of life. This is a unique opportunity to strengthen the commitments and values we share to ensure an uncompromising safety culture and engagement with communities who we work alongside with in the Pilbara."
Source: www.sodexo.com


text:
Online Help
Whether you need assistance using our website or just want to learn more about our new features, you are in the right place. Our Online Help is now context-intelligent and can be accessed by selecting the Get Help tab in the lower right-hand corner of any page when you're logged in as a registered user. This dynamic overlay platform ensures that you receive the right guidance at the right time as you navigate our website.
Online Help includes features like:
- On-Screen Guided Tours
- Live Digital Walk Throughs of a Feature or Function
- Job Aids
- Videos
- eLearning Tools
You will also see what we call "i-bubbles" on many account-related pages. These are informational content spots that launch if you hover or click on the icon. The displayed content will aid you in completing tasks or understanding a feature.


text: Home 4:13$38.00PriceLengthSelectWhat would you like stamped? (please type it exactly as you want - including caps & punctuation)50QuantityAdd to CartThe Hand Stamping ProcessEach piece is hand stamped by me (not a machine)...therefore, minor variations (alignment, impression depth) will occur, giving your piece unique character. I like to call my designs sisters, not twins.


text:
How CNBC Dennis Kneale Begged for Blogger Bile
If half the rumors about Dennis Kneale are true, the CNBC host has good reason to fear bloggers and curse them on air. So why is he telling people privately that he manufactured his feud with bloggers for buzz?
After Kneale's repeated on-air outbursts against bloggers, in which he has called them "dickweeds" (see June 30 video above) and "digital imbeciles," Kneale told our source who spoke privately with him that the crusade was dreamed up with his producer, former Fox News man Jerry Burke. The idea was to draw attention and drum up buzz.
Which is kind of pathetic, if you think about it, that a major cable news channel is trying to scare up viewers in the puny financial and media blogosphere. Still, there's an outside chance the strategy could eventually produce PR gold; Kneale scored yesterday with a friendly article in the Observer.
Without specifically addressing what he's said to other people, Kneale told us in an email his feelings are "particularly heartfelt:"
My "animus" toward vicious, anonymous bloggers and blind comments pre-dates my joining CNBC... Look at the scary and brilliant Forbes cover story on net anonymity, which I edited, in October 2007: it should make bloggers feel ashamed.
Kneale's campaign against shame is something of a transformation for the one-time Forbes editor whose antics became legendary after editor Bill Baldwin lured him from the Wall Street Journal in 1998. The most famous story — we've heard others, but this is the one that was widely told on the Forbes staff; i.e. the kind of gossip that pre-dates blogs — occurred at the company Christmas party shortly after he was hired. As relayed by people who worked for the magazine at the time, it goes like this:
After the party, Kneale shared a cab back to Park Slope, Brooklyn, with three other people: a female Forbes writer, a male Forbes staffer and the staffer's wife. Somehow, in the course of the ride, Kneale managed to grope both women. The next morning, the male staffer showed up at Kneale's house to avenge his wife's honor, and when the story reached the office Kneale had to beg several layers of the Forbes masthead to keep his job.
The incident was purportedly the foundation for this Feb. 12, 1999 Page Six blind item:
WHICH business-magazine editor, who keeps a jar of blue jellybeans on his desk labeled Viagra, was called on the carpet for feeling up an underling's wife? The co-workers and their spouses were in a taxi heading to Brooklyn after an office party. The underling later went to the groper's home to get an apology. The groper's boss told him that if it ever happened again, he'd be fired.
Kneale declined to comment on the story, writing, "As a rule I do not respond to blind comments... if Gawker will publish the names of the people behind these 11-year-old rumors, maybe I'd have more to say." We know the names of two of the people said to be in the cab with Kneale and emailed them for their version of events. We'll update if we hear back.
We don't begrudge Kneale some purported drunken mistakes in his past. We all have them. Though the number of tales that have crossed our transom in recent days suggests Kneale has more than his fair share. And so we have to wonder if his hype-seeking crusade against gossipy, anonymous bloggers is less about principle and more an exercise in self-defense.


text:
Dad needs to work on his communication skills—it'll cost him a lot less. When dealing with the travails of adult children of baby boomers, women are engaging in more regular financial conversations with their families, but men may be more willing to reach for their wallets.
These are among the details from the Money Across Generations II study, released in mid-June by Ameriprise Financial, which finds there are significant differences in how American men and women approach money matters, especially those concerning their adult children and parents.
One of the more shocking findings is that fully 93% of baby boomers say they have provided financial support to their adult children, with fathers are significantly more likely than mothers to have helped fund an automobile purchase (58% vs. 48%) or co-signed a loan or lease agreement (42% vs. 32%).
Likewise, findings suggest that men are more likely than women to have paid for their adult children's car insurance (51% vs. 43%) or helped with car payments (37% vs. 29%). More boomer fathers than mothers say they would help their child buy a car or pay off credit card debt than say they'd continue contributing to their own retirement savings.
"Women and men may be predisposed to help family members in different ways—which can cause disagreements and add to family tension if plans aren't discussed upfront," Suzanna de Baca, vice president of wealth strategies at Ameriprise Financial, said in a statement. "Couples may not always agree on the best way to support an adult child or aging parent, but they can often reach a compromise if they simply take time to talk and consider each other's perspective."
According to the survey, boomer women are significantly more likely than men to report having regular conversations with their relatives about finances (54% vs. 46%), health care costs (45% vs. 34%) and family issues (59% vs. 46%). What's more, boomer mothers may be starting a trend; two-thirds (67%) of their daughters say they regularly discuss money with their families, compared to 59% of their sons.
Women may also be more aware of how rising health care costs could impact their parents' retirement security. Significantly more boomer women than men say they have adequately discussed their parents' medical expenses (70% vs. 59%) and how they would pay for a long-term care situation (62% vs. 49%). So why are men staying mum? The most common reason boomer men give for not discussing their parents' current money situation is that they don't feel it is any of their business (28%).


text:
Receive Weekly DealsSubscribe Now or view previous.
Speak with
Lesleigh today!
Very good service with Gayle, she always answered my inquires immediately , lot of Clean Cruising lay adds on board!"- Ann M
Why Clean Cruising?
- Family owned & operated
- Australian based team
- Same consultant from start to finish
- Free printed documentation and ticket wallet
- Combine with flights, hotels, insurance and save
- Flexible payment options
They are designed with the lowest instalments possible while still meeting the cruise line payment deadlines.
Also, there are no fees or late charges, while payments are always flexible to suit your own budget.
We recommend payments be made by direct deposit or BPAY for your convenience and to further reduce your bank fees.
Your cruise consultant is an expert on lay-by plans and can answer all your questions!
South Pacific
- Cruiseline
- Royal Caribbean Cruises
- Ship
- Voyager of the Seas
- Departs
- Sydney
- Returns
- Sydney
- Departure Date
- 23 Mar 2021
- Duration
- 11 nights
Departure Date: 23 Mar 2021
Duration: 11 nights
Ship: Voyager of the Seas
Star rating:
Departs: Sydney
Returns: Sydney
Ports of call: 6
Itinerary and Ports Show / Hide Port Details
|Tue 23 Mar 2021
|Sydney, Australia
|Cruise ships berthed at Sydney's Overseas Passenger Terminal (OPT) access sweeping views of the harbour, Opera House, CBD, Circular Quay ferry terminal, and Sydney Harbour Bridge – all within a few minutes' walk. The White Bay Cruise Terminal for mid-sized vessels that can pass under the Bridge docks two cruise ships. White Bay is 30 minutes' drive by taxi or shuttle bus from the CBD and Central Station, or take a ferry from Circular Quay (am) or Darling Harbour (pm) on cruise days. Long term car parking is not too far away from each terminal. During the crowded summer season cruise ships occasionally tender passengers from Athol Buoy and Point Piper Buoy. QM2 has docked at Garden Island Naval Base. more info
|Wed 24 Mar 2021
|At Sea
|Thu 25 Mar 2021
|At Sea
|Fri 26 Mar 2021
|Noumea, New Caledonia
|Situated in the south of the country's main island Grande Terre, Noumea is the capital of the French Territory of New Caledonia in the Pacific Ocean. It enjoys a sunny, moderate climate, and truly is a vibrant cosmopolitan city, where the South Pacific meets the Riviera. The city maintains much of New Caledonia's unique mix of French and old Melanesian culture, while the U.S. wartime military influence lingers. This is evidenced both in the warmth that many New Caledonian people feel towards the U.S., as well as some of the very 'American' names of several of the quarters of the city. more info
|Sat 27 Mar 2021
|Lifou, New Caledonia
|Lifou (pop. 10,000) is the largest of the Loyalty Islands, a north-eastern Province of New Caledonia, an overseas territory of France, in the South Pacific Ocean. It lies 100 km to the east of New Caledonia mainland. Cruise ship guests are tendered to the pier at Easo. Kanak culture is most present in Lifou, which has managed to preserve its traditional authenticity. The welcoming people receive visitors as favoured guests. The island's natural wealth, consisting of long, deserted beaches and crystal-clear lagoons, make snorkelling and scuba diving very popular. With multi-coloured sea life and coral fauna not found elsewhere in the world, this is not surprising. Tourism and exports of copra, rubber, vanilla and sugarcane are the main industries. more info
|Sun 28 Mar 2021
|At Sea
|Mon 29 Mar 2021
|Port Vila, Vanuatu
|Port Vila (pop. 50,000), the capital city of Vanuatu, formerly New Hebrides, is situated on the south coast of the island of Efate, and is Vanuatu's most important harbour. Megaliners dock at its recently upgraded pier. Its magnificent setting offers stunning views of Iririki and Ifira islands. The waterfront area is so unpolluted that visitors can see live corals and tropical fish from the seawall. Locals are predominately Melanesian, constituting more than 115 distinctly different cultures and languages, making it one of the most culturally diverse countries in the world. Vanuatu is the most popular destination for cruises departing Australia. Bislama is the local language; English and French are also official. Since the 1600s Vanuatu has been occupied by Spanish, English and French. more info
|Tue 30 Mar 2021
|Mystery Island, Vanuatu
|Mystery Island (Nyeug) is located just 600m off the SW corner of Aneityum, the southernmost inhabited island in the Vanuatu archipelago of the South Pacific. Small at 900m by 200m, it is surrounded on three sides by a fringing reef 3 km by 2 km that encompasses an abundance of sea life. The islet is uninhabited apart from tourists. In 2020 at least 11 ships from 6 cruise lines will make 75 visits to Mystery Island, which reflects the growing attraction to this piece of paradise. Cruise ships tender at the newly-built pier, and are greeted by friendly locals who sail the 1.5 km from Aneityum Island. more info
|Wed 31 Mar 2021
|Isle Of Pines, New Caledonia
|The Isle of Pines ("the closest island to Paradise") is located 48 km SE of New Caledonia's mainland, in the South Pacific Ocean. New Caledonia is an overseas territory of France. Just 15 km across and surrounded by its own extensive reef system, the Isle is known for its ancient pine tree groves spread across the island. Cruise visitors are tendered to the pier in the blue waters of Kuto Bay, with its crescent of white sand backed by pines, palms and coconut trees. L'Île-des-Pins boasts fabulous flora and fauna, interspersed with wild tropical orchids, ferns, pines and palms. It lies within the New Caledonia lagoon that offers snorkelling and scuba diving. Its population of 2000 are mainly Melanesian Kanaks. more info
|Thu 1 Apr 2021
|At Sea
|Fri 2 Apr 2021
|At Sea
|Sat 3 Apr 2021
|Sydney, Australia
|Cruise ships berthed at Sydney's Overseas Passenger Terminal (OPT) access sweeping views of the harbour, Opera House, CBD, Circular Quay ferry terminal, and Sydney Harbour Bridge – all within a few minutes' walk. The White Bay Cruise Terminal for mid-sized vessels that can pass under the Bridge docks two cruise ships. White Bay is 30 minutes' drive by taxi or shuttle bus from the CBD and Central Station, or take a ferry from Circular Quay (am) or Darling Harbour (pm) on cruise days. Long term car parking is not too far away from each terminal. During the crowded summer season cruise ships occasionally tender passengers from Athol Buoy and Point Piper Buoy. QM2 has docked at Garden Island Naval Base. more info
Don't miss out on Voyager of the Seas over 11 relaxing nights aboard the South Pacific cruise to South Pacific. Your ship starts out from Sydney and calls into 6 ports in 3 countries before returning to Sydney. Your 3.5 star cruise from Royal Caribbean Cruises has 1 forward departures. You can join this cruise today for as little as $154 per person/day, twin share. So call now and get expert, friendly advice.
Voyager of the Seas Overview
Voyager of the Seas arrived in Sydney Harbour with fanfare in November 2019 for a six month season, following an AU$143m refurbishment: blue hull, dual racer waterslides, 'new' Vitality Spa and kids' spaces, and a laser tag game. So, take a short 2 or 3 night 'office break' cruise (or find out if cruising is for you). South Pacific sojourns range from 9 to 14 nights. Voyager of the Seas will return to Sydney from late October 2020 to March 2021, offering a range of cruises out of Sydney to Queensland and the South Pacific. Consider the upcoming two week Sydney to Singapore trip in April 2020, then until June select a 3- or 4-night cruise along the Malay Peninsula. From July through September 2020 come aboard in Hong Kong to visit Japan and maybe Taiwan or Vietnam, over four to nine nights. Voyager of the Seas caters for adults, and especially families, with its many activities. And the Royal Caribbean International mobile app allows guests to check in and manage their on-board booking activities, shows, dining and shore excursions.
Staterooms come in four main categories and 22 grades, with variations based on guests' needs: Suites/Deluxe Staterooms, Balcony Staterooms, Outside Staterooms and Interior Staterooms. Interiors are now fitted with 80 inch "virtual balcony" displays. When selecting accommodation consider the view, the level of privacy, and location near to or far from activity areas. All staterooms come with private bathroom, vanity area, hair dryer, interactive TV and phone. Many cabins are family-friendly with up to four additional bunk beds, and interconnecting rooms. Promenade staterooms overlook the interior Royal Promenade, and some accommodate up to six people. There are no single cabins, and many are wheelchair-accessible. In-cabin service and dining is available 24-hours.
Food and Dining
For the Main Dining Room, spread over three levels, select from three dining choices before cruising: fixed seating at the same table nightly, at either early or late sitting; open-seated My Time Dining (with pre-paid gratuities) at a flexible time; and early sitting My Family Time Dining that allows children aged 3 to 11 years to leave for their Adventure Ocean kids club. Menus feature healthy, vegetarian and kosher options. Special dietary needs can be catered for by giving advanced notice. Menus change daily throughout the cruise. Evening dress is casual or smart casual. Expect one to three formal evenings in the Main Dining Room during your cruise. There are seven complimentary eating options, including Windjammers Café, Jade Sushi and Izumi Japanese cuisine, Giovanni's Italian, Café Promenade for coffee, pastries/snacks, and room service.
Signature features to entertain you include: Broadway-style productions in the Main Theatre; Studio B's ice shows, comedy, game shows, onboard parties, and cooking demonstrations (and when the rink is not being used, skate for free); and gaming in Casino Royale. Previous upgrades added a 3D movie theatre. Live music features around the pool, in the main dining room, and in many lounges, bars and specialty venues. There are always parties and parades to join. Alternatively, just stroll around the Royal Promenade and shop duty-free, or for a quiet time retire to the Library/Card Room or Internet Café.
Other Ships
- Adventure of the Seas
- Allure of the Seas
- Anthem of the Seas
- Brilliance of the Seas
- Empress of the Seas
- Enchantment of the Seas
- Explorer of the Seas
- Freedom of the Seas
- Grandeur of the Seas
- Harmony of the Seas
- Independence of the Seas
- Jewel of the Seas
- Liberty of the Seas
- Majesty of the Seas
- Mariner of the Seas
- Navigator of the Seas
- Oasis of the Seas
- Ovation of the Seas
- Quantum of the Seas
- Radiance of the Seas
- Rhapsody of the Seas
- Serenade of the Seas
- Spectrum of the Seas
- Symphony of the Seas
- Vision of the Seas
What's included?
- All main meals on-board
- Coffee, tea, iced water, lemonade 24 hrs
- Anytime or fixed sittings, & multi-venue dining
- In-cabin dining at no charge
- Use of ship facilities - indoor & outdoor
- Entertainment - live music and/or shows, movies
- Activities - organised & individual
- Bridge director on select cruises
- Infant crèche, kids clubs & teen programs
- Cruise Director & all English speaking staff
- Special needs requests & service animals allowed
- Ship-shore-ship transfers
What's excluded?
- Airfares, accommodation & transfers not specified
- Shore & land excursions and meals not specified
- Alternate specialty dining venues
- Alcoholic beverages, soft drinks
- Casino gaming, bar expenses
- Certain entertainment, fitness classes
- Items & services of a personal nature
- Medical services, vaccination costs
- Laundry and/or valet charges
- Wi-Fi, Internet, satellite/mobile phone & fax charges
- Babysitting, individual or in groups (from 1 yr)
- Passport & visa fees
- Insurances of all kinds
- Increases in third party charges or taxes
- Customary land tour gratuities are welcome
- Service charge: A$ 11.90/US$ 12) per guest (A$ 14.20/US$ 14.25 for suite guests) pp/night is included in pre-paid fare. Or, service charges can be paid onboard. For all ages. Modify for inadequate service.
- Service charge 15% automatically added to bar, mini-bar, spa & salon services.
What's onboard?
- Atrium social centre
- Inside cabins with virtual balconies
- Royal Promenade (dining, bars)
- Shops, Souvenirs
- Main Dining Room
- My Time Dining or Traditional (2 sittings)
- My Family Time Dining (kids eat early)
- Dress for casual, smart casual, & formal dress nights
- Windjammer Marketplace buffet
- Jade Sushi (dinner)
- Room service continental breakfast
- Beverage packages
- Chops Grille (lunch, dinner)
- Giovanni's Table (lunch, dinner, for 87)
- Izumi Japanese (lunch, dinner)
- Jamie's Italian (lunch, dinner)
- Johnny Rockets (lunch, dinner)
- Room service: meals other than continental breakfast
- Noodle Shop (lunch, dinner)
- Ben & Jerry's Ice Cream ($)
- Café Promenade
- Bars, clubs, lounges (14)
- Broadway Production
- Studio B (ice skate, laser tag, parties, cooking)
- 3D Cinema
- Movies on pool deck
- Comedy, jazz, karaoke
- Nightclub
- Casino
- VOOM fast internet package (pay)
- VOOM fast internet + streaming package (pay)
- Royal Caribbean app (to check-in, & manage everything on board)
- Swimming pools (3)
- Whirlpools (6)
- Waterslides (2)
- Perfect Storm water slide
- Solarium adults only pool
- Sun deck
- Vitality Spa
- Fitness Centre, gym
- Basketball court
- Jogging track
- Sports courts
- Laser Tag
- Table tennis
- Mini-golf course
- Games, contests, dancing
- Internet, Wi-Fi (pay)
- Enrichment lectures (some pay)
- Library/Card room
- Photo studio
- Conference Centre
- Weddings, Vows at Sea
- FlowRider surf simulator (pay)
- Ice-skating
- Rock-climbing wall
- Sky Pad VR bungee trampoline (may be closed)
- Adventure Ocean (programs for 3-5, 6-8, 9-11, 12-14, 15-17 y)
- Video games arcade (pay), Teen disco
- DreamWorks for kids
- Royal Babies & Tots activities (18-36 mths pay)
- "Late Night Party Zone" group sitting
- Laundry, drycleaning (pay)
- Mobile phone reception
- Elevators
- Electricity 110/220V
- Wheelchair accessibility
- Medical centre
- No emotional support animals
You will then have the option to send us an enquiry or you can call us for FREE and speak to one of our Cruise Specialists who will check availability and find you the best possible price.
Select Cabin Category
|23 Mar 2021 (Tue)
$154 per day
$167 per day
$193 per day
$352 per day
Prices are twin share per person in AUD, include all taxes and are subject to change.
View the current location for Voyager of the Seas here!


text:
With midnight approaching, the Baltimore Orioles' bats awoke one more time. Now they have a last shot to finally overtake the New York Yankees. J.J. Hardy hit an RBI double in the 13th inning and Baltimore bounced back from a demoralizing loss to outlast the Yankees, 2-1, last night, forcing a deciding Game 5 in the AL division series.
With midnight approaching, the Baltimore Orioles' bats awoke one more time.
Now they have a last shot to finally overtake the New York Yankees.
J.J. Hardy hit an RBI double in the 13th inning and Baltimore bounced back from a demoralizing loss to outlast the Yankees, 2-1, last night, forcing a deciding Game 5 in the AL division series.
After splitting 22 games this year, it all comes down this: a winner-take-all game for a spot in the AL championship series against Detroit.
Game 1 winner CC Sabathia was set to pitch the deciding game for the Yankees against Jason Hammel.
The Orioles were 0 for 8 with runners in scoring position until Hardy doubled off David Phelps with one out to score Manny Machado, who had doubled.
Phelps had relieved in the 12th after Joba Chamberlain was hit by a flying broken bat, forcing him to leave with a bruised right elbow.
Jim Johnson bounced back from allowing Raul Ibanez's pinch-hit homer in the ninth inning Wednesday to earn his second save in the series with a perfect 13th.
Hours after learning Joe Girardi had kept quiet that his father died last Saturday, the Yankees couldn't rally late. This time, Girardi called upon Eric Chavez to pinch hit for slumping Alex Rodriguez. He lined out to third base to end it.
Baltimore's win pushed all four division series to five games for the first time since the round began in 1995.
The Orioles have been pursuing the Yankees all season, cutting a 10-game deficit in July to zero in early September. Baltimore and New York were tied 10 times atop the East in the final month but the Yankees wrapped up the division on the final night of the regular season.
After dropping Game 1 , the Orioles rebounded with another one-run win in a season in which they had the best record in the majors in such games at 29-9. But they lost in stunning fashion in 12 innings Wednesday night, when Ibanez homered twice in his two at-bats after pinch-hitting for Rodriguez.
The team that caught the Yankees in September didn't rattle, though.
They came right back Thursday for their first win in extras against the Yankees this year. They also lost twice to New York in extra innings before going on a run of 16 straight wins after the ninth inning.
It wasn't easy, though. Nate McLouth homered off Phil Hughes to start the fifth, but Baltimore wasted three shots with a runner on third base in the first four innings. They struggled against New York's bullpen.
Matt Wieters knocked Chamberlain out of the game with a broken-bat single to lead off the 12th inning that struck his surgically repaired right elbow. Fans sat silent as Chamberlain bent over in pain. He was checked out by trainer Steve Donahue and Girardi.
Chamberlain tested the elbow with three pitches before walking off the field. X-rays were negative.
Many of the Orioles gathered near their bat rack in the dugout for an impromptu cheer before the 13th and Machado then led off with a double.
One out later, Hardy hit a one-bouncer off the wall in left field for his first RBI of the series.
Orioles manager Buck Showalter professed confidence in the 51-save Johnson before the game. He backed it up by calling on him — the seventh Baltimore reliever — for his fourth appearance of the series. He lost the opener after giving up five runs in the ninth and sandwiched saves around his trying homer to Ibanez.
The Yankees held a moment of silence for Girardi's dad, Jerry, who died Saturday at 81 and had a long bout with Alzheimer's. Joe Girardi stood alone in front of the Yankees dugout and wiped his eyes afterward. He blew a kiss to someone in the stands, then fist bumped several coaches and players.
Facing elimination for the second time this postseason, Showalter turned again to Joe Saunders. Acquired by Baltimore on Aug. 26 from Arizona, Saunders pitched 5 2-3 innings of one-run ball in the wild-card win over Texas.
He was just as crafty against New York, engaging with Phil Hughes in a duel of who could get out of the tougher jam.
The Yankees put a runner on in every inning against Saunders but failed to scored until the sixth.
Derek Jeter lined an outside pitch to right field for a leadoff double in sixth, showing no ill effects of a bruised left foot that kept him from playing shortstop in the postseason for the first time in his career.
He advanced on Ichiro Suzuki's sacrifice and scored on Robinson Cano's grounder to second. Showalter then lifted Saunders for right-hander Tommy Hunter to face Rodriguez. A-Rod struck out to loud boos and tossed his bat.


text:
A Place of Discovery
Historic Fort Charrette Trading Post
by Bob McEowen
Nearly 200 years ago Meriwether
Lewis and William Clark set forth on their historic Corps of Discovery
exploration of the Missouri River. Not far into the journey they stopped
at a small outpost near present-day Washington, Mo. In
their diaries the explorers recalled La Charrette as the last white settlement
they encountered.
Established in 1762 by French
fur trader Joseph Chadron, the fortified village is long gone, abandoned
in the floods of 1842-43. But a sense of La Charrette which literally
translates as "little wagon" lives on thanks to the efforts of
architectural historian Crosby Brown.
Brown, who has restored historic
buildings throughout the United States, discovered the remains of the
old trading post in a farm field in the late 1960s and painstakingly relocated
it to a site east of Washington. Today, the restored trading post houses
an impressive collection of 18th- and 19th-century artifacts and period
Divided into three rooms,
the post features a trade room, a blacksmith's shop and a recreation of
frontier living quarters.
The Fort Charrette trading
post is open for tours by groups and individuals only by appointment.
While admission is not charged, donations are encouraged.
For more information phone
Brown at (636) 239-4202.


text:
The Oregon Library Association is your organization to help you develop your skills and develop your library. Do it for yourself, do it for your library, do it for all of Oregon's libraries: join today! You'll be in the company of library professionals, library support staff, public library trustees, and friends of libraries across the state.
We invite you to attend the annual OLA conference and the available sessions and workshops throughout the year. We also want to encourage you to consider joining an OLA unit to become more involved in advancing library services for Oregonians.
Hear what OLA leaders have to say about the value of being actively involved in OLA in testimonial videos.
Oregon Library Association P.O. Box 3067 | La Grande, OR 97850 Phone: (541) 962-5824 | Email: [email protected]


text:
- 1 Development/Tutorials/D-Bus/Intermediate D-Bus
- 2 Write a class
- 3 Generate XML
- 4 Edit the XML
- 5 Generate Adaptor and Interface classes
- 6 Qt Meta object magic
- 7 Use the adaptor and interface classes
- 8 Varia
Development/Tutorials/D-Bus/Intermediate D-Bus
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
|Tutorial Series
|Creating Interfaces
|What's Next
|Creating Interfaces
|Further Reading
DBus-based IPC has been intregrated nicely in the Qt framework. Qt also provides [[1]] and [[2]] to communicate with remote objects, so you don't have to manually construct [[3]]. These Adaptors and Interfaces are very similar to the Stubs and Proxies used in other RPC mechanisms like [[4]] and [[5]].
So, Qt provides a way to talk to objects in a different process and it contains Adaptors and Interfaces to do so in a nice, object-oriented way. A number of types can be marshaled and unmarshaled by default, (QString, QPoint, QRect, etc.), so you can just use those in DBus-enabled classes without extra effort.
However, using a custom type is somewhat more complicated, as you need to tell Qt how to handle it. That is what this tutorial is about.
An example was created to go along with this HOWTO. It is a very basic chat application that communicates through the session DBus.
Write a class
Write the class you would like to publish, complete with signals, slots and properties, using custom types as you go along.
The class being published in the example is the following:
{{{#!highlight cpp class Chat : public QObject {
Q_CLASSINFO("D-Bus Interface", "demo.Chat") Q_PROPERTY( QStringList users READ users)
void userAdded(const QString& user); void userRemoved(const QString& user);
void messageSent(const Message &message);
public slots:
void addUser(const QString &user); void removeUser(const QString &user);
void sendMessage(const Message &message);
Chat(QObject* parent = 0); virtual ~Chat();
QStringList users() const;
QStringList m_users;
}; }}}
It contains simple user management and provides the means to send a message. The Message class is the custom type in the example. It contains only a user and a text message. There is no reason why the methods in the Chat class couldn't just take 2 QString parameters, but then Qt would be able to do everything automatically and we need something irregular for this howto.
To show that Qt supports a lot of types right out of the box, a QStringList was used. This will become clear further on.
The Q_CLASSINFO declaration provides a means to specify an interface name that will be take into account by the xml tools.
Typically, the company name is included in the name, resulting in declarations like: {{{ Q_CLASSINFO("D-Bus Interface", "com.firm.department.product.interface") }}}
Generate XML
Generate the xml description of the class using the qdbuscpp2xml tool provided by Qt.
If you run qdbuscpp2xml on the Chat.hpp file in the example, you will get the following output: {{{#!highlight xml <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <node>
<interface name="demo.Chat"> <property name="users" type="as" access="read"/> <signal name="userAdded"> <arg name="user" type="s" direction="out"/> </signal> <signal name="userRemoved"> <arg name="user" type="s" direction="out"/> </signal> <method name="addUser"> <arg name="user" type="s" direction="in"/> </method> <method name="removeUser"> <arg name="user" type="s" direction="in"/> </method> </interface>
</node> }}}
Note that this xml file contains all methods from the Chat class using standard Qt types. If you were to generate Adaptor and Interface classes based on this xml, you would be able to add and remove users, get the list of users and receive the userAdded and userRemoved signals. Even the QStringList type is handled automatically.
The methods dealing with the Message type, however, are not available. To generate an Adaptor and an Interface capable of dealing with the Message type, you need to modify the XML.
{{{#!wiki tip Tip
You may want to generate the Adaptor and Interface using only the automatically generated xml. It might be helpful to compare them to the versions we will generate further on. }}}
Edit the XML
The qdbusxml2cpp tool needs to be told about the custom types, so you need to add some type information to the XML.
This is done by specifying annotations: {{{#!highlight xml <annotation name="com.trolltech.QtDBus.QtTypeName" value="*customType*"/> }}}
The syntax differs slightly depending on wheter you're using it in a signal/method or in a property (the {{{.In0}}} is omitted for properties), but it is fairly straightforward. The following is an example dealing with the QRect type (it has no relation with the example): {{{#!highlight xml <property name="rectangle" type="(iiii)" access="readwrite">
<annotation name="com.trolltech.QtDBus.QtTypeName" value="QRect"/>
<signal name="rectangleChanged">
<arg name="rect" type="(iiii)" direction="out"/> <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QRect"/>
<method name="changeRectangle">
<arg name="message" type="(iiii)" direction="in"/> <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="QRect"/>
</method> }}}
Don't worry too much about what type to specify; any type that is somewhat too complex to get marshaled/unmarshaled by default handlers will be processed using the custom type, so it really doesn't matter what type you use. You could even use {{{"(iiii)"}}} for everything.
If any of your methods returns a complex result, you need to add an annotation for com.trolltech.QtDBus.QtTypeName.Out0 as well.
{{{#!wiki note Note
The XML above uses QRects. QRect is supported by default, so the code above would be generated for you by qdbuscpp2xml. }}}
The complete interface used for the Chat interface in the example is as follows: {{{#!highlight xml <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> <node>
<interface name="demo.Chat"> <property name="users" type="as" access="read"/> <signal name="userAdded"> <arg name="user" type="s" direction="out"/> </signal> <signal name="userRemoved"> <arg name="user" type="s" direction="out"/> </signal> <signal name="messageSent"> <arg name="message" type="a(ii)" direction="out"/> <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="Message"/> </signal> <method name="addUser"> <arg name="user" type="s" direction="in"/> </method> <method name="removeUser"> <arg name="user" type="s" direction="in"/> </method> <method name="sendMessage"> <arg name="message" type="a(ii)" direction="in"/> <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="Message"/> </method> </interface>
</node> }}}
Generate Adaptor and Interface classes
Now that the XML contains all the information qdbusxml2cpp needs, it's time to generate the Adaptor and Interface classes.
Since custom types are involved, you will need to specify some extra includes, so the Adaptor and Interface classes can find all the type information.
For the DBusChat example, the Adaptor and Interface classes were created by calling {{{ qdbusxml2cpp Chat.xml -i Message.hpp -a ChatAdaptor qdbusxml2cpp Chat.xml -i Message.hpp -p ChatInterface }}}
Qt Meta object magic
Even though we now have an Adaptor to wrap an object and an Interface to talk to it, you will not be able to compile them as some extra things are necessary for the Qt Meta object system to be able to process the custom type.
Register the type
Declare the type as a Qt meta type by adding a {{{ Q_DECLARE_METATYPE }}} statement to the header file containing your custom type definition.
Add qRegisterMetaType and qDBusRegisterMetaType calls to enable the framework to work with the custom type.
In the example's Message class, a static method is included to do this: {{{#!highlight cpp void Message::registerMetaType() {
} }}}
{{{{#!wiki important Important
You need to register the type both in the application publishing the object and in the application using it, since both applications need to be able to handle the custom type.
Also take care to register the custom types before calling methods on the Adaptor/Interface that need them.
Qt will show error output if you are using types it cannot (yet) handle, but you should be aware of it nonetheless. }}}}
Provide QDBusArgument streaming operators
When a DBus call is executed that uses a custom type, the Qt framework will need to marshal (serialize) or unmarshal (unserialize) the instance.
This is done by using the QDBusArgument stream operators, so you will need to implement those operators for your custom types, as explained [[6]].
For the Message type from the example, these operators are very simple, since it only contains 2 strings: {{{#!highlight cpp QDBusArgument &operator<<(QDBusArgument &argument, const Message& message) {
argument.beginStructure(); argument << message.m_user; argument << message.m_text; argument.endStructure();
return argument;
const QDBusArgument &operator>>(const QDBusArgument &argument, Message &message) {
argument.beginStructure(); argument >> message.m_user; argument >> message.m_text; argument.endStructure();
return argument;
} }}} QDBusArgument provides functions to handle much more complex types as well.
Use the adaptor and interface classes
You are now ready to start using the Adaptor and Interface classes and have your custom type handled automatically.
Publishing an object using an Adaptor
To publish an object, you should instantiate an Adaptor for it and then register the object with the DBus you are using.
This is the code that publishes a Chat object in the DBusChat example: {{{#!highlight cpp Chat* pChat = new Chat(&a); ChatAdaptor* pChatAdaptor = new ChatAdaptor(pChat);
if (!connection.registerService(CHAT_SERVICE)) {
qFatal("Could not register service!");
if (!connection.registerObject(CHAT_PATH, pChat)) {
qFatal("Could not register Chat object!");
} }}}
The ChatAdaptor instance will process any incoming DBus requests for the Chat object. When a method is invoked, it will call the matching slot on the Chat object. When the Chat object emits a signal, the ChatAdaptor will transmit it across DBus.
Talking to a remote object using an Interface
To talk to a remote object, you need only instantiate the matching Interface and pass the correct service name and object path.
In the DBusChat example, a connection is made with a remote Chat object like this: {{{#!highlight cpp demo::Chat chatInterface(CHAT_SERVICE, CHAT_PATH, connection); }}}
Using the remote object in your application
Once you have an instance of the Interface class, you should be able to interact with the remote object like you would with any other QObject.
The ChatWindow class in the DBusChat example, for instance, adds a user simply by calling {{{#!highlight cpp m_chatInterface.addUser(m_userName); }}}
Furthermore, ChatWindow is able to respond to signals emitted by the Chat object by connecting to its Interface class just like with any other QObject: {{{#!highlight cpp connect(&m_chatInterface, SIGNAL(userAdded(QString)), SLOT(chat_userAdded(QString))); connect(&m_chatInterface, SIGNAL(userRemoved(QString)), SLOT(chat_userRemoved(QString))); connect(&m_chatInterface, SIGNAL(messageSent(Message)), SLOT(chat_messageSent(Message))); }}}
We're not too wild about having to do some of this stuff manually, but using the Adaptors and Interfaces is much more convenient than writing code that manually constructs dbus calls and processes the replies.
One might hope qdbuscpp2xml and qdbusxml2cpp will be extended to support custom types by analyzing an entire code tree instead of just the header files passed to them, so they would be able to recognize the custom types and add methods/signals/properties to the XML accordingly.
Alternatively, a feature could be added to Qt Creator to support the kind of solution presented here in a automated fashion. Since Qt Creator already needs to be aware of custom types used in a project, this might be more feasible (or at least easier) than modifying the qdbus tools.
Adventurous serialization of enumerations
If you happen to use a lot of enumerations and you need them to be exported across DBus, you will likely end up with QDBusArgument stream operators for every enumeration. A basic implementation could simply cast the enum to and from an int, resulting in code looking like this: {{{#!highlight cpp QDBusArgument &operator<<(QDBusArgument &argument, const EnumerationType& source) {
argument.beginStructure(); argument << static_cast<int>(source); argument.endStructure(); return argument;
const QDBusArgument &operator>>(const QDBusArgument &argument, EnumerationType &dest) {
int a; argument.beginStructure(); argument >> a; argument.endStructure();
dest = static_cast<EnumerationType>(a);
return argument;
} }}}
You will notice that this code will be much the same for all enumerations. The only part that will differ is the "EnumerationType".
Thankfully, C++ knows how to handle templates, so we should be able to write just the one template-based implementation. However, we need that one implementation to handle only enumeration types, not the other custom types we want to send across DBus. Otherwise, any custom type would be cast from and to an integer value, which is probably not what you want for all types, especially not for complex ones.
This is where the [library] comes to our aid. With some magic, it supports conditionals within template definitions.
That way, we can provide QDBusArgument marshaling and unmarshalling implementations that will be used only in situations when such a conditional is true.
This is what the marshaling and unmarshaling code actually looks like: {{{#!highlight cpp template<typename T, typename TEnum> class QDBusEnumMarshal;
template<typename T> class QDBusEnumMarshal<T, boost::true_type> { public: static QDBusArgument& marshal(QDBusArgument &argument, const T& source) { argument.beginStructure(); argument << static_cast<int>(source); argument.endStructure(); return argument; }
static const QDBusArgument& unmarshal(const QDBusArgument &argument, T &source) { int a; argument.beginStructure(); argument >> a; argument.endStructure();
source = static_cast<T>(a);
return argument; } } }}}
The marshal implementation can now be called by invoking: {{{#!highlight cpp QDBusEnumMarshal<T, typename boost::is_enum<T>::type>::marshal(argument, source); }}} with T being the type we want to marshal
Some further glue code is needed to link the implementation to the QDbusArgument stream operators: {{{#!highlight cpp template<typename T> QDBusArgument& operator<<(QDBusArgument &argument, const T& source) {
return QDBusEnumMarshal<T, typename boost::is_enum<T>::type>::marshal(argument, source);
template<typename T> const QDBusArgument& operator>>(const QDBusArgument &argument, T &source) {
return QDBusEnumMarshal<T, typename boost::is_enum<T>::type>::unmarshal(argument, source);
} }}}
Put all that in a header file and include it where you declare the enumerations that need to pass across DBus. The compiler is now able to find the streaming operators all on its own.
You do still need to declare the enumeration as a metatype and register it with the Qt meta object system though.
{{{#!wiki note Note
You only need a boost header file to do this (boost/type_traits/is_enum.hpp, to be exact). There is no need to have the entire library installed, which is rather nice on an embedded platform, since the boost library takes up quite a bit of space. }}}