text:
How Abba Kyari Narrowly Escaped Death During Terrorists Attack At Kuje Prisons
DCP Abba Kyari
By Frank Oshanugor
Contrary to reports that the whereabouts of embattled Deputy Commissioner of Police, Abba Kyari who is confined in Kuje Correctional Center, Abuja over drug related offences with other high profile prisoners was unknown after the attack on Tuesday, it was revealed, yesterday, that he narrowly escaped death during the attack.
Dependable prison sources intimated that as soon as the heavily armed terrorists succeeded in getting hold of their colleagues inside the prison, one of the rescued commanders started shouting that Abba Kyari must be fished out from the isolated cell where he was kept.
Sources said the so called commander pointed at the isolated area as they were hastily escaping from the center and they all moved towards the place shouting his name saying; "Abba Kyari, you are dead, we will kill you now" and the terrorists targeted their rifles and fired over 200 rounds of ammunition towards the place.
The attackers reportedly threw two bombs in the same direction but they could not explode.
It was learned that as they were advancing towards the building, shots from military men that came to repel the attack rang out heavily prompting the hasty retreat of the terrorists towards the wall where they came from.
One of the sources from the North said he overheard the terrorists saying let's escape with our main target and leave Kyari alone before they ran towards the damaged walls of the correctional center from where they escaped with their colleagues.
It was also gathered that as soon as the bandits disappeared from the prison, many of the inmates took the same route through which they escaped and ran away.
The source said: "We ran into the cells for dear life when we saw the barrage of bullets coming from the highly sophisticated weapons in their possession. Some of the inmates received us warmly thinking that we are their targets. They moved without restrain or direction from anybody towards where Boko Haram suspects were confined signifying that they must have carried out surveillance discreetly before storming the center.
"I must add that I admire the courage of Abba Kyari because he was one of the first inmates that came out to confront the prisoners escaping from the center. He was overheard speaking in a combination of Hausa language and pidgin English appealing for calm from the inmates who were rushing towards the broken wall for escape," a source said.
The source added that "it was God that saved Kyari. Had it been those bombs exploded, Kyari would have been history by now."
After the 2.45hours attack, the terrorists left, Abba Kyari and his men had the opportunity to follow the crowd that were escaping in Mass after the terrorists had rescued their members and left but Kyari refused to escape. He remained in the Correctional Centre with Honm Farouk Lawan, former Governor Jolly Nyame and few others.
It was gathered that many of the inmates at the Correctional Centre set free by the invaders were terrorists, kidnappers, armed robbers, bandits and those sentenced to death for murder.
A good number of the Terrorists were those in bombing Kuje and Nyanya in 2015 and those who kidnapped the Chibok School girls arrested by Abba Kyari and his team. All of them escaped during the attack.
Kwankwaso On Fire From Northern Youths Over Comments Against Obi
Mobolaji Bank Anthony Estate: My Role In The Struggle …… Queen Irene Cole


