PINKY ! jewelry   

Cache   
Thanks to Marianne Gassier for this wonderful page-
I hope to see some of these designers applying to Suspend.ed in pink!


http://pinterest.com/mariannegassier/pinky-jewelry

(too many wonderful pieces to show)

zoe robertson.

 


          

Trump/Perdue not that into Farmers...   

Cache   
UPDATE 10/7: I think farmers have had enough, maybe, I hope anyway...
1. “I went to Madison feeling financially scared and emotionally depressed but hopeful,” said Paul Adams, who runs a 500-cow organic dairy near Eleva, WI."I came home feeling financially scared, emotionally depressed, unwanted, and unneeded.”

2. Brittany Olson left her Barron County farm at 2am to make the trip to Expo and hear Perdue speak. “To go through the effort to see the USDA secretary, only for him to say that small farms like ours likely have no future made me feel like little more than a peasant in a system of modern-day feudalism,” Olson said.

3. “To me, it really drew a line in the sand on just where this administration stands,” said Chippewa County dairy farmer George Polzin.
Danielle Erdvick summed it up this way in the story:
But I sense a fire growing in the belly of the family farmers I meet in my work with Farmers Union. Farmers are weary. But there’s a growing flicker that’s starting to feed a change in the narrative. No more will they be spoon-fed a top-down vision for rural America. Instead, I see a drive for a farmscape where fair prices, local food systems, clean water, and land conservation are at the heart of farm policy. How can we achieve it? It’ll take actually enforcing America’s antitrust laws and holding corporations accountable when they try to monopolize an industry. It’ll mean addressing market manipulation. It’ll mean not raising our hackles, as farmers and ag groups, every time someone wants to talk about clean water or livestock siting. It’ll mean continuing to adopt regenerative practices and thinking outside the box so we’re protecting our natural resources for our children and grandchildren.
__________________________________________________________________________________________________

Farmers will never stop voting for Republicans. Sadly, GOP promises of "small government" simply mean they don't really have to do anything for their constituents, and deregulation is anything that basically leaves them alone.

Tariff War is not Their Fight: It seems farmers are okay sacrificing their livelihoods for big corporate interests seeking intellectual rights and protections. 

And then the last shoe dropped; Ag Sec. Sonny Perdue told us what big corporate Republican politicians were really thinking about family farmers:

Perdue told reporters that he doesn’t know if the family dairy farm can survive as the industry moves toward a factory farm model ... “In America, the big get bigger and the small go out. I don’t think in America we, for any small business, we have a guaranteed income or guaranteed profitability.”
A few farmers suddenly realized what was really going on...
Jerry Volenec, a fifth-generation Wisconsin dairy farmer with 330 cows, left the Perdue event feeling discouraged about his future. “What I heard today from the secretary of agriculture is there’s no place for me. Can I get some support from my state and federal government?"

Darin Von Ruden, president of the Wisconsin Farmers Union and a third-generation dairy farmer who runs a 50-cow organic farm (said) getting bigger at the expense of smaller operations like his is “not a good way to go.  Do we want one corporation owning all the food in our country?” 
Democrats, Governor Tony Evers backs Family Farms, despite never getting their vote, but after Sonny Perdue's comment, even our laid back Gov. had to say something:

"Are they struggling? Absolutely. But I think at the end of the day we need to get behind them rather than saying, ah maybe you should go larger. I, frankly, resent that the Department of Agriculture secretary from the federal government came in and kind of lambasted them."
But don't take Evers word for it, here's a comment made at the Minnesota Farmfest about CAFO's. Note: Why were visa's for dairy labor ever determined to be seasonal and not year around?:


Trump Piled on First: Remember this...
Wisconsin dairy farmers are still feeling the sting of Trump's visit to Milwaukee in July, where the president downplayed the suffocation felt by farmers here because of Trump's own tariffs.

Trump: "Some of the farmers are doing well. ... We're over the hump. We're doing really well."
Farmer Response...:
"If he's saying farmers are over the hump, he would be badly mistaken," said Darin Von Ruden, a third generation dairy farmer. "In order to get over the hump we need to stop losing dairy farms."
From PBS's Market to Market: Trump's says farmers are happy...


Farmers are slamming Trump's $28 billion farm bailout — more than double Obama's 2009 payment to automakers — as a 'Band-Aid'.
Perdue editorial doesn't repair Damage: Nope, his word salad backtrack to obscure how he really feels, is a little late. In fact, Perdue reminds farmers how this whole problem was really Trump creation:
Purdue: "President Donald Trump has made it his mission to support American agriculture and negotiate better trade deals so our productive farmers can sell their bounty around the globe."
And don't forget how Scott Walker pushed oversupply in the dairy industry.

Here's what one farmer, "a great patriot," really thinks about Trump:



In Gays Mills, WI, over production and large dairy farms are locking many out of getting into farming. From WPT's Portraits from Rural Wisconsin:


          

Alt Silas 8   

Cache   

Silas 8 is Daz's fresh new character, just simmering with charisma. Here are twelve alternate versions of him. I hope you enjoy!

Price: $18.95 Special Price: $13.27


          

Battle Gear   

Cache   

Battle Gear is your classic Orc and Barbarian wear complete with Battle Axe. Two arm bracers, one chest piece with shoulder guard and a Lion Cloth. Each part loads on its own, so use what you need and not what you don't. Works with all the latest figure shapes, so don't think this is just a single use item. Men and Teens, Beasts and Heroes all look better in leather. I hope that's leather...

Price: $17.95 Special Price: $8.98


          

Ron's Blueprints   

Cache   

In this blueprint edition there are blueprint Photoshop brushes, blueprint papers, Photoshop blueprint seamless patterns and a few free fonts. They are created to mimic sketch, model, design and layout forms that can be applied to illustrations, backgrounds, plans or computer screen mock-ups.

Some of the designs are from exploded views of mechanical products, airplanes, helicopters, and vintage US Army individual equipment, horse equipment, artillery equipment of real blueprints photographed and made in to brushes.

In this set there paper impressions of scanned or photocopy features that create an illusion of time and imperfections that help in giving a aged look. Also as a bonus and for you I included fonts these are free from different locations to give a real look to your new blueprint.

I enjoyed making these for you, I hope you will have fun, create and enjoy.

Thank you for your support.

Price: $14.95 Special Price: $7.48


          

Ron's Dust & Lint   

Cache   

Dust and Lint form on every surface inside and out, the super fine details of these Photoshop brushes will just amaze you. Use these as overlays, backgrounds or anywhere you desire, they are very versatile.

I hope you enjoy these and find ways you never thought possible for creative ideas and uses.

Thank you for your purchase.

Price: $18.95 Special Price: $9.48


          

Ron's Tank Patterns & Brushes   

Cache   

