text:
Francesca Bartholomew
Five Heartfelt Restaurant Stories to Warm Your Soul
2016 is almost at a close, and what a year it's been. For many, this year was the worst. With Brexit, the election of Trump, lead-poisoned water in Flint, MI, and the sheer number of civilian deaths in Syria, there's plenty to be outraged and saddened by.
Despite all of the terrible things that happened, this year wasn't all bad. To cheer you up and restore your faith in humanity, here are our favorite restaurant-related heartwarming stories.
1. "Café-girl" professes her love.
There's something fascinating about live tweeting that appeals to a certain voyeuristic nature of human behavior. This story, however, is so sweet, the romantic buried deep inside you won't have any choice but to say, "aww." This heart-warmer starts in a café in Brooklyn:
I'm the only one in this café and the girl employee just told the guy employee she has a crush on him will update
— Jerry (@notjerryclayton) December 18, 2016
Long story short, things ended well for "café-girl." The entire thread can be read here.
2. New mom gets a friendly hand.
Being a new parent isn't easy. Often you're completely at your ropes end with no sleep. One new mom got a friendly surprise from a fellow restaurant patron while enjoying her first breakfast out post-partum.
3. It's been a crappy year for law enforcement.
Between violence towards the police and restaurant staffers blasting NWA's "F**K The Police," the men and women in blue uniforms haven't had it to easy. Despite this, an act of kindness at a Kansas Chili's reminds us that small acts of gratitude can be incredibly powerful.
4. An inclusive note.
Our president-elect's stance on immigration has many worried, including a young waiter in Colorado. After the election, an encounter with a restaurant patron helped to alleviate some of his concerns.
5. Shout out to the single moms.
Being a single mom is tough, and being a single mom in the restaurant industry is even worse. One recent study reported that 40% of American moms in the industry live at or below the poverty line. So when a man walked into a Denny's earlier this year, and asked for a waitress that was a single mom, his request was a little odd but a blessing for his lucky waitress. The man sat at his table for a few hours, picking up the tab for several families that dined while he was there. When he left, he gave his waitress a $1,500 tip that helped her and her son move out of a homeless shelter.
In today's restaurant news: how sound and restaurant food are connected, finding local foodies to boost your restaurant, Chick-fil-A's unique guest promotion, and more!
In today's restaurant news: why sports bars need to cater to eSports fans & gamers, why too much CBD is bad for your liver, is RUI's bankruptcy a sign that restaurant minimum wage increase is bad, and more!
We take a look at the future of restaurant franchising, including the 'business within a business' model, an emphasis on restaurant technology, restaurant expansion techniques, and more.
The Daily Rail: Gamify Your Server Sales Instead of Coercing Them
In today's restaurant news: how to find sports fan clubs for your sports bar, why restaurant operators should gamify staff sales instead of coercion, and tips for building your business with targeted guests.
The Daily Rail: Guest Feedback is the Best Way to Know How Your Service Is
In today's restaurant news: Grubhub under fire for nonconsensual client microsites, Sonic debuts a spicy slush mocktail, PBR debuts hard iced coffee, and more!
Tagged: feel good, restaurant industry
Newer PostIs McDonald's Holiday Cup a Giant Troll Job?
Older PostOur 2017 Restaurant Industry Predictions


text:
Fertility (IVF)
> Fertility (IVF)
Fertility Services
Fertility Services, previously undertaken at the Centre for Reproduction & Gynaecology Wales and the West (CRGW), transferred to University Hospitals Plymouth NHS Trust (UHP) on Monday 16 November 2020.
IVF treatment continues at CRGW. All patients currently waiting to attend as an outpatient will be contacted in due course by UHP with a new appointment date. For any appointment booking enquiries, or any other administrative query, please contact 01752 431598.
Why is the service moving back to Derriford?
CRGW will continue to be the provider for NHS funded IVF but has decided to stop providing fertility services at the end of the contract period.
What will happen next?
Our Doctors are currently reviewing all patients who have had appointments cancelled during the transfer process to University Hospitals Plymouth for their fertility assessment and treatment. Following this review, all patients will be contacted with a view to arranging a telephone consultation in the near future.
What will happen at the telephone or video consultation?
We will assess what stage you are in your treatment and agree the next steps with you, whether that involves continuing with your treatment, referring you to CRGW for IVF, or discharging you, if appropriate.
Will I be treated by specialist staff?
Our Fertility Consultant will be supported by an additional Nurse Specialist who will run clinics and support scanning and other treatments. We will continue to work closely with CRGW, who will also provide some Consultant support to the endocrine clinics and some specialist procedures.
Will there be enough clinic capacity to deal with a backlog of delays caused by coronavirus?
We are confident that we have enough capacity to deal with both the referrals being transferred, and also any new referrals.
Will the service be disrupted again by COVID as it is now on the main Derriford site?
During the second wave of Covid, more activity has been delivered remotely, but patients who need to come in to be seen have continued to do so during this period so we don't expect to have any adverse impact to the service during any future COVID escalation periods.
Who can I contact with questions or problems?
If you have any administrative queries while you are awaiting your initial discussion with one of our Doctors please contact 01752 431598.
* Spam Guard: What is the next number after 5? Write the number as a word.

redpajama_set_name: RedPajamaCommonCrawl


Executive Mosaic is honored to announce Rick Holgate — chief information officer at the Bureau of Alcohol, Tobacco, Firearms and Explosives — as the newest member of the Wash100, the premier group of leaders who drive growth and innovation at the intersection of the public and private sectors.
Holgate joined the Justice Department agency in August 2009 and oversees ATF's information technology services for 7,500 users, as well as the agency's forensic services work across three laboratories and a fire research facility.
One item of increasing importance on his agenda is mobile devices and he discussed how this disruptive technology has changed employees' lives outside the workplace at a September 2013 conference, according to CIO.com.
"That's really what's changed in the last five to 10 years, we've all become much more accustomed to having technology at our fingertips, having our own technology, and having the ability to do things on demand, in real time on those types of platforms," Holgate said.
Holgate began his government service career in 2004 with an assistant director role at the Naval Criminal Investigative Service, where he oversaw IT services and led the agency through its transition to the Navy Marine Corps Intranet.
Prior to NCIS, he served as a senior manager at BearingPoint and worked with clients such as the Defense Department on project management, team organization and business development.
While at MITRE Corp., he collaborated with clients in the intelligence community, Air Force and Army on base realignment and closure and environmental restoration; chemical weapons demilitarization; and arms control verification.


text:
These examples demonstrate how to create a unit test for a Rust SDK operation.
It uses the Amazon Simple Storage Service (Amazon S3) ListObjectsV2 operation
to accumulate the size, in bytes, of objects in a bucket with a specified prefix,
and shows how to mock the call using traits or an enum.

## Code example

- [Get object sizes mocked by enum](src/enums.rs) (ListObjectsV2)
- [Get object sizes](src/intro.rs) (ListObjectsV2)
- [Get object sizes mocked by trait](src/traits.rs) (ListObjectsV2)

## ⚠ Important

- We recommend that you grant this code least privilege,
  or at most the minimum permissions required to perform the task.
  For more information, see
  [Grant Least Privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)
  in the AWS Identity and Access Management User Guide.
- This code has not been tested in all AWS Regions.
  Some AWS services are available only in specific
  [Regions](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services).
- Running this code might result in charges to your AWS account.

## Running the code example

### Prerequisites