text:
Systematic review protocol of interventions to improve the psychological well-being of general practitioners
Marylou Murray, Lois Murray, Michael Donnelly
The challenges and complexities faced by general practitioners are increasing, and there are concerns about their well-being. Consequently, attention has been directed towards developing and evaluating interventions and strategies to improve general practitioner well-being and their capacity to cope with workplace challenges.
This systematic review aims to evaluate research evidence regarding the effectiveness of interventions designed to improve general practitioner well-being. Eligible studies will include programmes developed to improve psychological well-being that have assessed outcomes using validated tools pertaining to well-being and related outcomes. Only programmes that have been evaluated using controlled study designs will be reviewed. An appropriately developed search strategy will be applied to six electronic databases: the Cochrane Database of Systematic Reviews, MEDLINE, Embase, CINAHL, PsycINFO and Web of Science. Studies will be screened in two stages by two independent reviewers. A third reviewer will arbitrate when required. Pre-specified inclusion and exclusion criteria will be assessed during a pilot phase early on in the review process. The Cochrane data extraction form will be adapted and applied to each eligible study by two independent reviewers, and each study will be appraised critically using standardised checklists from the Cochrane Handbook. Methodological quality will be taken into account in the analysis of the data and the synthesis of results. A narrative synthesis will be undertaken if data is unsuited to a meta-analysis.
The systematic review will be reported according to the Preferred Reporting Items for Systematic Reviews and Meta-analyses guidance. This will be the first systematic review on this topic, and the evidence synthesis will aid decision-making by general practitioners, policy makers and planners regarding ways in which to improve GP well-being. Findings will be disseminated at general practitioner meetings, conferences and in professional and peer-reviewed journals.
https://doi.org/10.1186/s13643-015-0098-z
Published - 22 Sep 2015
10.1186/s13643-015-0098-zLicence: CC BY
Copyright 2014 the authors. This is an open access article published under a Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution and reproduction in any medium, provided the author and source are cited.
Final published version, 416 KBLicence: CC BY
Fingerprint Dive into the research topics of 'Systematic review protocol of interventions to improve the psychological well-being of general practitioners'. Together they form a unique fingerprint.
General Practitioners Medicine & Life Sciences
Systematic Reviews Medicine & Life Sciences
Psychology Medicine & Life Sciences
Meta-Analysis Medicine & Life Sciences
Databases Medicine & Life Sciences
Administrative Personnel Medicine & Life Sciences
Congresses Medicine & Life Sciences
Checklist Medicine & Life Sciences
Murray, M., Murray, L., & Donnelly, M. (2015). Systematic review protocol of interventions to improve the psychological well-being of general practitioners. Systematic Reviews, 4, [117]. https://doi.org/10.1186/s13643-015-0098-z
Murray, Marylou ; Murray, Lois ; Donnelly, Michael. / Systematic review protocol of interventions to improve the psychological well-being of general practitioners. In: Systematic Reviews. 2015 ; Vol. 4.
@article{0cdd5f3694ab4f09973f82dd9d0ee102,
title = "Systematic review protocol of interventions to improve the psychological well-being of general practitioners",
abstract = "BackgroundThe challenges and complexities faced by general practitioners are increasing, and there are concerns about their well-being. Consequently, attention has been directed towards developing and evaluating interventions and strategies to improve general practitioner well-being and their capacity to cope with workplace challenges.Methods/designThis systematic review aims to evaluate research evidence regarding the effectiveness of interventions designed to improve general practitioner well-being. Eligible studies will include programmes developed to improve psychological well-being that have assessed outcomes using validated tools pertaining to well-being and related outcomes. Only programmes that have been evaluated using controlled study designs will be reviewed. An appropriately developed search strategy will be applied to six electronic databases: the Cochrane Database of Systematic Reviews, MEDLINE, Embase, CINAHL, PsycINFO and Web of Science. Studies will be screened in two stages by two independent reviewers. A third reviewer will arbitrate when required. Pre-specified inclusion and exclusion criteria will be assessed during a pilot phase early on in the review process. The Cochrane data extraction form will be adapted and applied to each eligible study by two independent reviewers, and each study will be appraised critically using standardised checklists from the Cochrane Handbook. Methodological quality will be taken into account in the analysis of the data and the synthesis of results. A narrative synthesis will be undertaken if data is unsuited to a meta-analysis.DiscussionThe systematic review will be reported according to the Preferred Reporting Items for Systematic Reviews and Meta-analyses guidance. This will be the first systematic review on this topic, and the evidence synthesis will aid decision-making by general practitioners, policy makers and planners regarding ways in which to improve GP well-being. Findings will be disseminated at general practitioner meetings, conferences and in professional and peer-reviewed journals.",
author = "Marylou Murray and Lois Murray and Michael Donnelly",
doi = "10.1186/s13643-015-0098-z",
journal = "Systematic Reviews",
publisher = "BioMed Central",
Murray, M, Murray, L & Donnelly, M 2015, 'Systematic review protocol of interventions to improve the psychological well-being of general practitioners', Systematic Reviews, vol. 4, 117. https://doi.org/10.1186/s13643-015-0098-z
Systematic review protocol of interventions to improve the psychological well-being of general practitioners. / Murray, Marylou; Murray, Lois; Donnelly, Michael.
In: Systematic Reviews, Vol. 4, 117, 22.09.2015.
T1 - Systematic review protocol of interventions to improve the psychological well-being of general practitioners
AU - Murray, Marylou
AU - Murray, Lois
AU - Donnelly, Michael
N2 - BackgroundThe challenges and complexities faced by general practitioners are increasing, and there are concerns about their well-being. Consequently, attention has been directed towards developing and evaluating interventions and strategies to improve general practitioner well-being and their capacity to cope with workplace challenges.Methods/designThis systematic review aims to evaluate research evidence regarding the effectiveness of interventions designed to improve general practitioner well-being. Eligible studies will include programmes developed to improve psychological well-being that have assessed outcomes using validated tools pertaining to well-being and related outcomes. Only programmes that have been evaluated using controlled study designs will be reviewed. An appropriately developed search strategy will be applied to six electronic databases: the Cochrane Database of Systematic Reviews, MEDLINE, Embase, CINAHL, PsycINFO and Web of Science. Studies will be screened in two stages by two independent reviewers. A third reviewer will arbitrate when required. Pre-specified inclusion and exclusion criteria will be assessed during a pilot phase early on in the review process. The Cochrane data extraction form will be adapted and applied to each eligible study by two independent reviewers, and each study will be appraised critically using standardised checklists from the Cochrane Handbook. Methodological quality will be taken into account in the analysis of the data and the synthesis of results. A narrative synthesis will be undertaken if data is unsuited to a meta-analysis.DiscussionThe systematic review will be reported according to the Preferred Reporting Items for Systematic Reviews and Meta-analyses guidance. This will be the first systematic review on this topic, and the evidence synthesis will aid decision-making by general practitioners, policy makers and planners regarding ways in which to improve GP well-being. Findings will be disseminated at general practitioner meetings, conferences and in professional and peer-reviewed journals.
AB - BackgroundThe challenges and complexities faced by general practitioners are increasing, and there are concerns about their well-being. Consequently, attention has been directed towards developing and evaluating interventions and strategies to improve general practitioner well-being and their capacity to cope with workplace challenges.Methods/designThis systematic review aims to evaluate research evidence regarding the effectiveness of interventions designed to improve general practitioner well-being. Eligible studies will include programmes developed to improve psychological well-being that have assessed outcomes using validated tools pertaining to well-being and related outcomes. Only programmes that have been evaluated using controlled study designs will be reviewed. An appropriately developed search strategy will be applied to six electronic databases: the Cochrane Database of Systematic Reviews, MEDLINE, Embase, CINAHL, PsycINFO and Web of Science. Studies will be screened in two stages by two independent reviewers. A third reviewer will arbitrate when required. Pre-specified inclusion and exclusion criteria will be assessed during a pilot phase early on in the review process. The Cochrane data extraction form will be adapted and applied to each eligible study by two independent reviewers, and each study will be appraised critically using standardised checklists from the Cochrane Handbook. Methodological quality will be taken into account in the analysis of the data and the synthesis of results. A narrative synthesis will be undertaken if data is unsuited to a meta-analysis.DiscussionThe systematic review will be reported according to the Preferred Reporting Items for Systematic Reviews and Meta-analyses guidance. This will be the first systematic review on this topic, and the evidence synthesis will aid decision-making by general practitioners, policy makers and planners regarding ways in which to improve GP well-being. Findings will be disseminated at general practitioner meetings, conferences and in professional and peer-reviewed journals.
U2 - 10.1186/s13643-015-0098-z
DO - 10.1186/s13643-015-0098-z
JO - Systematic Reviews
JF - Systematic Reviews
Murray M, Murray L, Donnelly M. Systematic review protocol of interventions to improve the psychological well-being of general practitioners. Systematic Reviews. 2015 Sep 22;4. 117. https://doi.org/10.1186/s13643-015-0098-z

redpajama_set_name: RedPajamaCommonCrawl


text:
Paul Sperry compiles definitive proof that Trump aide Victoria Coates is 'Anonymous' rat
Corruption and Coverup,Deep State coup,MAGA,Politics – Down and Dirty,The Enemy Within
If the name Paul Sperry doesn't sound familiar to you, it should. Sperry provided the definitive evidence proving that Eric Ciaramella was the fake whistleblower who instigated the impeachment of President Trump. I ran his full column about Ciaramella from Real Clear Investigations here at Heartland Diary USA. To this day, everyone knows who the whistleblower was but won't say the name. Only Sperry had the guts to publish it.
Now Sperry has done us another great service by compiling the evidence that proves Victoria Coates, a former deputy national security adviser to President Trump, is the anonymous author of "A Warning" and the preceding op-ed in the New York Times that claimed a group of Trump aides were secretly working to thwart the president's agenda.
According to Sperry, publishing company Javelin denied that Coates is the author in question, "brushing aside the fact it counts Coates as a client as just a 'bizarre' coincidence."
Well, when you add up all the similarities between Anonymous and Coates, you go from the "bizarre" to the "utterly unbelievable" chance that it could be a coincidence.
The fact that another former deputy national security adviser, K.T. McFarland, dismisses the accusation against Coates as "preposterous" just raises doubts about McFarland, who was herself a serious candidate for being Anonymous herself. If McFarland has actually seen the evidence and dismisses it, then it just raises questions about her own credibility as a person capable of interpreting intelligence reports.
I am re-publishing Sperry's entire report here, as encouraged by Real Clear Investigations, a sister organization of Real Clear Politics, where my own column is published.
It is interesting that Coates is awaiting reassignment to Saudi Arabia. Perhaps she can request that Ciaramella be reassigned to assist her overseas. The further from the president, the better.
Here's 'Anonymous,' Trump Aides Say. And Here's How They Outed Her.
By Paul Sperry/Real Clear Investigations
Ever since a "senior official in the Trump administration" penned an anonymous 2018 New York Times column attacking President Trump as unfit for office, Washington has been engrossed in a high-stakes whodunit. After an exhaustive investigation, the White House believes it's cracked the case, identifying Trump's turncoat as his former deputy national security adviser, Victoria Coates, according to people familiar with the internal probe.
The Sept. 5, 2018 op-ed in the New York Times by an unnamed writer now identified by White House sources as Victoria Coates, top photo. Once No. 2 in the National Security Council, the ally of GOP Sen. Ted Cruz has been kept on for political reasons and awaits posting to Saudi Arabia — far from Trump. New York Times
Rather than fire Coates, the White House has quietly transferred her to the Department of Energy, where she awaits special assignment in Saudi Arabia — far from the president.
Trump effectively demoted Coates just four months after promoting her last fall to the No. 2 spot on his National Security Council. The move was made amid a whisper campaign, started in January, that identified Coates as "Anonymous," the person who wrote the Times Op-Ed and a subsequent book, "A Warning," claiming to be part of a cabal of "fellow Republicans" resisting Trump and his policies from inside the administration.
The Washington press corps has for the most part dismissed the whispers as "unsubstantiated rumors" circulated on the Internet.
But the sources said the identification of Coates was based on circumstantial evidence generated from a months-long White House investigation led by sleuths within the NSC. Top White House adviser Peter Navarro, who works with the NSC on trade and other issues, also was heavily involved in the probe of Coates.
Click here to BUY FRANK MIELE'S BOOKS
She declined to discuss the matter on the record with RealClearInvestigations and has retained an attorney, friends say, although several colleagues have rushed to her defense, insisting the White House has the wrong person. But a source involved in the NSC probe who asked not to be identified said there was little doubt. "It's her," the source said of Coates. "That's why she was shown the door."
Published last year, "A Warning" dared the president to try to unmask the author. White House sleuths took up the dare, and found the 260-page book offered a wealth of clues. Amazon.com
The multiple sources interviewed by RealClearInvestigations either participated in the investigation of Coates or have direct knowledge of it. They spoke only on condition of anonymity to discuss a sensitive matter. They say their evidence exposing Coates includes the following:
Computer textual analyses revealing strikingly similar language, turns of phrase and historical references by both Coates and Anonymous.
Firsthand accounts by Anonymous of events witnessed only by Coates and a small number of others, the latter of whom were ruled out as suspects.
Hawkish foreign policy views held by Anonymous, many of which have been rejected by Trump.
The fact that Coates and Anonymous share a high-profile Washington literary agent with an author roster of disaffected ex-Trump officials.
Coates' long history of writing anonymously, and
Personal details revealed by Anonymous that are consistent with Coates' biography.
For political reasons, the White House decided against officially unmasking Coates and firing her, at least not before the Nov. 3 election, the sources said. Publicly outing her would merely create an unwelcome distraction ahead of the election. Coates is a well-connected conservative, who has a staunch ally in Republican Sen. Ted Cruz of Texas. White House political operatives want to avoid the divisions that marked the 2016 race, and are focused on unifying the party ahead of this summer's GOP presidential convention.
Former Deputy National Security Adviser K.T. McFarland: "The suggestion that Victoria is 'Anonymous' is preposterous." AP Photo/Pablo Martinez Monsivais, File
Illustrating the sensitivity of the internecine GOP affair is the insistence of some ex-Trump White House officials that Coates is wrongly accused. "The suggestion that Victoria is 'Anonymous' is preposterous," said K.T. McFarland, Trump's first deputy national security adviser, who helped recruit Coates to the NSC and then supervised her for much of 2017. She said Coates was a committed member of the Trump team.
McFarland added that Coates denied being the author not only to her, but also to White House security officials, who include FBI agents.
"Victoria herself has denied being 'Anonymous' during her routine security clearance review," she told RCI. "Anyone familiar with the security clearance process knows that it would have been a criminal offense, punishable by jail time, for her to lie about this."
Although "A Warning" opens with a preemptive denial that it discloses any classified information, the Justice Department has been looking into a potential violation of a federal regulation requiring officials with access to classified information to get prior approval before publishing books about their roles in the government. Coates signed a federal non-disclosure agreement, or NDA, when she joined the White House in 2017.
The probe has exposed a less prominent faction secretly undermining Trump inside the White House, sources say: not just Democratic holdovers from the Obama White House, but disloyal "Never-Trump" Republicans, who, as Anonymous complained in the book, don't believe the president can be trusted to uphold "conservative principles." The author admitted conspiring with several other "like-minded" officials to obstruct Trump and his policies and directives from the inside.
White House investigators say they are looking into at least four other White House staffers whom they suspect were part of the "resistance" with Coates. The behind-the-scenes story of how the White House fixed on Coates as the anti-Trump mole is told here for the first time.
The Hunt for 'Anonymous'
In September 2018, the New York Times agreed to hide the identity of a senior administration official bashing Trump in an opinion piece headlined "I Am Part of the Resistance Inside the Trump Administration." The author claimed to be one of several "like-minded" officials "thwarting" the president's agenda and even plotting to try to remove him from office.
Incensed, Trump declared the screed an act of "treason" and ordered an investigation to unmask the "gutless" official. The White House drew up a short list of suspects, but the search soon fizzled out for lack of leads. The mystery went unsolved for more than a year, as the White House continued to spring leaks compromising the president, mostly from within the NSC, including some that led to his impeachment.
White House trade adviser Peter Navarro: Heavily involved in the hunt for "Anonymous." AP Photo/Alex Brandon
The major break came in November 2019, when the same anonymous official doubled down on anti-Trump grievances with the release of "A Warning." The best-selling expose leaked details of the president's private conversations and trashed him as "unjust" and a "nasty man," as well as a "misogynist" and "grifter in chief."
"He should be fired," wrote the disgruntled insider in the book's final chapter. "The Trump administration is an unmitigated catastrophe."
The book dared the president to try to unmask the nameless author, boasting the text had been "carefully written to prevent any inadvertent disclosure." But to White House sleuths, the 260-page book offered a wealth of clues, and the author's challenge only intensified the desire to track down and unmask the rogue aide.
At first, the 51-year-old Coates was not an obvious suspect because she was not known to clash with the president and seemed to go along with his policies, even though she was a longtime and loyal operative of Cruz, once a leading critic of Trump. Over the course of the months-long investigation, more than 30 other suspects were considered and abandoned before the focus settled on Coates. Unlike other widely rumored suspects who eventually were ruled out — including former NSC official Fiona Hilland former Pentagon speechwriter Guy Snodgrass — Coates checked virtually all the boxes.
They were bitter rivals sparring for the Republican nomination in 2016, but Sen. Ted Cruz managed a rapprochement with the President that helped place one of his allies, Victoria Coates, in the White House. For a while anyway. AP Photo/Paul Sancya, File
After a careful deconstruction of details in the book, the White House investigators found that Coates's profile, as well as her persona as a highly opinionated moralist, matched up with that of the clandestine Trump official.
Anonymous is a woman, the investigators deduced, noting the author's disapproving remarks alleging a Trump habit of addressing accomplished female professionals as "sweetie" and "honey." The official's area of responsibility was, like Coates', national security and foreign policy — with expertise on Syria, Iraq, Iran, Israel and other Mideast hot spots. The book's author claims to have been present, as Coates was, at many White House meetings, including with the president. The author shows an insider's understanding of the workings of the NSC and, most telling, started work during Trump's presidential transition, as Coates did.
"That gave her away," another source involved in the investigation said. "She was in those early meetings and briefings. That put her high on the suspect list."
By January, Coates was the prime suspect.
Authorship Recognition Tools
The sources said that to crack the identity of the rogue Trump official, investigators ran previously published works authored by Coates through forensic author identification programs, and they matched the prose style of Anonymous.
Investigators were able to profile the author of the op-ed and book by sentence structure, grammar, punctuation and syntax. They then compared that writing profile to Coates'. The stylistic traits synced up, sources said.
Linguistic déjà vu: Both "Anonymous" and Victoria Coates, in her book above, wrote extensively about the rise and fall of Athens.
Researchers have found that authorship recognition tools can identify an author with a high level of accuracy when there are several thousand words of available content to analyze, as was the case with the sample size the White House analyzed. Coates' own body of written work spans two decades and includes several books and dozens of columns, as well as policy papers, speeches and a doctoral thesis.
In short, the authors share the same punchy but at times breezy writing style, with pithy sentences punctuating a fluid narrative.
What's more, the same manners of expression and phrases, such as "like-minded" and "clear-eyed," kept turning up in the writings of both Coates and the secret Trump betrayer. The two also shared distinct vocabulary — such as the uncommon "sextant" — another linguistic fingerprint that pointed to the same authorship.
Deepening suspicions, both Anonymous and Coates boast of being "students of history," and tend to cite the same historical periods. With a Ph.D.in art history, Coates has written extensively about the rise and fall of Athens. She did so in her book "David's Sling: A History of Democracy in Ten Works of Art," and a 2012 column for the conservative blog RedState.com about how the U.S. has "claimed classical Athens as an ideological ancestor."
Anonymous spends no fewer than five pages of the book lecturing readers about the fall of Athens, calling it a "cautionary tale of how self-government could go wrong" and descend into mob rule, even in America. "Like Athens, we also have a Cleon in our midst, a foul-mouthed populist politician who uses rhetoric as a loaded gun," the author writes, comparing Trump to the boorish Athenian representative.
Anonymous and Coates are obsessed with the same political figure from ancient Rome: Cicero. They also share an affection for Alexis de Tocqueville. As in "David's Sling," the anonymous author invokes the French historian, writing that Americans have a duty as citizens to get involved to preserve democracy. They can start, Anonymous says, "by firing Donald Trump" this November.
Other figures whom both write or talk about admiringly: British-Austrian free market economist F.A. Hayek, the late British Prime Minister Margaret Thatcher, former President Ronald Reagan, and Sen. Mitt Romney of Utah. In 2012, FEC records reveal, Coates personally donated at least $1,500 to Romney's campaign for president. "Those who know Mitt believed he would have been a capable leader," Anonymous wrote on page 114.
'First Principles'
Coates previously wrote speeches for Cruz about the importance of reestablishing the "first principles" advanced by America's founders. Anonymous also cares deeply about these "first principles." In the Times piece, the author complained, "Anyone who works with [Trump] knows he is not moored to any discernible first principles that guide his decision making." Anonymous hits that concept in the book, warning against straying from "first principles" while citing the "Founding Fathers."
In addition, whoever wrote "A Warning" evidently worked with Trump's son-in-law Jared Kushner in the White House. Kushner is the president's point man on the Middle East. Coates was promoted in 2017 to work directly with Kushner on Israel and has met with him to help hammer out a Middle East peace plan.
Ideologically, Coates and Anonymous are cut from the same cloth. Both are committed to stopping Iran from developing nuclear weapons in order to protect Israel. Both champion free trade and oppose Trump's "America First" brand of "protectionism" and "isolationism," as Coates made plain during the Cruz campaign.
Like Coates, Anonymous supported the Iraq War and still defends George W. Bush and his administration for acting on what proved to be flawed intelligence on weapons of mass destruction. The 2003 invasion was justified because, Anonymous writes, it was "at least based on real information collected at the time, backed by intelligence community analysts, and accepted by bipartisan majorities in Congress."
Victoria Coates was a protégé of former Secretary of Defense Donald Rumsfeld, above, and worked on a Rumsfeld book project for years with his ex-chief of staff, who would later broker book deals for both her and "Anonymous."
AP Photo/Grand Rapids Press, Emily Zoladz
A protégé of Bush administration Defense Secretary Donald Rumsfeld, Coates embedded with the U.S. military to cover the Iraq War for RedState.com, a blog run by Erick Erickson, an early critic of Trump but who has since modulated his opposition. She filed positive reports from Baghdad, while knocking down criticism that the war was a debacle.
NSC investigators put stock in the fact that Coates has a history of concealing her identity in her writings. For years she blogged anonymously for RedState.com. The site eventually revealed that Coates was the blogger writing under the pseudonym "Academic Elephant." In February 2018, several months before the anonymous Times opinion piece appeared, a Reddit user posted an unusual question using the same "Academic Elephant" pseudonym Coates employed. "Could I be sued by the company I work for if I write an anonymous opinion piece for the local newspaper, if everything I say is true?" the poster asked, adding that "I'm reasonably certain that I'll have support from my coworkers." Anonymous expressed a similar concern in the opening pages of "A Warning," noting that Trump has a habit of suing critics "to intimidate and silence them." Fear of such a lawsuit is one of the reasons offered by the author for choosing to remain anonymous.
Anonymous also used Reddit to promote the book, hosting a Q&A on Nov. 26, 2019.
Further, both share an affinity for Philadelphia. In more than one passage in her book, Anonymous makes a point to remind readers that Philadelphia was the birthplace of American liberty. When she's not in Washington, Coates lives with her family in a renovated Victorian mansion in a tony neighborhood of Philadelphia called Chestnut Hill. In her blog bio, moreover, she proudly described herself as a "Philadelphian." Her family has deep roots in the area dating back to 1709. Coates is descended from Andrew Curtin, Pennsylvania's governor during the Civil War.
There's another Pennsylvania connection: On page 230, Anonymous quotes from a lesser-known Founding Father — John Dickinson — to further support her preoccupation with following "first principles." Dickinson is well-known within Coates' home state as the author of "Letters From a Farmer in Pennsylvania."
Anonymous quotes another figure who's not exactly a household name: American historian Bernard Bailyn. But Coates would know him from her days earning her masters in art history from Williams College – Bailyn's alma mater. His writings are required reading there for early American history courses.
Anonymous and Coates also share a passion for Thomas Paine, whose pamphlet "Common Sense" was required reading at their prep school. Anonymous waxed nostalgically about a war veteran teaching her about Paine. Coates has counted among her "mentors" a war veteran who taught history at her Pennsylvania boarding school.
Keith Urbahn: The Javelin book agent who helped put together deals for both Coates and "Anonymous." Because Coates was late delivering one manuscript, investigators believe she was tied up writing "A Warning."
javelindc.com
Another clue, sources said, was the fact that Coates shares with Anonymous the same book agent — the Washington-based Javelin Literary Agency. One of Javelin's founding partners, Keith Urbahn, has been a close friend of hers since 2006, when Rumsfeld asked them to conduct research for his 2011 memoir. Emails previously obtained under the Freedom of Information Act in an unrelated case show Coates and Urbahn worked side-by-side on the book project for several years, reporting to an office on M Street in downtown D.C. that Rumsfeld opened under the name, DHR Holdings LLC.
In 2016, Urbahn helped Coates secure a three-book deal with Encounter Books focusing on political culture. Coates knocked out the first manuscript, "David's Sling," while still working on the Cruz campaign that year. The second book, tentatively titled "Seeing the Light: A History of Christianity in Twelve Works of Art," was due for release last year, but was delayed for undisclosed reasons. Industry sources confirmed that Coates is late delivering the manuscript. Investigators believe she was tied up writing "A Warning," published in November. Urbahn happened to help broker that book deal, too.
But Javelin denied in a statement that Coates is the author in question, brushing aside the fact it counts Coates as a client as just a "bizarre" coincidence.
"To be very clear, so there is no chance of any misunderstanding: Dr. Coates is not Anonymous," Javelin said. "She did not write it, edit it, see it in advance, know anything about it, or as far [as] we know ever read it."
That's an utterly unambiguous denial. But here's the problem: That's exactly what Anonymous said would be the response to any such attempt to out her in the book's Introduction: "If asked, I will strenuously deny I am the author of this book."
Javelin maintains a full stable of anti-Trump authors, including former National Security Adviser John Bolton and fired FBI Director James Comey. The agency just signed Marie Yovanovitch, the ousted State Department official who testified against Trump during his impeachment. Since landing a $3 million advance for Comey, Javelin has become "a popular destination for Trump administration officials, especially those contemplating an exit," The New York Times recently reported in a lengthy profile of Urbahn and his partner, Matt Latimer, who also worked for Rumsfeld and is chummy with Coates.
Yet other Coates defenders insist that she is a loyal member of Team Trump and that they never heard her say anything disparaging about the president. "The rumors are absolutely false and I'm ashamed of those pushing this B.S.," said Fred Fleitz, who worked closely with Coates while serving as chief of staff to Bolton.
Former NSC spokesman Michael Anton, who worked alongside Coates in the early days of the Trump administration, said he doubts she was involved in any skullduggery. "I don't believe it," he said.
Added K.T. McFarland: "'Anonymous' sanctimonious, elitist tone, and [the writer's] implication that Trump is an immoral idiot doesn't match up with the Victoria Coates I have known for years."
"She went out on a limb to support Trump when few in the Republican foreign policy community did," she added.
'Very Anti-Trump in Private'
While Coates' supporters are adamant that she is not Anonymous, some co-workers said she was careful to hide her opposition to Trump and his agenda during meetings with principals.
"She was very anti-Trump in private," said a former NSC official who worked with Coates on the Mideast desk. "She even defended Obama holdovers to me. They're all fighting Trump."
If Coates supports Trump, she has not been vocal about it. There are no examples of her publicly praising the president, based on a search of the Lexis-Nexis database of her speeches, articles and interviews, though she has expressed support for some of his policies.
A review of Coates' Twitter feed going back to the November 2016 election turns up no tweets in which she supports Trump directly, though she remarked in a March 2017 tweet that she was "proud" to have joined the NSC team.
On the other hand, Coates reportedly was furious that Cruz decided several weeks before the election to throw his support behind Trump, after famously snubbing him at the GOP convention.
"She was livid when the Texas Republican endorsed Trump and cited national security as one of his reasons for supporting the Republican nominee," according to a Politico.com article citing people familiar with her alleged meltdown over her boss' about-face.
Supporters struggled, moreover, to explain why Coates would accept what effectively was a demotion — just four months after being promoted to deputy national security — if she were innocent of the accusations.
Fleitz, who says he has not read "A Warning," speculated that Coates was ready to move on from the NSC after serving three years there, and that her reassignment to the Energy Department had been in the works for a while. But her failure to appear at the Hudson Institute for a recent speech on the White House's "plan for peace in the Middle East" made it look more like a shake-up.
The event's moderator was clearly taken off guard. "I feel a little bit like Clint Eastwood talking to the empty chair," the moderator nervously quipped, motioning to a seat the think tank had reserved for Coates on the stage with an unopened bottle of water beside it.
Just two days before Coates was officially reassigned on Feb. 20, Trump told reporters he knew the identity of the anonymous official, but he would not divulge the person's identity.
"Can't tell you that, but I know who it is," he said. "I know all about 'Anonymous.'"
This and all other original articles created by RealClearInvestigations may be republished for free with attribution. (These terms do not apply to outside articles linked on the site.)
We provide our stories for free but they are expensive to produce. Help us continue to publish distinctive journalism by making a contribution today to Real Clear Investigations.
Heartland Diary USA is an Amazon affiliate, and any purchases you make on Amazon by following a special advertising link on our website may earn us a referral fee. Heartland Diary is solely operated by Frank Miele, the retired editor of the Daily Inter Lake in Kalispell, Montana. If you enjoy reading these daily essays, I hope you will consider purchasing one of my books. They are available through the following Amazon links. My new book — "The Media Matrix: What if everything you know is fake?" — shows that Fake News has been around for years. The "Why We Needed Trump" trilogy tackles the politics of the last two decades: Part 1 is subtitled "Bush's Global Failure: Half Right." Part 2 is "Obama's Fundamental Transformation: Far Left." Part 3 is "Trump's American Vision: Just Right." As noted above, as an Amazon Associate, I may earn referral fees for qualifying purchases through links on my website. Also consider subscribing to Heartland Diary on YouTube by clicking here for News Every Conservative Can Use. My goal is to reach 1,000 subscribers.
Victoria Rhodes is suspected of being the anonymous Anti-Trump author within the White House.
Previous Does media have right to weaken US national security? Newsweek thinks so
Next Trump Under Attack: A Tiny Virus Further Sickens the Fevered Media Mob
Vice President Pence betrays Trump, but true patriots protest fake election
BREAKING: 11 senators to join Hawley in objecting to election results (includes Daines!)
Media divas take a dive in The Swamp!


Come in your pajamas and hear Santa read "T'was the Night Before Christmas"! Parents can take pictures with Santa, activities, snacks, and refreshments will be provided, and we will raffle off a Girl's and a Boy's toy basket that evening. Please send in all ticket and raffle order forms by December 4.


Fresenius Kabi USA is voluntarily recalling 163 plenty of Sodium Chloride Injection, USP, 0.9%, 10 mL fill in a 10 mL vial and Sodium Chloride Injection, USP, 0.9%, 20 mL fill at a 20 mL vial into the consumer level. The product insert says which stoppers for the 10mL as well as also the 20mL vials do not contain natural rubber latex; the arrow tag for both vial sizes and also the vial label for the 20mL vial additionally say that the stoppers do not contain latex. The product has been recalled because the stoppers include natural rubber latex.


text:
Deal of the Day: 50% off Food and Drink at Bravo Ristorante in Fort Lauderdale
Nicole Danna May 5, 2011 9:46AM
Bravo!
It's the word locals use to describe Bravo Ristorante, the upscale Italian eatery in Fort Lauderdale that has been serving up authentic Italian for more than a decade. With a wide ranging lunch and dinner menu that covers all the bases, including their innovative pasta list that includes over 15 selections -- most for under $10.
Better yet, every dish can be custom-made with a topping of shrimp, calamari or chicken for just about $5 more. You can even order your dish made with whole wheat pasta at no extra charge.
And, for today only, Bravo is also our Deal of the Day, where you can get $40 worth of food and drink for just $20.
Charlie suggests you try one of Bravo's thin-crust, grilled pizzas, like the rustic L'Amore Mio, a simple but tasty combination of fresh house tomato sauce, mozzarella, parmigiano and fresh basil for $11.95. Like the pasta, whole wheat crust is an available option.
The lunch special, a good pick for eat-in diners, is also a guaranteed pleaser with the all-you-can-eat soup, salad and garlic rolls for just $9.25. Just don't forget to wash it down with one of Bravo's 49 wine-by-the-glass selections (there's also a full liquor bar).
No matter what you choose for lunch or dinner, we're pretty sure Bravo will give you something to rave about, too.
Follow Clean Plate Charlie Facebook on Twitter: @CleanPlateBPB.
Nicole Danna is a Palm Beach County-based reporter who began covering the South Florida food scene for New Times in 2011. She also loves drinking beer and writing about the area's growing craft beer community.
Contact: Nicole Danna
Twitter: @SoFloNicole
Instagram: @soflo_nicole
Trending Food & Drink
Five Best Restaurants Five Minutes From the Boca Raton Brightline Station
James Beard Awards Announces 2023 Semifinalists, South Florida Represents!
Anthony's Runway 84 Returns With a Goodfellas Supper-Club Vibe
SIGN UP for the latest food & drink news, free stuff and more!
Where to Score Locally Made Coquito
Local Chef Chris Valdes Hosts New Cooking Show ¡Que Delicioso!


Whats the best way to use locations?
How do I revert to my old voicemail?
Why am I not getting messages?
How do I get messages to show names not numbers?
How do I delete messages or mark them as read/unread?
How do I delete greetings or locations?
What happens if I change mobile provider?
I am travelling abroad - what should I do?
Why is the volume not coming out when I play messages?
Will Hi voicemail work with my carrier and plan?


Which product is right for me and how much will it cost?
Muscle relaxants are used to treat wrinkles and lines caused by repeated muscle movement, such as smile or frown lines. They work by temporarily weakening the muscles. Dermal fillers are used to plump up the skin by adding volume. They may be used to fill in wrinkles caused by sagging skin, to restore volume lost by the ageing process, or to enhance areas of the face such as the lips. For optimum results, patients use a combination of both treatments. The results of dermal fillers tend to be visible immediately and last 6-18 months, while the results of anti-wrinkle injections can take 7-14 days for full effect and usually last 3-6 months.


text:
David DiSanto and the Future of Vektor
PooleParty June 16
Ever since I discovered the album "Terminal Redux" I have been captivated by the band Vektor. Their music is somewhat of an anomaly of thrash metal. They incorporate progressive musical elements and beautiful melodies into thrash; while also maintaining the genres harshness and catchy riffing style. Vektor is one of my absolute favorite bands, and I'm not alone in thinking that they're truly one of the great modern metal bands. When it was released back in 2016 "Terminal Redux" was a huge critical success and garnered astonishing praise from fans. To this day it remains in my top five favorite albums of all-time list.
Vektor - LCD (Liquid Crystal Disease) (Official Audio)
However, "Terminal Redux" wasn't the only great album the band has released. The band has an overall fantastic (albeit small) discography. All three of their albums are beloved by fans of thrash metal. Not a single bad release to date. After the release of "Terminal Redux" the band's popularity exploded. They were finally a recognized face in the metal scene, and life for the band couldn't have been better.
Well, that's what I would've thought back in 2016. Unfortunately, following the success of their newest album; things took a turn for the worst. Just seven months after the release of "Terminal Redux" three of the four band members unexpectedly and mysteriously quit the band for reasons that are still not publicly known. This leaves vocalist and songwriter David DiSanto the sole member of Vektor. News of the band's near total breakup left fans wondering about the future of the band. "Why?" we all thought. What could be bad enough to convince the majority of the band members to leave right after their big break? Why are they not explaining themselves? Will there be another album?
Is this the end of Vektor?
R.I.P VEKTOR????
Now three years later, controversy involving DiSanto has surfaced that might hold the answers we've all been looking for. Katy DiSanto, David's wife, recently posted a video to her Instagram account showing her husband verbally and physically abusing her.
Katy's Instagram Video
In the video, we see David pick up his wife, throw her onto the bed, cuss her out, throw a pillow at her face, and then violently hit something in the room off camera. Now, be aware that David had known that she was recording the incident. So I don't doubt that he would've done something much worse if she wasn't. Katy claims that their marriage had "been deteriorating, especially over the past two years" and that "for 8 years, [she] was repeatedly abused".
For me this is truly devastating. Like I said before, Vektor has been one of my favorite bands. Knowing all this about DiSanto makes me feel much differently about the band. On one hand the music is extraordinarily well crafted and filled with genuine passion from the band members. While on the other hand the guy who writes the music is a supposed alcoholic who abuses his wife. Based off of the video of him I really do think that it was David DiSanto's aggressive and violent behavior that caused the other band members to quit. Maybe they got fed up with him, and instead of kicking him out of the band (like what Metallica did to Mustaine) they just walked away. That would have this all make sense. However, we won't know for sure unless the former members come out and say so.
As for now, I'll continue to listen to Vektor. If they release another album then I'll probably listen to it. If they don't then I won't be too upset over it. Personally, I don't think the band will ever record another one. Who would want to be in a band with Vektor now knowing how DiSanto treats his wife? Anyway, tell me what you think of all this. Will you continue to support the band or will you stop listening to their stuff? Have you even heard of the band up until now? I'd like to know your guy's opinions.
Linked Wiki Entries
Likes (110)
Schlenderman
So much for that Termal Redux chest piece :/
I guess just more room to give to other cosmic metal bands
0 Reply 30 days ago
7_Bruh
Damn i was in love with their song tetrastructural minds and hearing all of this was surprising. Now whenever I listen to it i'm just going to have a weird feeling behind my head
MetalManiac
What a bad day, hearing of this and also of dave mustaine who has been diagnosed with throat cancer.
As much as I love Vektor's music, and that I want there to be more Vektor music, I feel like Vektor has met its end. As much of an imbicile as David DiSanto is, he is an incredibly talented musician/songwriter who I feel cannot be replaced, at least in Vektor. Vektor without David would be like Death without Chuck. Anyway there's my 20 cents.
MetalHeadMick
Well David is a scumbag so, lets hope he rots in jail
Never meet your idols... still true.
Into Metal? Join the community.
From PooleParty
PooleParty Recommends: Bewitcher
K.F.R: Symbiotic Black Metal
Catamenia | Exclusive Interview | Riku & Jussi
Shingoji's favourite METAL artists
More from PooleParty
PooleParty May 15
ChristCrusher95 2 hours ago
Abdal Rahman Achterberg 3 hours ago
The most brutal Amino, home of Metalheads and all things Metal!
PooleParty
German Band "Metal Inquisitor" Is Incredible!
OVERKILL - announce new album!
How Do You Listen To Music?
Metal Amino Ban Appeals Amino.
Your guide to Rachmaninoff #NMW
"A Beacon In The Husk"
Vote For The Blog Of The Week #91
Alphabetical Order Of My Favorite Bands (A-F)


text:
Home Security Army Council Approves 8th Division in Sokoto
Army Council Approves 8th Division in Sokoto
Lt Major General Tukur Buratai Rtd
General Tukur Buratai, Chief of Army Staff
The Chief of Army Staff (COAS), Lieutenant General Yusuf Buratai has disclosed that the Nigerian Army Council has approved the establishment of the 8th Army Division in Sokoto.
He disclosed this in Sokoto on Sunday when he paid condolence visit on the Governor of Sokoto state, Aminu Tambuwal over the death of late Sultan of Sokoto, Alhaji Ibrahim Dasuki.
The COAS however said that the officers and men that would be posted to the new Division were currently operating in the Northeast.
According to Buratai, "As soon the security situation in that region is fully stabilised, the Division will move to Sokoto. The move is part of efforts to provide sustainable peace and unity of Nigeria, and the Nigerian Army is fully committed to ensuring this."
Commending Tambuwal for his support to the 1 Brigade and other security agencies in Sokoto, the COAS also commended the governor for the existing relationship between the Army and the people of the state.
Burutai reiterated the commitment of the Nigerian Army and the Federal Government to ensuring sustainable national security, peace and unity.
He described the late Sultan Ibrahim Dasuki as a national icon whose legacies would remain indelible.
Responding, Tambuwal commended the Army for establishing a Division and two Command Secondary Schools in Sokoto and Shagari.
Also pledging to continue to support the military as well as other security agencies in the state,Tambuwal further commended the Nigerian Army for its efforts to restore peace in the Northeast and other parts of Nigeria.
191 days 18 hours 19 minutes 9 seconds
8th Army Division
Aminu Tambuwal
General Yusuf Buratai
Previous articleGallant Troops Kill 30 Terrorists in Failed Ambush
Next articleNEMA Efforts In Managing Humanitarian Crisis In The North East
Nigerian Army Arrests Soldiers for Assaulting Traffick Wardens
PHOTOS: Nigerian Troops Eliminate ISWAP Fighters, Boko Haram Terrorists on Looting Spree
ISWAP Reshuffles Cabinet after Super Tucano Attacks
Military Operatives Aid Captives' Release as Fleeing Zamfara Bandits Attack Soft Targets
Lemmuel Odjay February 7, 2017 At 1:28 am
That's not bad for a country deeply divided along tribe and creed struggling but failing to find its bearing. Just a moment ago, we were laying the foundation stones of two "barracks" in war-ravaged Christian Southern Kaduna. On the same date and page of the media that carried the news and in order not to outdo the other, another news was featured bearing the heading "Army Council Approves 8th Division In Sokoto." Why then should we be surprised if by morning tomorrow the West should start asking for their "fair SHARE" of the "gravy"? Meanwhile there is this "minority" no one cares or thinks about waiting to as much as catch a whiff of the aroma of a freshly cooked commonwealth broth being passed around. Standing bog-eyed and salivating over should-have meal, their collective voice is forever sounding like one in the wilderness. Indeed, there was no country. Only deceit and intrigue. We shall all see where it leads…


Understanding the mysteries of soccer betting charge us a huge amount and compulsory that we expend a lot of time focused on this 1x2 fixed matches with big odds.
Tipsterwin.today is one of the leading soccer betting tips providers on a global basis. Another soccer site just pretended about the magic formula as like big odds 1x2 fixed matches that they formed by hook or by crook, but we put all the hard work for years and years in order to generate the faultless system that has helped us to earn a lot.
At this moment you can get an advantage of our hard work and all the tough effort so that you can obtain the best soccer tips that you require exclusive of spending the same amount of time and money. For just a tiny proportion of what we paid in order to do this, you can search out the exact match on today's football fixed odds we're betting on a daily basis. We are giving you the prospect to win big with fixed odds football predictions. Decide a membership and let's win simultaneously with today's football fixed odds.
Most specialized soccer sites schedule two games a week for their teams. As teams contend for their association title they compete in the competition or household cup games during their league schedule. Soccer betting proficient will search for local newspapers online to get significant information. But with insider soccer tips now customer will get the facts and data of insider soccer betting tips. Insider soccer tips are the authentic tips to win every soccer match. Most exact winning picks with immediate response. In one work this site is just excellent as on big odds 1x2 fixed matches!! And the player will prop up with your service forever. Perfect winning odds from tipsterwin.today . This site has offers the most accurate tips and fast service.
Find the membership and obtain the facts and data on today fixtures like Asian handicap, fixed odds football predictions, and correct score. Insider fixed odds football betting soccer tips now present the extraordinary opportunity to win a huge. Insider soccer betting tips are the most precious, helpful and genuine tips which can engender in a wonderful system. So now let's win mutually.
You can pay with any of the options below and our secure system, which utilized the very latest encryption software, will keep your information safe.
© 2019 Tipsterwin.today All rights reserved.


While perusing twitter posts, mission statements and other news of the day, I was reminded of the often quoted statement, "Seek first to understand, then to be understood" made famous from Stephen Covey's 7 Habits for Highly Effective People, not to mention, the Prayer of St. Francis.
I searched to get the exact saying and found this great website – take a peak when you have a chance – many great thoughts to explore.
For spiritual seekers the lesson is clear – you cannot change another, only yourself. So, how does that really work?
Understanding doesn't always lead to peace and harmony.
Seeking to understand can lead to despair, confusion…surprise. Any number of emotional reactions depending on the circumstances. That we have the ability to choose what feelings we smack onto our understanding is another blog.
So, what do you do when understanding leads to No Where? What do you do AFTER seeking to understand?
There are times when your seeking to understand, while it may help you see yourself in the equation, only repeatedly hits resistance to responsibility on the other end. Sometimes understanding remains elusive, a desired state totally impacted by another's desire not to understand themselves. If the one on the other side continually refuses to understand themselves and THEIR drivers, what then?
Shifting focus from 'Why is that over there like that?' to, 'What or how am I going to respond to that?' takes the focus off another and onto oneself. That is the kernel of changing oneself. Sometimes the only response is 'What am I going to do now?' 'What next appropriate action is my spirit directing me to take that will keep me whole, perfect, strong, powerful, loving, harmonious and happy?' That is the real deal.
In the end, the wisdom is within.


Back behind shot of Neuschwanstein Castle and valley, near Füssen in southwest Bavaria, Germany.
Beautiful Jumilhac le grand medieval castle,France.
Neuschwanstein Castle is a 19th-century Romanesque Revival palace on a hill above the village of Hohenschwangau near Füssen in southwest Bavaria.
Beautiful view of the castle of San Vicente de Ca ete, Lima.
Peles castle in Romania. Beautiful, royal castle in snowy, white winter.
Elegant Jumilhac le grand,medieval castle,France.
Elegant Jumilhac le grand medieval castle,France.


Idaho Shakespeare Festival - www.idahoshakespeare.org Outdoor amphitheater where people take picnics to eat before the play, then enjoy desserts during the intermission.
River rafting - www.cascaderaft.com or http://bearvalleyrafting.com The Payette River is 30 – 45 minutes north of Boise with river tours. They take kids four years old, so it is pretty safe, but enough excitement for everybody.
Tubing - http://boiseriverraftandtube.com The Boise River is perfect for a two-hour float with an inner tube. The river is fairly shallow – you can wade or stand in most of it. You can rent tubes and use a shuttle.
Bogus Basin - www.bogusbasin.com Top of a mountain, 30 – 40 minutes north. Great hiking trails with spring flowers blooming at the beginning of July. New summer experiences including a mountain coaster.
World Center for Birds of Prey - www.peregrinefund.org Museum, science center, where they rehab eagles, hawks, etc. and one of the world's largest archives on falconry. One of the favorites destinations to take tourist.
Boise WaterShed – http://bee.cityofboise.org/watershed/ Located at the water treatment plant, the education center is filled with indoor and outdoor activities explaining the desert and everything about water in our area. Entertaining for all ages. Some art works. Free.
Aquarium – http://www.aquariumboise.net small, but you can get much closer than at many aquariums in the country.
Botanical Gardens www.idahobotanicalgarden.org On the Old Idaho Penitentiary State Historic site. Acres of gardens that were done by prisoners for a number of years and now restored with additional information.
Lucky Peak Reservoir - http://boiseoutdooradventures.com/contact-us/ Outdoor Adventure - rent a pontoon boat, jet skis, motor boat and explore the 18-mile reservoir.
Bruneau Dunes State Park, 60 – 90 minutes away. On Fri and Sat nights in the summer, they do a special astronomy program, which starts at 9:30 PM, and then they get out several massive telescopes and look at the stars.
Craters of the Moon National Monument About 3 hours east of Boise, hiking, lava tube caves.
Oregon Trail Interpretive Center 3 hours west in Baker City, Oregon. Excellent exhibits and activities.
Boise Art Museum. http://www.boiseartmuseum.org Changing art exhibits as well as a permanent collection. See website for schedule.
Basque Museum and Cultural Center. https://www.basquemuseum.com. One of the largest immigration groups to Boise was from the Basque region of Spain, many decades ago.
Zoo Boise. http://zooboise.org The Boise Zoo gives a higher percent of its income to education and conservation than any other zoo in the US.
Reuseum - http://reuseum.com. This is a quirky place, with surplus store of all kinds of scientific, government, and industrial supplies.
YMCA – a couple blocks from the Presbyterian church - exercise classes, activities, yoga, pool, gym.
Camille Beckman – A fun little shop in Eagle and the manufacturing facility for really nice hand creams and lotions. She is very supportive of the community, children, refugees, abused women, and takes care of the environment.


text:
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/renderer/pepper/pepper_media_stream_video_track_host.h"

#include <stddef.h>

#include "base/base64.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/rand_util.h"
#include "base/strings/utf_string_conversions.h"
#include "content/renderer/media/media_stream_video_track.h"
#include "media/base/bind_to_current_loop.h"
#include "media/base/video_util.h"
#include "media/base/yuv_convert.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_media_stream_video_track.h"
#include "ppapi/c/ppb_video_frame.h"
#include "ppapi/host/dispatch_host_message.h"
#include "ppapi/host/host_message_context.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/shared_impl/media_stream_buffer.h"
#include "third_party/libyuv/include/libyuv.h"

using media::VideoFrame;
using ppapi::host::HostMessageContext;
using ppapi::MediaStreamVideoTrackShared;

namespace {

const int32_t kDefaultNumberOfBuffers = 4;
const int32_t kMaxNumberOfBuffers = 8;
// Filter mode for scaling frames.
const libyuv::FilterMode kFilterMode = libyuv::kFilterBox;

const char kPepperVideoSourceName[] = "PepperVideoSourceName";

// Default config for output mode.
const int kDefaultOutputFrameRate = 30;

media::VideoPixelFormat ToPixelFormat(PP_VideoFrame_Format format) {
  switch (format) {
    case PP_VIDEOFRAME_FORMAT_YV12:
      return media::PIXEL_FORMAT_YV12;
    case PP_VIDEOFRAME_FORMAT_I420:
      return media::PIXEL_FORMAT_I420;
    default:
      DVLOG(1) << "Unsupported pixel format " << format;
      return media::PIXEL_FORMAT_UNKNOWN;
  }
}

PP_VideoFrame_Format ToPpapiFormat(media::VideoPixelFormat format) {
  switch (format) {
    case media::PIXEL_FORMAT_YV12:
      return PP_VIDEOFRAME_FORMAT_YV12;
    case media::PIXEL_FORMAT_I420:
      return PP_VIDEOFRAME_FORMAT_I420;
    default:
      DVLOG(1) << "Unsupported pixel format " << format;
      return PP_VIDEOFRAME_FORMAT_UNKNOWN;
  }
}

media::VideoPixelFormat FromPpapiFormat(PP_VideoFrame_Format format) {
  switch (format) {
    case PP_VIDEOFRAME_FORMAT_YV12:
      return media::PIXEL_FORMAT_YV12;
    case PP_VIDEOFRAME_FORMAT_I420:
      return media::PIXEL_FORMAT_I420;
    default:
      DVLOG(1) << "Unsupported pixel format " << format;
      return media::PIXEL_FORMAT_UNKNOWN;
  }
}

// Compute size base on the size of frame received from MediaStreamVideoSink
// and size specified by plugin.
gfx::Size GetTargetSize(const gfx::Size& source, const gfx::Size& plugin) {
  return gfx::Size(plugin.width() ? plugin.width() : source.width(),
                   plugin.height() ? plugin.height() : source.height());
}

// Compute format base on the format of frame received from MediaStreamVideoSink
// and format specified by plugin.
PP_VideoFrame_Format GetTargetFormat(PP_VideoFrame_Format source,
                                     PP_VideoFrame_Format plugin) {
  return plugin != PP_VIDEOFRAME_FORMAT_UNKNOWN ? plugin : source;
}

void ConvertFromMediaVideoFrame(const scoped_refptr<media::VideoFrame>& src,
                                PP_VideoFrame_Format dst_format,
                                const gfx::Size& dst_size,
                                uint8_t* dst) {
  CHECK(src->format() == media::PIXEL_FORMAT_YV12 ||
        src->format() == media::PIXEL_FORMAT_I420);
  if (dst_format == PP_VIDEOFRAME_FORMAT_BGRA) {
    if (src->visible_rect().size() == dst_size) {
      libyuv::I420ToARGB(src->visible_data(VideoFrame::kYPlane),
                         src->stride(VideoFrame::kYPlane),
                         src->visible_data(VideoFrame::kUPlane),
                         src->stride(VideoFrame::kUPlane),
                         src->visible_data(VideoFrame::kVPlane),
                         src->stride(VideoFrame::kVPlane),
                         dst,
                         dst_size.width() * 4,
                         dst_size.width(),
                         dst_size.height());
    } else {
      media::ScaleYUVToRGB32(src->visible_data(VideoFrame::kYPlane),
                             src->visible_data(VideoFrame::kUPlane),
                             src->visible_data(VideoFrame::kVPlane),
                             dst,
                             src->visible_rect().width(),
                             src->visible_rect().height(),
                             dst_size.width(),
                             dst_size.height(),
                             src->stride(VideoFrame::kYPlane),
                             src->stride(VideoFrame::kUPlane),
                             dst_size.width() * 4,
                             media::YV12,
                             media::ROTATE_0,
                             media::FILTER_BILINEAR);
    }
  } else if (dst_format == PP_VIDEOFRAME_FORMAT_YV12 ||
             dst_format == PP_VIDEOFRAME_FORMAT_I420) {
    static const size_t kPlanesOrder[][3] = {
        {VideoFrame::kYPlane, VideoFrame::kVPlane,
         VideoFrame::kUPlane},  // YV12
        {VideoFrame::kYPlane, VideoFrame::kUPlane,
         VideoFrame::kVPlane},  // I420
    };
    const int plane_order = (dst_format == PP_VIDEOFRAME_FORMAT_YV12) ? 0 : 1;
    int dst_width = dst_size.width();
    int dst_height = dst_size.height();
    libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][0]),
                       src->stride(kPlanesOrder[plane_order][0]),
                       src->visible_rect().width(),
                       src->visible_rect().height(),
                       dst,
                       dst_width,
                       dst_width,
                       dst_height,
                       kFilterMode);
    dst += dst_width * dst_height;
    const int src_halfwidth = (src->visible_rect().width() + 1) >> 1;
    const int src_halfheight = (src->visible_rect().height() + 1) >> 1;
    const int dst_halfwidth = (dst_width + 1) >> 1;
    const int dst_halfheight = (dst_height + 1) >> 1;
    libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][1]),
                       src->stride(kPlanesOrder[plane_order][1]),
                       src_halfwidth,
                       src_halfheight,
                       dst,
                       dst_halfwidth,
                       dst_halfwidth,
                       dst_halfheight,
                       kFilterMode);
    dst += dst_halfwidth * dst_halfheight;
    libyuv::ScalePlane(src->visible_data(kPlanesOrder[plane_order][2]),
                       src->stride(kPlanesOrder[plane_order][2]),
                       src_halfwidth,
                       src_halfheight,
                       dst,
                       dst_halfwidth,
                       dst_halfwidth,
                       dst_halfheight,
                       kFilterMode);
  } else {
    NOTREACHED();
  }
}

}  // namespace