All Patterns and Brushes taken from real WWI and WWII Tanks. Working as an illustrator at Ft.Knox, Kentucky I was able to gain access to some of the Patton Museums Tanks,(with permission of course.) Photos taken with my Nikon D60,I tried to capture the real thing,turning these into seamless patterns and making some high-resolution Photoshop brushes as well. They don't let everyone see or photograph these fine historic Tanks. I hope you will enjoy these because you will be one of the few to have these.

Price: $17.95 Special Price: $8.98


          

Ron's Waterworks   

Cache   

I am excited to bring out these water effects that are detailed, clear and precise. If you think that just adding white to the brush is not enough, I have some really unique layer styles that will look so original and realistic that it will amaze you. I just want you to know that I create these for you: the creative artist that demands the best products for the almighty buck. Products that you can use over and over.

I Just want to thank everyone that has supported me over the years and I hope to give you that creative edge that you as designers want and need.

Enjoy and create.

Thanks.

Price: $21.95 Special Price: $10.98


          

Rons Sci-Fi Optical Flares   

Cache   

Glad to bring you this exciting Sci-Fi Optical Flare special effects package. WOW! There is a lot of creative and useful stuff here. The set comes with over 450 custom photoshop brushes of innovative add-on elements of flares along with futuristic technical digital graphics found in interfaces and 165 ready-to-apply photoshop layers of colorful high energy light flares with real glass artifacts, creative blurring and tech stuff added to complete this set.

When Lens flares are deliberately used in illustrations they really invoke a sense of drama. I Hope these save you time and money, as well as making your art stand out. I warn, you will be looking for ways to use these everywhere. Have fun, create and enjoy.

Must have PSD editing software

Thanks.

Price: $39.95 Special Price: $19.98


          

Looking to Actually Prevent a UTI? Don't Just Reach For Cranberry Pills, 2 Doctors Say   

Cache   

Urinary tract infections are common. In fact, over 50 percent of women and about 12 percent of men will experience at least one UTI in their lifetime, the Urology Care Foundation reports. And about a third of women will seek treatment for one by the age of 24. (For the purpose of this article, the experts we spoke to and the statistics we cited referred to people with female sex organs as "women" and people with male sex organs as "men.") A recurrent UTI, also called "recurrent cystitis," is classified as two or more UTIs within six months, or three in a year. Read up on recurrent UTIs specifically here.

UTIs happen more frequently in women than in men because the female urethra is shorter and it's easier for bacteria to travel from the outside into the bladder, Ricardo Soares, MD, urologist at Northwestern Medicine Kishwaukee Hospital, told POPSUGAR. (The CDC notes that infections can affect several parts of the urinary tract, but they most commonly affect the bladder). Dr. Soares said that if bacteria is found in your urine but you aren't experiencing symptoms, this is referred to as asymptomatic bacteriuria and isn't the same as a UTI. "It only requires treatment in certain situations, such as in pregnant women and in patients who are going to have a urological procedure," he said.

On the other hand, he stressed that if you're having symptoms but urine tests show there's no bacteria, this is also not an infection. "The symptoms might be caused by a different problem such as an overactive bladder, [which is] very common in post-menopausal women," he said. Vannita Simma-Chiang, MD, assistant professor of urology at Mount Sinai, told POPSUGAR that other conditions that might have similar symptoms as UTIs are interstitial cystitis (or painful bladder syndrome), yeast infections, and vaginitis. In terms of yeast infections, though, you'd most likely experience vaginal discharge that isn't typical with a UTI, she said (discharge is also common with vaginitis). Let's get into what UTI symptoms actually are.

ADVERTISEMENT

Symptoms of a UTI

According to the CDC, you're more at risk of getting a UTI if, for instance, you are sexually active, you've had a UTI before, or are going through menopause (you lose the hormonal support of estrogen after menopause, Dr. Simma-Chiang noted). Here are the most common symptoms:

  • Frequency or urgency to pee
  • Pain or burning with urination
  • Pain or discomfort in your lower abdomen
  • Blood in your pee

Dr. Simma-Chiang wanted to note that some people have come to her with completely different symptoms such as a stomachache or simply feeling ill. Some can also experience fever, but Dr. Soares said this could be an indication that the infection has spread to your kidneys.

How to Prevent a UTI

You've probably heard companies (or your friends!) touting the positive effects of cranberry. Both Dr. Simma-Chiang and Dr. Soares said that cranberry pills aren't guaranteed to help prevent UTIs because there's no significant evidence. There are small studies that suggest the active ingredient, PACs, may prevent UTIs, though "we're not quite sure whether or not that active ingredient is actually present in cranberry pills or if it gets digested," Dr. Simma-Chiang said. She added that she's perfectly fine with her patients taking these pills if they seem to be working. (Note: cranberry pills aren't regulated by the FDA.) Read more about cranberry juice specifically here.

Dr. Soares said good genital hygiene can help prevent UTIs because "most infections travel from the anal area up into the urethra." Drinking water is good as well since increased urination acts as a cleanser for the bladder, he said. In people who have recurrent UTIs, a regular low dose of antibiotics can prevent infection, he explained. For those with female sex organs who have recurrent UTIs most closely linked to sex, they can try to prevent those infections by using protection or taking one dose of antibiotics after sex. "In post-menopausal women, use of vaginal, not oral, estrogen provides good results," Dr. Soares said (since, like mentioned before, these people have a decline of estrogen, which can negatively impact the immune system).

Dr. Simma-Chiang recommended peeing after sex and also stressed the importance of a strong immune system overall. "I always remind patients that there's organisms everywhere," she said. "We catch colds all the time, and I hope people can think of urinary tract infections as something similar." So, she said, to make sure your immune system is as strong as it can be, get enough sleep, eat a well-balanced diet, exercise, and stay properly hydrated. She said that constipation, too, can affect the way your bladder empties. "Urine is left behind and you can get a UTI," Dr. Simma-Chiang explained. Make sure you're passing regular bowel movements and focusing on your gut health.

How to Treat a UTI

Ultimately, even if you do end up getting a UTI, know that it's treatable. If you want to treat your UTI at home, Dr. Simma-Chiang suggests drinking a lot of water to flush out the infection. A doctor will typically treat a UTI with oral antibiotics (as little as one dose). But, if it's what Dr. Soares described as a "complicated UTI" - meaning it's harder to get rid of because it's occurring in someone with male sex organs or in someone who has diabetes or some sort of functional abnormality of their urinary tract - it may require intravenous antibiotics in the hospital. These, he said, can be changed to oral antibiotics once the person has had no fever for over 48 hours and lab results show there's an improvement; then they'll be able to finish treatment at home. "UTI in a man is, by definition, considered complicated and therefore requires a seven-day course of antibiotics," he explained. So, it's less likely to occur in those with male sex organs, but more difficult to treat.


          

10 Ways to Make Friends   

Cache   
They say it takes a village to raise a child. Well, it also takes a village — at best a supportive community, and at the least a few very good friends — to keep a person sane and happy. All of us need companionship, which is exactly why teenagers are texting their friends in the middle of dinner (TMI, BFF, OMG …), and why people who didn’t own a personal computer last year now have profiles on Facebook, MySpace, and other social networking sites.