You must have an AWS account, and have configured your default credentials and AWS Region as described in [https://github.com/awslabs/aws-sdk-rust](https://github.com/awslabs/aws-sdk-rust).

### intro

This example gets the accumulated size, in bytes, of the objects with a specified prefix in a bucket.

`cargo run -- -b BUCKET -p PREFIX [-r REGION] [-v]`

- _BUCKET_ is the name of the bucket.
- _PREFIX_ is the first part of the bucket name.
- _REGION_ is name of the Region in which the client is created.
  If not supplied, uses the value of the __AWS_REGION__ environment variable.
  If the environment variable is not set, defaults to __us-west-2__.
- __-v__ displays additional information.

## Running the unit tests

There are four unit tests, two with the same name in `enums.rs` and two in `traits.rs`.

You can run all of the tests with the following command:

`cargo test`

## Resources

- [AWS SDK for Rust repo](https://github.com/awslabs/aws-sdk-rust)
- [AWS SDK for Rust API Reference for Amazon S3](https://docs.rs/aws-sdk-s3)
- [AWS SDK for Rust Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg)

## Contributing

To propose a new code example to the AWS documentation team,
see [CONTRIBUTING.md](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/CONTRIBUTING.md).
The team prefers to create code examples that show broad scenarios rather than individual API calls.

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0

redpajama_set_name: RedPajamaGithub


text:
Q: Is it possible to send a command from one cmd-window to another (already existing) cmd-window? Is it possible to send a command from one cmd-window to another (already existing and opened) cmd-window?

A: Yes, it is.
I would recommend taking a look at Sockets, cause that would probably be the easiest way of doing this.

A: You can just use the fact that linux opens up a new console device, which can be retrieved using the tty command. So you can do:
echo 'some text' > '/dev/pts/19'

(assuming that the other window's tty is /dev/pts/19).
You can print also to your current window:
echo 'some text' > `tty`

though it's not of much use :)
EDIT: I've just read that you want to send commands, not just text. In this case you could try to play with the above solution & Bash's read function: http://wiki.bash-hackers.org/commands/builtin/read with something like
while read data; do; eval $data; done

combined with file descriptors, probably.

A: In Windows, which uses cmd, you can use SENDKEYS (Via a VBS script) to write commands to another window, and AutoIt can also script GUI's and other program windows.

redpajama_set_name: RedPajamaStackExchange


text:
Chris Salcedo
stated on December 5, 2019 in a radio interview:
Says justices of the peace in Texas are being asked to choose: "give up your career or violate your religious beliefs" and perform same-sex marriages.
Radio show host Chris Salcedo said that Justice of the Peace Dianne Hensley (pictured) is being asked to choose between giving up her careers or violating her religious beliefs by performing same-sex marriages. That's False. (Houston Chronicle)
By Taylor Goldenstein December 17, 2019
What religious exemptions exist for justices of the peace in Texas?
During an interview on a Fort Worth radio program with Texas Attorney General Ken Paxton, host Chris Salcedo pressed his guest about the case of a Waco justice of the peace who was sanctioned by a state commission earlier this month for only officiating opposite sex, but not same-sex, marriages.
The State Commission on Judicial Conduct issued Justice of the Peace Dianne Hensley a public warning over her refusal to perform same-sex ceremonies; the commission could take further action if she refuses to stop the practice.
Paxton, a Republican, reiterated the stance of his office, one that has not changed since just after the 2015 Supreme Court decision legalizing gay marriage. He said people are entitled to religious exemptions when it would violate their faith to carry out the duties of their job.
On the show, Salcedo characterized the case as such:
"I shouldn't have to give up my career — make a choice, either give up your career or violate your religious beliefs," Salcedo said. "The government shouldn't put me in that position."
Saledo's description of Hensely's situation is inaccurate. No one is asking Hensley to violate her religious beliefs to keep her career: officiating marriages is an optional activity. A state commission's opinion on the matter suggested she could officiate all or no marriages, but not selectively choose one type.
Protection of religious beliefs
Justices of the peace handle low-level civil and criminal cases, including traffic and other Class C misdemeanor cases and civil cases involving up to $10,000.
They can also officiate marriages, but this is considered "extra-judicial," an optional activity that earns them thousands per year in personal income.
So while there may be some financial incentive to do it, it is by no means required.
In fact, some justices of the peace in Texas have chosen not to officiate any marriages in order to avoid the religious dilemma, including in McLennan County, where Hensley hails.
The commission decided to investigate Hensley based at least in part on a Waco Herald-Tribune article in which she was quoted about her decision to decline same-sex marriages and how she believed she was entitled to a religious accommodation.
It found that she had refused to perform same-sex marriages since 2016, instead only performing opposite-sex marriages and referring same-sex couples to other officiating JPs and clergy.
The state commission that sanctioned Hensley said her actions cast "doubt on her capacity to act impartially to persons appearing before her as a judge due to the person's sexual orientation."
Now, Hensley can appeal the sanction, start performing same-sex marriages or stop performing marriages altogether.
Hensley has argued that she is entitled to a "religious exemption," but there is no law or legal precedent in Texas establishing such an exemption for a justice of the peace in this context.
This question varies by state, depending on whether the state's Supreme Court has taken up a case and established a precedent.
In separate interviews, Douglas Laycock and John Dzienkowski, law professors at the University of Texas, said they weren't aware of any such cases in Texas.
Two legal opinions on the subject that have been issued by state agencies — a 2015 opinion from the attorney general's office and the Judicial Commission sanction — are nonbinding.
In a 2015 opinion filed after the U.S. Supreme Court case on same-sex marriage, Paxton supported people's right to assert a religious exemption under the First Amendment, though he noted that fines and litigation were possible.
The recent Judicial Commission opinion punished Henlsey for giving off the appearance of bias, seeming to indicate an exemption would not be possible.
But Laycock said neither document is legally binding.
"The basic answer is we don't know yet," Laycock said. "This may well wind up in the courts."
Some states, such as North Carolina, have passed laws on this subject, but Texas has not.
The North Carolina law allows some officials, similar to a justice of the peace, to decline to administer any marriages if they have a "sincerely held religious objection" to same-sex marriage, but they may not be selective and only marry opposite-sex couples.
Other positions have different requirements
People in other government positions, like county clerks who issue marriage licenses, have less flexibility, as issuing marriage licenses can be part of their job description.
Perhaps most famously, Kim Davis, a clerk in Kentucky, refused to issue a license to a same-sex couple and, in a high-profile case, she was sued. When she refused to comply with the judge's order compelling her to follow the law, she was jailed for six days for being in contempt of court. Davis was later released after agreeing not to interfere with other clerks in the office issuing licenses.
Some county clerks in Texas are allowing those officials who object to same-sex marriage to find another clerk within the office to issue a license in their place.
But if everyone else in the office also refuses, the office as a whole can't deny a couple the right to marry in defiance of the law, Laycock said.
That may explain why no religious exemption case has risen to the Supreme Court level in Texas, Laycock said. As long as the couple receives their license or has their marriage officiated, the damages they can claim in court are limited to emotional distress.
That someone in Hensley's position should not be forced to choose between their job and religious belief, as Salcedo commented, is "not a settled rule of law yet; it's an opinion about what the law ought to be," Laycock said.
Salcedo said justices of the peace like Hensley are being asked to choose: "give up your career or violate your religious beliefs."
Justices of the peace are not required to officiate marriages and do so mainly for their own benefit, not as an integral duty of the job. Clerks, on occasion, may not have the luxury of that choice, but that is not what Salcedo called out in the statement. Plus, there hasn't been an authoritative ruling in Texas on either situation.
We rate this statement False.
Interview with University of Texas law professor Douglas Laycock, Dec.
Interview with University of Texas law professor John Dzienkowski, Dec.
Vermont Law Review, Icing on the Wedding Cake: Same-sex marriage and religious objections — is there an accomodation that will make everyone equally happy (or unhappy)?, Feb. 3, 2018
USA Today, Court rejects Kentucky's attempt to shirk legal fees in Kim Davis gay marriage case, Aug. 23, 2019
Waco Tribune-Herald, No courthouse weddings in Waco for same-sex couples, 2 years after Supreme Court ruling, June 24, 2017
Houston Chronicle, Texas judge gets a warning for refusing to perform gay marriages, Dec. 3, 2019
More by Taylor Goldenstein
stated on February 19, 2021 a Facebook post:
"Since 2006 Texas has given $19B in taxpayer subsidies to wind energy companies. Over the past 2-3 years Texas has tripled our dependence on wind energy to 23-25 percent of our energy distribution system."
By Taylor Goldenstein • March 26, 2021
stated on June 11, 2020 an interview:
The United States has not completed a "top-to-bottom review of our criminal justice system at the national level since 1965."
By Taylor Goldenstein • July 2, 2020
stated on June 1, 2020 a Facebook post:
"A declaration of disaster, has been issued for the state of Texas. House Bill 1177 Allows any Texan who can legally own a firearm to carry their handgun, open or concealed, for a full week after a state or natural disaster is declared."
By Taylor Goldenstein • June 5, 2020
Greg Abbott
stated on May 5, 2020 a press conference:
"Almost 75 percent of the deaths from COVID-19 in the state of Texas are a result of people contracting COVID-19 who are age 65 and older."
By Taylor Goldenstein • May 21, 2020
stated on December 5, 2019 a radio interview:
By Taylor Goldenstein • December 17, 2019
Donna Campbell
stated on May 22, 2019 the Texas Senate:
"A study was done, a post-mortem, so a retrospective study done, looking at autopsies and drug levels, what drugs were in the blood of veterans that committed suicide, and 70 percent had THC."
By Taylor Goldenstein • July 15, 2019


Dukbokki korean dish The official Pengraphics web site. Pengraphics is a Montreal,Canada based Graphic Design and Web site development y Burtaev, More Better EP expect pulsing basslines and deep, spacey drum 'n' bass!. Andrey Burtaev More Better EP. Muscovite Andrey Burtaev's production credits range.
Bosch dishwasher parts soap dispenser Manufacturers of bulk storage and conveyor systems for a range of industry sectors, including livestock feeding, chemical, plastics, and food production; details of products and.


Supporting up to 8-players locally, The Voice: I Want You is the newest singing party game that will rattle any home entertainment speaker system. Grab the mic and follow each beat and musical note, while the score counter multiplies with each matched melody. The Voice Coach Mode also offers neat tips and tricks to help with each performance like breathing, harmonizing and singing on perfect pitch.
In the karaoke sections singers flicker. To fix this flickering, change the Texture Cache Accuracy setting to 'Safe'.
The graph below charts the compatibility with The Voice: I Want You since Dolphin's 2.0 release, listing revisions only where a compatibility change occurred.


text:
namespace {

const char kExpectedIconUrl[] = "files/notifications/no_such_file.png";

enum InfobarAction {
  DISMISS = 0,
  ALLOW,
  DENY,
};

class NotificationBalloonChangeObserver : public content::NotificationObserver {
 public:
  NotificationBalloonChangeObserver()
      : collection_(BalloonNotificationUIManager::GetInstanceForTesting()->
            balloon_collection()),
        collection_changed_(false),
        notification_received_(false),
        running_(false),
        done_(false) {
    registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED,
                   content::NotificationService::AllSources());
    registrar_.Add(this, chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED,
                   content::NotificationService::AllSources());
    collection_->set_on_collection_changed_callback(
        base::Bind(&NotificationBalloonChangeObserver::OnCollectionChanged,
                   base::Unretained(this)));
  }

  virtual ~NotificationBalloonChangeObserver() {
    collection_->set_on_collection_changed_callback(base::Closure());
  }

  bool Wait() {
    if (!Check()) {
      running_ = true;
      message_loop_runner_ = new content::MessageLoopRunner;
      message_loop_runner_->Run();
      EXPECT_TRUE(done_);
    }
    return done_;
  }

  bool Check() {
    if (done_)
      return true;

    if (collection_changed_ && notification_received_) {
      done_ = true;
      if (running_) {
        message_loop_runner_->Quit();
        running_ = false;
      }
    }
    return done_;
  }

  void OnCollectionChanged() {
    collection_changed_ = true;
    Check();
  }

  // Overridden from content::NotificationObserver:
  virtual void Observe(int type,
                       const content::NotificationSource& source,
                       const content::NotificationDetails& details) OVERRIDE {
    DCHECK(type == chrome::NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED ||
           type == chrome::NOTIFICATION_NOTIFY_BALLOON_CONNECTED);
    notification_received_ = true;
    Check();
  }

 private:
  content::NotificationRegistrar registrar_;
  BalloonCollection* collection_;

  bool collection_changed_;
  bool notification_received_;
  bool running_;
  bool done_;
  scoped_refptr<content::MessageLoopRunner> message_loop_runner_;

  DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver);
};

}  // namespace

class NotificationsTest : public InProcessBrowserTest {
 public:
  NotificationsTest() {}

 protected:
  // Overriden from InProcessBrowserTest:
  virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;

  const std::deque<Balloon*>& GetActiveBalloons();
  int GetNotificationCount();

  bool CloseNotificationAndWait(const Notification& notification);
  void CloseBrowserWindow(Browser* browser);
  void CrashTab(Browser* browser, int index);
  void CrashNotification(Balloon* balloon);

  void SetDefaultPermissionSetting(ContentSetting setting);
  void DenyOrigin(const GURL& origin);
  void AllowOrigin(const GURL& origin);
  void AllowAllOrigins();

  void VerifyInfobar(const Browser* browser, int index);
  std::string CreateNotification(Browser* browser,
                                 bool wait_for_new_balloon,
                                 const char* icon,
                                 const char* title,
                                 const char* body,
                                 const char* replace_id);
  std::string CreateSimpleNotification(Browser* browser,
                                       bool wait_for_new_balloon);
  bool RequestPermissionAndWait(Browser* browser);
  bool CancelNotification(const char* notification_id, Browser* browser);
  bool PerformActionOnInfobar(Browser* browser,
                              InfobarAction action,
                              int infobar_index,
                              int tab_index);
  void GetPrefsByContentSetting(ContentSetting setting,
                                ContentSettingsForOneType* settings);
  bool CheckOriginInSetting(const ContentSettingsForOneType& settings,
                            const GURL& origin);

  GURL empty_page_url_;
  GURL test_page_url_;

 private:
  void DropOriginPreference(const GURL& origin);
  DesktopNotificationService* GetDesktopNotificationService();
};

void NotificationsTest::SetUpInProcessBrowserTestFixture() {
  InProcessBrowserTest::SetUpInProcessBrowserTestFixture();

  ASSERT_TRUE(test_server()->Start());
  empty_page_url_ = test_server()->GetURL("files/empty.html");
  test_page_url_ = test_server()->GetURL(
      "files/notifications/notification_tester.html");
}

const std::deque<Balloon*>& NotificationsTest::GetActiveBalloons() {
  return BalloonNotificationUIManager::GetInstanceForTesting()->
      balloon_collection()->GetActiveBalloons();
}

int NotificationsTest::GetNotificationCount() {
  return BalloonNotificationUIManager::GetInstanceForTesting()->
      balloon_collection()->GetActiveBalloons().size();
}

bool NotificationsTest::CloseNotificationAndWait(
    const Notification& notification) {
  NotificationBalloonChangeObserver observer;
  bool success = BalloonNotificationUIManager::GetInstanceForTesting()->
      CancelById(notification.notification_id());
  if (success)
    return observer.Wait();
  return false;
}

void NotificationsTest::CloseBrowserWindow(Browser* browser) {
  content::WindowedNotificationObserver observer(
      chrome::NOTIFICATION_BROWSER_CLOSED,
      content::Source<Browser>(browser));
  browser->window()->Close();
  observer.Wait();
}

void NotificationsTest::CrashTab(Browser* browser, int index) {
  content::CrashTab(browser->tab_strip_model()->GetWebContentsAt(index));
}

void NotificationsTest::CrashNotification(Balloon* balloon) {
  content::CrashTab(balloon->balloon_view()->GetHost()->web_contents());
}

void NotificationsTest::SetDefaultPermissionSetting(ContentSetting setting) {
  DesktopNotificationService* service = GetDesktopNotificationService();
  service->SetDefaultContentSetting(setting);
}

void NotificationsTest::DenyOrigin(const GURL& origin) {
  DropOriginPreference(origin);
  GetDesktopNotificationService()->DenyPermission(origin);
}

void NotificationsTest::AllowOrigin(const GURL& origin) {
  DropOriginPreference(origin);
  GetDesktopNotificationService()->GrantPermission(origin);
}

void NotificationsTest::AllowAllOrigins() {
  GetDesktopNotificationService()->ResetAllOrigins();
  GetDesktopNotificationService()->SetDefaultContentSetting(
      CONTENT_SETTING_ALLOW);
}

void NotificationsTest::VerifyInfobar(const Browser* browser, int index) {
  InfoBarTabHelper* infobar_helper = InfoBarTabHelper::FromWebContents(
      browser->tab_strip_model()->GetWebContentsAt(index));

  ASSERT_EQ(1U, infobar_helper->GetInfoBarCount());
  InfoBarDelegate* infobar = infobar_helper->GetInfoBarDelegateAt(0);
  ConfirmInfoBarDelegate* confirm_infobar = infobar->AsConfirmInfoBarDelegate();
  ASSERT_TRUE(confirm_infobar);
  int buttons = confirm_infobar->GetButtons();
  EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_OK);
  EXPECT_TRUE(buttons & ConfirmInfoBarDelegate::BUTTON_CANCEL);
}

std::string NotificationsTest::CreateNotification(
    Browser* browser,
    bool wait_for_new_balloon,
    const char* icon,
    const char* title,
    const char* body,
    const char* replace_id) {
  std::string script = base::StringPrintf(
      "createNotification('%s', '%s', '%s', '%s');",
      icon, title, body, replace_id);

  NotificationBalloonChangeObserver observer;
  std::string result;
  bool success = content::ExecuteJavaScriptAndExtractString(
      browser->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
      L"",
      UTF8ToWide(script),
      &result);
  if (success && result != "-1" && wait_for_new_balloon)
    success = observer.Wait();
  EXPECT_TRUE(success);

  return result;
}

std::string NotificationsTest::CreateSimpleNotification(
    Browser* browser,
    bool wait_for_new_balloon) {
  return CreateNotification(
      browser, wait_for_new_balloon,
      "no_such_file.png", "My Title", "My Body", "");
}

bool NotificationsTest::RequestPermissionAndWait(Browser* browser) {
  InfoBarTabHelper* infobar_helper = InfoBarTabHelper::FromWebContents(
      browser->tab_strip_model()->GetActiveWebContents());
  content::WindowedNotificationObserver observer(
      chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED,
      content::Source<InfoBarTabHelper>(infobar_helper));
  std::string result;
  bool success = content::ExecuteJavaScriptAndExtractString(
      browser->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
      L"",
      L"requestPermission();",
      &result);
  if (!success || result != "1")
    return false;
  observer.Wait();
  return true;
}

bool NotificationsTest::CancelNotification(
    const char* notification_id,
    Browser* browser) {
  std::string script = base::StringPrintf(
      "cancelNotification('%s');",
      notification_id);

  NotificationBalloonChangeObserver observer;
  std::string result;
  bool success = content::ExecuteJavaScriptAndExtractString(
      browser->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
      L"",
      UTF8ToWide(script),
      &result);
  if (!success || result != "1")
    return false;
  return observer.Wait();
}

bool NotificationsTest::PerformActionOnInfobar(
    Browser* browser,
    InfobarAction action,
    int infobar_index,
    int tab_index) {
  InfoBarTabHelper* infobar_helper = InfoBarTabHelper::FromWebContents(
      browser->tab_strip_model()->GetWebContentsAt(tab_index));

  InfoBarDelegate* infobar = infobar_helper->GetInfoBarDelegateAt(
      infobar_index);
  switch (action) {
    case DISMISS: {
      infobar->InfoBarDismissed();
      infobar_helper->RemoveInfoBar(infobar);
      return true;
    }
    case ALLOW: {
      ConfirmInfoBarDelegate* confirm_bar = infobar->AsConfirmInfoBarDelegate();
      if (confirm_bar->Accept()) {
        infobar_helper->RemoveInfoBar(infobar);
        return true;
      }
    }
    case DENY: {
      ConfirmInfoBarDelegate* confirm_bar = infobar->AsConfirmInfoBarDelegate();
      if (confirm_bar->Cancel()) {
        infobar_helper->RemoveInfoBar(infobar);
        return true;
      }
    }
  }

  return false;
}

void NotificationsTest::GetPrefsByContentSetting(
    ContentSetting setting,
    ContentSettingsForOneType* settings) {
  DesktopNotificationService* service = GetDesktopNotificationService();
  service->GetNotificationsSettings(settings);
  for (ContentSettingsForOneType::iterator it = settings->begin();
       it != settings->end(); ) {
    if (it->setting != setting || it->source.compare("preference") != 0)
      it = settings->erase(it);
    else
      ++it;
  }
}

bool NotificationsTest::CheckOriginInSetting(
    const ContentSettingsForOneType& settings,
    const GURL& origin) {
  ContentSettingsPattern pattern =
      ContentSettingsPattern::FromURLNoWildcard(origin);
  for (ContentSettingsForOneType::const_iterator it = settings.begin();
       it != settings.end(); ++it) {
    if (it->primary_pattern == pattern)
      return true;
  }
  return false;
}

void NotificationsTest::DropOriginPreference(const GURL& origin) {
  GetDesktopNotificationService()->ClearSetting(
      ContentSettingsPattern::FromURLNoWildcard(origin));
}

DesktopNotificationService* NotificationsTest::GetDesktopNotificationService() {
  Profile* profile = browser()->profile();
  return DesktopNotificationServiceFactory::GetForProfile(profile);
}

// If this flakes, use http://crbug.com/62311 and http://crbug.com/74428.
IN_PROC_BROWSER_TEST_F(NotificationsTest, TestUserGestureInfobar) {
  ui_test_utils::NavigateToURL(
      browser(),
      test_server()->GetURL(
          "files/notifications/notifications_request_function.html"));

  // Request permission by calling request() while eval'ing an inline script;
  // That's considered a user gesture to webkit, and should produce an infobar.
  bool result;
  ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool(
      browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
      L"",
      L"window.domAutomationController.send(request());",
      &result));
  EXPECT_TRUE(result);

  EXPECT_EQ(1U, InfoBarTabHelper::FromWebContents(
      browser()->tab_strip_model()->GetWebContentsAt(0))->GetInfoBarCount());
}