namespace content {

// Internal class used for delivering video frames on the IO-thread to
// the MediaStreamVideoSource implementation.
class PepperMediaStreamVideoTrackHost::FrameDeliverer
    : public base::RefCountedThreadSafe<FrameDeliverer> {
 public:
  FrameDeliverer(scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
                 const VideoCaptureDeliverFrameCB& new_frame_callback);

  void DeliverVideoFrame(const scoped_refptr<media::VideoFrame>& frame);

 private:
  friend class base::RefCountedThreadSafe<FrameDeliverer>;
  virtual ~FrameDeliverer();

  void DeliverFrameOnIO(const scoped_refptr<media::VideoFrame>& frame);

  scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
  VideoCaptureDeliverFrameCB new_frame_callback_;

  DISALLOW_COPY_AND_ASSIGN(FrameDeliverer);
};

PepperMediaStreamVideoTrackHost::FrameDeliverer::FrameDeliverer(
    scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
    const VideoCaptureDeliverFrameCB& new_frame_callback)
    : io_task_runner_(io_task_runner), new_frame_callback_(new_frame_callback) {
}

PepperMediaStreamVideoTrackHost::FrameDeliverer::~FrameDeliverer() {
}

void PepperMediaStreamVideoTrackHost::FrameDeliverer::DeliverVideoFrame(
    const scoped_refptr<media::VideoFrame>& frame) {
  io_task_runner_->PostTask(
      FROM_HERE, base::Bind(&FrameDeliverer::DeliverFrameOnIO, this, frame));
}

void PepperMediaStreamVideoTrackHost::FrameDeliverer::DeliverFrameOnIO(
     const scoped_refptr<media::VideoFrame>& frame) {
  DCHECK(io_task_runner_->BelongsToCurrentThread());
  // The time when this frame is generated is unknown so give a null value to
  // |estimated_capture_time|.
  new_frame_callback_.Run(frame, base::TimeTicks());
}

PepperMediaStreamVideoTrackHost::PepperMediaStreamVideoTrackHost(
    RendererPpapiHost* host,
    PP_Instance instance,
    PP_Resource resource,
    const blink::WebMediaStreamTrack& track)
    : PepperMediaStreamTrackHostBase(host, instance, resource),
      track_(track),
      connected_(false),
      number_of_buffers_(kDefaultNumberOfBuffers),
      source_frame_format_(PP_VIDEOFRAME_FORMAT_UNKNOWN),
      plugin_frame_format_(PP_VIDEOFRAME_FORMAT_UNKNOWN),
      frame_data_size_(0),
      type_(kRead),
      output_started_(false),
      weak_factory_(this) {
  DCHECK(!track_.isNull());
}

PepperMediaStreamVideoTrackHost::PepperMediaStreamVideoTrackHost(
    RendererPpapiHost* host,
    PP_Instance instance,
    PP_Resource resource)
    : PepperMediaStreamTrackHostBase(host, instance, resource),
      connected_(false),
      number_of_buffers_(kDefaultNumberOfBuffers),
      source_frame_format_(PP_VIDEOFRAME_FORMAT_UNKNOWN),
      plugin_frame_format_(PP_VIDEOFRAME_FORMAT_UNKNOWN),
      frame_data_size_(0),
      type_(kWrite),
      output_started_(false),
      weak_factory_(this) {
  InitBlinkTrack();
  DCHECK(!track_.isNull());
}

bool PepperMediaStreamVideoTrackHost::IsMediaStreamVideoTrackHost() {
  return true;
}

PepperMediaStreamVideoTrackHost::~PepperMediaStreamVideoTrackHost() {
  OnClose();
}

void PepperMediaStreamVideoTrackHost::InitBuffers() {
  gfx::Size size = GetTargetSize(source_frame_size_, plugin_frame_size_);
  DCHECK(!size.IsEmpty());

  PP_VideoFrame_Format format =
      GetTargetFormat(source_frame_format_, plugin_frame_format_);
  DCHECK_NE(format, PP_VIDEOFRAME_FORMAT_UNKNOWN);

  if (format == PP_VIDEOFRAME_FORMAT_BGRA) {
    frame_data_size_ = size.width() * size.height() * 4;
  } else {
    frame_data_size_ =
        VideoFrame::AllocationSize(FromPpapiFormat(format), size);
  }

  DCHECK_GT(frame_data_size_, 0U);
  int32_t buffer_size =
      sizeof(ppapi::MediaStreamBuffer::Video) + frame_data_size_;
  bool result = PepperMediaStreamTrackHostBase::InitBuffers(number_of_buffers_,
                                                            buffer_size,
                                                            type_);
  CHECK(result);

  if (type_ == kWrite) {
    for (int32_t i = 0; i < buffer_manager()->number_of_buffers(); ++i) {
      ppapi::MediaStreamBuffer::Video* buffer =
          &(buffer_manager()->GetBufferPointer(i)->video);
      buffer->header.size = buffer_manager()->buffer_size();
      buffer->header.type = ppapi::MediaStreamBuffer::TYPE_VIDEO;
      buffer->format = format;
      buffer->size.width = size.width();
      buffer->size.height = size.height();
      buffer->data_size = frame_data_size_;
    }

    // Make all the frames avaiable to the plugin.
    std::vector<int32_t> indices = buffer_manager()->DequeueBuffers();
    SendEnqueueBuffersMessageToPlugin(indices);
  }
}

void PepperMediaStreamVideoTrackHost::OnClose() {
  if (connected_) {
    MediaStreamVideoSink::RemoveFromVideoTrack(this, track_);
    weak_factory_.InvalidateWeakPtrs();
    connected_ = false;
  }
}

int32_t PepperMediaStreamVideoTrackHost::OnHostMsgEnqueueBuffer(
    ppapi::host::HostMessageContext* context, int32_t index) {
  if (type_ == kRead) {
    return PepperMediaStreamTrackHostBase::OnHostMsgEnqueueBuffer(context,
                                                                  index);
  } else {
    return SendFrameToTrack(index);
  }
}

int32_t PepperMediaStreamVideoTrackHost::SendFrameToTrack(int32_t index) {
  DCHECK_EQ(type_, kWrite);

  if (output_started_) {
    // Sends the frame to blink video track.
    ppapi::MediaStreamBuffer::Video* pp_frame =
        &(buffer_manager()->GetBufferPointer(index)->video);

    int32_t y_stride = plugin_frame_size_.width();
    int32_t uv_stride = (plugin_frame_size_.width() + 1) / 2;
    uint8_t* y_data = static_cast<uint8_t*>(pp_frame->data);
    // Default to I420
    uint8_t* u_data = y_data + plugin_frame_size_.GetArea();
    uint8_t* v_data = y_data + (plugin_frame_size_.GetArea() * 5 / 4);
    if (plugin_frame_format_ == PP_VIDEOFRAME_FORMAT_YV12) {
      // Swap u and v for YV12.
      uint8_t* tmp = u_data;
      u_data = v_data;
      v_data = tmp;
    }

    int64_t ts_ms = static_cast<int64_t>(pp_frame->timestamp *
                                         base::Time::kMillisecondsPerSecond);
    scoped_refptr<VideoFrame> frame = media::VideoFrame::WrapExternalYuvData(
        FromPpapiFormat(plugin_frame_format_),
        plugin_frame_size_,
        gfx::Rect(plugin_frame_size_),
        plugin_frame_size_,
        y_stride,
        uv_stride,
        uv_stride,
        y_data,
        u_data,
        v_data,
        base::TimeDelta::FromMilliseconds(ts_ms));
    if (!frame)
      return PP_ERROR_FAILED;

    frame_deliverer_->DeliverVideoFrame(frame);
  }

  // Makes the frame available again for plugin.
  SendEnqueueBufferMessageToPlugin(index);
  return PP_OK;
}

void PepperMediaStreamVideoTrackHost::OnVideoFrame(
    const scoped_refptr<VideoFrame>& video_frame,
    base::TimeTicks estimated_capture_time) {
  DCHECK(video_frame.get());
  // TODO(penghuang): Check |frame->end_of_stream()| and close the track.
  scoped_refptr<media::VideoFrame> frame = video_frame;
  // Drop alpha channel since we do not support it yet.
  if (frame->format() == media::PIXEL_FORMAT_YV12A)
    frame = media::WrapAsI420VideoFrame(video_frame);
  PP_VideoFrame_Format ppformat = ToPpapiFormat(frame->format());
  if (ppformat == PP_VIDEOFRAME_FORMAT_UNKNOWN)
    return;

  if (source_frame_size_.IsEmpty()) {
    source_frame_size_ = frame->visible_rect().size();
    source_frame_format_ = ppformat;
    InitBuffers();
  }

  int32_t index = buffer_manager()->DequeueBuffer();
  // Drop frames if the underlying buffer is full.
  if (index < 0) {
    DVLOG(1) << "A frame is dropped.";
    return;
  }

  CHECK_EQ(ppformat, source_frame_format_) << "Frame format is changed.";

  gfx::Size size = GetTargetSize(source_frame_size_, plugin_frame_size_);
  ppformat =
      GetTargetFormat(source_frame_format_, plugin_frame_format_);
  ppapi::MediaStreamBuffer::Video* buffer =
      &(buffer_manager()->GetBufferPointer(index)->video);
  buffer->header.size = buffer_manager()->buffer_size();
  buffer->header.type = ppapi::MediaStreamBuffer::TYPE_VIDEO;
  buffer->timestamp = frame->timestamp().InSecondsF();
  buffer->format = ppformat;
  buffer->size.width = size.width();
  buffer->size.height = size.height();
  buffer->data_size = frame_data_size_;
  ConvertFromMediaVideoFrame(frame, ppformat, size, buffer->data);

  SendEnqueueBufferMessageToPlugin(index);
}

void PepperMediaStreamVideoTrackHost::GetCurrentSupportedFormats(
    int max_requested_width, int max_requested_height,
    double max_requested_frame_rate,
    const VideoCaptureDeviceFormatsCB& callback) {
  if (type_ != kWrite) {
    DVLOG(1) << "GetCurrentSupportedFormats is only supported in output mode.";
    callback.Run(media::VideoCaptureFormats());
    return;
  }

  media::VideoCaptureFormats formats;
  formats.push_back(
      media::VideoCaptureFormat(plugin_frame_size_,
                                kDefaultOutputFrameRate,
                                ToPixelFormat(plugin_frame_format_)));
  callback.Run(formats);
}

void PepperMediaStreamVideoTrackHost::StartSourceImpl(
    const media::VideoCaptureFormat& format,
    const blink::WebMediaConstraints& constraints,
    const VideoCaptureDeliverFrameCB& frame_callback) {
  output_started_ = true;
  frame_deliverer_ = new FrameDeliverer(io_task_runner(), frame_callback);
}

void PepperMediaStreamVideoTrackHost::StopSourceImpl() {
  output_started_ = false;
  frame_deliverer_ = NULL;
}

void PepperMediaStreamVideoTrackHost::DidConnectPendingHostToResource() {
  if (!connected_) {
    MediaStreamVideoSink::AddToVideoTrack(
        this,
        media::BindToCurrentLoop(
            base::Bind(
                &PepperMediaStreamVideoTrackHost::OnVideoFrame,
                weak_factory_.GetWeakPtr())),
        track_);
    connected_ = true;
  }
}

int32_t PepperMediaStreamVideoTrackHost::OnResourceMessageReceived(
    const IPC::Message& msg,
    HostMessageContext* context) {
  PPAPI_BEGIN_MESSAGE_MAP(PepperMediaStreamVideoTrackHost, msg)
    PPAPI_DISPATCH_HOST_RESOURCE_CALL(
        PpapiHostMsg_MediaStreamVideoTrack_Configure, OnHostMsgConfigure)
  PPAPI_END_MESSAGE_MAP()
  return PepperMediaStreamTrackHostBase::OnResourceMessageReceived(msg,
                                                                   context);
}

int32_t PepperMediaStreamVideoTrackHost::OnHostMsgConfigure(
    HostMessageContext* context,
    const MediaStreamVideoTrackShared::Attributes& attributes) {
  CHECK(MediaStreamVideoTrackShared::VerifyAttributes(attributes));

  bool changed = false;
  gfx::Size new_size(attributes.width, attributes.height);
  if (GetTargetSize(source_frame_size_, plugin_frame_size_) !=
      GetTargetSize(source_frame_size_, new_size)) {
    changed = true;
  }
  plugin_frame_size_ = new_size;

  int32_t buffers = attributes.buffers
                        ? std::min(kMaxNumberOfBuffers, attributes.buffers)
                        : kDefaultNumberOfBuffers;
  if (buffers != number_of_buffers_)
    changed = true;
  number_of_buffers_ = buffers;

  if (GetTargetFormat(source_frame_format_, plugin_frame_format_) !=
      GetTargetFormat(source_frame_format_, attributes.format)) {
    changed = true;
  }
  plugin_frame_format_ = attributes.format;

  // If the first frame has been received, we will re-initialize buffers with
  // new settings. Otherwise, we will initialize buffer when we receive
  // the first frame, because plugin can only provide part of attributes
  // which are not enough to initialize buffers.
  if (changed && (type_ == kWrite || !source_frame_size_.IsEmpty()))
    InitBuffers();

  // TODO(ronghuawu): Ask the owner of DOMMediaStreamTrackToResource why
  // source id instead of track id is used there.
  const std::string id = track_.source().id().utf8();
  context->reply_msg = PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply(id);
  return PP_OK;
}

void PepperMediaStreamVideoTrackHost::InitBlinkTrack() {
  std::string source_id;
  base::Base64Encode(base::RandBytesAsString(64), &source_id);
  blink::WebMediaStreamSource webkit_source;
  webkit_source.initialize(base::UTF8ToUTF16(source_id),
                           blink::WebMediaStreamSource::TypeVideo,
                           base::UTF8ToUTF16(kPepperVideoSourceName),
                           false /* remote */, true /* readonly */);
  webkit_source.setExtraData(this);

  const bool enabled = true;
  blink::WebMediaConstraints constraints;
  constraints.initialize();
  track_ = MediaStreamVideoTrack::CreateVideoTrack(
       this, constraints,
       base::Bind(
           &PepperMediaStreamVideoTrackHost::OnTrackStarted,
           base::Unretained(this)),
       enabled);
}

void PepperMediaStreamVideoTrackHost::OnTrackStarted(
    MediaStreamSource* source,
    MediaStreamRequestResult result,
    const blink::WebString& result_name) {
  DVLOG(3) << "OnTrackStarted result: " << result;
}

}  // namespace content