Maybe the first trick to finding friends is to befriend ourselves, and to become comfortable with silence, because no one has the power to make us feel okay with ourselves but us. But, lest we stay quiet for too long, here are 10 techniques to meet new friends, which I think everyone can benefit from, because, as I learned in Girl Scouts a few hundred years ago (where I didn’t make any friends…), some are silver and the others are old, I mean gold.


1. Join a book club.
Most of my friends are in book clubs, and, I have to admit, I’m a little envious of the discussions that happen in these groups. If your neighborhood doesn’t have a book club, you can usually join one as part of the local library, the recreational or community center, the community college, or online, of course.

2. Volunteer.
That one seems like a no-brainer, but, seriously, have you ever considered the many charities to which you could give your time? Your local civic association is always in need of volunteers for projects like “let’s clean up the park before a hundred dogs crap on it again” and Toys-for-Tots, Christmas in April, and so on. Don’t forget about all your local politicians who need help with their campaigns. If one impresses you, offer to knock on a few doors for her or him. Host a cheese and cracker party for the community to get to know the candidate.

3. Find a support group.
There’s more to the support group universe than AA. Have you ever looked through all the local listings of meetings in your area? There’s even ACOMP (Adult Cousins of Mean People) … not really.



4. Take a night class.
That’s where you can supposedly meet men (or women) if you find yourself single in your late 30s or 40s or 50s. If you take a class in something that you are interested in, you’re very likely to find potential friends with similar hobbies.

5. Get a dog.
I’m not talking about using the dog as a companion (because we know a dog is a man’s best friend). I just mean that dogs are people magnets–and usually nice-people magnets. Here in Annapolis, we have dog cults. If you walk your mutt in certain neighborhoods, you will meet approximately five to ten friends per mile. Double that if you’re walking a Golden Retriever. Triple it if you head to the “dog park,” designed specifically for doggy play, or proper socialization for dogs.

6. Steal friends.
I realize this technique was frowned upon in the fifth grade. You would surely earn a reputation as a friend-stealer if you tried this too many times. But many (NOT ALL) people in their 30s, 40s, 50s, etc. have loosened up a bit. I have found this to be a very efficient method of making friends, because someone has already done your dirty work–the interview process–and weeded out the toxic folks. It’s like Facebook in real life.



7. Knock on doors.
Yep. That’s what I did six years ago when I was stuck home with a fussy baby and going absolutely crazy. I walked around the neighborhood knocking on every porch that held a stroller. “You in there. I know you have kids. You want to be my friend?” I might have been a tad more subtle than that, but not much.

8. Carpool to work.
Hey, it works for elementary school kids. Many 6-year-olds meet their best buddies on the bus because 1) they live in their neighborhood (what could be more convenient?), 2) they are on the same schedule, and 3) they know the same people (“Susie has cooties”).

9. Connect with your alumni association.
I used to be much better at this before kids came along, but even today, I still pay my dues. Alumni associations are gold mines for potential friends. You already have a major experience in common: you can rehash old times as a conversation starter if you need one. Plus many associations sponsor community service events, workshops, or trips abroad that you can take advantage of even if you aren’t looking for friends.


10. Talk to strangers.
I know this goes against what you were taught in elementary school. But, yes, the way to meet friends is to strike up a conversation with absolutely anyone. This means becoming the annoying lady everyone dodges on the plane: “So … what are you reading? … Oh, ‘Left Behind.’ … Have you gotten to the part where everyone except a handful of people burn in hell?… No? … I hope I didn’t ruin it for you.” If you put yourself out there, yes, you will get rejected many times, and that hurts a little (sometimes a lot). But you will also find your best friends. Everyday life is full of potential friendship moments: waiting rooms, church, trains, planes, automobiles, office meetings, support groups, or coffee shops.



http://psychcentral.com/blog/archives/2009/02/26/10-ways-to-make-friends/

          

Trump Sows Turkey Chaos as U.S. Denies Endorsing Syria Incursion   

Cache   

Trump Sows Turkey Chaos as U.S. Denies Endorsing Syria Incursion(Bloomberg) -- President Donald Trump hasn’t endorsed a Turkish incursion into Syria, a senior administration official said, deepening confusion around his policy after an uproar from Republicans that he planned to abandon U.S. Kurdish allies.The official said Trump has cautioned Turkish President Recep Tayyip Erdogan that he will bear responsibility for Islamic State prisoners in the region, as well as a resurgence of violence if the militants are freed and any harm to civilians in areas Turkey occupies.The official briefed reporters on condition of anonymity.Trump later suggested his move to clear the way for a Turkish invasion was intended in part to pressure European countries including France and Germany that, he said, have refused to accept the return of citizens who joined Islamic State.Trump said at a meeting with military leaders that he had urged U.S. allies to reclaim their citizens, but they had refused.“We’re not going to move the fighters to Guantanamo Bay and take care of them for many, many years into the future, that’s not for us,” he said. “Now it’s time for Germany and France and all of the nations where they came from to take them back and they chose no. Maybe they’re going to change their tune now, I don’t know.”Trump has come under criticism from allies including Republican Senator Lindsey Graham of South Carolina and his former United Nations ambassador, Nikki Haley, for his announcement late Sunday that the U.S. wouldn’t stand in the way of the Turkish incursion.The White House statement was read around the world as Trump abandoning U.S. policy that Kurdish allies would be protected from Turkish aggression in exchange for their help in defeating Islamic State.Former Vice President Joe Biden, who is among the top Democratic contenders to challenge Trump’s re-election in 2020, said in a statement that “once again, an impulsive and erratic president has abandoned friends of the United States with a late-night tweet.”American officials didn’t immediately explain the president’s change in position on Syria. Trump’s order to remove about 50 U.S. troops from a Syria border region Turkey intends to invade doesn’t represent a green light for the incursion, the U.S. official said. The official added that Trump had discussed the decision with officials at the State Department and Pentagon before the White House announcement, and that the agencies should not have been surprised.The U.S. had successfully dissuaded Turkey from an invasion for two years, but if Erdogan orders an operation, the U.S. doesn’t want its soldiers endangered or caught in the crossfire, the official said.I’ve told President Erdogan, I hope he’s going to treat everybody with great respect,” Trump said at the meeting with military leaders. Earlier, he told reporters at the White House: “I have consulted with everybody.”“I fully understand both sides of it but I campaigned on the fact I was going to bring our soldiers home,” he said.The administration official did not say that any U.S. soldiers would be brought home as a result of the withdrawal. The troops moved from the border region, mostly special forces soldiers, would be re-positioned at different U.S. bases in Syria, the official said.(Updates with more Trump remarks, beginning in fourth paragraph)To contact the reporters on this story: Josh Wingrove in Washington at jwingrove4@bloomberg.net;Justin Sink in Washington at jsink1@bloomberg.netTo contact the editors responsible for this story: Alex Wayne at awayne3@bloomberg.net, John HarneyFor more articles like this, please visit us at bloomberg.com©2019 Bloomberg L.P.



          

