text:
>> Entertainment Columns
>> Kats
The answer to Howard Stern's 'silly question' is in new book
Howard Stern says of interviewing Conan O'Brien, "It was the perfect interview." .
By	John Katsilometes	/ Las Vegas Review-Journal
In this April 14, 2018 file photo, Howard Stern speaks at the 2018 Rock and Roll Hall of Fame Induction Ceremony in Cleveland. The shock jock's "Howard Stern Comes Again" will be published May 14, Simon & Schuster announced Tuesday. It's his first book in more than 20 years, and was No. 1 on Amazon.com within hours of its announcement. Stern's previous books, "Private Parts" and "Miss America," both spent months on The New York Times' bestseller list. (Photo by Michael Zorn/Invision/AP, File)
"Howard Stern Comes Again," Stern's third book, is a revealing published account of his favorite interviews. (Simon & Schuster)
Howard Stern, second from left, Beth Ostrosky Stern, left, Tracy Morgan, third from left, Allen Maldonado, and Samira Wiley watch the game action during the first half of an NBA basketball game between the New York Knicks and the Atlanta Hawks, Wednesday, Oct. 17, 2018, at Madison Square Garden in New York. (AP Photo/Mary Altaffer)
Radio personality Howard Stern awatch the New York Knicks play the Indiana Pacers at Madison Square Garden in New York, in this Dec. 8, 2001 file photo. Clear Channel Radio announced Wednesday that it had suspended broadcast of Stern's show after assessing the content of his Tuesday, Feb. 24, 2004 show. (AP Photo/Jeff Zelevansky) JEFF ZELEVANSKY
From left, Nick Canon, Heidi Klum, Howard Stern, Mel B and Howie Mandel star in "America's Got Talent." (Justin Stephens/NBC)
Tucked into this interview with legendary broadcaster and published author Howard Stern is the possibility he'll visit Vegas, and soon.
"I heard from Steven. He wants me to go out there," Stern says. "I'm going to try."
Steven is Steven Tyler, and the "try" would be to catch Aerosmith at Park Theater. Tyler actually sent a persuasive text to Stern this month, inviting him to the show. A line from Tyler's lyrical note: "It seems every time I sing my heart out I have to grow another."
Maybe it'll work. Aerosmith is back on June 19. By then, Stern's new book, "Howard Stern Comes Again," released today, will be out a month and he'll be about finished with this book-promotion odyssey.
"Comes Again" is Stern's third book, following "Private Parts" and "Miss America." The new release by Simon & Schuster is an array of Stern's best interviews, spelled out in a Q&A format. It can be absorbed as pure entertainment, a reference book or an updated memoir of Stern's career.
We chatted for 10 minutes on the phone Saturday afternoon. What transpired:
Review-Journal: Through all of these interviews, you hold up Conan O'Brien as your favorite. Why him?
Howard Stern: I've been asked so many times over the years, "What is your favorite interview?" I've actually felt it was kind of a silly question, because there's no favorite interview, in terms of who the person is. What I meant by "favorite interview" was I'm neurotic about that radio show, and pretty much everything I do. I'm obsessive. I'm always left with the feeling afterward that I didn't get it perfectly right. I missed something. I left this or that on the table, the guest didn't say this or that. I have a hard time living with these interviews afterwards.
With Conan, there was this weird revelation. That was the one time I went, "Wow, there wasn't a question I left out, I really heard my guest." I got the funny out of him, I got the seriousness of his depression. He was so brilliant. It was like the perfect conversation. I went home and said, "You know, I'm not having that feeling that I blew it."
It's a definitive explanation, given the quality and quantity of everyone you've interviewed.
People have written me who like Jerry Seinfeld, or maybe Rosie O'Donnell, or Lady Gaga saying, "That was the best one!" for them. It was Conan only because I felt so good afterward.
You write about your health scare, having a cyst removed from your kidney. I have to ask how you are feeling.
My health is good, I'm feeling good. Listen, I've been reflecting on this whole idea of doing a book promotion — the last time I did any book promotion was 20 years ago, and it feels like I was shot out of a cannon. You have to pace yourself, but I'm doing well. The reason I wrote about that health scare was I was trying to figure out why I was even writing this book. I wanted something to leave for my kids, or something I was really super proud of. That was really the driving force.
You still seem young, at 65.
But the health thing really brought a reality to me I really thought I was invincible. My parents are 96 and 91, I'm just supposed to live forever. It was, wow, a real smack in the head. It turned out to be nothing, but to be told there's a 95 percent chance you have cancer of the kidney is no picnic. It was a wake-up call.
Did it lead to any lifestyle changes?
Not really. It was a cyst, turned into being pretty careful about what I ate, not really a drinker and I'm not a smoker. I've always exercised.
Was this deep enough that it caused you to step back and look at what you haven't done in your life, or your career?
Not that so much, for me, but it filled me with regret. I love to read now, and in the past I've missed out on reading a lot of books. I've fallen in love with painting in the past few years and I'm like, "Oh, damn," and one day I'll get off the radio and have time to draw and paint and get proficient at it.
I'd also just like to hang out with my wife and my kids, get to know them better. But now everything is time-compressed. The sand in the hourglass is running out, and it's kind of mind-blowing.
What kind of painting would you do?
Watercolor, primarily. In the book, I put in a painting of my cat, Sophia, who died. My wife and I are really into animal rescue. You try to paint things that are meaningful to you, so I do a lot of landscape, I've done a bunch lot of our cats. I'm trying to find myself. Learning how to draw is the key to it all. I spend a lot of time, when I have free time, which isn't a lot, I work on it. I'm learning.
Like how Tony Bennett has turned painting into his second passion?
Yeah. In fact, I was working at a restaurant years ago and he did a little portrait of me. He's very good — he studied at the Arts Students' League (of New York), so he is very good. But I see a lot of famous people sell paintings, and people are just buying the signature rather than the fact that they're proficient. I'm not anyone to judge because I'm not that good, either … But i'm not looking to sell them. It's just something I want to do for myself, like an art journal.
The book's format really draws you into these interviews, like you can hear the voices. How much did you contribute to the construction and editing?
I did not want to write another book at all. But I'd always toyed with the idea of releasing these interviews in some way, as a compilation. So in order to sort of seduce me into doing it, they came to me with all these interviews and said, "Look, you don't have to do anything at all! We did it all for you!" But when we sat down and looked at it, these weren't my favorite interviews. By favorite, I wanted a smattering of rock 'n' rollers, showbiz people, the guy who says he was at 9-11 but he wasn't, some infamous people, I wanted to get Trump in there.
So you went back and re-started the process?
I had to start from scratch, and that meant going through transcripts and figuring out if something was worthwhile. What am I trying to say about the art of interviewing and my career? Then I started writing pieces with the interviews, and stand-alone pieces, and that's why it took two years to do, with constantly revising. But it's clearly a reflection really and truly of me. It can't be done by somebody else.
As a reader, do these conversations still hold your interest?
I gotta tell you, I did these interviews, and remembering Jerry Seinfeld very, very well and I don't remember any of this. The written word is powerful. Reading them is worthwhile, they teach us something. It teaches people what I might be thinking these days, too, a lot of my own personal growth. I wanted to bring the reader on a journey and really give them a sense of me.
John Katsilometes' column runs daily in the A section. His PodKats podcast can be found at reviewjournal.com/podcasts. Contact him at jkatsilometes@reviewjournal.com. Follow @johnnykats on Twitter, @JohnnyKats1on Instagram.
Posted on: Celebrity, Entertainment, Entertainment Columns, Kats
Tagged: Howard Stern, mc-entertainment
Water Grill opens at The Forum Shops at Caesars in Las Vegas
Water Grill, from a 30-year-old California company opening its first Las Vegas location, specializes is fresh seafood including 16 types of oysters. (Al Mancini/Las Vegas Review-Journal)
Cat's Meow comes to Las Vegas
New Orleans-based karaoke chain opens new location in Neonopolis. (Jason Bracelin/Las Vegas Review-Journal)
Making the Loco Moco Breakfast Burger at Broken Yolk Cafe in Las Vegas
Manny Menina, line cook at Broken Yolk Cafe in Las Vegas, stacks 8 ounces of beef, 2 strips of bacon, hash browns, caramelized onions and 2 fried eggs on 4 King's Hawaiian slider buns to make the Loco Moco Breakfast Burger. (Heidi Knapp Rinella/Las Vegas Review-Journal)
SecretBurger at China Poblano at The Cosmopolitan of Las Vegas
Carlos Cruz, executive chef of Jose Andres' China Poblano at The Cosmopolitan of Las Vegas, makes the SecretBurger off-menu, one-night-only 'All Quacked Up' with a kimchi pancake, Peking duck, house-made hoisin sauce, a fried duck egg, pickled micro-vegetables, caviar and gold flakes and serves it with a Stillwater Artisanal Ale. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Famous Blue Angel statue commemorated in downtown Las Vegas mural
The 16-foot tall Blue Angel statue that stood above the Blue Angel Motel for six decades is featured in a mural spanning three walls at a downtown Las Vegas building. James Stanford designed the "A Phalanx of Angels Ascending" mural based on his photography, and Cliff Morris painted the mural at 705 Las Vegas Blvd. North, near the Neon Museum. (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
Making Castle Frites at the new Frites at the Excalibur in Las Vegas
Tom McGrath, district manager/executive chef at Frites at the Excalibur in Las Vegas, tops his beef-tallow fries like a loaded baked potato - with white and yellow cheddar, sour cream, bacon and chives. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Hello Kitty Cafe on Las Vegas Strip - VIDEO
The Hello Kitty Cafe opens Friday, July 12th, 2019, between New York, New York and Park MGM on the Las Vegas Strip. (Mat Luschek / Review-Journal)
Amano Las Vegas' Fat Baby Sandwich
Chef Jason Weber of Amano Las Vegas has created a sandwich stuffed with pasta, and it's a hit. (Mat Luschek / Las Vegas Review-Journal)
A class at Melissa Coppel Chocolate and Pastry School in Las Vegas.
Melissa Coppel, who teaches classes in various countries around the world, attracts students from far and wide to her eponymous school in Las Vegas. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Havana Lobster at Boteco in Las Vegas. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Marcus Fortunato, co-owner of Boteco in Las Vegas, learned to make Havana Lobster from the chef at El Figaro, a favorite of former Cuban President Fidel Castro.
Chef Gustav Mauler Is retiring
Las Vegas chef Gustav Mauler announces his retirement on Sunday, June 30, 2019.
Bellagio Conservatory unveils Italian summer exhibit
The Bellagio's Conservatory & Botanical Gardens have opened the gates to its summer display. (Mat Luschek / Review-Journal)
A.D. Hopkins on his debut novel
Veteran journalist introduces readers to "The Boys Who Woke Up Early." (John Przybys/Las Vegas Review-Journal)
Seven Magic Mountains restoration complete
Artist Ugo Rondinone's iconic Seven Magic Mountains receives a complete painting restoration in June 2019.
Making off-the-menu bean curd rolls at Mr. Chow in Las Vegas
Senior chef tournant Cesar Laran has created secret bean curd rolls at Mr. Chow at Caesars Palace in Las Vegas. To make them, he rolls bean curd sheets around a filling of carrots, celery and shiitake mushrooms, then smokes them with oolong tea and sugar. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Making Bread Pudding French Toast at Esther's Kitchen in Las Vegas
James Trees, chef/owner of Esther's Kitchen in Las Vegas, slices house-made blueberry bread pudding, coats it in egg yolks and mascarpone, fries it and tops it with spiced walnuts, Lyle's Golden Syrup and creme fraiche. Heidi Knapp Rinella/Review-Journal
Celine Dion closes 1,141-show residency on Las Vegas Strip - VIDEO
Hear from Celine Dion about her 16 years on the Las Vegas Strip and what the future has in store for her. (Caesars Entertainment)
Lobster grilled cheese at Big Sur Oyster Bar
The hugely popular lobster grilled cheese at Big Sur Oyster Bar at the South Point in Las Vegas is made with white cheddar and served on sourdough. (Heidi Knapp Rinella/Las Vegas Review-Journal)
You can dine out with your dog in Las Vegas
Lazy Dog, among Las Vegas restaurants that allow dogs, is probably the most accommodating, with free bowls of water and a doggy menu. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Sparrow + Wolf at Vetri Cucina in Las Vegas
Marc Vetri will launch a new collaborative chef series June 18, with a little help from Sparrow + Wolf's Brian Howard. (Al Mancini/Las Vegas Review-Journal)
10 best things to do at Star Wars: Galaxy's Edge
10 best things to do at Star Wars: Galaxy's Edge at Disneyland (Janna Karel Las Vegas Review-Journal)
Millennium Falcon: Smugglers Run at Disneyland - VIDEO
What it's like to ride the Millennium Falcon: Smugglers Run At Disneyland (Janna Karel Las Vegas Review-Journal)
Ada's opens at Tivoli Village in Las Vegas - VIDEO
Ada's, from James Trees, owner of Esther's Kitchen in Las Vegas' Arts District, brings Tivoli Village a similar menu of seasonal, artisanal pastas, pizzas — and ice cream. (Heidi Knapp Rinella/Review-Journal)
Nutella French Toast at Cafe Americano in Las Vegas
Harold Norris, executive chef at Cafe Americano at Caesars Palace in Las Vegas, coats brioche in cinnamon and chocolate and layers it with Nutella and bananas. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Heavier traffic expected from EDC festival attendees
Electric Daisy Carnival attendees began to vacate the Las Vegas Motor Speedway starting before 5 a.m., the majority heading south on Interstate 15.
What it's like to skip the lines and fly by helicopter to EDC
What it's like to skip the lines and fly by helicopter to EDC. (Janna Karel Las Vegas Review-Journal)
DJ Steve Aoki visits Las Vegas comic book store
DJ Steve Aoki visits Torpedo Comics in Las Vegas Friday, May 17, 2019, for a signing for his new comic book series "Neon Future." (K.M. Cannon/Las Vegas Review-Journal) @KMCannonPhoto
Las Vegas Smith & Wollensky opens at The Venetian
After 18 years, the Smith & Wollensky location on Las Vegas' south Strip closed in 2017, to be re-born two years later with a rib-cutting — instead of a ribbon-cutting — in The Grand Canal Shoppes at The Venetian. (Heidi Knapp Rinella/Review-Journal)
Colin Cantwell, Creator Of Iconic Star Wars Ships Visits Vegas
Colin Cantwell, who created and designed such "Star Wars" ships as the X-Wing fighter, and Death Star, met fans at Rogue Toys in Las Vegas today. (Mat Luschek / Review-Journal)
Beauty & Essex in Las Vegas makes an EDC Wonder Wheel
In honor of the Electric Daisy Carnival, Beauty & Essex at The Cosmopolitan of Las Vegas makes its Wonder Wheel party-worthy. (Heidi Knapp Rinella/Las Vegas Review-Journal)
Queen + Adam Lambert headline Microsoft show in Las Vegas
Queen + Adam Lambert are performing a corporate event for 25,000-30,000 fans Wednesday on the Las Vegas Strip.
Las Vegas Strip headliner Mat Franco makes time disappear
Strip headliner Mat Franco latest act took two years to develop. As he says, "It's two years of work crammed into 50 seconds."
Jerry Lewis' onetime Las Vegas home remains on market for $1.6M
Less than two months after attracting a $2.5 million bid, Jerry Lewis' former home is being offered for $1.6 million.
Oscar, Carolyn Goodman still in the 'foxhole' together
Of turning 80, Oscar Goodman says, "I feel great, healthwise. My brain cells are the biggest in the world, because of the Bombay Sapphire. They are in great shape."
Las Vegas comedy great Pat Cooper notches No. 90
Pat Cooper was funny as ever and surrounded by family and friends, including his wife, Emily, at the Italian American Club's decked-out showroom.
Jerry Lewis' former Las Vegas estate still on the market
Tony Bennett returns to Las Vegas Strip for 3 shows
July 15, 2019 - 9:09 am July 15, 2019 - 12:28 pm
Tony Bennett, who turns 93 in August, most recently performed on the Las Vegas Strip with Lady Gaga.
'Pawn Stars' taking brand to Las Vegas Strip with new store
July 14, 2019 - 3:20 pm July 15, 2019 - 9:23 am
The new retail outlet from "Pawn Stars" co-star Rick Harrison began construction last week.
Raiders owner Mark Davis, Oscar Goodman reunite at Las Vegas event
Raiders owner Mark Davis enlivened the Cleveland Clinic Lou Ruvo Center for Brain Health scene by delivering a $25,000 check.


text:
Bangladesh Strip Head Coach Russell Domingo Of T20 Role Days Before Asia Cup
Bangladesh stripped head coach Russell Domingo of his role overseeing the Twenty20 side and told him to focus on Test and one-day international cricket, just days before the Asia Cup. Bangladesh Cricket Board president Nazmul Hassan said that former Indian cricketer Sridharan Sriram, named last week as the technical consultant, will look after the T20 side. "Russell Domingo won't be part of the T20 set-up. He will be with ODIs and Tests," Nazmul told a press briefing in Dhaka. "There's no 'head coach' for the T20 side," he added.
"We have a batting coach, a spin coach, fast bowling coach and fielding coach. We also have the captain. We also have a technical consultant for T20s. He will give the game plan," he said.
Domingo, a 47-year-old South African, was appointed Bangladesh's head coach in August 2019, initially on a two-year contract. The BCB last year extended it until November 2023. But Bangladesh have struggled in T20s under Domingo, failing to win a game in the Super 12 stage of the World Cup in the United Arab Emirates last year.
They have won just two of their last 15 T20s and suffered their maiden series loss to Zimbabwe earlier this month. Domingo said the BCB's decision to separate the roles was a "great" idea. "It gives me nice focus on the Test match and 50-overs stuff," he said.
"We have had some great results and bad results in T20s," he said. "I don't think it is a bad idea to make a fresh approach in T20s.
"It is not about me," he added. "I am all for making the team better."
Bangladesh leave on Tuesday for the Asia Cup in the UAE, where they will compete in Group B alongside Afghanistan and Sri Lanka. The tournament starts on Saturday.
All-rounder Shakib Al Hasan meanwhile said that he was more motivated than ever after being reappointed T20 skipper last week. "I will try to help the team as much as possible with whatever experience I have," Shakib told reporters.
"I believe we are a good side. If we can make the best use of our resources and we can do it once or twice, you will realise we have the ability."
"Even if we lose a game, we should make sure to either drag the game into the final over or compete so that people can see we are improving."
Bangladesh will play a tri-nation tournament in New Zealand involving the hosts and Pakistan in October before they travel to Australia for the T20 World Cup.
Categories Sports Tags ASIA, Bangladesh, coach, Cup, days, Domingo, Role, Russell, Strip, T20
A 4 billion-year-old piece of the Earth's crust found
Banks' AT-1 bond issuances may decline to Rs 20,000 cr in FY23: Report

redpajama_set_name: RedPajamaCommonCrawl


"How did I miss two calls?" Susan wondered as she risked a quick glance at her cell phone during the emergency sales meeting. The school nurse had promised to call if her child got worse. Staring at the "voicemail waiting" message, Susan strategized how to gracefully exit this meeting. The first message was from her husband, Bob, reminding her about tonight's theatre tickets. After more than three months of excuses, they were finally going on a date - alone. Susan and Bob barely had down time together anymore, and, when they did, the coordination of activities between kids, house, church and work dominated the conversation. Susan often feared that their season of intimacy as a couple had passed, though she never spoke this aloud to Bob. They both felt the strain. But Susan dared hope that tonight's date would be a turning point. At least, that had been her prayer. The second message was the dreaded call from the school nurse. "Calvin's temperature is 101 degrees. Please call the school as soon as possible to let us know how soon you can pick him up." Susan's own anxiety temperature rose, too, as she worried about Calvin's health, the consequences of leaving the sales meeting, how she was going address other critical work responsibilities and whether the elusive date was ever going to happen.
Empathy. The willingness of your spouse to share openly is contingent on his/her sense that you really understand and love them unconditionally. This is shown in your willingness to make time to listen non-defensively and speak unselfishly.
Article Credit to Dr. Harold L. Arnold, Jr.
Copyright 2008, Dr. Harold L. Arnold, Jr. All rights reserved. International copyright secured. Used by permission.


These camo skinny jeans by TEXTILE Elizabeth and James retail for $192 at Revolve Clothing.
Tripp NYC has a similar pair which retails for $79 at Urban Outfitters. Click on the image below for more information or to purchase. Not sure how to wear these pants? I put together an outfit inspired by one of my favorites from Atlantic-Pacific (click on any of the images for more info - try THESE booties if the other ones are not available, and click HERE for an alternative sweater option).


text:
Saatva Complaints 2018 – Our Saatva Classic Mattress Review
November 17, 2021 by [email protected]
0.2 The Saatva Classic Mattress is not suggested for:
Saatva Classic Saatva Classic is our top choice for the most durable mattress in 2021. In this review we will discuss the reasons for this.
With this top-quality mattress you'll rest more deeply and be more comfortable more than ever before.
It is also the top place in mattresses with firm springs and the best cooling mattresses. It is second in the top firm mattresses and fourth in the top cushions for back pain.
In addition, The Saatva Classic ranks sixth in side sleeper mattresses.
"Saatva" is a Sanskrit word which translates to "goodness, truth, and purity."
It is the intention of this company based in New York to provide these characteristics in their mattresses and the customer experience.
Saatva began in 2010 and now has 17 U.S. factories and 154 fulfillment centers across the U.S., expanding their selection of products beyond their flagship mattress to sell a selection of mattresses, beds and bedding products. Check out our separate reviews of their sheets and pillows.
Sleeping problems for those who suffer due to back discomfort
People who are prone to changing positions while they sleep
The Saatva Classic Mattress is not suggested for:
Sleepers who prefer a soft, fluffy, plush or "cloud"-like mattress
Those who are lightweight and who sleep on their side
The Saatva Classic Luxury Firm Mattress is a luxury firm mattress with a soft cover and two layers of coils.
It has three firmness levels and two different heights making it a good choice for various sleeper types.
You can find the right size and level of firmness, whether you're tall, short average weight, light or heavyweight.
The Classic to feel like an old-fashioned spring mattress. Professional reviewers say it will give you the firmness you need for a good sleeping.
When it comes to cooling hot sleepers the Classic does a fairly good job. It features a euro-top constructed from fiber and polyfoam which is more breathable than memory foams that are more traditional. It also has a cotton cover that promotes air circulation.
A premium memory foam mattress is an excellent choice for sharing the bed with a partner.
Memory foam is responsive to body heat and moulds to your specific shape.
This makes it a great choice for those with sleeping problems such as sleep apnea.
It also reduces motion transfer. It's perfect if you sleep with a partner. Both of you can enjoy sleeping well without any disturbance.
If you're suffering from issues with back muscles, the 2nd layer of the Flex Foam is an excellent option to relieve pressure and give you the optimal Lower Back Support.
Contrary to other mattresses that are firm that are available The Saatva Classic doesn't come in a box.
Instead, it gives you free white glove delivery. That means that a team will come to your residence, remove the mattress you have been using and replace it with a new one.
It also comes with a sleep trial, and a 15-year guarantee.
There are many good mattresses out there for very little cost. The queen-sized Saatva Classic is one of the most affordable mattresses priced at $1,675. You can also find less expensive models from Saatva however if you're looking for a bargain one, this Saatva Classic will be the top one.
If you look at the cost average of many of the top mattresses is around $1,400 then you'll be able to see that Saatva Classic isn't that expensive. Saatva Classic isn't that much higher than other mattresses.
The top layer of coils has springs that are pocketed individually to reduce motion transfer.
The top layer of coils is open, much like traditional innerspring mattresses that allows for greater airflow, and makes it easier to rest more comfortably.
There are three settings for firmness that are plush, luxurious, and firm.
The most soft setting is ideal for those who sleep lightly and prefer a plush, comfy feel.
The next choice is a good choice for those who like moderate firmness. This offers a good combination of softness and support.
The most firm setting is perfect for heavier sleepers or those who need a more substantial feel.
Luxury Firm may be a better choice for heavier sleepers if you are looking for contour, rather than support or firmness.
If you're a lighter sleeper who doesn't require more support or firmness, the Firm might be a good choice.
If you're looking to purchase a firmer mattress that is spring-based, you could find the Saatva Classic and the Avocado Green.
The Avocado Green has a top cushion of memory foam and two layers of coil springs that have hypoallergenic foam between.
Both the Saatva Classic and the Avocado Green come with springs, however there are a few distinct differences between them.
The Avocado is made with more springs than Saatva But, as per some experts it feels more firm. Avocado Green has the feel of traditional firm mattresses, while the Saatva feels like a plush soft mattress.
For firmness levels, the Avocado offers three options (Plush Soft, Luxury Firm, and Firm) to meet the demands of different sleepers.
You can change the degree of firmness of the Avocado by purchasing an additional cushion top.
They are similar in cost, with the Saatva Classic at $1,675 and the Avocado Green, which costs $1,599.
If you're looking for a mattress that is made from green materials, the Avocado Green is the ideal option.
On the other hand If you prefer the comfort of a traditional firm mattress, the Saatva Classic can meet your needs.
The Saatva Classic and the Brooklyn Bedding Aurora Hybrid are among the best cooling mattresses in 2021.
While the Saatva Classic comes in sixth, the Brooklyn Bedding Aurora Hybrid is listed as fifth.
Both the Brooklyn Bedding Aurora Hybrid mattress and the Saatva mattress are constructed of coils, foam and memory foam.
A few professional reviewers have said that this Aurora Hybrid has a more relaxing feel similar to that you feel with foam mattresses however, the Saatva appears more like a traditional innerspring mattress.
The Brooklyn Bedding Aurora Hybrid is likely to be more comfortable and breathable because of the cooling elements such as TitanFlex and CooperFlex foams.
The Saatva Classic Mattress is priced at $1,675 and it's the Brooklyn Bedding Aurora Hybrid costs $1,749.
If you're a slumberer or love the feel of spring mattresses in the traditional way The Saatva Classic may be a great fit.
On the other hand If you're a hot sleeper and prefer a more comfortable, agile experience, the Brooklyn Bedding Aurora Hybrid may be the best choice.
They have a showroom at New York City and also sell their goods on their website.
Saatva creates bed sheets, blankets, pillows, as well as mattress toppers. They also make bed frames and bases.
Available mattress sizes:
The Saatva Classic is an innerspring mattress that has two sets of spring coils as well as a reinforcement of the edge support.
It has a top cover made from organic cotton, and also has memory foam on the middle of the mattress, plus it features wire support which reduces tension in the lower back region.
Classic Classic is Saatva's least expensive bed. It is available in the size of a queen bed, which costs $1,675.
It is free of charge and is available in three firmness levels three levels: medium (which Saatva calls "Lux Classic has three firmness levels that are Medium-Soft (which Saatva calls "Plush Soft" and is rated 3.0 on the scale for firmness) moderate (called "Luxury Firm" and is rated as six) in addition to difficult (8). At the same price , you can also pick from the 11.5-inch-thick mattress or the 14.5-inch-thick mattress.
Sizes of mattresses available:
Anyone who has sensitivities or allergies need to think about the Saatva Latex Hybrid Mattress.
It is made up of natural latex, organic cotton and organic wool that is GOTS certified It acts as an organic flame retardant that helps wick moisture away.
The spring layer of the product is made of individually wrapped coils, separated into five zones to offer the ideal amount of support, movement as well as edge support and airflow.
It's the least expensive mattress offered by Saatva with a price of $1,549 for the queen size.
The Loom & Leaf is a memory foam mattress made of two layers of high-density foam.
It's designed in order to prevent the sleepers from becoming too hot.
There are two firmness options: medium-firm and firm.
It's expensive at $1,899 for a premium item, but if had the money you can afford it, it's worth it.
Zenhaven mattress Zenhaven mattress can be described as a 10-inch all-latex sleeper that retails for $2,474 as a queen.
Materials that are designed to provide sleeping cool are provided by the 2 layers of Talalay latex.
The Zenhaven is a mattress that can be flippable with one side offering a medium level of firmness while the other is one being a medium-firm side.
The Saatva HD is designed for sleeping people with a weight of up to 500 pounds.
It integrates its inner spring coil structure with the pressure relieving qualities of Talalay in the form of foam and latex.
Added to that, it includes a euro pillow top for you to enjoy the comfort and support you need for a good night's sleep. A queen-size Saatva HD is priced at $2,674.
The most highly rated mattress in the Saatva collection is Solaire.
It's an adjustable bed that can sleep two people and costs $3,045. It offers fifty levels of firmness. sleeping people can adjust the firmness by either inflating or inflating air chambers by using an remote controller.
The mattress also includes organic cotton, Talalay latex and foam.
Saatva began in the year 2010 as a high-end mattress manufacturer. They offer five mattresses that cater to sleepers of all body types: Saatva Classic, Loom & Leaf, Saatva Latex Hybrid, Solaire, and Zenhaven Latex Mattress. Saatva also produces the Saatva HD Mattresses to accommodate overweight people, aswell as youth and crib-sized mattresses. In addition to mattresses Saatva sells frames, bedding, and bases. The Saatva Latex Pillow was included in our list of the top Pillows of 2021.
Saatva mattress are offered to purchase on their website and you can view these in the Saatva Viewing Room in New York City. Saatva does not ship its mattresses directly to either Alaska or Hawaii. It can arrange delivery through an intermediary like a freight forwarder. All mattress purchases come with the delivery of a white glove for free. This includes taking delivery of your mattress as well as setting it up and then removing your old mattress and foundation.
Saatva offers an unprorated 15-year warranty that covers manufacturing and material problems with its mattresses.
In the initial of two years Saatva offers to repair or replace your mattress if it's damaged. After that, the company is able to "repair and recover" your mattress, but it will charge you the cost of transportation, which is $99 to collect it and another $99 to deliver the new mattress.
Although the warranty covers indentations inside the mattress which are greater than 1 inch, it won't cover the normal wear and tear, damages you do to the mattress, or issues due to placing the mattress on an improperly supported frame.
Mattresses for cribs, a young mattress, an HD mattress, or an Solaire mattress that is placed on a metal or wood frame will give you years of safe and comfortable support.
The amount of discount offered will depend on the time that you've owned the mattress in question for.
The Saatva Classic comes with a 90-night trial at home.
The majority of mattress companies we have on our list provide trial periods of between 90 and 120 nights however some companies offer a all-year-long trial.
Saatva suggests that you measure the height of your mattress frame or foundation before you purchase, as the company notes in its note that among the most frequent reasons for an exchange is because customers want an alternative height for their mattress.
If you wish to return the mattress simply contact customer service for assistance, and Saatva organizes the return pickup. The price you paid for the mattress will be refunded. Because they're so comfortable the majority of people don't even realize that there's a $99 handling charge to return the mattress to Sleepy's.
Saatva's innerspring mattresses are not compact and do not require to expand.
They include the delivery of white glove for free as a way of ensuring that the delivery service sets the mattress up and removes your old one.
If you would prefer to keep your contact to a minimum and social distancing because of the coronavirus your new mattress can be left at your door instead of being set up at your home.
Since the Classic is composed primarily of innersprings it should not off-gas.
The mattress's thin layer of memory foam is CertiPUR-US certified meaning it is a minimal amount of volatile organic compound (VOCs).
The company claims that this is applicable to other mattresses, including their all foam Loom & Leaf, with the mattress not releasing any additional gas when the mattress is delivered to your home.
There's no reason to, Saatva mattresses do not require Box springs or foundations.
Saatva says that their mattresses are compatible with foundations of all kinds, including platform foundations, box springs that have gaps of at least 4 inches apart and bases that can be adjusted.
The use of a foundation is beneficial to allow airflow, and also if you have to raise the mattress's level. is. Read the fine print of the mattress's warranty for details about using foundations and frames.
Saatva says that because the Classic includes an adjustable pillow with a top that can be adjusted and a mattress pad that a mattress protector isn't necessary although Saatva suggests that you utilize an air-tight mattress protector that has breathability to guard against spills and staining.
saatva construction saatva complaints 2015


Oslo Børs has received an application for ISIN NO0010807373 to be admitted to stock exchange listing.
Section 5 of the Securities Trading Act sets out that the disclosure of information requirement is applicable to issuers with bonds that is listed or has been applied for listing on the stock exchange. The duty to disclose information under the provisions of the Securities Trading Act is as of today applicable for the above mentioned bond.


text:
New winery sprouts in Scandia: Rustic Roots
Food & Wine • Outdoors • Wineries & Vineyards	| October 15, 2020
Rustic Roots winery burst onto the scene this past September just 20 minutes North of Stillwater on Highway 95.
Owners Andrea and Greg Sandager are new to the winery business, but have proven their knack for having a green thumb with Greg as the third-generation Abrahamson's Nursery, a garden center and landscaping business located directly across Hwy 95 from Rustic Roots.
Source: Abrahamson Nursery, Facebook
The Sandagers purchased the property for Rustic Roots which included a custom home built in the early 90's and spanning 80 acres. The home was renovated down to the studs to transform it into the Rustic Roots tasting room: an airy space with elevated ceilings and a natural flow into spacious patios. Their immaculately landscaped grounds flow effortlessly into the rolling hills of their vineyards flanking the Saint Croix River Valley.
"Part of what makes their site great is that the vineyard is on a hill, which makes for excellent drainage," noted Annie Klodd, Extension Coordinator at the University of Minnesota and a consultant to the winery.
"The reason that is important is that while grapevines need water just like all crops do, they don't like 'wet feet'", said Klodd, continuing that an east-facing slope means "the sunlight hits them early in the morning, helping them warm up and dry off."
15 acres of vineyards were planted in the spring of 2020, with an 8-acre expansion planned for this coming spring. The varieties planted include the three Frontenac grapes (blanc, gris, and red), Itasca, Marquette, Brianna, Petite Pearl and LaCrescent.
It will take a few years for the vines to bear fruit, but Rustic Roots has been working with grape growers in the nearby area to source locally-grown varieties and also bringing in many of the same varieties that grow in Minnesota from Washington to round out their wine production. The tasting menu features 10 wines from the 2019 vintage.
Winemaker Jason Kleschult is no novice to fermentations, having cut his teeth working for Wild Mountain Winery. Kleschult describes his winemaking style as "fruit forward and balanced, with an emphasis on letting the grapes shine with minimal intervention."
As if nothing that could be fermented will escape him, Klelschult also produces cider, and is a brewer for Trap Rock Brewing Company in Saint Croix Falls, WI.
Pandemic or not, here we come
Tasting room manager Allison Sheardy packed up her bags in the midst of a pandemic and relocated from California to Minnesota in July to work for Rustic Roots. An opportunity too exciting to pass up, to "work for a family-run business, and have the opportunity to be involved in building a winery from the ground up," as Sheardy puts it.
Minnesota's cold-hardy varieties nor the cold weather are entirely new territory for Sheardy, who has lived in Vermont, but admits that she's not an expert in Minnesota varieties – yet — and that "having a whole new region of wine to dig into was really appealing".
Sheardy is likely one of the most decorated wine professionals working in Minnesota's wine industry. She is in the final stages of completing the Diploma Level 4 certification in wine, the highest level of recognition offered by the Wine & Spirits Education Trust (WSET). Completion of the diploma involves at minimum, two years of study, plus passing 5 rigorous exams and completing a research paper.
Launching a new business during a pandemic isn't something most business owners prepare for, but the Sandagers had a head start on Rustic Roots' expansive outdoor space already in the fall of 2019. "We started working on the project about a year and a half ago, before COVID," said Andrea, noting that their background in landscaping helped them to get the patios done pretty quickly.
Rustic Roots' outdoor space includes three separate patio areas, a pond and waterfall, and a spacious pergola complete with fire pits. The pergola features curtains to break the wind and an Airstream trailer converted into a wine bar so that guests can opt to grab a sip without having to set foot indoors during busy weekends.
"If there is a positive, it was that we knew what the COVID restrictions were as we were opening, and we were able to adapt easily to meet the guidelines," Sandager added, noting that another positive is the speed at which Rustic Roots has already been selling wine over the mere four weeks since they opened, "more than doubling the production already in 2020," according to Sandager.
What to expect & what's to come
The tasting at Rustic Roots is $10 and includes 5 pours. Guests can choose from any wines on the menu, will receive their flight at once, and then can choose where they want to take it to enjoy on the property. Advance reservations are not required, but guests are welcome to call ahead to verify availability: 651-433-3311.
Their wines are clean and bright, well-balanced with a complexity that can be hard to find in the local market. Top favorites for me were the Marquette and Rustic Roots Red, for their noticeable tannin that I find is often missing in cold-hardy reds, and the La Crescent for its sublime balance and complexity of fruit ranging from tart pineapple to rich stone-fruit.
A chef was recently added to their staff with a food menu to follow.
Rustic Roots will be open year around, and they are stacked with heaters to extend the comfort of Minnesota's outdoors for as long as possible. Keep an eye out for the possible addition of winter outdoor activities!
Looking forward to the next few years, Rustic Roots plans to add port and ice wine to their program. As their vines begin producing fruit, they will be able to add their own estate wines, as well.
Visit Rustic Roots at online at rusticroots.wine


text:
Chisa Hidaka
Chisa Hidaka, photo by Brett Le Master
Described by the NY Times as 'dancing as if possessed,' Hidaka began her career in modern dance while attending Barnard College, where she received her BA in Dance in 1986. As a choreographer, Chisa has presented work in a number of NYC venues, most recently through the collective Metro Movement Project in collaboration with colleagues Mark Lamb, Deborah Gladstein, Sarah Pope and Marianne Giosa. Her work is largely improvisational, using structures to organize spontaneous choreography in performance. In her approach she is influenced by the work of teachers such as (the late) Cynthia Novack, Nina Martin and Nancy Stark Smith, amongst others in dance, as well as music/jazz teachers Kirk Nurock (an inter-species specialist) and Jay Clayton. She is very active in the NYC contact improvisation community, regularly attending jams and other events. She recently joined the board of Earthdance, a retreat in Massachusetts dedicated to improvisation. As a performer, Hidaka has appeared as a singer in the bands Stuck and Poetic LieSense, as well as in her own dance work and in the choreography of long-time friend and mentor Marta Renzi, Doug Elkins, Bill Young, Mark Dendy and others. Holding firm the belief that art can be an engine for social change, Chisa serves on the board of Artist as Citizen. With an MD from the Weill Medical College of Cornell University, Hidaka has been on the research faculty of the Tissue Engineering, Regeneration and Repair program of the Hospital for Special Surgery since 2001, directing research in the areas of cartilage and bone healing and regeneration, particularly through the use of gene therapy. Bringing together her medical/science and dance training, Hidaka conceived a course in experiential anatomy with dancer Mariah Maloney. For the past 3 years, she has taught the course at Barnard College and will be offering it this year at Manhattanville College as well.
Through the Dolphin Dance project, Hidaka also brings together her dance and science expertise. She will bring to bear her extensive training in improvised dance to interact with wild dolphins in a manner that is informed by aesthetic choices that are respectful of the dolphins as equal partners in the process. She will use her knowledge of jazz improvisation to work with composers who will score the dance film. She will use her scientific background to collaborate with dolphin scientists to investigate whether dance can be used as a model to study inter-species communication.
I was honored to be able to show my work in such a supportive festival. The New York Times review was among the first I received, and that was such a great help. I feel like the [Performance Mix] festival is so meaningful because among other things New Dance Alliance is willing to take a risk on less-known artists and I, for one was so grateful for the opportunity.
—Monica Bill Barnes, choreographer/performer (New York City)
Photo by Adrianne Matowetz


A limited number of Phainopepla readers are invited to attend a slide show/lecture on "Restoring Habitat, One Yard at a Time," given by Alan Pollack, Audubon-at-Home Chair, followed by a tour of his garden.
Art Langton will also present a slide show/lecture on the birds one might expect to see in a San Fernando Valley garden, followed (hopefully) by a native plant landscaper speaking on the use of natives in the garden. Learn the basics for how to attract birds, butterflies, and other wildlife, how to conserve water, soil, and plant and animal life.
Please e-mail me at [email protected] with any questions and to reserve a spot.


text:
using OfficeDevPnP.Core;
using OfficeDevPnP.Core.Utilities;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client.DocumentSet;
using System.ComponentModel;
using System.Security.Cryptography;

namespace Microsoft.SharePoint.Client
{
    public static partial class FileFolderExtensions
    {

        [Obsolete("Use FolderExists() instead, which works for both web sites and subfolders.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static bool SubFolderExists(this Folder folder, string folderName)
        {
            return folder.FolderExists(folderName);
        }

        [Obsolete("Prefer list.RootFolder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadDocumentToLibrary(this Web web, string filePath, string libraryName, bool createLibrary = false)
        {

            if (!web.ListExists(libraryName))
            {
                if (createLibrary)
                {
                    web.AddDocumentLibrary(libraryName);
                }
                else
                {
                    LoggingUtility.Internal.TraceError((int)EventId.LibraryMissing, CoreResources.FileFolderExtensions_LibraryMissing, web.Url, libraryName);
                    // have to abort, list does not exist.
                    string errorMessage = string.Format(CoreResources.FileFolderExtensions_LibraryMissing, web.Url, libraryName);
                    throw new WebException(errorMessage);
                }
            }

            var list = web.Lists.GetByTitle(libraryName);
            list.RootFolder.UploadFile(filePath);
        }

        [Obsolete("Use list.RootFolder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadDocumentToLibrary(this Web web, string filePath, List library)
        {
            var file = library.RootFolder.UploadFile(filePath);
        }

        [Obsolete("Use list.RootFolder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadDocumentToLibrary(this List list, string filePath)
        {
            var file = list.RootFolder.UploadFile(filePath);
        }

        [Obsolete("Prefer web.RootFolder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadDocumentToFolder(this Web web, string filePath, string folderName, bool createFolder = false)
        {
            var filename = Path.GetFileName(filePath);
            LoggingUtility.Internal.TraceInformation((int)EventId.UploadFile, CoreResources.FileFolderExtensions_UploadFile0ToFolder1, filename, folderName);

            Folder folder;
            if (!DoesFolderExists(web, folderName))
            {
                if (createFolder)
                {
                    folder = web.Folders.Add(folderName);
                }
                else
                {
                    // have to abort, list does not exist.
                    string errorMessage = string.Format(CoreResources.FileFolderExtensions_FolderMissing, web.Url, folderName);
                    LoggingUtility.Internal.TraceError((int)EventId.FolderMissing, errorMessage);
                    throw new WebException(errorMessage);
                }
            }

            // Upload document to the folder
            var destinationFolder = web.Folders.GetByUrl(folderName);
            destinationFolder.UploadFile(filePath);
        }

        [Obsolete("Use list.RootFolder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadDocumentToFolder(this Web web, string filePath, Folder folder)
        {
            folder.UploadFile(filePath);
        }

        [Obsolete("Prefer folder.UploadFile() instead.")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static void UploadFileToServerRelativeUrl(this Web web, string filePath, string serverRelativeUrl, bool useWebDav = false)
        {
            if (!serverRelativeUrl.ToLower().EndsWith(System.IO.Path.GetFileName(filePath).ToLower()))
            {
                serverRelativeUrl = UrlUtility.Combine(serverRelativeUrl, filePath);
            }
            var clientContext = web.Context as ClientContext;
            if (useWebDav)
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Open))
                {
                    clientContext.ExecuteQuery();
                    Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, serverRelativeUrl, fs, true);
                }
            }
            else
            {
                var files = web.RootFolder.Files;
                clientContext.Load(files);

                clientContext.ExecuteQuery();

                if (files != null)
                {
                    using (FileStream stream = new FileStream(filePath, FileMode.Open))
                    {
                        FileCreationInformation createInfo = new FileCreationInformation();
                        createInfo.ContentStream = stream;

                        createInfo.Overwrite = true;
                        createInfo.Url = serverRelativeUrl;
                        files.Add(createInfo);
                        clientContext.ExecuteQuery();
                    }
                }
            }
        }

        [Obsolete("Prefer folder.UploadFile() or folder.UploadFileWebDav().")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static File UploadFile(this Folder folder, string filePath, ContentTypeId contentTypeId, bool overwriteIfExists = true, bool useWebDav = true) {
            if (filePath == null) { throw new ArgumentNullException("filePath"); }
            if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentException("File path is required.", "filePath"); }

            var fileName = System.IO.Path.GetFileName(filePath);
            using (var fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open)) {
                var additionalProperties = new Dictionary<string, string>();
                if (contentTypeId != null) {
                    additionalProperties["ContentTypeId"] = contentTypeId.StringValue;
                }
                return UploadFile(folder, fileName, fs, additionalProperties: additionalProperties, replaceContent: overwriteIfExists, checkHashBeforeUpload: true, level: FileLevel.Published, useWebDav: useWebDav);
            }
        }

        [Obsolete("Prefer folder.UploadFile() or folder.UploadFileWebDav().")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static File UploadFile(this Folder folder, string fileName, Stream stream, ContentTypeId contentTypeId, bool overwriteIfExists = true, bool useWebDav = true) {
            var additionalProperties = new Dictionary<string, string>();
            if (contentTypeId != null) {
                additionalProperties["ContentTypeId"] = contentTypeId.StringValue;
            }
            return UploadFile(folder, fileName, stream, additionalProperties: additionalProperties, replaceContent: overwriteIfExists, checkHashBeforeUpload: true, level: FileLevel.Published, useWebDav: useWebDav);
        }

        [Obsolete("Prefer folder.UploadFile() or folder.UploadFileWebDav(). Also can use file.SetFileProperties() and file.VerifyIfUploadRequired().")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static File UploadFile(this Folder folder, string localFilePath, IDictionary<string, string> additionalProperties = null, bool replaceContent = true, bool checkHashBeforeUpload = true, FileLevel level = FileLevel.Published, bool useWebDav = true) {
            if (localFilePath == null) { throw new ArgumentNullException("localFilePath"); }
            if (string.IsNullOrWhiteSpace(localFilePath)) { throw new ArgumentException("Source file path is required.", "localFilePath"); }

            var fileName = System.IO.Path.GetFileName(localFilePath);
            using (var localStream = new System.IO.FileStream(localFilePath, System.IO.FileMode.Open)) {
                return UploadFile(folder, fileName, localStream, additionalProperties, replaceContent, checkHashBeforeUpload, level, useWebDav);
            }
        }

        [Obsolete("Prefer folder.UploadFile() or folder.UploadFileWebDav(). Also can use file.SetFileProperties() and file.VerifyIfUploadRequired().")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static File UploadFile(this Folder folder, string fileName, string localFilePath, IDictionary<string, string> additionalProperties = null, bool replaceContent = true, bool checkHashBeforeUpload = true, FileLevel level = FileLevel.Published, bool useWebDav = true) {
            if (fileName == null) { throw new ArgumentNullException("fileName"); }
            if (string.IsNullOrWhiteSpace(fileName)) { throw new ArgumentException("Destination file name is required.", "fileName"); }
            if (localFilePath == null) { throw new ArgumentNullException("localFilePath"); }
            if (string.IsNullOrWhiteSpace(localFilePath)) { throw new ArgumentException("Source file path is required.", "localFilePath"); }

            //Console.WriteLine("Provisioning file '{0}' to '{1}'", localFilePath, fileName);

            using (var localStream = new System.IO.FileStream(localFilePath, System.IO.FileMode.Open)) {
                return UploadFile(folder, fileName, localStream, additionalProperties, replaceContent, checkHashBeforeUpload, level, useWebDav);
            }
        }

        [Obsolete("Prefer folder.UploadFile() or folder.UploadFileWebDav(). Also can use file.SetFileProperties() and file.VerifyIfUploadRequired().")]
        [EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static File UploadFile(this Folder folder, string fileName, System.IO.Stream localStream, IDictionary<string, string> additionalProperties = null, bool replaceContent = true, bool checkHashBeforeUpload = true, FileLevel level = FileLevel.Published, bool useWebDav = true) {
            if (fileName == null) { throw new ArgumentNullException("fileName"); }
            if (localStream == null) { throw new ArgumentNullException("localStream"); }
            if (string.IsNullOrWhiteSpace(fileName)) { throw new ArgumentException("Destination file name is required.", "fileName"); }
            // TODO: Check for any other illegal characters in SharePoint
            if (fileName.Contains('/') || fileName.Contains('\\')) {
                throw new ArgumentException("The argument must be a single file name and cannot contain path characters.", "fileName");
            }

            // Check for existing file
            if (!folder.IsObjectPropertyInstantiated("ServerRelativeUrl")) {
                folder.Context.Load(folder, f => f.ServerRelativeUrl);
                folder.Context.ExecuteQuery();
            }
            var serverRelativeUrl = UrlUtility.Combine(folder.ServerRelativeUrl, fileName);

            bool checkOutRequired = false;
            bool publishingRequired = false;
            bool approvalRequired = false;

            // Check for existing file
            var fileCollection = folder.Files;
            File existingFile = null;
            folder.Context.Load(fileCollection);
            folder.Context.ExecuteQuery();
            foreach (var checkFile in fileCollection) {
                if (string.Equals(checkFile.Name, fileName, StringComparison.InvariantCultureIgnoreCase)) {
                    existingFile = checkFile;
                    break;
                }
            }

            // Determine if upload required
            bool uploadRequired = false;
            byte[] serverHash = null;
            if (existingFile != null) {
                if (replaceContent) {
                    if (checkHashBeforeUpload) {
                        var streamResult = existingFile.OpenBinaryStream();
                        folder.Context.ExecuteQuery();
                        // Hash contents
                        HashAlgorithm ha = HashAlgorithm.Create();
                        using (var serverStream = streamResult.Value) {
                            serverHash = ha.ComputeHash(serverStream);
                            //Console.WriteLine("Server hash: {0}", BitConverter.ToString(serverHash));
                        }

                        // Check hash (& rewind)
                        byte[] localHash;
                        localHash = ha.ComputeHash(localStream);
                        localStream.Position = 0;
                        //Console.WriteLine("Local hash: {0}", BitConverter.ToString(localHash));

                        // Compare hash
                        var contentsMatch = true;
                        for (var index = 0; index < serverHash.Length; index++) {
                            if (serverHash[index] != localHash[index]) {
                                //Console.WriteLine("Hash does not match");
                                contentsMatch = false;
                                break;
                            }
                        }
                        uploadRequired = !contentsMatch;
                    }
                    else {
                        //Console.WriteLine("Not checking if existing file is the same; force upload");
                        uploadRequired = true;
                    }
                }
                else {
                    throw new Exception("File already exists, replace contents needs to be specified.");
                }
            }
            else {
                uploadRequired = true;
            }

            File file = null;
            // If different, upload file
            if (uploadRequired) {
                LoggingUtility.Internal.TraceInformation((int)EventId.UploadFile, CoreResources.FileFolderExtensions_UploadFile0ToFolder1, fileName, folder.ServerRelativeUrl);

                if (existingFile != null) {
                    // Existing file (upload required) -- determine if checkout required
                    var parentList = existingFile.ListItemAllFields.ParentList;
                    folder.Context.Load(parentList, l => l.ForceCheckout);
                    try {
                        folder.Context.ExecuteQuery();
                        checkOutRequired = parentList.ForceCheckout;
                    }
                    catch (ServerException ex) {
                        if (ex.Message != "The object specified does not belong to a list.") {
                            throw;
                        }
                    }
                    //LoggingUtility.Internal.TraceVerbose("*** ForceCheckout {0}", checkOutRequired);

                    if (checkOutRequired && existingFile.CheckOutType == CheckOutType.None) {
                        LoggingUtility.Internal.TraceVerbose("Checking out file '{0}'", fileName);
                        existingFile.CheckOut();
                        folder.Context.ExecuteQuery();
                    }
                }

                if (useWebDav) {
                    using (var uploadContext = new ClientContext(folder.Context.Url) { Credentials = folder.Context.Credentials }) {
                        LoggingUtility.Internal.TraceVerbose("Save binary direct (via webdav) to '{0}'", serverRelativeUrl);
                        File.SaveBinaryDirect(uploadContext, serverRelativeUrl, localStream, true);
                        uploadContext.ExecuteQuery();
                    }
                    file = folder.Files.GetByUrl(serverRelativeUrl);
                }
                else {
                    FileCreationInformation fileCreation = new FileCreationInformation();
                    fileCreation.ContentStream = localStream;
                    fileCreation.Url = fileName;
                    fileCreation.Overwrite = true;
                    LoggingUtility.Internal.TraceVerbose("Creating file info with Url '{0}'", fileCreation.Url);
                    file = folder.Files.Add(fileCreation);
                    folder.Context.ExecuteQuery();
                }
            }
            else {
                //LoggingUtility.Internal.TraceVerbose("Not uploading; existing file '{0}' in folder '{1}' is identical (hash {2})", fileName, folder.ServerRelativeUrl, BitConverter.ToString(serverHash));
                LoggingUtility.Internal.TraceVerbose("Not uploading; existing file '{0}' is identical", fileName);
                file = existingFile;
            }

            folder.Context.Load(file);
            folder.Context.ExecuteQuery();

            // Set file properties (child elements <Property>)
            var changedProperties = new Dictionary<string, string>();
            var changedPropertiesString = new StringBuilder();
            var propertyChanged = false;
            if (additionalProperties != null && additionalProperties.Count > 0) {
                // If this throws ServerException (does not belong to list), then shouldn't be trying to set properties)
                folder.Context.Load(file.ListItemAllFields);
                folder.Context.Load(file.ListItemAllFields.FieldValuesAsText);
                folder.Context.ExecuteQuery();

                // Loop through and detect changes first, then, check out if required and apply
                foreach (var kvp in additionalProperties) {
                    var propertyName = kvp.Key;
                    var propertyValue = kvp.Value;

                    var fieldValues = file.ListItemAllFields.FieldValues;
                    var currentValue = "";
                    if (file.ListItemAllFields.FieldValues.ContainsKey(propertyName)) {
                        currentValue = file.ListItemAllFields.FieldValuesAsText[propertyName];
                    }
                    //LoggingUtility.Internal.TraceVerbose("*** Comparing property '{0}' to current '{1}', new '{2}'", propertyName, currentValue, propertyValue);
                    switch (propertyName.ToUpperInvariant()) {
                        case "CONTENTTYPE": {
                                // TODO: Add support for named ContentType (need to lookup ID and check if it needs changing)
                                throw new NotSupportedException("ContentType property not yet supported; use ContentTypeId instead.");
                                //break;
                            }
                        case "CONTENTTYPEID": {
                                var currentBase = currentValue.Substring(0, currentValue.Length - 34);
                                var sameValue = (currentBase == propertyValue);
                                if (!sameValue && propertyValue.Length >= 32 + 6 && propertyValue.Substring(propertyValue.Length - 34, 2) == "00") {
                                    var propertyBase = propertyValue.Substring(0, propertyValue.Length - 34);
                                    sameValue = (currentBase == propertyBase);
                                }
                                if (!sameValue) {
                                    changedProperties[propertyName] = propertyValue;
                                    changedPropertiesString.AppendFormat("{0}='{1}'; ", propertyName, propertyValue);
                                }
                                break;
                            }
                        case "PUBLISHINGASSOCIATEDCONTENTTYPE": {
                                var testValue = ";#" + currentValue.Replace(", ", ";#") + ";#";
                                if (testValue != propertyValue) {
                                    changedProperties[propertyName] = propertyValue;
                                    changedPropertiesString.AppendFormat("{0}='{1}'; ", propertyName, propertyValue);
                                }
                                break;
                            }
                        default: {
                                if (currentValue != propertyValue) {
                                    //Console.WriteLine("Setting property '{0}' to '{1}'", propertyName, propertyValue);
                                    changedProperties[propertyName] = propertyValue;
                                    changedPropertiesString.AppendFormat("{0}='{1}'; ", propertyName, propertyValue);
                                }
                                break;
                            }
                    }
                }

                if (changedProperties.Count > 0) {
                    if (!uploadRequired) {
                        LoggingUtility.Internal.TraceInformation((int)EventId.UpdateFileProperties, CoreResources.FileFolderExtensions_UpdateFile0Properties1, fileName, changedPropertiesString);
                        if (existingFile != null) {
                            // Existing file (no upload required, but properties were changed) -- determine if checkout required
                            var parentList = file.ListItemAllFields.ParentList;
                            folder.Context.Load(parentList, l => l.ForceCheckout);
                            try {
                                folder.Context.ExecuteQuery();
                                checkOutRequired = parentList.ForceCheckout;
                            }
                            catch (ServerException ex) {
                                if (ex.Message != "The object specified does not belong to a list.") {
                                    throw;
                                }
                            }
                            //LoggingUtility.Internal.TraceVerbose("*** ForceCheckout2 {0}", checkOutRequired, approvalRequired);

                            if (checkOutRequired && file.CheckOutType == CheckOutType.None) {
                                LoggingUtility.Internal.TraceVerbose("Checking out file '{0}'", fileName);
                                file.CheckOut();
                                folder.Context.ExecuteQuery();
                            }
                        }
                    }
                    else {
                        LoggingUtility.Internal.TraceVerbose("Updating properties of file '{0}' after upload: {1}", fileName, changedPropertiesString);
                    }

                    foreach (var kvp in changedProperties) {
                        var propertyName = kvp.Key;
                        var propertyValue = kvp.Value;

                        file.ListItemAllFields[propertyName] = propertyValue;
                    }
                    file.ListItemAllFields.Update();
                    folder.Context.ExecuteQuery();
                    propertyChanged = true;
                }
            }

            //LoggingUtility.Internal.TraceVerbose("*** Up {0}, Prop {1}, COT {2}, level", uploadRequired, propertyChanged, file.CheckOutType, level);

            if (uploadRequired || propertyChanged && (level == FileLevel.Draft || level == FileLevel.Published)) {
                var parentList2 = file.ListItemAllFields.ParentList;
                folder.Context.Load(parentList2, l => l.EnableMinorVersions, l => l.EnableModeration);
                try {
                    folder.Context.ExecuteQuery();
                    publishingRequired = parentList2.EnableMinorVersions;
                    approvalRequired = parentList2.EnableModeration;
                }
                catch (ServerException ex) {
                    if (ex.Message != "The object specified does not belong to a list.") {
                        throw;
                    }
                }
                //LoggingUtility.Internal.TraceVerbose("*** EnableMinorVerions {0}. EnableModeration {1}", publishingRequired, approvalRequired);

                if (file.CheckOutType != CheckOutType.None || checkOutRequired) {
                    LoggingUtility.Internal.TraceVerbose("Checking in file '{0}'", fileName);
                    file.CheckIn("Checked in by provisioning", publishingRequired ? CheckinType.MinorCheckIn : CheckinType.MajorCheckIn);
                    folder.Context.ExecuteQuery();
                }

                if (level == FileLevel.Published) {
                    if (publishingRequired) {
                        LoggingUtility.Internal.TraceVerbose("Publishing file '{0}'", fileName);
                        file.Publish("Published by provisioning");
                        folder.Context.ExecuteQuery();
                    }
                    if (approvalRequired) {
                        LoggingUtility.Internal.TraceVerbose("Approving file '{0}'", fileName);
                        file.Approve("Approved by provisioning");
                        folder.Context.ExecuteQuery();
                    }
                }
            }

            return file;
        }
    }
}

redpajama_set_name: RedPajamaGithub


My daughter has thick hair but has a layer of frizz at the sides of her head which she has become very conscious of at the age of 13. The only way she can control this is to brush the hair on top around the sides to hide the frizz and tie back in a ponytail. She is definitely not happy with her hair and I would love to help her. Please could you suggest a suitable brand of shampoo and conditioner that would help calm this frizz?


I got this for my mom and she really likes it. Much better support for her wheelchair.
Loved it a lot softer than just seat in wheelchair.
I have plans to buy another cushion.
The wheel chair pad has been a great help .
I occasionally have to use a wheelchair if I am required to walk very far and I thought this would help make it more comfortable to ride in with the extra padding.


For this project they wanted to do a bit of a satirical cartoon animation depicting what it's like for their customers before they switch over to their new customer portal. Once we nailed down the look of the character and had the story points laid out I built the different scenes and animated away. Through this project I learned some great techniques and found some new tools for doing 2D character animation that I look forward to using in the future..


I'm over in Bergen for the rOOts conference. Martin Fowler gave an interesting 30 minute talk on the role of architecture in software development, and on how the forces that drive architecture also drive other aspects of the overall process. He started by mentioning Ralph Johnson's discussion of architecture; we define architectures to document the things that we perceive as being hard to change. Being agile, Martin then went on to say that the role of an architect is to make himself redundant: to find ways of implementing systems which can roll with the punches, and where everything is amenable to change. As an example, he talks about databases and schemas. Conventional thinking tells us that database schemas are hard to change: once you code to a schema, every change involves updating the database, the code, and also all the data affected by the change. As a result, people tend to treat schemas as scary things: we define them and then code around them. At Thoughtworks, though, they have developed techniques for incremental migration through schema changes: the database, data, and code all update in parallel. As a result, the schema no longer has to be defined up front: is is no longer an architectural element.
The driver for all this, of course, is flexibility: we need to find ways of writing applications that work in the face of a set of volatile requirements. Cut down the number of up-front constraints, and we increase our degrees of freedom. If also helps us start delivering earlier, allowing us to get feedback ad refine our applications as we go.
The alternative to killing all the architects, of course, is to kill all the developers. Rather than spending time coding flexible applications, find ways of throwing together disposable solutions to business problems at greatly reduced cost. Don't worry about flexibility: if the application no longer works when the environment changes, throw it away and write it again. If the cost of code is small, then the investment can be written off in almost no time.


quality of life are directly targeting this growing population.
The implantable medical device industry is poised to capitalize on these unique needs, while simultaneously meeting unprecedented cost pressures. It is time for manufacturers to seek expertise in inventory management and logistics for greater visibility, control and profitability.
For implantable medical device manufacturers to be as active and healthy as the patients they serve, their future depends on the ability to differentiate products — not only by price, but through cost, service and documented outcomes. New trends in personal health tracking keep patients moving, and data collection will similarly improve the health of your business.
Download this UPS whitepaper now to learn more.


Hannah Hart, food puns and all, has arrived on TV. The 30-year-old creator, whose boozy web series My Drunk Kitchen has made her a YouTube star, is the host of the new Food Network show I Hart Food.
In her new show, which was announced last year, Hart will travel around the country and same local cuisine wherever she goes. Luckily, one of the most important parts of My Drunk Kitchen's appeal — Hart's tendency to drop food puns as often as possible — has successfully made the transition to TV.
Hart has managed to parlay her digital fame into a number of prominent projects and position. She has authored multiple books, has built a film career that includes a first-look deal with Lionsgate, and recently earned a spot on GLAAD's Nation Board of Directors. Meanwhile, she continues to post regular videos to her YouTube channel, which has more than 2.5 million subscribers.
I Hart Food's first season will consist of six episodes. New ones will air on Mondays at 10 PM EST.