redpajama_set_name: RedPajamaGithub


▶ SoldThis listing was sold on Jun 15, 2017 for the price shown here.
Great vibe in this ever popular Countrylane Woods 4BR ranch! Many updated features inside and out have been invested by owners. Style added with plantation shutters and window fabrics. Location on cul-de-sac street means low traffic and easy walking. Large backyard accessible from multi-level deck off kitchen or finished lower level. Kitchen has 42 inch cabinetry with pullout drawers, gas cooktop and wall oven, 3 door refrigerator, and separate pantry. Replacements include roof 2014, furnace and A/C 2010, kitchen appliances, vinyl siding, all exterior doors, windows on rear and side, master bath shower room, water heater and lower level flooring in 2016! Also enjoy the woodburning fireplace, wet bar, and nice flow to this open-feel ranch. All within walking distance to groceries, restaurants and library!
Big Bend or Carman to LaBonne Pkwy, West on Mautenne, Left on Country Heights.


text:
Gradius III (SNES) review
"First and foremost: Gradius III has some of the worst slowdown ever seen in a scrolling shooter. Yes, yes, this is a common issue in early third-party SNES games, and Gradius III was actually the first third-party game ever released on the system (just two weeks after launch.) Even so, the fact that slowdown is the first thing to come to mind when I think about Gradius III is not a good sign. If more than a few sprites or one larger-than-normal sprite is present (which is almost always, and incl..."
First and foremost: Gradius III has some of the worst slowdown ever seen in a scrolling shooter. Yes, yes, this is a common issue in early third-party SNES games, and Gradius III was actually the first third-party game ever released on the system (just two weeks after launch.) Even so, the fact that slowdown is the first thing to come to mind when I think about Gradius III is not a good sign. If more than a few sprites or one larger-than-normal sprite is present (which is almost always, and includes every one of the game's bosses), or you simply shoot your gun when it's fully upgraded, the game slows to a waddle. The slowdown in Gradius III is almost perpetual, which of course is a hindrance in a twitch-based horizontally-scrolling shooter like this.
Even before you realize the perma-Bullet-Time effect of Gradius III, it feels far from impressive. Its graphical presentation is definitely below par; the game relies way too much on a drab starry space background that makes it feel painfully generic. Animation is choppy at best; your ship's laser beams are just solid blue lines that flicker as they cross the screen. Or, even better, behold the first boss, whose giant pincers snap open and shut with all the majesty of two frames. Not even Gradius III's soundtrack manages to make the player any less flaccid; while a couple of tunes are catchy, the vast majority of them fit into that instantly recognizable genre known as "generic shooter techno/rock."
And the level design? Sure, you've got the compulsory laser-spewing Moai head level, which never fail to give hardcore shooter fans a collective boner, but it's ultimately just the same damn thing as seen in the first two games. The rest of the game's environments follow tried-and-true (which means boring) shooter archetypes: desert level, "organic" level, fire level, etc., etc. The only real surprise is in the seventh level, in which your ship suddenly shifts into high gear and careens through the twisting halls of an alien base. This part is genuinely fun, requiring the intense Zen-like concentration for which shooters are played, but it's over all too soon, after which it's back to the same ol', same ol'.
Like every other game in the series, Gradius III is a horizontally-scrolling shooter. And also like all of its kin, it relies on the Option bar as its central gameplay mechanic. You have a bar at the bottom of the screen, showcasing various upgrades like lasers and shields. By collecting the game's one variety of powerup (a red capsule, dropped by red enemies), a highlighter on the Option bar will move to the right. The further to the right on the bar, the better the powerup. At any time, you can "cash in" the powerups you've collected and you'll instantly obtain whichever upgrade was highlighted at the time.
As in its predecessors, this is an interesting system, and functions well. Each sequel to Gradius has added an extra layer of complexity to the Option bar: while Gradius II simply gives you a few new configurations to choose from, Gradius III actually lets you create your own custom bar. If you've ever wanted to combine E. Lasers with frontal shields, Gradius III will make all your fantasies come true. Unofortunately, none of the weaponry given to you is very exciting: is anyone honestly going to blow their load over having 2-way missiles instead of the standard downward variety?
Perhaps most maddening about Gradius III is how the fatal flaw from the first two games hasn't been addressed at all. Simply put, if you're at full power and you die, you are completely screwed. Upon death, every single upgrade you procured during your previous life suddenly disappears. Your speed upgrades go poof; avoiding enemy attacks is almost impossible when your ship moves with all the agility of an outer-space sumo wrestler. That fancy laser attack you spent so long building up to maximum strength is gone in the flash of a boob; back to the piddly-diddly pea shooter you started the game with. Gradius III may as well have just given you one life before a game over, because as soon as you bite the dust once, you'd be lucky to last one minute before seeing the title screen again. This gameplay caveat is incredibly annoying, and most of the fun that one would have in Gradius III otherwise is sucked out because of it.
Now, I won't lie: I don't dislike Gradius III. Despite the unforgiving gameplay and absurd amount of slowdown, this is not a bad game. There are definitely some intense twitch moments here and there...but there's simply not enough of them. Throughout the game's ten levels, the last of which concludes with a ridiculously anticlimactic final boss, there's scarcely an inspired moment to be found. If you're a big fan of the Gradius series, you've already played this game. If not, Gradius III is definitely a hard sell to anyone but the most bored of SNES aficionados. Or people who enjoy pissing themselves off.
Community review by phediuk (April 29, 2006)
A bio for this contributor is currently unavailable, but check back soon to see if that changes. If you are the author of this review, you can update your bio from the Settings page.
More Reviews by phediuk [+]
Uncharted 2: Among Thieves (PlayStation 3)
Originally, "interactive movies" described games like Dragon's Lair: literal movies where you pressed a button at the right time to keep watching the movie. In the late 90s, the concept of an "interactive movie" morphed into a hybrid consisting of segregated "movie" and "game" parts. You play for a minute, watch a real...
Sonic the Hedgehog (Genesis)
Playing the original Sonic the Hedgehog is a lot like revisiting your old elementary school: you know your way around, and you've got some good memories, but the place just isn't as big as you remember it. Sonic 1 feels like a footnote in platformer history—it's so slight that it's hard to comprehend why it was such a ...
Metal Gear Solid 2: Sons of Liberty (PlayStation 2)
Metal Gear Solid 2 is the point of the series where it it's not just a game anymore. It was here that Hideo Kojima was convinced he was making History's Next Great Epic. This was to be the Homer's Odyssey of the video game era. The half hour codec conversations were to leave the viewer in a state of trance, conv...
If you enjoyed this Gradius III review, you're encouraged to discuss it with the author and with other members of the site's community. If you don't already have an HonestGamers account, you can sign up for one in a snap. Thank you for reading!
You must be signed into an HonestGamers user account to leave feedback on this review.
None of the material contained within this site may be reproduced in any conceivable fashion without permission from the author(s) of said material. This site is not sponsored or endorsed by Nintendo, Sega, Sony, Microsoft, or any other such party. Gradius III is a registered trademark of its copyright holder. This site makes no claim to Gradius III, its characters, screenshots, artwork, music, or any intellectual property contained within. Opinions expressed on this site do not necessarily represent the opinion of site staff or sponsors. Staff and freelance reviews are typically written based on time spent with a retail review copy or review key for the game that is provided by its publisher.


You've invested in our solutions, now empower yourself to maximize your results! Group Session Training is the critical component needed to ensure you realize the full value of your investment. Take charge today and manage your learning experience by registering for a Group Session! To make it easy for you and to adapt into your busy schedule, we offer 7 sessions every other day that are focused around Fleet Complete's core offerings.