Trump left isolated as Republican allies revolt over US withdrawal from Syria   

Cache   

Trump left isolated as Republican allies revolt over US withdrawal from SyriaMitch McConnell and Lindsey Graham lead condemnation of foreign policy move that could prove ‘disaster in the making’Donald Trump with Mark Milley, the chairman of the joint chiefs of staff, in the Cabinet Room on Monday. Lindsey Graham said abandoning the Kurds would be ‘a stain on America’s honour’. Photograph: Carolyn Kaster/APDonald Trump was dangerously isolated on Monday as, in a rare rebuke, some of his most loyal allies revolted against his decision to withdraw US troops from north-eastern Syria.Senate majority leader Mitch McConnell led a chorus of Republicans who, having defended the president on almost every other issue – including over impeachment – decided to draw a line in the sand.“A precipitous withdrawal of US forces from Syria would only benefit Russia, Iran, and the Assad regime,” McConnell said. “And it would increase the risk that Isis and other terrorist groups regroup.”He added: “As we learned the hard way during the Obama administration, American interests are best served by American leadership, not by retreat or withdrawal.”The criticism was significant because McConnell is usually at pains not to cross Trump even at his most capricious. Last week the Kentucky senator released a Facebook video promising to stop Democratic-led impeachment in its tracks.Article 1 of the United States constitution gives the House of Representatives the sole power to initiate impeachment and the Senate the sole power to try impeachments of the president. A president can be impeached if they are judged to have committed "treason, bribery, or other high crimes and misdemeanors" – although the constitution does not specify what “high crimes and misdemeanors” are.The process starts with the House of Representatives passing articles of impeachment. A simple majority of members need to vote in favour of impeachment for it to pass to the next stage. Democrats currently control the house, with 235 representatives.The chief justice of the US supreme court then presides over the proceedings in the Senate, where the president is tried, with senators acting as the jury. For the president to be found guilty two-thirds of senators must vote to convict. Republicans currently control the Senate, with 53 of the 100 senators.Two presidents have previously been impeached, Bill Clinton in 1998, and Andrew Johnson in 1868, though neither was removed from office as a result. Richard Nixon resigned in 1974 before there was a formal vote to impeach him.Martin BelamThe unusual fracture emerged on Sunday night when, shortly after a phone conversation between Trump and Turkey’s president Recep Tayyip Erdoğan, the White House announced removal of US troops from the Syria-Turkey border area. “Turkey will soon be moving forward with its long-planned operation into Northern Syria,” it added.Critics of all political stripes have long feared that the move could open the way for a Turkish strike on Kurdish-led fighters in the area. Kurdish groups have fought alongside a small US presence in Syria to drive Islamic State militants from the region.The Republican backlash was rapid and potentially unnerving for a president whose fate is tethered to the party and the assumption that it will acquit him in the Senate if, as widely expected, the Democratic-led House of Representatives votes for impeachment.Lindsey Graham, chairman of the Senate judiciary committee, who has become an outspoken defender (and frequent golf partner) of Trump, did not acquiesce this time. Abandonment of the Kurds would be “a disaster in the making”, he said, and “a stain on America’s honour”.Graham told Fox News: “I hope I’m making myself clear how short-sighted and irresponsible this decision is. I like President Trump. I’ve tried to help him. This, to me, is just unnerving to its core.”Graham wrote on Twitter that if the plan goes ahead, he will introduce a Senate resolution opposing it and seeking reversal of the decision. He added: “We will introduce bipartisan sanctions against Turkey if they invade Syria and will call for their suspension from NATO if they attack Kurdish forces who assisted the US in the destruction of the ISIS Caliphate.”Kevin McCarthy, the top Republican in the House, whose attempts to defend Trump’s phone call with Ukraine’s president have provoked mockery, said: “If you make a commitment and somebody is fighting with you, America should keep their word.”Michael McCaul of Texas, the lead Republican on the House foreign affairs committee, also urged the president to reconsider. “The United States should not step aside and allow a Turkish military operation in north-east Syria,” he said. “This move will undermine our ongoing campaign to prevent an Isis resurgence and will ultimately threaten our homeland.“Additionally, the United States needs to stay engaged to prevent further destructive involvement in the region from our adversaries like the Assad regime, Putin and Iran.”Notably, senator Marco Rubio of Florida, reluctant to criticise Trump even when the president suggested that China investigate former vice president and 2020 election rival Joe Biden, was clear , describing the retreat as “a grave mistake that will have implications far beyond Syria”And Nikki Haley, Trump’s former UN ambassador, admonished Trump without mentioning his name. “We must always have the backs of our allies, if we expect them to have our back,” she tweeted. “The Kurds were instrumental in our successful fight against ISIS in Syria. Leaving them to die is a big mistake. TurkeyIsNotOurFriend”Ominously for Trump, even conservative Fox News aired dissent. Host Brian Kilmeade described the pullout as “a disaster”, telling viewers of Fox & Friends: “Abandon our allies? That’s a campaign promise? Abandon the people that got the caliphate destroyed?”Republicans who have contradicted Trump before did so forcefully again. Utah senator Mitt Romney described Trump’s announcement as “a betrayal”, adding: “It says that America is an unreliable ally; it facilitates ISIS resurgence; and it presages another humanitarian disaster.”Romney and Democratic senator Chris Murphy issued a joint statement insisting Trump’s administration “explain to the American people how betraying an ally and ceding influence to terrorists and adversaries is not disastrous for our national security interests”.Democrats also piled in but there was a lone voice of support for the president on Capitol Hill. Republican senator Rand Paul, long a critic of foreign intervention, said: “So many neocons want us to stay in wars all over the Middle East forever. [Trump] is absolutely right to end those wars and bring the troops home.”Trump himself was undeterred by the blowback. Speaking at the White House on Monday, he said he has “great respect” for the prominent Republican critics. And added: “People are extremely thrilled because they say it’s time to bring our people back home. We’re not a police force. They’re policing the area. We’re not a police force. The UK was very thrilled at this decision … many people agree with it very strongly.”



          

GOP Senators Unnerved and ‘Concerned’ About ‘Betrayal’ of Kurds in Syria   

Cache   