// If this flakes, use http://crbug.com/62311.
IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNoUserGestureInfobar) {
  // Load a page which just does a request; no user gesture should result
  // in no infobar.
  ui_test_utils::NavigateToURL(
      browser(),
      test_server()->GetURL(
          "files/notifications/notifications_request_inline.html"));

  EXPECT_EQ(0U, InfoBarTabHelper::FromWebContents(
      browser()->tab_strip_model()->GetWebContentsAt(0))->GetInfoBarCount());
}

// Disable new testcases on Chrome OS due to failure on creating notification.
#if !defined(OS_CHROMEOS)

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) {
  // Creates a simple notification.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  const std::deque<Balloon*>& balloons = GetActiveBalloons();
  ASSERT_EQ(1U, balloons.size());
  Balloon* balloon = balloons[0];
  const Notification& notification = balloon->notification();
  GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl);
  EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
  EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title());
  EXPECT_EQ(ASCIIToUTF16("My Body"), notification.body());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) {
  // Creates a notification and closes it.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  const std::deque<Balloon*>& balloons = GetActiveBalloons();
  ASSERT_EQ(1U, balloons.size());
  EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification()));
  ASSERT_EQ(0, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCancelNotification) {
  // Creates a notification and cancels it in the origin page.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string note_id = CreateSimpleNotification(browser(), true);
  EXPECT_NE(note_id, "-1");

  ASSERT_EQ(1, GetNotificationCount());
  ASSERT_TRUE(CancelNotification(note_id.c_str(), browser()));
  ASSERT_EQ(0, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionInfobarAppears) {
  // Requests notification privileges and verifies the infobar appears.
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));

  ASSERT_EQ(0, GetNotificationCount());
  VerifyInfobar(browser(), 0);
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowOnPermissionInfobar) {
  // Tries to create a notification and clicks allow on the infobar.
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  // This notification should not be shown because we do not have permission.
  CreateSimpleNotification(browser(), false);
  ASSERT_EQ(0, GetNotificationCount());

  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  ASSERT_TRUE(PerformActionOnInfobar(browser(), ALLOW, 0, 0));

  CreateSimpleNotification(browser(), true);
  EXPECT_EQ(1, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyOnPermissionInfobar) {
  // Test that no notification is created
  // when Deny is chosen from permission infobar.
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  PerformActionOnInfobar(browser(), DENY, 0, 0);
  CreateSimpleNotification(browser(), false);
  ASSERT_EQ(0, GetNotificationCount());
  ContentSettingsForOneType settings;
  GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
  EXPECT_TRUE(CheckOriginInSetting(settings, test_page_url_));
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermissionInfobar) {
  // Test that no notification is created when permission infobar is dismissed.
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  PerformActionOnInfobar(browser(), DISMISS, 0, 0);
  CreateSimpleNotification(browser(), false);
  ASSERT_EQ(0, GetNotificationCount());
  ContentSettingsForOneType settings;
  GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
  EXPECT_EQ(0U, settings.size());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationWithPropertyMissing) {
  // Test that a notification can be created if one property is missing.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  const std::deque<Balloon*>& balloons = GetActiveBalloons();
  ASSERT_EQ(1U, balloons.size());
  Balloon* balloon = balloons[0];
  const Notification& notification = balloon->notification();
  GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl);
  EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
  EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) {
  // Verify that all domains can be allowed to show notifications.
  SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  ASSERT_EQ(1, GetNotificationCount());
  EXPECT_EQ(0U, InfoBarTabHelper::FromWebContents(
      browser()->tab_strip_model()->GetWebContentsAt(0))->GetInfoBarCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyNotificationsFromAllSites) {
  // Verify that no domain can show notifications.
  SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), false);
  EXPECT_EQ("-1", result);

  ASSERT_EQ(0, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyDomainAndAllowAll) {
  // Verify that denying a domain and allowing all shouldn't show
  // notifications from the denied domain.
  DenyOrigin(test_page_url_.GetOrigin());
  SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW);

  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), false);
  EXPECT_EQ("-1", result);

  ASSERT_EQ(0, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowDomainAndDenyAll) {
  // Verify that allowing a domain and denying all others should show
  // notifications from the allowed domain.
  AllowOrigin(test_page_url_.GetOrigin());
  SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK);

  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  ASSERT_EQ(1, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyAndThenAllowDomain) {
  // Verify that denying and again allowing should show notifications.
  DenyOrigin(test_page_url_.GetOrigin());

  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateSimpleNotification(browser(), false);
  EXPECT_EQ("-1", result);

  ASSERT_EQ(0, GetNotificationCount());

  AllowOrigin(test_page_url_.GetOrigin());
  result = CreateSimpleNotification(browser(), true);
  EXPECT_NE("-1", result);

  ASSERT_EQ(1, GetNotificationCount());
  EXPECT_EQ(0U, InfoBarTabHelper::FromWebContents(
      browser()->tab_strip_model()->GetWebContentsAt(0))->GetInfoBarCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateDenyCloseNotifications) {
  // Verify able to create, deny, and close the notification.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  CreateSimpleNotification(browser(), true);
  ASSERT_EQ(1, GetNotificationCount());

  DenyOrigin(test_page_url_.GetOrigin());
  ContentSettingsForOneType settings;
  GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
  ASSERT_TRUE(CheckOriginInSetting(settings, test_page_url_.GetOrigin()));

  const std::deque<Balloon*>& balloons1 = GetActiveBalloons();
  EXPECT_EQ(1U, balloons1.size());
  ASSERT_TRUE(CloseNotificationAndWait(balloons1[0]->notification()));
  ASSERT_EQ(0, GetNotificationCount());
}

// Crashes on Linux/Win. See http://crbug.com/160657.
IN_PROC_BROWSER_TEST_F(
    NotificationsTest,
    DISABLED_TestOriginPrefsNotSavedInIncognito) {
  // Verify that allow/deny origin preferences are not saved in incognito.
  Browser* incognito = CreateIncognitoBrowser();
  ui_test_utils::NavigateToURL(incognito, test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(incognito));
  PerformActionOnInfobar(incognito, DENY, 0, 0);
  CloseBrowserWindow(incognito);

  incognito = CreateIncognitoBrowser();
  ui_test_utils::NavigateToURL(incognito, test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(incognito));
  PerformActionOnInfobar(incognito, ALLOW, 0, 0);
  CreateSimpleNotification(incognito, true);
  ASSERT_EQ(1, GetNotificationCount());
  CloseBrowserWindow(incognito);

  incognito = CreateIncognitoBrowser();
  ui_test_utils::NavigateToURL(incognito, test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(incognito));

  ContentSettingsForOneType settings;
  GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
  EXPECT_EQ(0U, settings.size());
  GetPrefsByContentSetting(CONTENT_SETTING_ALLOW, &settings);
  EXPECT_EQ(0U, settings.size());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestExitBrowserWithInfobar) {
  // Exit the browser window, when the infobar appears.
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCrashTabWithPermissionInfobar) {
  // Test crashing the tab with permission infobar doesn't crash Chrome.
  ui_test_utils::NavigateToURLWithDisposition(
      browser(),
      empty_page_url_,
      NEW_BACKGROUND_TAB,
      ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
  browser()->tab_strip_model()->ActivateTabAt(0, true);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  CrashTab(browser(), 0);
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) {
  // Test killing a notification doesn't crash Chrome.
  AllowAllOrigins();
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  CreateSimpleNotification(browser(), true);
  ASSERT_EQ(1, GetNotificationCount());

  const std::deque<Balloon*>& balloons = GetActiveBalloons();
  ASSERT_EQ(1U, balloons.size());
  CrashNotification(balloons[0]);
  ASSERT_EQ(0, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) {
  // Test notifications in incognito window.
  Browser* browser = CreateIncognitoBrowser();
  ui_test_utils::NavigateToURL(browser, test_page_url_);
  browser->tab_strip_model()->ActivateTabAt(0, true);
  ASSERT_TRUE(RequestPermissionAndWait(browser));
  PerformActionOnInfobar(browser, ALLOW, 0, 0);
  CreateSimpleNotification(browser, true);
  ASSERT_EQ(1, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseTabWithPermissionInfobar) {
  // Test that user can close tab when infobar present.
  ui_test_utils::NavigateToURLWithDisposition(
      browser(),
      GURL("about:blank"),
      NEW_BACKGROUND_TAB,
      ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
  browser()->tab_strip_model()->ActivateTabAt(0, true);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  content::WindowedNotificationObserver observer(
      content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
      content::NotificationService::AllSources());
  chrome::CloseWebContents(browser(),
                           browser()->tab_strip_model()->GetWebContentsAt(0));
  observer.Wait();
}

IN_PROC_BROWSER_TEST_F(
    NotificationsTest,
    TestNavigateAwayWithPermissionInfobar) {
  // Test navigating away when an infobar is present,
  // then trying to create a notification from the same page.
  ui_test_utils::NavigateToURLWithDisposition(
      browser(),
      GURL("about:blank"),
      NEW_BACKGROUND_TAB,
      ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
  browser()->tab_strip_model()->ActivateTabAt(0, true);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  ASSERT_TRUE(RequestPermissionAndWait(browser()));
  PerformActionOnInfobar(browser(), ALLOW, 0, 0);
  CreateSimpleNotification(browser(), true);
  ASSERT_EQ(1, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCrashRendererNotificationRemain) {
  // Test crashing renderer does not close or crash notification.
  AllowAllOrigins();
  ui_test_utils::NavigateToURLWithDisposition(
      browser(),
      GURL("about:blank"),
      NEW_BACKGROUND_TAB,
      ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
  browser()->tab_strip_model()->ActivateTabAt(0, true);
  ui_test_utils::NavigateToURL(browser(), test_page_url_);
  CreateSimpleNotification(browser(), true);
  ASSERT_EQ(1, GetNotificationCount());
  CrashTab(browser(), 0);
  ASSERT_EQ(1, GetNotificationCount());
}

IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationReplacement) {
  // Test that we can replace a notification using the replaceId.
  AllowAllOrigins();

  ui_test_utils::NavigateToURL(browser(), test_page_url_);

  std::string result = CreateNotification(
      browser(), true, "abc.png", "Title1", "Body1", "chat");
  EXPECT_NE("-1", result);

  ASSERT_EQ(1, GetNotificationCount());

  result = CreateNotification(
      browser(), false, "no_such_file.png", "Title2", "Body2", "chat");
  EXPECT_NE("-1", result);

  const std::deque<Balloon*>& balloons = GetActiveBalloons();
  EXPECT_EQ(1U, balloons.size());
  const Notification& notification = balloons[0]->notification();
  GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl);
  EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
  EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title());
  EXPECT_EQ(ASCIIToUTF16("Body2"), notification.body());
}

#endif  // !defined(OS_CHROMEOS)


Practical technology solutions that balance simplicity and sophistication.
Whether you're seeking to move from a manual management system reliant on files and spreadsheets, or you're seeking to review your existing solution, iPRO can help.
iPRO's out-of-the-box standardised solutions can help small – medium businesses get up and running in a matter of days.
We can configure specific industry and trade requirements to form part of a contractor's compliance status.
We leverage our industry partnerships to stay close to emerging trends and regulatory changes, which are important drivers of our technology development roadmap.
varying levels of compliance automation and configuration.
Capture and verify company level compliance including insurances, licences, policies and management systems.
Capture and verify employee level compliance including ID verification, inductions, licences and police checks.
Access management solution helps prevent non-compliant contractors entering your work site.
Need more? Simply configure your additional requirements by industry, trade, department, project or more!


text:
Title: Historic Poverty Bay and the East Coast, N.I., N.Z.
Author: Joseph Angus Mackay
Publication details: Joseph Angus Mackay, 1949, Gisborne
The New Zealand Provincial Histories Collection
New Zealand Texts Collection
Historic Poverty Bay and the East Coast, N.I., N.Z.
"Old Geordie" (or "Hori Punehu")
Some difficulty was at first experienced by the writer in ascertaining the identity of a pioneer who was known to the East Coast natives as "Hori Punehu." One witness described him in the Native Land Court as "the red-headed, freckled, blue-eyed pakeha." When Mrs. James Walker, of Waihau Bay, was consulted, she smiled and, pointing to her big son Jim, said: "There's a Punehu!" She went on to explain that Hori Punehu was an Irishman named George Taylor, who came out to New Zealand on a whaler. He married a native named Riria and they had a family of six daughters. The Grace family at Tuparoa were among numerous descendants on the East Coast, and there were others at Te Kaha.
In the early 1860's (Mrs. Walker continued) Isaac Walker, with a nephew (James Walker) came over from Australia to the East Coast. The uncle, who took for wife Matere, went in for cattle-raising and from Maraehara (on the north bank of the Waiapu River) he sent a lot of fat stock to the Auckland market in later years. James Walker married Maria, a daughter of George Taylor, and, in 1869, there was born to them a son, who was named James after his father. This son she (Mrs. Walker) had married. In turn, they had had the son James of whom she had said: "There's a Punehu!" James Walker senior was the first pakeha to be charged rent at Waipiro Bay, but the first instalment was returned to him in exchange for nails, which were required in connection with the construction of a chapel. He built the first hotel at Waipiro Bay. Later, he moved to Te Kaha. In 1876, he and his uncle took up the Woodlands property at Opotiki, but only the uncle went to live upon it.
Taylor assisted an American named William Martin to build a small craft at Reporua in the early days. A landslide enveloped the vessel and he narrowly escaped death. Martin, who had married Hariata Whakatangi, moved to Thames, but, eventually, he returned to the United States, taking with him his two half-caste boys. His daughter, Hariata, became the mother of the Akuhata family at Te Araroa. In 1854, Taylor was a trader at Whangaparaoa. Three years earlier he had gone to Auckland, where he had filled the post of court interpreter under the name "George Redhead." Later, he set up as a trader at Whareponga. In the 1860's he squatted upon Wairongomai. Next, he moved to Ngamoe. In the 1870's, he ran sheep on Akuaku and Mataahu.
When he died in Gisborne on 29 December, 1885, the Poverty Bay Independent stated that he was born in 1807, and that he page 119 was "one of the oldest identities of the colony." None of the witnesses at the inquest proved to be intimately acquainted with the deceased. T. J. Dickson (licensee of the Argyll Hotel) testified that he had heard that he had a wife on the Coast; that he was reputed to have received money from Home from time to time; and that he was known as "Old Geordie," "Ginger" and "Carroty."


Keep your 3-6 year olds moving this summer!! The Milford Recreation Department introduces our newest camp for the youngest of campers. Children will enjoy a half day of fun and excitement, through our action packed days of songs, stories, games, snacks, arts & crafts and indoor and outdoor activities. The camp will provide an age appropriate program in a safe and nurturing environment.


The generic type, Proboscia alata, was first described as Rhizosolenia alata with a series of forms, all with valve extended into a shorter or longer tube with truncate tip (proboscis), and no internal processes. Chain formation by the proboscis of neighboring cells fitting into the claspers on the adjacent valve. Auxospores, formed terminally. The different forms are now regarded as separate species (Throndsen et al., 2007).
Pavillard, 1925: p. 26, Fig. 38 (as Rhizosolenia alata); Hustedt,1930: p. 599, Fig. 344 (as Rhizosolenia alata); Allen and Cupp,1935: p. 130, Fig. 43 (as Rhizosolenia alata); Cupp, 1943: p. 91,Fig. 52 A (as Rhizosolenia alata); Crosby and Wood, 1958: p.520, Pl. 38: 62 a (as Rhizosolenia alata); Hendey, 1964: p. 146,Pl. II: 2 (as Rhizosolenia alata f. alata); Simonsen, 1974: p. 28 (as Rhizosolenia alata); Priddle and Fryxell, 1985: p. 76-77;Ricard, 1987: p. 171, Figs. 202-205 (as Rhizosolenia alata f. alata); Throndsen et al., 2007: p. 157.
Cells rod-shaped, cylindrical, straight; 7-18 µm in diameter, up to 1 mm in length. Valve shortly conical ending in tubelike, more or less curved oblique process. Depression at base of tube into which apex of adjoining cell fits. Intercalary bands scalelike, rhombic, in two dorsoventrally rows. Cell wall thin, weakly siliceous; finely striated. On valve 21-23 puncta in 10 µm. None observed on intercalary bands. Chromatophores are numerous, small. Auxospores and resting spores, known. Auxospores growing out in the same plane as the main cell (Cupp, 1943).
Cells length 380-550 µm; diameter 17-20 µm.
Oceanic, but often near the coast, temperate species.
In Winter 2006 Cruise, this species was frequently observed, often in large numbers at various sites (refer sites map); maximum abundance (5.6*10^3cells/l) was associated with the Sea of Oman (St. 25a). It has been previously reported (as Rhizosolenia alata) from the inner RSA (Simonsen, 1974) and from Kuwaiti waters of the inner RSA (Al-Yamani et al., 2004; AlKandari et al., 2009).


- NINTENDOLOUNGE.COM/WRH Hack Latest Version (With New Version).
- NINTENDOLOUNGE.COM/WRH Cheat Tool Undetectable, Safe and Effective (100% Safe).
Today 14206 User has Generated ROCKGAMES.ONLINE/AL Coins and Gems.
From 14206 User Today, we Record 189 User Failed Generated ROCKGAMES.ONLINE/AL Coins and Gems.


text:
Pan African Resources acquires Evander Gold Mines from Harmony
Precious metals producer Pan African Resources' has fulfilled the remaining conditions necesary to undertake an unconditional acquisition of Evander Gold Mines from Harmony Gold Mining.
Nelson: Evander is "world-class ore-body"Jan Nelson, Chief Executive Officer of Pan African Resources, commented: "We are delighted to finally take full control of Evander - a world class ore-body and exceptional team of people will ensure that Pan African continues to deliver profitable, sustainable stakeholder growth. In addition to the 100,000 ounces of annual gold production, Evander also provides Pan African with a project pipeline that provides for significant growth possibilities and flexibility."
Graham Briggs, Chief Executive Officer of Harmony, said: "The proceeds from the Evander sale further strengthen Harmony's cash position. We are leaving Evander in the hands of a capable management team, who we believe will run the mine in a sustainable manner."
Pan African Resources focuses on the exploitation of high-grade ore-bodies that yield high margins with a low cash cost base. It is currently producing 95,000 ounces of gold per annum at its Barberton Mines in South Africa.
It is targeting 20,000 ounces of gold per annum at its Barberton Tailings Retreatment Project and is producing 12,000 ounces of platinum per annum at its Phoneix Platinum Project.
Pan african Resources' share price was unchanged at 18.75p at 08:09 on Friday morning.


A Georgia couple builds their dream retirement home a few years earlier than expected.
Tennessee newlyweds build a forever love — and a forever timber home — together.
Two artists create a stunning and serene timber frame studio space in Asheville, North Carolina.
A laid-back timber frame lake house is just right for a crowd —but still cozy enough for two.
A longtime love of timber frames results in a one-of-a-kind Kentucky timber home.
A Canadian couple crosses international lines to build their dream timber home in Washington State.
A timber home addition brings out the best in an 18th-century Virginia farmhouse.
A Midwest timber home is a striking barn-style retreat that stands tall on the plains of the great Midwest.
With family in mind, one timber frame home's design turns into a truly communal space.
One-of-a-kind charm meets smart, simple design in this Washington timber home.


text:
Food hall, Highland Brewing taproom to take over Asheville's iconic S&W
The two powerhouse Asheville-based businesses will transform the iconic S&W Building into food stalls, a Highland-run bar and mezzanine taproom
Food hall, Highland Brewing taproom to take over Asheville's iconic S&W The two powerhouse Asheville-based businesses will transform the iconic S&W Building into food stalls, a Highland-run bar and mezzanine taproom Check out this story on citizen-times.com: https://www.citizen-times.com/story/news/local/2019/09/10/chai-pani-curated-food-hall-highland-taproom-take-over-iconic-s-w/2265653001/
Mackensy Lunsford, Asheville Citizen Times Published 10:30 a.m. ET Sept. 10, 2019 | Updated 3:27 p.m. ET Sept. 10, 2019
ASHEVILLE - Efforts to revive the S&W Building's halcyon days as a center of community dining have happened in fits and starts. Now, with two powerhouse local businesses leading the charge, a successful resuscitation seems on the horizon.
The iconic 56 Patton Ave. building will reopen this spring after a refresh, revealing The S&W Market, a food and beer hall. Meherwan Irani of Chai Pani Restaurant Group will curate a roster of top restaurants for the space, while Highland Brewing Company will handle beer operations.
This second Highland Brewing taproom brings Asheville's original craft brewery downtown, where its story began 25 years ago. The brewery will anchor the two-level S&W Market with a first-floor bar area and mezzanine-level bar, tasting room and event space.
Irani, who first opened Chai Pani in Asheville a decade ago, has since grown his restaurant group to include Botiwalla, an increasingly recognized brand of food hall restaurants, as well as his Spicewalla spice line.
The S&W, he said, is the perfect homecoming for Asheville's oldest brewery. "It's only fitting that the S&W Market and Highland Brewing Company, two landmarks of Asheville, come together in a perfect pairing to revitalize an important part of our downtown's history," he said in a Sept. 9 statement to the Citizen Times.
The S&W Market food experience will be curated by Meherwan Irani, with Leah Ashburn of Highland Brewing. Pictured far right with members of the Ellington Realty Group. (Photo: Courtesy of Highland Brewing)
"I've never had an interest in opening a second taproom," said Highland president Leah Wong Ashburn in her own statement. "But this confluence was powerful. We are engaged in revitalizing a piece of Asheville's history and working with an incredibly talented group of Asheville entrepreneurs who all believe in authenticity, family and having fun with this project."
Highland founder Oscar Wong, Ashburn's father, echoed that notion. "Highland was part of the rebirth of downtown Asheville back in the '90s, along with many others. To return downtown and be part of the rebirth of this iconic building is nothing short of amazing."
More: Highland Brewing reveals fresh look on labels, logos
More: New laws boost distillery sales, let brewery patrons buy more drinks and bring their dogs
A classic art deco beauty, reborn
The S&W building, a classic art deco beauty, has stood sentry over the intersection of Patton Avenue and Haywood Street since 1929. Over the years, its popularity as a center of entertainment for the city waxed and waned.
Most recently, the building was home to S&W Artisanal, a sprawling Greek restaurant and market open for less than a year. The Times cocktail bar remains open to the east of the main entrance, with Save Me the Waltz jazz bar operating in the basement.
But in its heyday, the S&W was home to Asheville's location of the S&W Cafeteria, which first opened in the old Asheville Opera House on Patton Avenue in 1922, before moving across the street to 56 Patton Ave. in 1929.
A mockup of the post-renovation exterior of the S&W Building. (Photo: Grant Pictures/Courtesy of Ellington Realty Group)
Asheville's was one of the most successful of the S&W chain. At the height of its popularity, the cafeteria served 3,500 people daily in the winter months, a number that could swell to 5,000 in the busy summer months — that's what cafeteria manager L.R. Bowers told Asheville Times writer Katherine Gaines in 1954.
More: Asheville's historic S&W Cafeteria building enters (another) new era
More: Visiting Our Past: Architect Ellington shaped Asheville
Two Highland bars
The S&W was purchased in 2017 by brothers Douglas and Kenneth Ellington, great-nephews of the building's late architect Douglas Ellington. "There is a great deal of meaning for us in this particular project," said Douglas Ellington.
It's no surprise then that, even after this latest refresh, the building will retain its period charm, including its wide marble stairs, soapstone walls with painted tiles, and intricate architectural details.
New this spring will be food stalls driven by restaurants selected by Irani, the details of which should be announced later this year. Those market stalls will be at street level, along with a small Highland Brewing bar.
A mock-up of the S&W Market food stall area. (Photo: Courtesy of Ellington Realty Group)
The refresh will add ample outdoor seating along the sidewalk. The building's mezzanine will also be outfitted with a bar, showcasing a literally elevated and expanded lineup of Highland's small-batch, sour and barrel-aged beer offerings.
The mezzanine level will have seating for guests to sip a pint with their food and look out over the main floor or downtown Asheville. There will also be a separate private event room with a '20s feel and room for 40 seated guests.
"This is a passion project for us," said Burns Aldridge, managing broker and principal at Ellington Realty Group. "We reached out to Highland because we wanted to highlight the best of the best that Asheville has to offer as we bring this architectural treasure back to life."
Read or Share this story: https://www.citizen-times.com/story/news/local/2019/09/10/chai-pani-curated-food-hall-highland-taproom-take-over-iconic-s-w/2265653001/


text:
Posted on Jan 20, 2014 Jun 28, 2015
Plural Protagonism Part 8: Desperados: Wanted Dead or Alive
For those new to the series, plural protagonism is based on this article I wrote for PopMatters. Plural protagonism occurs in a game when there is no individual main protagonist leading a group: the group itself becomes the hero. Each individual maintains their identity while contributing to the narrative in equal measure. Moreover, they are all controlled equally by the player and coordinate as a collective consciousness to overcome the challenges facing them. This narrative technique appears most prominently in JRPGs and this series investigates different JRPGs that feature plural protagonism in interesting ways. NOT THIS TIME!
As I've been writing this series, I've offhandedly mentioned a number of times that plural protagonism is not limited to JRPGs, nor even are JRPGs necessarily the best outlet for expressing it: the genre just happens to provide many strong examples. Eventually, I'll need to more thoroughly elucidate the terms I use but for now I think I'll continue exploring games that illustrate these concepts and define them holistically when more patterns emerge. As mentioned though, among the more concrete patterns relevant to this series is that JRPGs tend to tell stories about cooperation and use cooperative mechanics and narrative techniques that reinforce these themes (Myers, Joe. "United We Stand." The Escapist. Nov 9 2010.). However, I've found a game that illustrate many of the components of plural protagonsim without being either Japanese or an RPG.
Desperados: Wanted Dead or Alive is a real-time strategy (RTS) game by German developer, Spellbound Studios released in 2001. Spellbound would eventually go on to make Giana Sisters: Twisted Dreams, one of my favourite games in recent years, under the name Black Forest Games (Filipowich, Mark. Review: Giana Sisters: Twisted Dreams. PopMatters. Nov 8 2012.). However, their first major success came from Desperados, its less impactful sequels and another real-time tactics game, Robin Hood: The Legend of Sherwood.
Real-time tactics games like Desperados differ from most RTSs in that the player only controls a team of six characters with finite resources. Most RTSs have the player build and manage whole armies as in Age of Empires or StarCraft, or they control a small number of spellcasting heroes alongside weaker support troops as in Tryst or WarCraft. Generally speaking, the genre is built with multiplayer competition in mind; singleplayer campaigns play out as manufactured multiplayer matches with the balance skewed to give a sense of novelty. The player is responsible for a nameless, theoretically infinite supply of soldiers or a significantly higher powered hero unit traversing a map. The most important distinction between Desperados and most RTSs, however, is that in the latter the player's role is that of an offscreen general or god. The player's place within the fiction is distant: they are giving commands from outside the battle, but they can be said to exist within the game's world.
In a game of Red Alert, the player plays as a general, they aren't on site, but they issue commands as a commander does. The player has a body within the game's fiction, they just don't use it. More abstractly, in Civillization, the player plays as a civilization: they guide units as a collective cultural consciousness. They may not control a single avatar and more likely they probably don't control any of them, instead altering macro data to alter larger trends spanning in-game eons.
Desparados is different, however. Players don't occupy an offscreen commanding body but they aren't so removed as their units' oversoul nudging statistics one way or another. In Desperados, the player is—in the fashion of plural protagonism—the consciousness guiding a small, close group of distinct individuals. The player controls characters, not units. But the player has no in-fiction surrogate within the game either. The player isn't assumed to be a general offscreen as in most RTSs and they don't interact with the world through a single avatar as they would in most other games. The player is the single consciousness of six discrete individuals. The player is all of them at once, their bodies operate under the commands from a single consciousness (the player). There aren't many RTSs structured this way: the most well-known of this real-time tactics subgenre is probably the Commandos series from the late 90's, which provided much of the inspiration for Desperados's development*.
This subgenre had a bit of a bubble in the late 90's, early 00's that I suspect burst mostly because of the steep difficulty curve built into it. As creative as it is allows players to be, micromanaging multiple characters all at once in real-time can be stressful, especially when the player's fragile characters refuse to act without receiving any orders. However, the compelling feature of Desperados and similar games is the considerable experimentation required to circumvent challenges. Where most games ask the player to build a living room set from a box of particle board and dowels with the aid of an instruction book, Desperados and gives the player a tree and a set of tools.
The player controls a team of six unique characters, each with a separate kit of abilities and items. Missions play out in a straightforward "get in, get the thing, and get out" format, with emphasis placed on stealth and distraction. Members do not act without player input, even to defend themselves—not that it would matter if they did, enemies are able to kill a team member within a second of spotting them—and losing any one member of the team results in a game over. Therefore, the player must be always cognizant of where every one of there members is situated. No member can be ignored, nor is the player allowed to lose any of them.
Don't turn around…
What develops from this small party of specialists is a uniquely difficult game. The player must manage the whole party at once, maintaining awareness of unused or offscreen teammates even while finagling with others to navigate the map or disable an enemy. Therefore, team coordination is paramount: the player—again, the consciousness guiding all six separate bounty hunters—must negotiate the strengths and weaknesses of each member of the team. The awkward controls and limited UI contribute a great deal to the substance of plural protagonism.
Imagine the following situation: five enemy gunmen lounge near a small house, unaware of the heroes' presence. Three of them are huddled together in conversation, one of them is on the roof, and the last smokes a cigarette by a fence. All must be dealt with in an instant or they'll sound an alarm. Doc McCoy's gas grenade can knock out the group of three clustered in front of the building, Sanchez can hurl a rock at the man on the roof and Kate's short range derringer is quiet enough to kill the smoker by the fence without alerting attention from any neighbours. The player can queue up one action for each of them but no more. Controlling them is awkward and they must stay out of sight as they get into position, careful not to enter an outside enemy's patrol or appear suspicious to any civilian passersby.
When they execute the action in unison, the player's series of clicks, drags, hotkeys and scanning is abstracted in the game's fiction as winks, hand gestures, whistles and silent nods in a direction to set up their carefully coordinated attack. The player doesn't exist in the fiction, so their interaction with the game's interface is translated into the game as nonverbal cues between each player-character: the success or failure of the action is translated in the fiction as successful or failed coordination. The game's limitations of the mouse and keyboard are an appropriate analogue to the limitations of nonverbal communication between the protagonists. Pulling the manoeuvre off indicates an intuitive familiarity between the characters, it translates as an understanding between them. They are one in mind.
On the other hand, consider a game like League of Legends, where the interface and controls are designed to be as fluid as possible. In a MOBA like LoL, the player only manages one character, not six, and their control over their avatar is perfect. The extensive list of hotkeys and LoL's pathing AI and responsiveness are as close to flawless as can be expected: players have absolute control over their character. LoL is a professionally competitive game, errors in control are unforgivable so the game's developers have done everything possible to eliminate any gaps between intention and output. A player in LoL will always move and act the way they meant to.
Conversely, in Desperados, occasionally characters will take an inefficient (or lethal) path, they'll execute a command slowly or they'll fail to do some of the more nitpicky actions the player gives them unless they're carefully micromanaged. This happens when the player clicks too often, or issues party commands too frantically or when they haven't set themselves up properly. In other words, panicking or planning poorly makes characters behave poorly. The AI doesn't cooperate or it stacks too many commands in a row, and considering how quickly characters can be killed when detected (read: so quickly), getting the hell out of dodge is extremely ineffective.
However, this is significant for the narrative quality cooperative mechanics bring to the game. Again, the poor interface and character behaviour can be abstracted as the characters themselves panicking and acting ineffectively, misreading cues, sending the wrong ones, or being forced to act without them entirely. Overloading the fickle interface with commands is abstracted into the fiction as characters communicating poorly during a delicate operation.
Characters don't act by the player's intentions when things become frantic. To mitigate this problem, the player must use more care and patience when setting up by studying the environment more carefully and playing to each character's kit more creatively. The player must be a more controlled consciousness and must act with the group in mind. Conversely, if a character is detected, the player's survival depends on remaining calm and managing the group to either fight or escape the threat together, or by providing a distraction to create an escape route for the endangered character(s). Even a contingency plan needs to be planned and it needs to be executed cooperatively.
When the team is detected and the player starts mashing on their commands, characters behave differently, characters that were hidden may run out in the open, characters that were running may start walking. But the precision demanded in each command is effective because, in the fiction, it makes sense that one character's panic could create a communication breakdown across the whole team. One character misreading an order or planning too rashly leads to the rest of the team not knowing what to do, of the plan breaking down and everybody freaking out. The player's control over the game is a proxy for the characters communicating with one another (or their failure to do so).
Again, the player must act on behalf of the whole team and the controls themselves start to fall apart when their play is disjointed and unorganized. When coordinated control breaks down, characters misbehave. The player must adjust to the limited UI just as the characters within the narrative must adjust to nonverbal coordination. Granted, the game's poor control scheme is likely just an anachronism from a difficult niche genre that has since faded from fashion, but it nonetheless provides an effective proxy for actual human coordination that fits the game's context.
Fuuuuu–
The overall objective for every mission is straightforward. As mentioned, it can almost always be broken down to beginning at point A, navigating to point B and then reaching point C to escape the map. There may be some caveats the player must deal with (forbidden from killing, forbidden from being detected, must dispose of a certain target, etc.) but the end goal is the same. However, each mission instead breaks down into a long string of problems that can be approached or avoided by whatever methods the player can invent with their characters' unique kits. So instead of giving the player a path to follow, they instead have a starting point, an object to collect, a point of escape and a deep toolbox to figure out their own path from A to B to C. Any one character's kit is insufficient to overcome just about any challenge. Even a single guard facing an inconvenient direction can be insurmountable for any one of the cast. Yet, by applying skills from different characters in unison, the player can escape, avoid, disperse or in some cases directly confront enemy groups several times their size. Characters are only able to make any progress by combing their unique kits.
For example, most characters have a knockout skill that nonlethally and quietly downs an NPC. The problem, though, is that unconscious NPCs will awaken either by a patrolling guard or on their own over time, after which they will sound an alarm. However, one character, Sam, is able to tie up and gag unconscious enemies to keep them downed. Sam himself is not able to knock anybody out, but he's necessary to anybody who can. Furthermore, only two characters, Cooper and Sanchez, are able to lift and move inert bodies. So disposing and removing an NPC from the map with a KO requires the cooperative effort of the initiating character to knock them out, Sam to tie them up and Cooper or Sanchez to move them out of sight.
Of course, a player may choose to lean on one or two characters' kits for most levels, but skills have different value in different levels and conditions. In low visibility missions, for instance, enemies have reduced sight but improved hearing, meaning the noisier Sam, Cooper and McCoy become far less valuable than the comparatively quiet Kate, Sanchez and Mia. As conditions, enemy types and environments change from level to level, characters take on more or less prominent roles. A strategy that breaks the game in one level is useless in the next. Furthermore, because character kits are only useful in collaboration, by changing level conditions or by starting characters in different proximities to one another, the game demands different skill combinations. Ultimately, the player will naturally rely on different character combinations across the game, barely touching one character for a level only to depend on them entirely for the next. By the end of the game, the player will have needed to use every possible character combination of the team. Therefore every character has equal importance and impact.
As the title screams, Desperados is a western. At the risk of repeating myself, the western genre mythologizes the individual's conquest of nature and the Other (Filipowich, Mark. "Plural Protagonism Part 2: Wild Arms 3." bigtallwords. Apr 11 2013.). Desperados, however, defies the western's fetishization of the individual by being playable only through cooperative mechanics. Cooper's generically handsome face might be stamped on the menus and he may be the first player-character of the party, but for many missions his kit is unsuitable for anything other than a support role. There are even missions where his inconvenient positioning requires other characters to rescue him. During cutscenes that move the plot and set up the next objective Cooper often defers to others' plans or expertise and he places total faith and trust in his teammates. He might be the centre of the boxart, but in the game he's just a member of the team. Finally, even though Desperados may be a western, it eschews the rugged individualist narrative that often accompanies the genre.
Though he's off screen for most of the game, antagonist El Diablo is set up as a solitary figure emblematic of greed and lawlessness. He organizes gangs into an army and targets local townships, exploiting the disparate, unorganized municipal police forces and the cowardice of a US marshal. El Diablo organizes a tiered hierarchy to benefit from the region's disorganized structure and is only undermined by a close knit band of travelling rogues.
Desperados is also responsible for some interesting uses and abuses of western tropes. Of the six person cast, only Cooper and McCoy are white dudes. That's significant because the western is a genre that operates around the quest to chase out Otherness. Nineteenth century America saw the dispersal of natives, the enslavement of kidnapped Africans, a war with Mexico, a war with itself, exploitation of east Asian laborours and the proliferation of industrial revolution. While westerns aren't just an American phenomenon, as a form of fiction it still traditionally romanticizes the enemies of America's expansion west. As the genre re-surges in popularity every few years, notable westerns have addressed its colonial fetishization (The Proposition and Django Unchained for example) and there are quality stories told with western motifs but the tradition is nonetheless steeped in racial conflict.
It's therefore relevant that the player's characters include those who represent the very people that many westerns treat as enemies. The cast includes a Mexican bandit, a favourite villain in the genre, along with a black man and two women, one of whom is Chinese, all people whom the genre prefers to ignore. All player-characters are placed in the same complexly heroic light and treated, narratively and mechanically, as equal to the aforementioned white dudes. And while the game ambivalently pretends that the horrors of American imperialism did not occur, it also tells an egalitarian story that deliberately includes women and people of colour where most other examples of the genre either don't or only include them as things to shoot or win.
Sadly, Desperados is uncritcal of its problematic tradition even though it puts itself in a strong position to comment on or defy the material it pays homage to. Including a diverse cast in heroic roles is subversive on its own, but Desperados subverts only accidentally, not as an attempt to say anything. The cast leans pretty heavily on stereotypes ranging from tired and lazy (the demolitonist is the game's only speaking black man) to more wincing offences (Sanchez is repeatedly made a joke of for his lack of intelligence and his alcoholoism and among Kate's skills are those related to her disarming feminine wiles). One step forward, two steps back.
Which is a shame because the protagonists are deliberately painted as morally shaky, fitting better with a post-Hollywood western than with the white-hat/black-hat binary of the genre before the 1960's. Even without being a cerebral treatise of ethics, it's liberating to control a party of scoundrels. Cooper is a bounty killer, McCoy is a con man, Kate is a card cheat and Sanchez is a gang leader. They're relieving their region of a notorious criminal but they're doing it for their own good. The most noble among the team is motivated by a love of adventure, and the most ignoble by a quest for revenge, but all are seeking to share in the bounty on the antagonist's head. They want money and they're using legally dubious skills to get it. The group is only interested in taking down the crime lord, El Diablo, and keeping the peace insofar as they can profit from it. They only earn the utilitarian's begrudging support because they're eliminating a greater threat.
But Desperados never really pays off its setup: it is a closer homage to The Wild Bunch and The Magnificent Seven, films that celebrate the atmosphere and individualism of the old west, than it is to "anti-westerns" like Unforgiven or the 2007 remake of 3:10 to Yuma. In both The Wild Bunch and The Magnificent Seven, the ensemble cast is composed of aging gunslingers in the last wild years of the west. Desperados, while giving no indication that the west is being won, presents its setting as uncritically as other, fluffier westerns.
Both The Magnificent Seven and The Wild Bunch feature a motley crew of badass individualists, and while The Magnificient Seven's cast invites their last hurrah with some grace, looking forward to a quiet life on the farm caring for cattle and women, it nonetheless romanticizes the heroes' solitude, their violence and their self-interest. These characters never seem to need one another or cooperate, they're just an amalgamation of badasses waving the same flag. Compare this with the three immoral, self-centered and ethically unreliable characters of The Good, the Bad and the Ugly. Clint Eastwood's Blondie and Eli Wallach's Tuco need one another, they rely on one another and they cooperate with one another, but only out of self-interest. The more they deceive one another, the more dramatically ironic honesty bleeds into their relationship. The film focuses on both Blondie and Tuco equally and the outcome of their journey depends on their successful cooperation. The film doesn't even privilege either as the sole hero.
Eastwood's portrayal of The Man With No Name in the Dollars trilogy is iconic, so it's easy to associate that character with The Good, the Bad and the Ugly, but Wallach's boisterous Tuco is the focus for over half the film. The camera follows Tuco, the audience is made to sympathize with him when he's betrayed or when he justifies his actions or when he elaborates on his history. Blondie may often become the hero when he's on screen, but for the first half of the movie he's elsewhere while Tuco carries the plot. Despite the billing, the movie is about both of them and their shared goal.
lol, gotcha
When the two do finally team up, they're so clearly self-absorbed that they don't know how to cooperate. Tuco flagrantly bullshits his partner, only accidentally betraying his real thoughts and feelings when he's neck-deep into one of his lies, while the taciturn and opportunistic Blondie plays sides against one another to get himself closer to his destination. The rugged individualism of the two leads actively works against them most of the time, and their rigid mindset hinders them from adapting. Tuco and Blondie manipulate one another to get treasure while the civil war is tearing America apart. All the while, Lee Van Cleef's villainous Angel Eyes profiteers from the war by smuggling weapons and equipment across borders and assassinating everyone with the pocket change to spare.
The only moral characters in the film are Tuco's brother in the clergy, and two Union commanders: one dying of gangrene while Angel Eyes exploits war prisoners and an alcoholic captain watching waves of men die over a strategically important bridge. For all his moralizing, Tuco's brother has made a far easier living than Tuco, and the two union commanders have no impact on the war even while it slowly kills them. The only moral characters in the film are ineffectual while the only effective characters are immoral. Even as Blondie and Tuco evolve, the movie elegantly masks whether their true motivation is to end the killing or clear a path to their treasure.
So, to return to Desperados: Wanted Dead or Alive, the narrative sets up a group of morally dubious individualists, of a diverse makeup, who share unquestioned loyalty to one another and who are all incapable of making any progress without coordinating. Which has incredible narrative potential given the aesthetic source, but the game refuses to comment on it. It sets itself up to be more than the typical western, but it only goes half measure (to borrow an important phrase from Breaking Bad which, hell, is also a western because I say so). Unlike The Magnificent Seven each member is incapable of overcoming even the smallest obstacle—therefore defying the individualist narrative—but unlike The Good, the Bad and the Ugly, there is no subtextual interplay of their morals and their willingness to cooperate.
Even without living up to its potential, Desperados creates an interesting tension: a group acting under a single consciousness, combining their unique skills and abilities for a common good but with that common good being extremely selfish. They work together, but for personal gain. Furthermore, El Diablo's crime racket is indisputably worse for keeping the peace than Cooper stabbing a crooked deputy or Sam blowing open a bank vault. The player-characters' role as heroes is only secured by the presence of someone far worse. And their success only comes from their cohesion as a small, unified group against the more selfish El Diablo's growing criminal empire.
Desperados is often at odds with its aesthetic homage and a lot of its more interesting subversions are not pressed to the extent that a critic might like to see in a writerly text. But its skeleton is an effective illustration of plural protagonism and its narrative pays loving tribute to a form of fiction that is tied closely to solitude, independence and individualism. Furthermore, the plot follows the united group overcome the challenges posed by a criminal exploiting the disorganized social structure of the old west. Desperados: Wanted Dead or Alive displays a number of key elements of plural protagonism, even if it does not resolve some of the tensions it creates. Still, it illustrates some potential of the form in a genre of play not normally associated with cooperative mechanics.
*I actually watched a friend play Commandos when it was first released in 1998 and based on the influence it had on Desperados's mechanics I assume that most of the mechanical connections made to plural protagonism for Desperados will also apply to Commnados. The World War II setting and the inspiration it takes from adventure movies set in that time period might actually make Commandos a better illustrator of plural protagonism but my experience is second-hand and comes from many years ago so take those assumptions with a grain of salt.
This article was supported in part by community patronage. If you would like to support my future writing please consider becoming a patron.
Further reading: Rowcester, Patch. "Desperados: Wanted Dead or Alive review." Reviews Without Scores. Jun 2 2009.
Bigras, Erik. "A Simulated Retrospective Part 2: The Old West."Higher Level Gamer. Nov 12 2013.
Stone, Tim. "Perpetually Cool: White Death." Rock, Paper, Shotgun. Jul 11 2013.
Categories Close Playing, Plural ProtagonismTags Desperados: Wanted Dead or Alive, League of Legends, MOBA, RTS, The good the Bad and the Ugly, The Magnificent Seven, The Wild Bunch, videogame criticismLeave a comment
Previous Previous post: The Gamer's Dressing Room
Next Next post: Mechanical Marrow: The Strength of Simple Games


Bishop Frank J. Caggiano will celebrate an outdoor Mass on All Souls Day, Wednesday, November 2, 11 am at Gate of Heaven Cemetery, 1056, Daniels Farm Road in Trumbull.
The Mass will be offered for all the faithful departed souls in the diocese. It is open to the public and will take place rain or shine. A tent will be provided in the case of inclement weather.
"It is my hope that this special Mass will be celebrated every year and become a new tradition in the Diocese of Bridgeport," said Bishop Caggiano, noting that plans call for the Mass to a different diocesan cemetery each year.
The bishop said that at the Mass he will remember in a special way, all deceased bishops, priests, deacons, consecrated men and women and lay faithful. Traditionally Catholics visit cemeteries on All Souls Day to remember the dead and pray for their souls. The diocese sponsors nine cemeteries around Fairfield County.
For information on Catholic Cemeteries call: (203) 416-1494.


Today's post is written by Emily Somach, a recent graduate of the College of Information Studies at College Park. Emily has been working in Special Collections this year as part of an NHPRC funded grant project; you can read more about her work with EAD-XML in a previous post. As part of this project she also wrote descriptive records for collections that had not previously been described. This blog post was inspired by Collection 156. Thank you, Emily!
Looking at cute pictures of cats is not a new pastime. The advent of the internet has certainly made it a more widespread form of entertainment, but far before the World Wide Web people were finding ways to satisfy their desire for cute kitten pictures. Most people do not realize that the most popular and effective method for admiring representations of felines was once the scrapbook, a hobby that appeared in the early 19th century and that many Victorian women greatly enjoyed.
According to Collectors Weekly, "In response to the scrapbooking trend, 19th-century bookmakers designed blank albums with elaborate, tooled-leather covers, gilt paper edgings, and engraved clasps" and materials were "explicitly produced as die-cut 'scrap' for decorating homemade albums." With access to abundant scraps as well as blank-paged books, it is no wonder that the practice of scrapbooking grew so quickly in popularity. An excellent example of a scrapbook from this time period is the one seen below, from the shelves of UMBC's Special Collections. As you can tell from the photographs, the hobby was truly a serious pursuit.
This particular album from Special Collections is a very standard example of a scrapbook from the 1800s. It is chock full of playful kittens and cats of all colors and sizes, as well as some anthropomorphized felines performing human activities (such as eating cake at a table). The images vary from the cat memes and gifs with which our modern eyes are now accustomed, but they seem to fill the same niche.
Elspeth Rountree, the co-founder of the Know Your Meme website, explains, "They're the perfect distraction from our hectic lives. You don't need any explanation or prior knowledge to understand the slapstick humor that animals provide. Cat videos and images are a quick hit of pure, unfettered 'cute.' They're also entertainment in easily digestible doses." Who wouldn't smile after looking at a tangle of playful kittens chasing a ball, or popping out of a snare drum?
Ben Huh, CEO of The Cheezburger Network, elaborates on the appeal of cat pictures when he states, "Cats have very expressive facial and body expressions, so they are a perfect canvas for human emotion." This reason helps to clarify why humans used to, and still do, portray animals in clothing or place animals in human situations. After viewing scrapbooks from previous centuries, it becomes undeniable that the desire to gaze on adorable, furry felines has long been a part of human culture. The desire transcends time and space, and persists in spite of new technologies and trends.
"The Million Dollar Question: Why Does the Internet Love Cats?" Mashable, accessed August 27, 2015, http://mashable.com/2010/10/21/why-does-the-web-love-cats/.
"Scrapbooks and Paper Die-Cuts," Collector's Weekly, accessed August 27, 2015, http://www.collectorsweekly.com/paper/scrapbooks.


text:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="debug_night_mode_select" translatable="false">Select NightMode</string>
    <string name="debug_night_mode_yes" translatable="false">Nightmode: Yes</string>
    <string name="debug_night_mode_no" translatable="false">Nightmode: No</string>
    <string name="debug_night_mode_auto" translatable="false">Nightmode: Auto</string>
    <string name="debug_night_mode_follow_system" translatable="false">Nightmode: Follow system</string>

    <string name="debug_permission_location_rationale" translatable="false">Location-Permission is needed for DebugDrawer</string>

</resources>


A new Act of Parliament gives the United Kingdom's Information Commissioner's Office (ICO) the authority to impose monetary penalties for misuse of personal data in violation of section 55 of the Data Protection Act of 1998 (DPA).
For some years, the ICO has had only limited means of securing compliance with section 55 of the DPA, which makes it a criminal offense to knowingly or recklessly obtain or disclose personal data without consent. While the ICO has had the power to take action against individuals who violated section 55, the imposition of a penalty was left to the courts.
All this changed on May 9, 2008 with the enactment of the Criminal Justice and Immigration Act. The Act grants the ICO the power to impose fines directly for violations of section 55 of the DPA. This increase in the ICO's authority mirrors that of other U.K. regulators like the Financial Services Authority, which in 2001 obtained the power to impose fines on banks and other financial institutions for data security failures.
Proskauer summer associate Noemi Blasutta contributed to this post.