GOP Senators Unnerved and ‘Concerned’ About ‘Betrayal’ of Kurds in SyriaBRENDAN SMIALOWSKIPresident Donald Trump’s decision to pave the way for a Turkish invasion of northern Syria at the expense of Kurdish allies in the region has infuriated Republican allies in the Senate who have spent the last two weeks twisting themselves in knots to defend him from an impeachment inquiry. Late on Sunday, the White House released a one-paragraph statement declaring that a Turkish invasion of northern Syria was imminent, and the United States would “not support or be involved in the operation” and “will no longer be in the immediate area.” For Kurds in the region—who have been fighting ISIS with U.S.-supplied weapons and are largely considered the strongest fighting force in Syria—the declaration amounts to an abrogration of agreements with the United States to defend them against Turkey, which considers them to be terrorists. In June, Trump himself warned that abandoning the alliance would allow Turkey to “wipe out the Kurds, who helped us with ISIS.”Trump’s Crazy Syria Move Will Wipe Out America’s Allies and Set Up a Big ISIS ComebackThe backlash from his Republican allies was swift.  Sen. Lindsey Graham (R-SC), led the way on Monday morning, with the South Carolina senator calling the move “shortsighted and irresponsible” on Fox & Friends, a show that effectively serves as a televised presidential daily brief for Trump.“This impulsive decision by the president has undone all the gains we’ve made, thrown the region into further chaos, Iran is licking their chops, and if I’m an ISIS fighter, I’ve got a second lease on life,” Graham said. “I will do everything I can to sanction Turkey’s military and their economy if they step one foot into Syria. I hope I’m making myself clear how shortsighted and irresponsible this decision is.”Graham even referenced the House’s impeachment inquiry, unprompted, before adding that while “I’ve tried to help him,” the president’s behavior was “just unnerving to its core.”Graham, who has spent years trying to steer Trump closer to the hawkish foreign policy stances held by his Republican predecessors, opened the floodgates for Republicans who see Trump’s move as a threat to a critical U.S. ally in the region, and a potentially disastrous embrace of an autocratic regime.Indeed, Monday saw widespread pushback from around the Senate GOP, from lawmakers who’ve cozied up to Trump to those who have been more willing to call him out. Sen. Marco Rubio (R-FL), a Trump ally who has nudged him toward more hawkish positions on Venezuela and Iran policy, called the decision “a grave mistake that will have implications far beyond Syria.” Sen. Cory Gardner (R-CO) said that he was “deeply concerned” that the decision could leave Kurds who risked their lives to fight ISIS in harm’s way.And Sen. Mitt Romney (R-UT), probably Trump’s most vocal Senate GOP critic, characterized the pullout as “a betrayal” that “presages another humanitarian disaster” in Syria. Romney went so far as to join Sen. Chris Murphy (D-CT) to demand that administration officials explain their move to lawmakers and the public. Sen. Ben Sasse (R-NE), meanwhile, has toned down his Trump criticism lately but warned that the retreat would “likely result in the slaughter of allies who fought with us, including women and children.” Sen. Susan Collins (R-ME) managed to subtweet the president, calling Trump’s move “a terribly unwise decision” moments after the president described his wisdom on the matter as “great and unmatched.”Even Majority Leader Mitch McConnell, in a rare rebuke of the president whom he has pledged to protect from removal from office, pleaded with Trump to maintain an American presence in the region and to prevent Turkey from invading.“I urge the president to exercise American leadership to keep together our multinational coalition to defeat ISIS and prevent significant conflict between our NATO ally Turkey and our local Syrian counterterrorism partners,” McConnell said in a statement. Major new conflict between Turkey and our partners in Syria, McConnell said, “would seriously risk damaging Turkey’s ties to the United States and causing greater isolation for Turkey on the world stage.”Among Trump’s allies seeking to thread the needle between opposing the withdrawal and ensuring that the president didn’t feel attacked was Sen. Ted Cruz, who tweeted that while Trump was “right to want to bring our soldiers home,” it would be “DISGRACEFUL” (capital letters Cruz’s) to allow Turkey to attack Kurdish allies in the region.“Our enemies and rivals (Iran, Russia, etc.) don’t abandon their allies,” Cruz said. “If we want allies to stand with America in the future, we shouldn’t either. Honorable nations stand by their friends.”Seemingly alone among Senate Republicans in supporting the withdrawal was Sen. Rand Paul, who is perhaps the biggest cheerleader of Trump’s isolationist instincts. The Kentucky senator told reporters that he stands with Trump “as he once again fulfills his promises to stop our endless wars and have a true America First foreign policy.”Other Senate Republicans have remained tight-lipped on the president’s decision, perhaps praying that Trump will reverse course on the withdrawal—as he did in December 2018, after sharp rebukes from within the party and the resignation of Secretary of Defense Jim Mattis halted a hastily announced drawdown of U.S. troops from Syria.Asked during an event celebrating a trade agreement with Japan on Monday afternoon about whether he had consulted with the Joint Chiefs of Staff about the decision, Trump insisted that he had.“I consulted with everybody,” Trump said.Additional reporting: Sam Brodey Read more at The Daily Beast.Get our top stories in your inbox every day. Sign up now!Daily Beast Membership: Beast Inside goes deeper on the stories that matter to you. Learn more.



          

Senate Republicans Recoil From Trump’s Decision to Abandon Kurds   

Cache   

Senate Republicans Recoil From Trump’s Decision to Abandon Kurds(Bloomberg) -- President Donald Trump’s decision to withdraw U.S. forces from Syria and abandon Kurdish allies has prompted a furious backlash among key members of his most important bulwark against an impeachment conviction: Senate Republicans.Hawkish GOP senators, whom Trump will need to keep him in office if the House moves ahead with impeachment, condemned the president’s decision as a win for terrorists and a defeat for American credibility. Some are already discussing legislation to push back.“A precipitous withdrawal of U.S. forces from Syria would only benefit Russia, Iran and the Assad regime,” Senate Majority Leader Mitch McConnell said in a statement. He urged the president to “keep together our multinational coalition to defeat ISIS and prevent significant conflict between our NATO ally Turkey and our local Syrian counterterrorism partners.”Foreign policy has long been the issue where Republicans are most likely to disagree with Trump, and it’s not clear that strong words against the president’s Syria policy will cost him any political support. Trump would have to lose the support of at least 20 Republican senators to be removed from office if the House votes to impeach him.The harshest criticism Monday came from South Carolina Senator Lindsey Graham, a strong Trump ally and frequent golf companion. Graham said this “impulsive decision” will benefit Iran and cost the U.S. leverage in the region.Graham also said he and Democratic Senator Chris Van Hollen will introduce sanctions against Turkey if the NATO ally invades Syria. He said he expects such sanctions to get a two-thirds majority -- enough to override a Trump veto.After criticism from Graham and others, Trump tweeted that he would “totally destroy and obliterate” Turkey’s economy if it took “off limits” actions that he didn’t specify. He also said Turkey must “watch over” about 12,000 captured Islamic State fighters and tens of thousands of their family members living in jails and camps in Kurdish-held territory.The Senate earlier this year had a veto-proof margin to pass an amendment authored by McConnell opposing a withdrawal from Syria and Afghanistan. On Monday, Criticism in Congress was bipartisan, focused on the move to abandon Kurdish forces who helped U.S. forces fight ISIS, and who are holding thousands of ISIS fighters in custody.Other Senate Republicans pushing back on the president include Marco Rubio of Florida, Mitt Romney of Utah and Susan Collins of Maine, though none other than Graham have yet said they plan to act on their dismay.Romney, who heads a Foreign Relations subcommittee on the Middle East and counterterrorism, released a joint statement with Connecticut Senator Chris Murphy, the top Democrat on the panel, saying Trump’s decision “severely undercuts America’s credibility as a reliable partner and creates a power vacuum in the region that benefits ISIS.” They demanded that the administration explain the decision to the full committee.Nebraska Senator Ben Sasse, who is up for re-election next year, warned against partnering with Turkish President Recep Erdogan.“If the president sticks with this retreat, he needs to know that this bad decision will likely result in the slaughter of allies who fought with us, including women and children,” Sasse said in a statement Monday. “I hope the president will listen to his generals and reconsider.”Some House Republicans also criticized the abrupt withdrawal. Wyoming Representative Liz Cheney, a member of GOP leadership, called the decision a “catastrophic mistake.” New York Republican Elise Stefanik recently returned from a bipartisan trip to the region and joined a statement with Democratic representatives condemning Trump’s “rash decision.”“Not only will this decision further destabilize the region, it will make it more difficult for the United States to recruit allies and partners to defeat terrorist groups like ISIS,” the statement said.One of Trump’s Senate allies approved of Trump’s decision: Rand Paul of Kentucky, who has long called for withdrawing troops from Syria and Afghanistan.(Updates with McConnell quote in third paragraph)\--With assistance from Erik Wasson.To contact the reporter on this story: Steven T. Dennis in Washington at sdennis17@bloomberg.netTo contact the editors responsible for this story: Joe Sobczyk at jsobczyk@bloomberg.net, Anna Edgerton, Laurie AsséoFor more articles like this, please visit us at bloomberg.com©2019 Bloomberg L.P.



          

Lindsey Graham Blasts Trump’s ‘Irresponsible’ Syria Decision: ‘Unnerving to Its Core’   

Cache   

Lindsey Graham Blasts Trump’s ‘Irresponsible’ Syria Decision: ‘Unnerving to Its Core’REUTERSOne of President Donald Trump’s most loyal supporters in the Senate raged against the president’s Sunday night announcement that America will bow out of Syria while Turkey attacks allied Kurds in the region, calling the decision on Monday “shortsighted and irresponsible.”Appearing on Trump-boosting morning show Fox & Friends, Sen. Lindsey Graham (R-SC) was asked whether he supported the president’s move, prompting the hawkish Republican lawmaker to exclaim, “Absolutely not.”“If I didn’t see Donald Trump’s name on the tweet, I thought it would be [former President] Obama’s rationale for getting out of Iraq.” he said. “This is gonna lead to ISIS’s reemergence!”Graham went on to say this was a “big win for ISIS,” claiming that the Kurds in the area will align with Syrian dictator Bashar al-Assad because they’d have no choice due to the United States abandoning them. “So this is a big win for Iran and Assad,” he added.(During another Fox & Friends segment, co-host Brian Kilmeade criticized the president as well, calling the president’s decision “disastrous” and that it would leave the Kurds to fend for themselves.)The South Carolina senator then stated that the “Kurds stepped up when nobody else would to fight ISIS,” noting that if we abandon the Kurds at this point, nobody will want to help America in the future in fighting radical Islam. Graham also pushed back on Trump’s claim that ISIS has been eradicated.“The biggest lie being told by the administration [is] that ISIS is defeated,” he declared. “This impulsive decision by the president has undone all the gains we’ve made, thrown the region into further chaos. Iran is licking their chops. And if I’m an ISIS fighter, I’ve got a second lease on life. So to those who think ISIS has been defeated, you will soon see.”“I hope I’m making myself clear how shortsighted and irresponsible this decision is, in my view,” Graham concluded.The GOP lawmaker continued to blast the president’s move on Twitter following his Fox & Friends appearance, saying he doesn’t “believe it is a good idea to outsource the fight against ISIS to Russia, Iran and Turkey.”“I feel very bad for the Americans and allies who have sacrificed to destroy the ISIS Caliphate because this decision virtually reassures the reemergence of ISIS. So sad. So dangerous,” he wrote in another tweet. “President Trump may be tired of fighting radical Islam. They are NOT tired of fighting us.”Furthermore, piggybacking off his assertion on Fox & Friends that he would do everything he can to sanction Turkey if they invade Syria, Graham announced that he would “introduce bipartisan sanctions against Turkey if they invade Syria and will call for their suspension from NATO if they attack Kurdish forces who assisted the U.S. in the destruction of the ISIS Caliphate.”Graham wasn’t alone among Trump’s allies and loyalists to call out the president over his decision to stand aside as Turkey attacks one of America’s most reliable allies in the region. For example, Nikki Haley, former U.S. ambassador to the U.N., said we “must always have the backs of our allies” and leaving the Kurds to “die is a big mistake.” And Rep. Liz Cheney (R-WY), weeks after competing with Sen. Rand Paul (R-KY) for Trump’s affections, called it a “catastrophic mistake” to pull out of Syria, adding that terrorists “thousands of miles away can and will use their safe-havens to launch attacks against America.”Facing overwhelming criticism from within his own party on the Turkey-Syria decision, Trump tweeted late Monday morning that if Turkey does anything that “I, in my great and unmatched wisdom, consider to be off limits, I will totally destroy and obliterate the Economy of Turkey (I’ve done before!).”Read more at The Daily Beast.Got a tip? Send it to The Daily Beast hereGet our top stories in your inbox every day. Sign up now!Daily Beast Membership: Beast Inside goes deeper on the stories that matter to you. Learn more.



          

Comment on Impeachment summary 2: of honeymoons and resumés by jmac    

Cache   
<blockquote>It’s hard to know where to start with this. It would make me enumerate another list of outrageous behaviors by Trump that clearly show that Donald Trump didn’t deserve “well wishes from his opponents” or ANY decent American for that matter. None of his opponents want any part in this. We don’t condone it and we haven’t been given a good reason for why we should taint ourselves by being in the vicinity of his toxic waste pool.</blockquote> It's amazing that when the Democrats start to act like Republicans have acted since the mid-90s The Rs start to whine. <blockquote>Meanwhile, the honeymoon is over with the press.</blockquote> I hope you are right, but one call out doesn't begin to prove it to me.
          

Monday Mimisms ~ Bring Back The Glory Days of Blogging   

Cache   
Once upon a time in a blog land faraway there lived a host of vivacious characters known as bloggers. We had parties right here in Bloggingham castle. Writers were born. Authors were published. Artists carved out names for themselves in the vast wall of space known as the Blogogsphere, displaying their talents for all to see and enjoy. We memed a lot. And cheered each other on. Linking was prolific and effective for blog building and expanding networks - until Blogger slapped our typing hands and said "slow down, little Bloggers, you're getting too smart."  

I loved that my reading list for the day was written by friends. You can't say that when you choose a dusty book from the shelf of normal life.  People shared their deepest darkest and brightest brave. We were a community of caring people behind thriving webpages full of ire and fire. There were learning curves, too. And mischief-makers sometimes...but even in the rarity of the occasional meanness, it was nothing compared to the vileness of what we see on social media pages today. If someone started something testy, another blogger would raise the bar higher, jostling with well chosen words and a sense of kindness that I miss in the world. 

There's much talk on Facebook about how we miss the old days, the old community. It was a safer place to be. One of the "oldies" (you know who you are) said to me earlier today that he missed the glory days of blogging. I've heard that sentiment many times of late. We are weary of wailing politics and memes that don't mean anything. 

Just so you know, Bloggingham is still my home. The yard is a little overgrown and the moat needs cleaning, but Homer and I still wander aimlessly through its ever-changing landscape and hold court in the dungeon when things go awry. 

I have a feeling that ten years from now, maybe sooner, Facebook and Twitter and Instagram will be the "old" communities, and will have morphed into something unusable and complicated. But we won't long for them the way we seem to be rambling on about the good old days in the Blogosphere. 

I don't know if you still have a blog, but if you do, I hope you'll drop in from time to time. 
I really need to clean out that dungeon. There may still be a few old bloggers in there.









Follow Me
Join us for Blog4Peace Nov 4
Like Our Facebook Page


          

Problem with DropDownList, iFrame and iPad.   

Cache   

Hi,
This is a defect we found out in Kendo dropddownlist as Dropdown list item not selected in IPAD 13.0 Safari browser - Desktop browser view. However, Mobile view is working fine. Chrome and Firefox is working fine.

IPAD IOS version - 13.0

Dropdownlist is position in iframe

I am also send you the pic. Please find attached

Could you please check this defect or If it is fixed. please let me know. I hope you understand my issue. If there is any miscommunication i will be happy to discuss more.

 

Thanks
Puneet Chutani


          

Re: 529 savings?   

Cache   
Thank you Vic! :D



I really appreciate the kind words. I'm always questing if I'm doing the right thing and making the most of my situation. Life is such a juggling act. Your words really mean a lot!



I do have disability insurance through Guardian (9k month) and 2.5MM term life insurance...both of which I hope to never need. :sharebeer
          

Enterprise Application with Ruby on Rails?   

Cache   

Originally posted on: http://staffofgeeks.net/afeng/archive/2007/01/17/103852.aspx

There has been a lot of “buzz” around Ruby on Rails for a while now.  I have been following it since it hit the street.  I have to admit I have not done much with Rails except for reading and dreaming about it, but I hope to work with it someday.  However, in the back of my mind, I always wondered if I could build a real world application using this framework.  Now a day, everyone is building so called “Enterprise” (What is enterprise anyways?) applications.  If I use Rails, can I say my application is enterprise ready?

I came across Jay Field’s post on Rails: Enterprise Ready.  One of the points he made in his post is that RoR right out of the box might not solve your problem (I do not think any framework can), but it can be easily extended.  Being easily extended is the key to any useful and sucessful framework.

Besides all the enterprise worthyness stuff, I also found Jay’s approach to unit testing interesting.  On top of the MVC layer, he inserted a Presenter abstraction in between the view and the controller.  The Presenter will be responsible for maintaining data for the view to consume.  Normally the controller would be responisble for this which might make testing a little bit messy.  Since the presenter maintains the data, it can be tested independently.  Of course the draw back is having to create and maintain a separate class.

He also mentioned all his unit tests run in less than a second.  Assuming he has more than a couple hundred tests, that number is amazingly fast!  One of the reasons he is able to achieve those numbers is because none of his tests actually hit the database.  This reminds me, our unit tests are running way too slow right now mostly because a lot of tests hit the database (especially when we run it on Oracle, it is killing me).  I am going to take off my RoR hat and try to see if I can make our tests faster :-)


          

Ruby on Rails Migration   

Cache   

Originally posted on: http://staffofgeeks.net/afeng/archive/2006/09/30/92832.aspx

Recently I decided to check out the beta version of Agile Web Development with Rails book, which is targeted to be released this fall.  It is very interesting that the authors also brought agility into book writing.  It allows readers to provide feedback to new material during the development of the book.  I am also glad to see that the migration part of the framework has become a big part of the book, even having a separate chapter dedicated to it.  It uses migration instead of DDL in the entire demo application.  Besides the migration, there are many significant updates to various parts of the book. But in this post, I will focus mostly on the migration tool.

The migration tool is targeting Rails applications, but it can also be useful outside the Rails world.  There are some people out there already (includes us, here is my old post on it) experimenting using Rails migration as "Enterprise glue" to maintain database schemas.  I hope the final release version of the book will have something on this topic.

I will outline the basics of rails migration below for those are not familiar with it.

What is Ruby on Rails Migration?

At the most simple level, it allows developers to change the database schema as the application requires it in a simple and easy manner.  Instead of writing DDL scripts, you use Ruby as a DSL (domain specific language) to describe what the schema should look like when the changes are required.

Why use it?

The migration tool allows developers to upgrade or downgrade a schema version without loosing data (of course, if you drop stuff it will be lost).  Sure, you can write DDL that does the same thing for you (sort of, but not really without some external tooling), but it will take a lot more effort especially when you are supporting more than one database.  In theory, the migration script you write for one database should work on other databases as long as the operation is supported (currently, it supports all major databases including open source alternatives).  I said in theory because not all databases behave exactly the same way for a given operation. There might be some minor differences, but that's for another post.  If you need to extend or change the existing migration functionality, it is usually very easy to do so.

How does it work?

You basically write a Ruby class that inherits from ActiveRecord::Migration to describe what needs to be accomplished.  There are only two methods you need to write, up and down.  Up method will be called during an upgrade, and down method for downgrading.

class AddTable < ActiveRecord::Migration
  def self.up
    create_table :cars do |t|
      t.column :model,       :string
      t.column :year,          :int
      t.column :make,        :string
      t.column :comments, :text
    end
  end
 
  def self.down
    drop_table :cars
  end
end

In this trivial example, it creates a cars table with model, year, make, and comments columns.  One interesting thing to note about model and make columns are both string type.  This is not DDL we are working with.  Migration uses Ruby classes to encapsulate the internal database types in order to abstract out the databases.  Depending on what type of database you are using, string type might vary, but it tends to be pretty consistant across different databases.  In the down method, it just does exactly the opposite, as if the script has never been run.

On the command line, if you run “rake db:migrate”, your database will be upgraded to the latest version.  In this case, the cars table will be added.  Each migration script will have a 3 digit number in the start of the file name which represents the schema version of the script.  That same version number is also stored in the database you are using.  That is how migration knows which script to run during an upgrade or downgrade.  Using the example above, the file name would look something like the following:

001_create_cars.rb

Lets say you are currently on version four but you need to roll back to version one, you can run the following command:

rake db:migration VERSION=1

Migration supports most of the operations you would need to perform on the daily basis.  But if you need to do something it does not support you can always execute DDL in your migration script.

One of the really cool things about using Ruby as a DSL is that you have the power of a real programming language to create your migration scripts. This comes in really handy when you need to create test data.

I only scratched the surface on the stuff I covered on Rails migration.  I would encourage anyone that is interested to read the Rails book.


          

Presentation Layer Testing Thoughts   

Cache   

Originally posted on: http://staffofgeeks.net/afeng/archive/2006/07/05/84187.aspx

For anyone doing Test Driven Development, mocks (stubs) are commonly used.  Whether you hand roll your own mocks, or use a mock framework like Rhino Mocks, stubs are used to in order to isolate the code we want to test.  Before we can isolate our code, proper separations of concerns are required; such as implementing the Model View Controller or Model View Presenter pattern for UI testing.  After you practice TDD for a few months, and write countless tests, you start to see a pattern of how to make your presentation layer testable and everything becomes automatic and second nature.

One of the big benefits of TDD is using tests to guide your design.  Have you ever stopped and wondered if your design has really improved by structuring your code in a manner that is testable?  Are you creating more duplication or allowing too much accessibility?  Let’s examine how the presentation layer can be tested using the MVP pattern.  I will use a simple example where the customer information can enter entered.  I purposely omitted the presenter interaction with the view in order to put more focus on the view.

public interface ICustomerDetailsView {

  string CustomerFirstName { get; }

  string CustomerLastName { get;}

  List<Order> Orders { get; }

}

 

public class CustomDetailsView : UserControl, ICustomerDetailsView { 

  public string CustomerFirstName {

    get { return this.firstNameTextBox.Text; }

  }

 

  public string CustomerLastName {

    get { return this.lastNameTextBox.Text; }

  }

 

  public List<Order> Orders {

    get {

      List<Order> orders = new List<Order>();

      foreach (Order order in this.ordersComboBox.Items) {

        orders.Add(order);

      }

      return orders;

    }

  }

}

 

We start with an interface called ICustomerDetailsView to describe behaviors of the view.  Now we can use the interface to create our mock view.  In the MVP pattern, the presenter is an extension to the view, so all the interactions occuring in the view will be delegated to the presenter.  With the delgation to the presenter, we would only have to explicitly test the presenter.  The reason the view is not tested is because all the logic lives inside of the presenter, so we end up testing the API.

 

public class MockCustomDetailsView : ICustomerDetailsView {

  // implement ICustomerDetailsView

  // you can have setters here so values can be injected for testing

}

The presenter can now use the mock view during automated testing and will not know a difference from the real thing.  All your tests pass and life is good.  Before you checkin your code, you decide to smoke your application.  To your surprise, your view does not behave correctly.  You poke around for a few seconds and you remember your tests actually use the mock view, so you never wired up the real thing.  In this simple scenario, when all your tests pass it does not mean your application will work correctly if you never wire it up.  Sometimes it can feel a little awkward when you are writing the mock view to mimic the real view, so your tests can pass.  On top of that, the interface was only added to make the mock possible in this scenario.  I understand creating an interface is considered “best practice” to loosen up the coupling, but in this case, the interface was created to make stubbing possible.  It is a little smelly to me because files were added only to make testing possible, and the real view was treated like a second class citizen.  Maybe this is not so bad, and I should not lose sleep over it.

Maybe life would be a whole lot better if we could use the real view in this case for testing.  That would eliminate our problem of forgetting to wire things up.  It would also reduce the number of files we have to write, and would achieve the same outcome.  Let’s see if we can create another implementation of CustomerDetailsView to accomplish this.  We will call the new view ICustomerDetailsView2:

public class CustomDetailsView2 : UserControl {

  public string CustomerFirstName {

    get { return this.firstNameTextBox.Text; }

    set { this.firstNameTextBox.Text = value; }

  }

 

  public string CustomerLastName {

    get { return this.lastNameTextBox.Text; }

    set { this.lastNameTextBox.Text = value; }

  }

 

  public List<Order> Orders {

    get {

      List<Order> orders = new List<Order>();

      foreach (Order order in this.ordersComboBox.Items) {

        orders.Add(order);

      }

      return orders;

    }

 

    set {

      foreach (Order order in value) {

        this.ordersComboBox.Items.Add(order);

      }

    }

  }

}

We can use this view for both testing and production code, but the side effect is that we have to expose setters only for testing purposes.  In our first implementation, we were able to put the setters only on the mock, so our real view is not polluted.  The reason the setter is unnecessary for CustomerDetailsView2 is because we would never programmatically call the setter.  The setter is used to simulate data input from the user.

 

Either way  you look at it, there are some drawbacks to both techniques.  This really depends on what you consider the lesser of the evils.  I know there are ways to solve this problem by using a mock framework, but then again are you adding technology in order to make testing possible?  Let’s say we live in a world where we do not need to do any testing.  Whatever code we write will always work.  Would you have implemented CustomerDetailsView the same way?  The second example exposes setters when the real system will never use it.  Is that breaking the accessibility of the view?

 

I understand the ability to mock things out is good because that means your system has enough abstractions.  I am just not sure mocks should be used every where in order to make testing possible.  I know there is a fine line here, like many good things in the Computer Science world, but I often struggle to choose the optimal way.  I hope no one got the impression that I am bashing on TDD or mock objects. In fact, it is quiet the opposite.


          

Worst Cover Songs Done By Pop Punk Bands   

Cache   
Man, Pop Punk band's always gotta ruin great songs. These are the worst cover songs done by pop punk bands. Note: I actually had to listen to these songs just to make this list. So I suffered for you so you don't have too. I hope your happy because i'm not.
          

Simple Menu Planning – Overcoming Obstacles   

Cache   

Getting dinner on the table at the end of the day is a STRUGGLE! As a busy mom, homemaker, and homeschool teacher it is one of the hardest tasks I do all day. I already shared my motivators to get me in the kitchen to cook dinner again. But even with all that motivation. Overcoming obstacles along the way to dinner can still be HARD! Today, I am sharing the real-deal problems I have with preparing dinner and how I am currently solving them. I hope you will find some encouragement in these words and solutions. Grocery Store Woes I remember as a kid loving to go to the grocery store. The novelty of going to the grocery store wore off ages ago. Now it is just another thing that has to be done. Adding four kids to the mix created more of a problem: my husband prefers that he go with us when we go to the grocery store (There have been a number of strange instances locally that make us uncomfortable). Now I have two options wait for my husband to be able to go to the store with all of us OR wait for my husband to […]

The post Simple Menu Planning – Overcoming Obstacles appeared first on Simple. Home. Blessings.


Next Page: 25

© Googlier LLC, 2019