text:
"Bussed Out": How Cities Are Giving Thousands of Homeless People One-Way Bus Tickets to Leave Town
StoryDecember 28, 2017
Watch Full ShowNext Story
Alastair Gee
homelessness editor for The Guardian.
"Bussed out: How America moves its homeless"
A major new investigation by The Guardian examined how cities are struggling to solve the problem of homelessness throughout the year, and found many have come to rely on an old solution: a one-way ticket out of town. Relocation programs that offer homeless people free bus tickets to move elsewhere have been around for at least three decades. But as the homeless population rises for the first time since the Great Recession, relocation programs are becoming more common and are expanding to more cities. We speak with The Guardian's homelessness editor, Alastair Gee, about many people who were bused out, remained homeless and eventually returned to the city they had left.
StoryJan 21, 2022Afghanistan Faces "Tsunami of Hunger" as U.S. Sanctions Crash Country's Economy
NERMEEN SHAIKH: As much of the Midwest faces winter snowstorms and the East Coast faces freezing temperatures this week, many cities have issued Weather Emergency Alerts that allow them to place people who are homeless into emergency shelters. Well, today we talk about a new investigation by The Guardian that looks at how cities struggle to solve the problem of homelessness throughout the year, and found many have come to rely on an old solution: a one-way ticket out of town. Relocation programs that offer homeless people free bus tickets to move elsewhere have been around for at least three decades. But as the homeless population rises for the first time since the Great Recession, relocation programs are becoming more common and are expanding to more cities.
AMY GOODMAN: In its investigation, The Guardian closely examined these homeless relocation programs by compiling and analyzing a database of more than 34,000 bus trips or flights taken by homeless people out of their cities. They found the journey provided a route out of homelessness for some, but many eventually returned to the city they had left. This is 27-year-old Quinn Raber, who traveled nearly 2,300 miles over three days from San Francisco to Indianapolis by bus, only to return.
QUINN RABER: I wasn't expecting to come back to San Francisco as soon as I did, but I knew I was going to end up coming back eventually. The roughest part about being homeless is the wear and tear from the concrete and the constant walking. And it's hard to use the restroom, because a lot of businesses don't want homeless people in their restrooms and messing them up. You know, it really breaks you down. I don't know if I would ask Homeward Bound for a ticket again, just because I know that you're not really supposed ask for more than one. But if they—you know, if they would be willing to help, I'd ask them. You know?
AMY GOODMAN: For more, we're joined in San Francisco by Alastair Gee, the homelessness editor for The Guardian, the new investigation by the Outside in America team headlined "Bussed out: How America moves its homeless."
Alastair, welcome to Democracy Now! Just lay out what you found.
ALASTAIR GEE: Thank you so much for having me.
Well, we made dozens of public records requests. And our goal was to really understand what effect these bus programs were having on the homeless population in America. Cities, of course, would say that these programs are a really great way to offer people more stability. It's a way to reconnect people with family or with friends in other locations and perhaps offer them a route out of homelessness. And we found that while in some cases that was certainly what happened, for some people it certainly was a way to greater stability, for others it wasn't quite that simple. We found cases where people simply became homeless at their destination. In some instances, they even became homeless again in the city from which they had departed. So, the story really isn't quite as simple, and it really isn't quite as rosy a picture as cities would portray.
NERMEEN SHAIKH: According to a new federal study, the U.S. homeless population, as we said earlier, rose this year for the first time since the Great Recession. What do you know about why that is and what the impact of that has been?
ALASTAIR GEE: Right. That's a really good point. Well, the rise has been driven, in particular, by the trends that we're seeing on the West Coast, and that's to do with a rental affordability crisis. Everywhere from Seattle down to Los Angeles and San Diego, it's simply becoming impossible for people earning, certainly, minimum wage, but even wages above that, it's just—it's very, very difficult to afford somewhere to live. So that's what's really driving the trend. And I think the picture, though, is in the background here, and it's been a constant element of the homelessness crisis in the U.S., is a long-term federal underinvestment in affordable housing, something that was really begun, these cuts, in the Reagan era and, in the opinion of advocates, has never really been properly redressed since then.
AMY GOODMAN: This is 62-year-old Willie Romines, who took a bus from Key West to Ocala, Florida. He told The Guardian, because he accepted a free bus ticket from the shelter he was living in, he was barred from returning.
WILLIE ROMINES: It's like, "Close the door. Get out of here. We bought you a bus ticket. You can't come back." That put a hurting on me. I feel like I was swindled. Since I've been banned from the shelter, I've stayed on Smathers Beach, behind buildings, behind bushes, hedgerows. I've slept next to dumpsters and stuff like that. They tell you anything, because they want you out of here. They want all the homeless out of Key West.
AMY GOODMAN: And this is Rose Thompson, a 58-year-old woman who relocated from Florida to West Virginia. She told The Guardian she went back to Key West only three weeks after leaving.
ROSE THOMPSON: I had a seizure and my heart stopped at the soup kitchen. So I wanted to go back to West Virginia and stay with my daughter. They were staying, it's like, in a three-bedroom trailer. And then her little boy slept on the couch, where I was sleeping, so they wanted me to go to a homeless shelter. And I didn't want to stay in a homeless shelter in West Virginia, because I don't know anybody up there anymore. And from the time I left here to the time I got back, it was exactly three weeks.
AMY GOODMAN: So, if you can talk about these people, Alastair Gee, and talk about, you know, what their circumstances were? And also, how much are taxpayers paying for all of that, simply for them to return?
ALASTAIR GEE: Well, Willie was a person that one of our reporters met in Key West. And as you mentioned earlier, the Key West scheme is really unusual. Of the 15 or so programs from which we received data, Key West was the only one that had this stipulation. They essentially made you sign a kind of contract. If you went to the program and requested a bus ticket, they would ask you to essentially declare that should you return to Key West, that you wouldn't avail yourself of homeless services there on the island again. And so, what this means is that you have people like Rose, for instance, who are sleeping on beaches, sleeping outdoors, because, essentially, they have taken a ticket. It didn't work out, where they came from, and they've just ended up back in Key West.
So, in the case of Rose, for instance, she wanted to travel back to West Virginia, where she's from, to stay with her daughter. She got back there. It turns out that her daughter simply wasn't able to offer her the kind of support that she needed to find her way out of homelessness. Rose would be living in an overcrowded trailer. She was sleeping on a couch. And eventually, her daughter had to take her to a homeless shelter in West Virginia. So Rose ended up coming back to Key West, and that's where she is now. And so she simply has no shelter. She has nowhere to stay. And so, she, unfortunately, is sleeping outdoors there.
NERMEEN SHAIKH: Well, Alastair—
ALASTAIR GEE: And I think you also—oh, please, go ahead.
NERMEEN SHAIKH: No, please, go ahead.
ALASTAIR GEE: Could you remind me of your other question?
AMY GOODMAN: Oh, talking about, you know, the cost to taxpayers, since what we're talking about now is people who take these journeys, whether bus or plane, some feeling coerced, and then they end up back in the city they're in.
ALASTAIR GEE: Right, right. Well, we have figures from the city of New York, for instance, which budgets half a million dollars per year for its program. And cities around the country, while not quite—they don't have programs that are quite as large as the one in New York, I think we can safely assume that over the course of years, that cities are spending millions of dollars on these kinds of things. And it's interesting because the efficacy of these programs. While cities would say that these are a good way to help people get out of homelessness, there really isn't very much long-term research that testifies to that.
So, for instance, we spoke to the city of San Francisco and requested data from them. And they provided many, many years' data, going back to the 2000s. But, for instance, for a 5-year period, between 2010 and 2015, when the city offered thousands of people bus tickets and thousands of people left the city, the city could only provide us records showing that it had been able to follow up with only three of those people to find out if their situation at the other end had improved. And that was really—that was a similar situation across the board. While a few smaller cities did have some long-term follow-up data, mostly they did not, and the cities really had no idea what happened to the people who had taken tickets out of their cities.
NERMEEN SHAIKH: And, Alastair, what did you find out about the percentage of people who opt to leave the cities they're living in, the homeless people who opt to leave, and those who are, in some sense, coerced or forced to leave?
ALASTAIR GEE: Well, that's a really good question. And I think it's important to mention from the outset that the majority of people who are homeless in any given city are from that city. Whenever cities do their homeless population counts, they often do surveys, and they find this trend that's replicated across the board. And so, it is actually a myth that—as is common in many cities in the West, that somebody is drawn there for the services or for the weather. Most people are actually from that city. But for the percentage, the small percentage, that aren't from that city, these programs can be a good choice.
In terms of coercion, it wasn't something that we found very often. These programs generally are voluntary. And the way it works is that someone would take themselves to a ticket office, and they would make a request for a ticket. And that's how it would work. But in the case of one family in New York, the Ortiz family, we did find that they felt that they had been given no other choice than to take a ticket. Jose Ortiz, he told us that he had gone to the city's homelessness department in the summer this year. His family, his young family, had been homeless in the city of New York, and he had requested some help, just in time, really, to help him get his family back on his feet. He says that the city determined that because he had, in their words, a better housing option on the island of Puerto Rico, that he wasn't eligible for homeless services in the city of New York. And in his terms, as it was laid out to him, he was given only one choice, which was to take the plane ticket out of town.
AMY GOODMAN: Can you talk about what's happening in San Francisco right now, which is experiencing a homeless crisis, looking at the impact that the number of people bused out of the city have? And also, right here in New York City, if you can talk about one of the first places to adopt this so-called relocation program?
ALASTAIR GEE: Yeah. So, to deal with the second point first, New York, as far as we could tell, was the first major city to launch a program. Its program came about in around 1987. And it hasn't continued without pause since then. It was relaunched in its current form under Mayor Bloomberg. But it certainly has a lot of history there.
The program in San Francisco came about later, in around 2005. And officials in San Francisco told me that—in fact, a police commander told me that they were looking to the example of the city of Sacramento, and they thought, "Why can't we have a program like that?"
And so, the effect, as you mentioned, on San Francisco's homeless population has been quite dramatic. We looked at the homeless counts in San Francisco over many years, and we tried to calculate what the population in the city, the homeless population, would have been had this program not existed. And we did a very rough back-of-the-envelope calculation. And over the years, around 10-and-a-half thousand people have received bus tickets from San Francisco's Homeward Bound program. And its homeless population today, on any one night, is around 7,000 to 8,000 people. And so, of course, our calculation doesn't take into account people who might have come into San Francisco through other bus programs, for which we don't have data, or people who have been—become homeless in San Francisco while living in San Francisco. But, very roughly, we estimated that the population of San Francisco could have been 18,000 homeless people on any one night, had this program not existed. So, that's more than double the current population of around 7,000 to 8,000.
NERMEEN SHAIKH: Well, let's go to Key West, Florida. You spoke also to a former shelter official there in Key West who defended the policy of banning people who have been relocated from returning. This is Mike Tolbert.
MIKE TOLBERT: The reason for a one-way ticket, we don't want a revolving-door travel agency. If you let them come back, they're going to want another ticket. And then you got the people, everybody wanting a ticket, everybody wanting to come back. And it's just not going to work. The program will not work. The folks who take the bus ticket and complain about it, they think we owe them something. We gave you all we can give you. There is nothing else we can give you. I'm good with it.
NERMEEN SHAIKH: So that's Mike Tolbert in Key West, Florida. Alastair, can you say how representative his example is of other homeless people in Florida and even elsewhere?
ALASTAIR GEE: Well, the Key West program, they were certainly the most, I would say, forthright about that kind of thing. As I mentioned, the Key West program did seem, in some senses, to be an outlier, I would say, because other programs emphasize more that this was more of a humanitarian effort to assist people. And Key West came down quite squarely—I suppose they would say that it was both a humanitarian thing, but also they were doing a good thing by reducing the population and by giving these people one-way tickets out of town. And so, I wouldn't say that that attitude is extremely representative, but it is very, very unusual. And that's why we sent some reporters there to meet people like Willie and Rose and, certainly, to hear more about their stories.
AMY GOODMAN: And the story of the person who was flown from New York to Puerto Rico, explain that program, and particularly now, after Hurricane Maria.
ALASTAIR GEE: Right. Well, the Ortiz family, as I mentioned, they took a plane to get back in August. And as they felt, it was under duress. They really didn't want to go. It was a man, his wife, their two young children. And our reporter noticed that the parents were doing their best to put a brave face on it when they were at JFK. The kids were very, very happy to be getting on a plane. But the parents, they were really trying to mask their feelings about it. And so, they traveled back to Puerto Rico in August. We were able to stay in touch with them a little bit over Facebook. When Jose Ortiz returned to Puerto Rico, he messaged us to say that he had a job interview as a security guard, and so he was feeling optimistic about that. But once the hurricane had been through, it became hard for us to get in touch with him. And we really, despite our efforts, haven't been able to get back in touch with them since then, and so we don't know now how—how that family is doing, unfortunately.
AMY GOODMAN: Finally, taxes. That's the big news of the Christmas and holiday weekends, as President Trump has just signed this and said that this helps poor and working people. What are your concerns about taxes and homelessness?
ALASTAIR GEE: Well, all the advocates that I spoke to were hoping, maybe vainly, I think they would say, that tax reform might be a boon for affordable housing, for the construction of homes that really the most impoverished Americans could afford. And there was particular focus on the mortgage interest deduction, which is this tax break that you can take. Essentially, it goes to the wealthiest Americans, who use it to help them buy more expensive homes. That's the verdict of tax analysts, even though it's intended as a kind of middle-class tax break. And so, experts were hoping that this would be reformed and that the revenues from that would be channeled into affordable housing construction.
As it stands, the government spends twice as much on that tax break for the wealthiest Americans than it does on rental assistance, the Section 8 program, for the poorest Americans. And so, in the reconciled version of the tax bill, as it appears now, there has been a little bit of reform of that deduction, but it doesn't seem that that money—at least it hasn't been stated it outright that that money is going to be channeled into affordable housing production, which is what advocates would really like. So, I think there's a broad sense of disappointment that this was an opportunity here to really, potentially, transform the landscape, and that doesn't seem to be the case at all.
AMY GOODMAN: And the freezing weather?
ALASTAIR GEE: The freezing weather is—extreme elements are really the bane of a homeless person's life. We reported back in the summer, the burning temperatures in Arizona during that heat wave was extremely difficult for homeless people, who couldn't even walk on the asphalt because it was burning. And it's the same with the cold weather today. Unfortunately, it's very, very hard to make it on the streets if you're trying to simply stay alive because of the elements. I'm sure in Washington, D.C., as is always the case and as has been the case for decades now, we'll see people trying to warm themselves on grates, because that is, for many people, simply the only source of heat that there is. And so, I know that advocates across the West, in particular, are just looking out for that and watching for snowfall and trying to help people as best they can.
AMY GOODMAN: Absolutely astounding weather from International Falls, Minnesota, 37 degrees below zero. Erie, Pennsylvania, over five feet of snow has fallen there, and they expect more. Alastair Gee, thanks so much for being with us, homelessness editor for The Guardian. His team's latest article, based on an 18-month investigation, is headlined "Bussed out: How America moves its homeless." We'll link to it at democracynow.org.
When we come back, we'll be speaking with a journalist about her own memoir. It's called Mental: Lithium, Love, and Losing My Mind. Stay with us.
Next story from this daily show
Lithium, Love and Losing My Mind: Jaime Lowe on Her Life with Bipolar Disorder & Drugs to Manage It
NEXTLithium, Love and Losing My Mind: Jaime Lowe on Her Life with Bipolar Disorder & Drugs to Manage It
Afghanistan Faces "Tsunami of Hunger" as U.S. Sanctions Crash Country's Economy


Today there are millions of young people across the globe who are U-Reporters. U-Report is live in more than 25 countries in all regions around the world. Some countries have a dedicated country program, but anyone can become a U-Reporter through U-Report Global. It doesn't matter where you are.


IBM has unveiled a new supercomputer that is the precursor to a $208 million system the University of Illinois will switch on in 2011, hoping that the machine's massive brainpower will enable research in disciplines ranging from energy to astronomy to logistics.
IBM said the technological breakthrough is not only in its speed, but in its use of water, rather than air, to cool the system. At the end of this year, U. of I. will break ground on a $72.5 million building on its Urbana-Champaign campus. The facility will be home to the "Blue Waters" supercomputer, which will come online in 2011 and be available to university researchers.
According to the National Science Foundation, which is providing the $208 million for the system, Blue Waters will be 500 times more powerful than typical supercomputers currently in use. The system will be capable of more than a quadrillion calculations per second, said Bill Bell, a spokesman for the U. of I.'s National Center for Supercomputing Applications.
Supercomputers are widely used by government agencies, such as the Department of Energy and NASA, which need machines that can store and process huge amounts of data in order to create digital simulations of the real world, from weather patterns to the handling of nuclear weapons.
Because of their raw power, supercomputers generate a considerable amount of heat. For the last decade or so, air was enough to cool down these systems, similar to personal desktop computers that have built-in fans. But as microprocessors have gotten more powerful, air cooling has been insufficient.
Dave Turek, IBM's vice president of supercomputing, said circuits have become so dense that they reach a physical limit, similar to "folding a piece of paper over and over again."
"Now we're at a point in time where the only way to dissipate the heat is to use a material that will conduct the heat away," Turek said.
IBM built a water-cooled computer in 1995. But with the new supercomputer and the system that will be in place at U. of I., water cooling will be done "in a way that's both affordable for the end user and also leaves you with a system that still performs at a very high level," Turek said.
The new supercomputer reduces energy consumption for cooling the machine by 40 percent, according to IBM.


text:
<?php

class itaPaypal
{
	/**
	 * API username to login to Paypal
	 *
	 * @var string
	 */
	private $api_username = null;

	/**
	 * API password to login to Paypal
	 *
	 * @var string
	 */
	private $api_password = null;

	/**
	 * Determines if transactions should be made live or just to test
	 *
	 * @var bool
	 */
	private $api_test = false;

	/**
	 * Full path of the certificate file to use during authentication
	 *
	 * @var string
	 */
	private $api_certificate = null;

	/**
	 * Signature to use during authentication
	 *
	 * @var string
	 */
	private $api_signature = null;

	/**
	 * Email of a third party doing transactions for
	 *
	 * @var string
	 */
	private $api_subject = null;

	/**
	 * Holds information for the transaction
	 *
	 * @var array
	 */
	private $api_data = array(
		'country'		=> 'FR',
		'action'		=> 'Sale',
		'noshipping'	=> '1'
	);

	/**
	 * Caller object
	 *
	 * @var object
	 */
	private $api_caller = null;

	/**
	 * Error string
	 *
	 * @var string
	 */
	private $api_error_string = '';

	/**
	 * API version
	 *
	 * @var string
	 */
	private $api_version = '2.0';

	/**
	 * Type of transaction to charge or approve funds
	 *
	 * @var string
	 */
	private $api_action = 'Sale';

	/**
	 * Currency
	 *
	 * @var string
	 */
	private $currency_id = 'EUR';

	const URL_PAYPAL			= 'www.paypal.com';
	const URL_SANDBOX_PAYPAL	= 'www.sandbox.paypal.com';

	/**
	 * PaypalDirect constructor
	 *
	 * @param string $api_path - Full path to PayPal's Direct Payment API
	 */
	public function __construct($path=null)
	{
		if( !is_null($path) )
		{
			// Get rid of the many warnings from the Paypal API
			error_reporting(E_ERROR | E_WARNING | E_PARSE);
			ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $path);
			require_once 'PayPal.php';
			require_once 'PayPal/Profile/Handler/Array.php';
			require_once 'PayPal/Profile/API.php';
		}
	}

	/**
	 * Sets the API's user name
	 *
	 * @param string $username - API's username
	 */
	public function setUserName($username)
	{
		$this->api_username = $username;
	}

	/**
	 * Sets the API's password
	 *
	 * @param string $password - API's password
	 */
	public function setPassword($password)
	{
		$this->api_password = $password;
	}

	/**
	 * Make transactions live or go through the sandbox
	 *
	 */
	public function setTestMode($val=true)
	{
		$this->api_test = ($val == true) ? true : false;
	}

	/**
	 * Make transactions live
	 *
	 */
	public function setLiveMode()
	{
		$this->api_test = false;
	}

	/**
	 * Sets the path of the certificate file for authentication
	 *
	 * @param string $certificate - Full path of certificate file
	 */
	public function setCertificate($certificate)
	{
		$this->api_certificate = $certificate;
	}

	/**
	 * Sets the signature for authentification
	 *
	 * @param string $signature - API's signature
	 */
	public function setSignature($signature)
	{
		$this->api_signature = $signature;
	}

	/**
	 * Sets the email of the client doing transactions for
	 *
	 * @param string $subject - Email of client doing transactions as
	 */
	public function setSubject($subject)
	{
		$this->api_subject = $subject;
	}

	/**
	 * Sets the total amount of transaction
	 *
	 * @param string $total - Total amount of the transaction
	 */
	public function setTransactionTotal($total)
	{
		$this->api_data['total'] = $total;
	}

	/**
	 * Sets the description of the transaction
	 *
	 * @param string $description - Transaction's description
	 */
	public function setTransactionDescription($description)
	{
		$this->api_data['description'] = $description;
	}

	/**
	 * Sets a custom string for the transaction
	 *
	 * @param string $custom - Custom string for the transaction
	 */
	public function setTransactionCustom($custom)
	{
		$this->api_data['custom'] = $custom;
	}

	/**
	 * Sets the billing first name
	 *
	 * @param string $firstname - Billing first name
	 */
	public function setBillingFirstName($firstname)
	{
		$this->api_data['firstname'] = $firstname;
	}

	/**
	 * Gets the billing first name
	 *
	 * @return string
	 */
	public function getBillingFirstName()
	{
		return $this->api_data['firstname'];
	}

	/**
	 * Sets the billing last name
	 *
	 * @param string $lastname - Billing last name
	 */
	public function setBillingLastName($lastname)
	{
		$this->api_data['lastname'] = $lastname;
	}

	/**
	 * Gets the billing last name
	 *
	 * @return string
	 */
	public function getBillingLastName()
	{
		return $this->getData('lastname');
	}

	/**
	 * Sets the billing address 1
	 *
	 * @param string $street - Billing address 1
	 */
	public function setBillingStreet1($street)
	{
		$this->api_data['street1'] = $street;
	}

	/**
	 * Gets the billing address 1
	 *
	 * @return string
	 */
	public function getBillingStreet1()
	{
		return $this->getData('street1');
	}

	/**
	 * Sets the billing address 2
	 *
	 * @param string $street - Billing address 2
	 */
	public function setBillingStreet2($street)
	{
		$this->api_data['street2'] = $street;
	}

	/**
	 * Gets the billing address 2
	 *
	 * @return string
	 */
	public function getBillingStreet2()
	{
		return $this->getData('street2');
	}

	/**
	 * Sets the billing city
	 *
	 * @param string $city - Billing city
	 */
	public function setBillingCity($city)
	{
		$this->api_data['city'] = $city;
	}

	/**
	 * Gets the billing city
	 *
	 * @return string
	 */
	public function getBillingCity()
	{
		return $this->getData('city');
	}

	/**
	 * Sets the billing state
	 *
	 * @param string $state - Billing state
	 */
	public function setBillingState($state)
	{
		$this->api_data['state'] = $state;
	}

	/**
	 * Gets the billing state
	 *
	 * @return string
	 */
	public function getBillingState()
	{
		return $this->getData('state');
	}

	/**
	 * Sets the billing zip code
	 *
	 * @param string $zip - Billing zip code
	 */
	public function setBillingZip($zip)
	{
		$this->api_data['zip'] = $zip;
	}

	/**
	 * Gets the billing zip code
	 *
	 * @return string
	 */
	public function getBillingZip()
	{
		return $this->getData('zip');
	}

	/**
	 * Sets the billing country
	 *
	 * @param string $country - Billing two-letter country
	 */
	public function setBillingCountry($country)
	{
		$this->api_data['country'] = $country;
	}

	/**
	 * Gets the billing country
	 *
	 * @return string
	 */
	public function getBillingCountry()
	{
		return $this->getData('country');
	}

	/**
	 * Sets the billing email
	 *
	 * @param string $email - Billing email
	 */
	public function setBillingEmail($email)
	{
		$this->api_data['email'] = $email;
	}

	/**
	 * Gets the billing email
	 *
	 * @return string
	 */
	public function getBillingEmail()
	{
		return $this->getData('email');
	}

	/**
	 * Sets the credit card type
	 *
	 * @param string $cctype - Credit card number type (Visa, MasterCard, Discover, Amex)
	 */
	public function setCardType($cctype)
	{
		$this->api_data['cctype'] = $cctype;
	}

	/**
	 * Sets the credit card number to charge
	 *
	 * @param string $ccnumber - Credit card number to charge
	 */
	public function setCardNumber($ccnumber)
	{
		$this->api_data['ccnumber'] = $ccnumber;
	}

	/**
	 * Sets the credit card expiration month
	 *
	 * @param string $ccexpmonth - Credit card expiration month
	 */
	public function setCardExpirationMonth($ccexpmonth)
	{
		$this->api_data['ccexpmonth'] = $ccexpmonth;
	}

	/**
	 * Sets the credit card expiration year
	 *
	 * @param string $ccexpyear - Credit card expiration year
	 */
	public function setCardExpirationYear($ccexpyear)
	{
		$this->api_data['ccexpyear'] = $ccexpyear;
	}

	/**
	 * Sets the credit card verification number
	 *
	 * @param string $ccvnumber - Credit card verification number
	 */
	public function setCardVerificationNumber($ccvnumber)
	{
		$this->api_data['ccvnumber'] = $ccvnumber;
	}

	/**
	 * Sets the remote IP of the buyer (For Direct payment)
	 *
	 * @param string $ccvnumber - Remote IP of buyer
	 */
	public function setBuyerIP($ip)
	{
		$this->api_data['ip'] = $ip;
	}

	/**
	 * Turns on shipping (For Express Checkout)
	 *
	 */
	public function setShippingOn()
	{
		$this->api_data['noshipping'] = '0';
	}

	/**
	 * Turns off shipping (For Express Checkout)
	 *
	 */
	public function setShippingOff()
	{
		$this->api_data['noshipping'] = '1';
	}

	/**
	 * Sets cancel URL (For Express Checkout)
	 *
	 * @param string $url - Absolute URL if user cancels payment
	 */
	public function setCancelURL($url)
	{
		$this->api_data['cancelurl'] = $url;
	}

	/**
	 * Sets return URL (For Express Checkout)
	 *
	 * @param string $url - Absolute URL to return after succesful payment
	 */
	public function setReturnURL($url)
	{
		$this->api_data['returnurl'] = $url;
	}

	/**
	 * Sets the API version
	 *
	 * @param string $version - API version
	 */
	public function setApiVersion($version)
	{
		$this->api_version = $version;
	}

	/**
	 * Gets the last error
	 *
	 * @return string
	 */
	public function getErrorString()
	{
		return $this->api_error_string;
	}

	/**
	 * Sets transactions to charge funds
	 */
	private function setActionSale()
	{
		$this->api_action = 'Sale';
	}

	/**
	 * Sets transactions to authorize funds
	 */
	private function setActionAuthorize()
	{
		$this->api_action = 'Authorize';
	}

	/**
	 * Gets the data from the request or null if not set
	 *
	 * @param string $field - Hash field to look for
	 * @return string
	 */
	private function getData($field)
	{
		if ( isset($this->api_data[$field]) )
		{
			return $this->api_data[$field];
		}
		else
		{
			return null;
		}
	}

	/**
	 * Get an instance of a caller
	 *
	 * @return bool
	 */
	private function getCaller()
	{
		$handler =& ProfileHandler_Array::getInstance(
		array(	'username'        => $this->api_username,
				'certificateFile' => $this->api_certificate,
				'signature'       => $this->api_signature,
				'subject'         => $this->api_subject,
				'environment'     => (($this->api_test)?'Sandbox':'Live')
		)
		);
		$profile =& APIProfile::getInstance($this->api_username, $handler);
		$profile->setAPIPassword($this->api_password);
		$this->api_caller =& PayPal::getCallerServices($profile);

		if ( PayPal::isError($this->api_caller) )
		{
			$this->api_error_string = $this->api_caller->getMessage();
			return false;
		}
		return true;
	}

	/**
	 * Execute a remote and final call
	 *
	 * @return bool
	 */
	private function execute($request, $type)
	{
		$details =& PayPal::getType('Do' . $type . 'RequestType');
		$details->setVersion($this->api_version);
		$func = 'setDo' . $type . 'RequestDetails';
		$details->$func($request);
		$func = 'Do' . $type;
		$final_req = $this->api_caller->$func($details);

		if ( $final_req->Ack == 'Success' )
		{
			return true;
		}
		else if ( is_array($final_req->Errors) )
		{
			foreach ( $final_req->Errors as $error )
			{
				$this->api_error_string .= $error->LongMessage . ' ';
			}
		}
		else
		{
			$this->api_error_string = $final_req->Errors->LongMessage;
		}
		return false;
	}

	/**
	 * Uses the Direct Paypal API to charge for funds
	 *
	 * @return bool
	 */
	public function chargeDirect()
	{
		if( !$this->getCaller() )
		{
			return false;
		}

		// Transaction information
		$BasicAmountType =& PayPal::getType('BasicAmountType');
		$BasicAmountType->setattr('currencyID', $this->currency_id);
		$BasicAmountType->setval($this->getData('total'));

		$PaymentDetailsType =& PayPal::getType('PaymentDetailsType');
		$PaymentDetailsType->setOrderTotal($BasicAmountType);
		$PaymentDetailsType->setOrderDescription($this->getData('description'));
		$PaymentDetailsType->setCustom($this->getData('custom'));

		// Billing information
		$PersonNameType =& PayPal::getType('PersonNameType');
		$PersonNameType->setFirstName($this->getBillingFirstName());
		$PersonNameType->setLastName($this->getBillingLastName());

		$AddressType =& PayPal::getType('AddressType');
		$AddressType->setStreet1($this->getBillingStreet1());
		$AddressType->setStreet2($this->getBillingStreet2());
		$AddressType->setCityName($this->getBillingCity());
		$AddressType->setStateOrProvince($this->getBillingState());
		$AddressType->setPostalCode($this->getBillingZip());
		$AddressType->setCountry($this->getBillingCountry());
		$PayerInfoType =& PayPal::getType('PayerInfoType');
		$PayerInfoType->setPayerName($PersonNameType);
		$PayerInfoType->setAddress($AddressType);

		// Credit card information
		$CreditCardDetailsType =& PayPal::getType('CreditCardDetailsType');
		$CreditCardDetailsType->setCardOwner($PayerInfoType);
		$CreditCardDetailsType->setCreditCardType($this->getData('cctype'));
		$CreditCardDetailsType->setCreditCardNumber($this->getData('ccnumber'));
		$CreditCardDetailsType->setExpMonth($this->getData('ccexpmonth'));
		$CreditCardDetailsType->setExpYear($this->getData('ccexpyear'));
		$CreditCardDetailsType->setCVV2($this->getData('ccvnumber'));

		// Create request
		$request =& PayPal::getType('DoDirectPaymentRequestDetailsType');
		$request->setPaymentAction($this->api_action);
		$request->setPaymentDetails($PaymentDetailsType);
		$request->setCreditCard($CreditCardDetailsType);
		$request->setIPAddress($this->getData('ip'));
		return $this->execute($request, 'DirectPayment');
	}

	/**
	 * Gets a Paypal destination URL to charge for funds
	 *
	 * @return string - Returns URL to redirect to or false if an error occurs
	 */
	public function GetExpressUrl()
	{
		if( !$this->getCaller() )
		{
			return false;
		}

		// Transaction information
		$BasicAmountType =& PayPal::getType('BasicAmountType');
		$BasicAmountType->setattr('currencyID', $this->currency_id);
		$BasicAmountType->setval($this->getData('total'));

		$ExpressCheckoutType =& PayPal::getType('SetExpressCheckoutRequestDetailsType');
		$ExpressCheckoutType->setNoShipping($this->getData('noshipping'));
		$ExpressCheckoutType->setCancelURL($this->getData('cancelurl'));
		$ExpressCheckoutType->setReturnURL($this->getData('returnurl'));
		$ExpressCheckoutType->setOrderTotal($BasicAmountType);

		$ExpressCheckoutRequestType =& PayPal::getType('SetExpressCheckoutRequestType');
		$ExpressCheckoutRequestType->setVersion($this->api_version);
		$ExpressCheckoutRequestType->setSetExpressCheckoutRequestDetails($ExpressCheckoutType);

		$request = $this->api_caller->SetExpressCheckout($ExpressCheckoutRequestType);

		if ( $request->Ack == 'Success' )
		{
			$host = self::URL_PAYPAL;
			if( $this->api_test )
			{
				$host = self::URL_SANDBOX_PAYPAL;
			}
			return 'https://' . $host . '/cgi-bin/webscr?cmd=_express-checkout&token=' . $request->Token;
		}
		else
		{
			if ( is_array($request->Errors) )
			{
				foreach ( $request->Errors as $error )
				{
					$this->api_error_string .= $error->LongMessage . ' ';
				}
			}
			else
			{
				$this->api_error_string = PEAR::isError($request) ? $request->getMessage()
				                                                  : $request->Errors->LongMessage;
			}
			return false;
		}
	}

	/**
	 * Charges funds from Paypal from the given token
	 *
	 * @param string $token - Token given by Paypal on a GET request on the return URL
	 * @return bool
	 */
	public function chargeExpressCheckout($token)
	{
		if( !$this->getCaller() )
		{
			return false;
		}

		$ExpressCheckoutDetailsRequestType =& PayPal::getType('GetExpressCheckoutDetailsRequestType');
		$ExpressCheckoutDetailsRequestType->setToken($token);

		// Execute the call
		$r = $this->api_caller->GetExpressCheckoutDetails($ExpressCheckoutDetailsRequestType);
		if ( $r->Ack == 'Success' )
		{
			$details = $r->getGetExpressCheckoutDetailsResponseDetails();

			$buyer_info = $details->getPayerInfo();
			$buyer_name = $buyer_info->getPayerName();
			$buyer_address = $buyer_info->getAddress();

			$this->setBillingFirstName($buyer_name->FirstName);
			$this->setBillingLastName($buyer_name->LastName);
			$this->setBillingStreet1($buyer_address->Street1);
			$this->setBillingStreet2($buyer_address->Street2);
			$this->setBillingCity($buyer_address->CityName);
			$this->setBillingState($buyer_address->StateOrProvince);
			$this->setBillingZip($buyer_address->PostalCode);
			$this->setBillingCountry($buyer_address->Country);
			$this->setBillingEmail($buyer_info->Payer);

			$BasicAmountType =& PayPal::getType('BasicAmountType');
			$BasicAmountType->setattr('currencyID', $this->currency_id);
			$BasicAmountType->setval($this->getData('total'));

			$AddressType =& PayPal::getType('AddressType');
			$AddressType->setStreet1($this->getBillingStreet1());
			$AddressType->setStreet2($this->getBillingStreet2());
			$AddressType->setCityName($this->getBillingCity());
			$AddressType->setStateOrProvince($this->getBillingState());
			$AddressType->setPostalCode($this->getBillingZip());
			$AddressType->setCountry($this->getBillingCountry());

			$PaymentDetailsType =& PayPal::getType('PaymentDetailsType');
			$PaymentDetailsType->setOrderTotal($BasicAmountType);
			$PaymentDetailsType->setOrderDescription($this->getData('description'));
			$PaymentDetailsType->setCustom($this->getData('custom'));
			$PaymentDetailsType->setShipToAddress($AddressType);

			$request =& PayPal::getType('DoExpressCheckoutPaymentRequestDetailsType');
			$request->setToken($token);
			$request->setPayerID($buyer_info->PayerID);
			$request->setPaymentAction($this->api_action);
			$request->setPaymentDetails($PaymentDetailsType);
			return $this->execute($request, 'ExpressCheckoutPayment');
		}
		else
		{
			$this->api_error_string = $request->getMessage();
			return false;
		}
	}

	public function getFormStandardPayment( array $values )
	{
		$form = new PaypalForm($values);
		return $form;
	}
}

redpajama_set_name: RedPajamaGithub


text:
Q: How can I use webcomponents in a Vue application using Typescript I am trying to use a web component in my Vue project. However, it is not properly loading. I can see the element in my DOM, but just as an empty tag, not the button it should be.
First error I got was the there was no module declared, so I declared one based on suggestion of the error message in tsconst.d.ts:
declare module 'wc-button';

Now, I get a warning in the console from Vue that it is an unknown custom element and if I forget to register it under components. But, since it is a webcomponent, I don't believe that it should be. I can make the message go away by adding the web component to vue.config.ignoredElements, but that is just hiding the message. If I switch my code to javascript, it works fine. So I expect I need to properly declare a module for it, but I am unsure how to proceed. Does anyone have examples or a repo which I could compare to?
My component:
<template>
  <div>
    <button class="btn btn-primary" @click="onClick()">
      Click!
    </button>
    <wc-button type="primary" @click="onClick()">
      Click
    </wc-button>
  </div>
</template>

<script lang="ts">
import Vue from 'vue';
import wcButton from 'wc-button';

export default Vue.extend({
    data: () => ({
        buttonOutput: 'I was clicked!',
    }),
    methods: {
        onClick(): string {
            return this.buttonOutput;
        },
    },
});
</script>

A: Found a workaround by importing the web component in my app.js from where Vue app is started. It is a bit hacky, but this allows me to avoid all the typescript issues that were blocking me.

redpajama_set_name: RedPajamaStackExchange


This detached, single-storey barn conversion, provides idyllic accommodation for families, friends and couples alike.
Kitchen/dining area: With electric cooker, microwave, fridge/freezer and dishwasher.
Bathroom: With digital shower over P-shaped bath, and toilet.
Enclosed lawned garden with sitting-out area and garden furniture. Private parking for 2 cars.
All properties: Gas central heating, electricity, bed linen, towels and Wi-Fi included. Initial logs for wood burner included. Travel cot and highchair. No smoking. Please note: Couples and family bookings only.
White House Farm Holiday Cottages, (refs UKC150, UKC151 and UKC1627), lie just 2 miles from the seaside village of Mundesley, with its wonderful quiet, sandy beach and less than 15 miles from the Norfolk Broads. Nestled in the stunning countryside, in an Area of Outstanding Natural Beauty, these cottages have been comfortably furnished and equipped to provide home from home holiday accommodation, making a perfect choice at any time of year. They stand in the owner's grounds, boasting their own privacy and enclosed gardens (the garden of Flint Barn, UKC1627, is fenced by stock wire to contain dogs). There is excellent walking and cycling opportunities, direct from the door. A network of quiet lanes surround the area and there are many footpaths and trails nearby. Knapton is a quiet, rural village, just a few minutes' drive from the sandy beaches of Mundesley, Trimmingham and Sidestrand. The delightful beach at Trimingham is just 6 minutes drive away with the spectacular beaches at Holkham and Wells-next-the Sea also nearby. The charming coastal town of Mundesley is just a short drive with Happisburgh and Sheringham also within easy reach. A visit to the quintessential seaside town of Cromer is a must do, topped off with fish and chips from the legendary Mary Janes! The town is 7 miles away, with a sandy beach, promenade, pier, RNLI working lifeboat station, museum, zoo park, golf course and the town centre with shops, cafés and restaurants. Award-winning Gunton Arms, set in a one thousand acre deer park and the locally acclaimed Vernon Arms are both a short drive as are day boats on the Norfolk Broads. Dog walkers will welcome the close proximity of Bacton Woods, 280 acres of woodland just 15 minutes by car, with its three waymarked walks to leisurely seek out the 200-year-old trees. The bustling market town of North Walsham is 4 miles and offers shops, supermarkets and a train station with a service to Norwich city. The cathedral city of Norwich is 19 miles and offers excellent shops with two indoor shopping malls, theatre, castle museum, cathedral, market square, cafés and fine restaurants. Wroxham, the capital of the Norfolk Broads is 14 miles for daily boat hire and river trips, waterside restaurants, cafés and shops. There is a village shop and pub in Trunch, 1 mile away and two pubs in Mundesley, approximately 2 miles away. Shop and pub serving food 1 mile.
The Granary (UKC150), Wallages Cottage (UKC151) and Flint Barn (UKC1627) can be booked together to accommodate up to 14 guests.
Lovely well equipped cottage with plenty of enclosed space for the dogs. Denise was very helpful when I had my accident.
Great accommodation, ideal location close to a number of seaside resorts, beaches ideal for walking the dog and would also be ideal for little ones looking to build sandcastles.
Flint Barn was a home from home .... clean, spacious, very well equipped & in a great location. Very dog friendly, especially the safe & enclosed garden. We thoroughly enjoyed our holiday there & would definitely recommend to friends and family.
Absolutely stunning cottage that had everything we could possibly need. Safe garden for the dogs, which was lovely to sit in and enjoy the sunshine as well. Peaceful location which was what we wanted, but within 5 minutes drive of Mundesley, and easy access to the north Norfolk coast. We would definitely book again if we return to the area, a lovely part of Norfolk. Many thanks to Denise for her warm welcome.


text:
Home › News › Appointments
Thinx names digital media expert Maria Molland Selby CEO
Underwear company Thinx announced on Friday the appointment of Maria Molland Selby as Chief Executive Officer, effective July 31, 2017.
Selby brings 21 years of experience in e-commerce development and management, digital media and technology to Thinx. She graduated from Northwestern University with a Bachelor's Degree in Economics, earned her MBA at Harvard Business School and held leadership roles at Thomson Reuters, Dow Jones, Yahoo!, Walt Disney Internet Group, Fab.com and Splacer.
"In just a few years, I've watched Thinx and Icon change the conversation around menstruation and incontinence, and empower people from all walks of life with their revolutionary products and ideas," said Selby. "I'm tremendously excited to join such a talented group of people as we continue to drive global education and expand resources around menstruation and incontinence."
Named one of Fast Company's Most Innovative Companies of 2017, Thinx produces period-proof underwear that breaks taboos about menstruation and reproductive health. Founded by Antonia Saint Dunbar, Miki Agrawal and Radha Agrawal in 2011, the New York City-based feminine hygiene company grabbed attention in Manhattan and Brooklyn for its witty subway advertisements that celebrated female beauty.
In addition to being honored by Fast Company, Thinx was recognized by Entrepreneur Magazine as one of the 100 Most Brilliant Companies of 2016, and by Time Magazine as one of the Top 25 Inventions of 2015.
As CEO, Selby will focus on building the company's global presence, driving its omni-channel strategy, and leading the implementation of new company policies and processes. In addition, Selby will be tasked with elevating Thinx and the patented Icon underwear as forces in the menstruation and incontinence industries.
Ted Baker hires chief people officer
Struggling Pandora to relaunch brand at LA event
W Magazine sold to Future Media Group; Stefano Tonchi exits
'Merch by Amazon' t-shirt business increasing orders from Disney to Dr. Seuss
Victoria's Secret says TV no longer 'right fit' for lingerie show
Twitter shares jump, ascribes growth to fight against abuse
Vying for Louis Vuitton: China's e-commerce rivals seek luxury stranglehold
Lacoste and Disney blow out the birthday candles together
Nordstrom appoints Edmond Mesrobian as CTO
Asics teams up with Disney on Incredibles 2 workouts and product

redpajama_set_name: RedPajamaCommonCrawl


text:
Guardian Express
WA lagging behind in Human Papillomavirus vaccination rates
March 22nd, 2018, 10:30AM Written by Denise S. Cahill Guardian Express
Stock image.
WA is below the national average when it comes to vaccinating girls against the Human Papillomavirus (HPV) that can cause cancer.
Figures released by the Australian Institute of Health and Welfare today show that in 2015-16, 79.1 per cent of WA girls aged 15 and 77.9 per cent of boys the same age were fully immunised against HPV, compared to 80.1 per cent and 74.1 per cent nationally.
The National HPV Vaccination Program has been immunising adolescent girls since 2007 and was extended to boys in 2013.
Cancer Council WA Cancer Smart manager Melissa Ledger said the HPV vaccination was free and protected kids against the HPV virus that could lead to various cancers.
"This year a new vaccine named Gardasil 9 has been introduced and is expected to provide protection from seven types of cancer-causing HPV responsible for over 90 per cent of cervical cancers, as well as a proportion of vulval and vaginal cancers in women; anal cancers, and head and neck cancers in men and women; and penile cancer in men and two types of HPV that cause genital warts," Ms Ledger said.
"The free Gardasil 9 vaccine is delivered to Year 8 girls and boys by the Department of Health's school immunisation program in two doses, rather than the previous three, making it even easier to participate."
The greatest improvement in HPV immunisation rates was in girls in the northern suburbs with the participation rate rising from 70.2 per cent in 2014–15 to 77.2 per cent.
MORE: Perth to host world first trials into coeliac disease vaccine
MORE: Osborne Park: police seek driver after Mitchell Freeway pursuit crash
MORE: Leda: man and woman charged over burglary of 86-year-old man's home
MORE: WA Police officer stood down following CCC investigation into Fremantle tasering incident
WIN a double pass to A Beautiful Day in the Neighborhood


text:
Executive Speeches
Thomas B. Fargo
Mike Petters
Victoria D. Harker
Anastasia Kelly
Paul D. Miller
Tom Schievelbein
John K. Welch
Stephen R. Wilson
Shape of Freedom
OpenLine and Contact Information
Openline Web Reporting
California Transparency in Supply Chains Act of 2010 and U.K. Modern Slavery Act of 2015
Anti-Corruption Program
Huntington Ingalls Industries Scholarship Fund
Recruitment Events/Career Fairs
Valuing Diversity & Inclusion
Recognition For Diversity & Inclusion
Diversity & Inclusion in Action
Diversity & Inclusion Archives
Employee News & Information
HII Scholarship Fund
HII Beneplace
Employee Discounts Vendor Guidelines
Employee Discounts Vendor Application Form
Employee Discounts: Huntington Ingalls Industries Disclaimer
Employee Information Phone Line
Press Kits and Fact Sheets
About Huntington Ingalls
Explore the HII network
Ingalls Shipbuilding
Newport News Shipbuilding
UniversalPegasus International
Home | Newsroom | Executive Speeches | Martin Luther King Jr. Day
By Jennifer Boykin, president, Newport News Shipbuilding (as prepared); speeches delivered Jan. 12 and Jan. 16
Newport News Shipbuilding (NNS) People
I am so happy we are together this morning celebrating Doctor Martin Luther King Jr.—the most visible spokesperson and leader in the civil rights movement. He was a lifelong learner, an accomplished pastor and an award-winning author.
Photo by John Whalen/HII
But when I think of Dr. King, what stands out most to me is his passion. His passion was—and continues to be—contagious. It is impossible to read anything Martin Luther King Jr. wrote or said and NOT be inspired.
I defy anyone to try.
As you may know, I am a strengths-based leader, and one of my top five strengths is Individualization. According to the book Strengthsfinder 2.0, "people who are especially talented with the Individualization theme are intrigued with the unique qualities of each person. They have a gift for figuring out how people who are different can work together productively."
When I listen to the words of Dr. King…I become even more confident that our focus on shipbuilders and leveraging our diverse backgrounds and viewpoints to become a better organization is the ONLY right thing to do.
Think about this: Where would we be today if it weren't for the many nationalities, cultures and ethnicities that make us the United States? The success we enjoy doesn't happen in places where people are isolated from one another based on their differences. Everything great and iconic about our country results from the understanding of and the respect for our differences.
If we do not foster a work environment in which everyone feels they have equal opportunity to be heard, to contribute, and to develop, our company will lose out. We must embrace and leverage our diverse backgrounds and ideas. When we do this, we build a future we can all believe in and feel part of.
I believe we are on a promising path to a new culture and a different shipyard. I know there are issues that need to be addressed. I am listening to you and I do hear you – I hear both the excitement and the disappointments.
I also want everyone to know that change is in the works.
We have brought together diverse groups of shipbuilders to tackle quality of life issues such as parking and creating spaces across the shipyard for employees to meet and eat. But just as important as WHO participates is HOW we find the solutions. We are finding them by flexing new muscles and practicing new skills. Skills of agility.
We can probably all agree that studying something for a long time doesn't necessarily mean that it is completely right from day one. I want us to become agile. Let's try a new solution quickly, learn from it, and make it better. And then do it again. And then again so that our shipyard is always getting better because we are asking for, and listening to, new and different ideas.
Dr. King said, "Faith is taking the first step, even when you can't see the whole staircase." In a moment, fellow shipbuilders will tell you a story about our future plans, but I want to emphasize that this is just the beginning. Participation by each and every one of you will ensure that Newport News Shipbuilding stays strong for the next generation of shipbuilders. Together, we will continue to build on our 132 years of success.
We are the heart of Hampton Roads and a bedrock for our community. When you think about the ships we build and repair, we are a rock for our nation and a rock for the world. But we need to make sure that our rock is secure. It won't be if we do not continue to evolve. We all have a role to play and each of us does make a difference.
As we remember Dr. King's fight for justice and inclusion, please consider what else you can do to ensure that all of your co-workers are participating…and that everyone feels like they have been heard. Because this is what will make us a better, stronger shipyard.
In December, our senior leadership team spent an afternoon together talking about our vision of the future and what is important to us. We wanted to describe that vision with more than just typed words. We wanted to communicate what it looked like and what if felt like…And even to communicate our soundtrack of tomorrow. We knew this would require skills we do not possess.
So, back to my strength of Individualization. Two of the many shipbuilders who are taking an active role in our shipyard's future are Renae Myles and Rochelle Robbins. I have worked with Renae and Rochelle over the years and have learned of their unique qualities and strengths. So I invited them to join us for that afternoon…to listen to our descriptions of what we wanted to become, and of what we wanted to change.
I knew that having them as part of this team would help us work together, productively. At this time, I'd like to ask Renae to come up and talk about her interpretation of our vision for the future. And after Renae speaks, Rochelle will share her interpretation via video. Thank you.
Duane Bourne
Manager of Media Relations
Duane.A.Bourne@hii-co.com
Huntington Ingalls Industries is America's largest military shipbuilding company and a provider of professional services to partners in government and industry. For more than a century, HII's Newport News and Ingalls shipbuilding divisions in Virginia and Mississippi have built more ships in more ship classes than any other U.S. naval shipbuilder. HII's Technical Solutions division supports national security missions around the globe with unmanned systems, defense and federal solutions, and nuclear and environmental services. Headquartered in Newport News, Virginia, HII employs more than 42,000 people operating both domestically and internationally. For more information, visit:
HII on the web: www.huntingtoningalls.com
HII on Facebook: www.facebook.com/HuntingtonIngallsIndustries
HII on Twitter: twitter.com/hiindustries
HII on YouTube: www.youtube.com/HuntingtonIngalls
HII on Instagram: www.instagram.com/huntingtoningalls
Print Friendly Format
HII Corporate
Newport News Energy (NNE)
Newport News Industrial (NNI)
Newport News Nuclear (NNN)
Newport News Shipbuilding (NNS)
Stoller Newport News Nuclear (SN3)
The S.M. Stoller Corporation
Undersea Solutions Group
Family Health Centers
HII Australia
Aircraft Carrier Inactivation
Aircraft Carrier Services
DDG - Aegis 51 Class Destroyers
DDG 1000 - Zumwalt Class Destroyers
Ford-Class Aircraft Carriers
LHAs - Multi-Purpose Amphibious Assault Ships
LPDs - Amphibious Transport Docks
NSCs - U.S. Coast Guard National Security Cutters
RCOH - Refueling Complex Overhaul
Submarine Services
Virginia-class Submarines
Columbia Class Submarines
View All News Releases
SMS Alerts
Facebook (Huntington Ingalls)
Facebook (Huntington Ingalls Careers)
Montana (SSN 794) Christening Remarks
Apprentice School Graduation Remarks
John F. Kennedy Christening Remarks
HII Web Privacy Statement
Conflict Minerals Policy and Disclosure
Huntington Ingalls Industries, Inc. United Kingdom Tax
EEO Poster Supplement
Pay Transparency Policy Statement
Copyright © 2021, Huntington Ingalls Industries, Inc.


In our opinion, these are the reasons Match is the best online destination for international dating.The world can seem like a pretty big place, especially if you're looking for more than a casual relationship.Movies and TV shows tend to make the girl- or boy-next-door scenario seem like the ideal way to find love, but what if your soul mate happens to live across the world?If you're only looking in your area, you're never going to find them. Best Overall | For Marriage | For Professionals | For Seniors Let's start with dessert first, so to speak, and tell you more about the overall top international dating websites.Online Dutch dating has never been easier or more rewarding, since the launch of e Harmony, which scientificly matches compatible Dutch singles looking for quality relationships that last.If you're having difficulties finding that special someone in the Netherlands, why leave love up to chance?A dating site is a place where you can forget about your daily routine and chat at any time of the day.
At e Harmony, we believe everyone deserves true, long-lasting love - whomever they are and wherever they are.Take our personality test, and find out what true compatibility means. The love of your life may be closer than you think.Search for singles in Hamburg, Frankfurt or Munich, and start dating in Germany.Our dating site is the right place for you to start with!:-)We will help you create an exciting, attractive and unique Inter Friendship profile.


What is another word for teeth?
Plural of the noun tooth; as, clean teeth never decay.
toxicology, 'dental, NIHB, human, mama.
Mouths, TOES, threads, strengths, clutches, jaws, Feet, teethers, breathes, effectiveness, efficient, sights, Dentures, EARS, legs, weight, Weights, weighing, CLAWS, Lips, Dentists, wheels, Efforts, Yourself, breathe, Whites, efficiencies, appliances, regrets, ambitions, words, shapes, Sympathies, teens, corridors, ways, crocs, poids, Capabilities, authority, smiles, taking, condolences, halls, strong, Traps, looks, ft, tines, means, napkins, dents, wise, Diseases, merits, Capacities, avenues, munchies, force, forces, Faces, blond, smart, powers, pleas, take, peaks.
top, edge, water, day, mouth.
I have white teeth, and fairly even.
This did me good: for it woke the fighting - man in me, and I set my teeth.
mouth, Rima Oris, oral cavity, oral fissure.


Though we often forget it in favor of its younger and more popular sibling (1984), 1983 was a banner year for American culture: It is the birth year of the first McNugget, the D.A.R.E. program, and the first modern incarnation of the Internet. So if you're turning 30 this year, you're not alone—here are 30 things to celebrate with.
McDonald's executive chef Rene Arend created the Chicken McNugget way back in 1979, but it wasn't available in McDonald's restaurants nationwide until 1983 because there simply wasn't enough processed chicken to go around. Oddly enough, that McNugget shortage was what led Arend to create the McRib in 1981. Arend told Maxim in 2009, "There wasn't a system to supply enough chicken. We had to come up with something to give the other franchises as a new product. So the McRib came about because of the shortage of chickens."
Drug Abuse Resistance Education (D.A.R.E.) was established to teach school kids to avoid drugs, gangs, and violence. It was one of the most visible parts of the U.S. "War on Drugs" for kids, who sat in D.A.R.E. sessions in elementary school and wore the trademark black tee shirt with red writing. Although D.A.R.E. was founded in 1983, it's often linked with Nancy Reagan's famous "Just Say No" slogan, which first appeared in 1982.
The Swatch Watch was introduced in March, putting a decidedly '80s twist on classic Swiss craftsmanship. An analog Swiss wristwatch, Swatch competed with the trend of digital watches of the day. Fifteen years later in 1998, Swatch introduced the short-lived "Swatch Internet Time" concept, in which days were broken up into 1000 ".beat" increments.
On January 1, 1983, the Advanced Research Projects Agency Network (ARPANET) switched its networking technology to TCP/IP, arguably marking the moment that the modern "Internet" came into being. While the details of TCP/IP are kind of boring, it led to exciting innovations like the World Wide Web in 1989.
The year 1983 saw the first full-length albums from two decidedly different musical acts: R.E.M. and "Weird Al" Yankovic. R.E.M.'s album Murmur featured "Radio Free Europe," and marked the earliest glimmer of radio-friendly "Alternative" music in the U.S. Weird Al's self-titled debut featured "I Love Rocky Road" (a parody of Joan Jett's "I Love Rock 'n Roll") and "Another One Rides the Bus" (a parody of Queen's "Another One Bites the Dust"), and has the distinction of being the only Weird Al record in which accordion is prominently featured on every song.
Honorable mention: Red Hot Chili Peppers released a demo tape in 1983, though they didn't release a full-length album until 1984.
Michael Jackson introduced his signature "moonwalk" dance move during the TV special Motown 25: Yesterday, Today, Forever in which he reunited with his brothers from the Jackson 5. The move was shown during a performance of "Billie Jean," and the crowd went wild as it happened. Of course, similar moves had been used before, but 1983 was the first time we called it the moonwalk, and the first time Michael Jackson did it.
On January 3, 1983, the game show The Price is Right introduced its now-classic game Plinko. In the game, contestants win chips by guessing digits within the prices of products; then those chips are dropped into a peg-board, where they fall into slots with varying cash prize amounts. If you like Plinko, you'll love this incredibly detailed breakdown of the game and its history.
Honorable mentions: 1983 also saw the release of A Christmas Story, WarGames, Flashdance, Risky Business, Strange Brew, and Monty Python's The Meaning of Life.
The Dodge Caravan was first produced in November of 1983, featuring a boxy design, seating room for seven (!), and a family-friendly amount of interior space that still fit within a typical suburban garage. (The Plymouth Voyager was basically the same vehicle with a Plymouth nameplate on it and some styling changes.) 1983 was the first year your family could drive the minivan through a McDonald's drivethrough to eat McNuggets on your way to see Return of the Jedi. Of course, due to car model years, you'd be cruising in a "1984" model minivan.
Nintendo released the original Mario Bros. arcade game, unleashing the Italian plumbers Mario and Luigi into the game-playing world. Mario had first appeared in Donkey Kong in 1981, but he was then named "Jumpman" and was a carpenter—presumably he spent the next two years learning the plumbing trade and developing a hatred of turtles. The same year, the laserdisc-based "Dragon's Lair" was introduced, with fully animated graphics but annoyingly difficult gameplay.
Hooters was appropriately incorporated on April Fool's Day, 1983, when six businessmen with absolutely no previous restaurant experience got together and decided to open a place they couldn't get kicked out of.
In 1983, Sony introduced its first Camcorder for consumer use. It was called the Betamovie BMC-100P and recorded on Betamax tapes. Later that year, JVC released its own camcorder using the VHS-C format...and we all know how that particular format war worked out.
AOL was founded in 1983, though at the time it was called Control Video Corporation (CVC). CVC's first offering was "GameLine," a modem-based game service for the Atari 2600 video game console. The company experimented with different business models (all involving online components) before hitting it big in the 1990s with its AOL dialup service.
Stephen King's 1983 novel Pet Sematary was inspired by a real pet cemetery where the author's daughter Naomi buried her cat Smucky in 1978. King was reluctant to submit the manuscript because many of the story's events were inspired by his family (though Smucky did not show up again), but at his wife Tabitha's insistence, King used the book to fulfill his contract with Doubleday. A limited run of the 30th anniversary edition is slated for release this November.
Though Xavier Roberts's hand-sewn "Little Person" dolls were first available for adoption in 1976, most people had never been to Cleveland, Georgia's "Babyland General Hospital" to pick one out. Roberts worked with Coleco to mass-market the dolls under their new name, Cabbage Patch Kids. Though a few early-adopters picked up their Kids in 1982, the official launch (and the height of their popularity) came in 1983.
On April 18, 1983 at 7am, the Disney Channel launched with Good Morning, Mickey!, a 30-minute compilation program featuring classic Disney shorts and a brief fitness segment called Mousercize (Jazzercise had been a staple of American fitness since the late 1960s).
Honorable mentions: 1983 also saw the launch of Country Music Television (CMT) and The Nashville Network (TNN, later rebranded "The National Network" in 2000 and then "Spike TV" in 2003).
Original episodes of Reading Rainbow ran from 1983 through 2006, then in reruns through 2008. It introduced a generation of kids to the slogan, "Take a look—it's in a book!" In 2012, host LeVar Burton announced the Reading Rainbow iPad app, which reached the #1 slot in Educational Apps within 36 hours.
Originally branded as "Popular Club Brand," J.Crew launched in 1983 as a lower cost alternative to Ralph Lauren's near monopoly on preppie-only clothing. The brand has been back in the public eye over the past half decade largely because of Michelle Obama's fondness for the company's clean lines and affordable prices.
The first StairMaster (the ambitiously numbered "Model 5000") was a rotating staircase, with none of the fancypants heart-rate monitors or workout information screens the sophomore effort would feature, but it changed the face of cardio exercise for the next 30 years. The latest StairMaster product, the StepMill 5, comes fully loaded with an HDTV and iPod connectivity.
Before the cartoons, plushes, and books, Care Bears were a line of greeting cards developed by American Greetings. When the characters premiered to the general public in February 1983 at the New York City Toy Fair, a series of six books and the Bears' first animated TV special ("The Care Bears in the Land Without Feelings") soon followed.
An article on Monday about Jack Robison and Kirsten Lindsmith, two college students with Asperger syndrome who are navigating the perils of an intimate relationship, misidentified the character from the animated children's TV show "My Little Pony" that Ms. Lindsmith said she visualized to cheer herself up. It is Twilight Sparkle, the nerdy intellectual, not Fluttershy, the kind animal lover.
Lots of people were born in 1983, but Aziz Ansari is our favorite. Ansari was born on February 23. In 2012, Ansari told GQ: "I think a lot of people my age are really kind of surprised when they meet someone they really like." Well, we like you, Aziz.
Runners up include Carrie Underwood, Donald Glover (aka Childish Gambino, if you aren't a Community fan), Mila Kunis, Jesse Eisenberg, Jonah Hill, Chris Hemsworth, and Alison Brie.
Originally named "Multi-Tool Word," Microsoft's classic word processor ran on Unix systems before it appeared on MS-DOS, Mac, Atari, and eventually Windows. Microsoft released the first demos of Word for MS-DOS in the November 1983 issue of PC World—making it the first program ever distributed on a floppy disk bundled in a magazine.
The United States' 51st tallest building completed construction on November 30, 1983. Since then, notable tenants have included Bruce Willis, Beyonce and Jay-Z, Janet Jackson, and of course, Donald Trump.
On January 3, 1983, the volcano Kilauea in Hawaii began spewing lava, and has not yet stopped. This is the longest period of eruption in the volcano's history, and one of the longest on record for any volcano. Keep blowing your top, Kilauea!


At Yoga Studio we have a large selection of non-slip sticky yoga mats to choose from. You'll be sure to find your perfect mat to assist you in your everyday yoga practise! From travel mats to wide or thick, studio mats, eco and beginner mats, there's something for every yogi.
Not Sure what mat is right for you? then why not checkout our mat buyers guide here.


Product Review: Urban Decay's Naked Complexion Line - Oh, jolie!
All in all, I think if this foundation has a good color for you or if you're proficient at mixing your foundations, this is worth the purchase. You don't need much at all. I literally use three drops, mind you I said drops, not pumps, to cover my face. It really is luxury quality foundation in a mid-range brand. The concealer is highly pigmented and, best of all, really crease-resistant (which is a big deal for me). The pressed powders are finely milled and great for giving you even more of an airbrushed look if you buff it in after foundation and concealer application. The beauty balms are pretty meh for me, but I can't tell if I just don't have the skin clarity to make it work for me right now or if it's just not great. I will say that the beauty balms are a good primer because of the silicone in them and that they have SPF (which you should be using every day).


Home / Technical how to / Facebook Share doesn't share image or text. What to do.
Facebook Share doesn't share image or text. What to do.
On some servers Facebook cannot access the info from a property from first share attempt. This is related to Facebook not being able to get the data from your server.
How to verify this applies for your situation.
Error parsing input URL, no data was cached, or no data was scraped.
In this case solution is to use the SCRAPE AGAIN button and then test by clicking the Debug button, to make sure the info is scraped. If info is scraped you'll see what info is shared in the same window.


text:
package org.apache.hadoop.io;

import java.io.*;

import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.util.ReflectionUtils;

import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

@InterfaceAudience.Public
@InterfaceStability.Stable
public final class WritableUtils  {

  public static byte[] readCompressedByteArray(DataInput in) throws IOException {
    int length = in.readInt();
    if (length == -1) return null;
    byte[] buffer = new byte[length];
    in.readFully(buffer);      // could/should use readFully(buffer,0,length)?
    GZIPInputStream gzi = new GZIPInputStream(new ByteArrayInputStream(buffer, 0, buffer.length));
    byte[] outbuf = new byte[length];
    ByteArrayOutputStream bos =  new ByteArrayOutputStream();
    int len;
    while((len=gzi.read(outbuf, 0, outbuf.length)) != -1){
      bos.write(outbuf, 0, len);
    }
    byte[] decompressed =  bos.toByteArray();
    bos.close();
    gzi.close();
    return decompressed;
  }

  public static void skipCompressedByteArray(DataInput in) throws IOException {
    int length = in.readInt();
    if (length != -1) {
      skipFully(in, length);
    }
  }

  public static int  writeCompressedByteArray(DataOutput out,
                                              byte[] bytes) throws IOException {
    if (bytes != null) {
      ByteArrayOutputStream bos =  new ByteArrayOutputStream();
      GZIPOutputStream gzout = new GZIPOutputStream(bos);
      try {
        gzout.write(bytes, 0, bytes.length);
        gzout.close();
        gzout = null;
      } finally {
        IOUtils.closeStream(gzout);
      }
      byte[] buffer = bos.toByteArray();
      int len = buffer.length;
      out.writeInt(len);
      out.write(buffer, 0, len);
      /* debug only! Once we have confidence, can lose this. */
      return ((bytes.length != 0) ? (100*buffer.length)/bytes.length : 0);
    } else {
      out.writeInt(-1);
      return -1;
    }
  }

  /* Ugly utility, maybe someone else can do this better  */
  public static String readCompressedString(DataInput in) throws IOException {
    byte[] bytes = readCompressedByteArray(in);
    if (bytes == null) return null;
    return new String(bytes, "UTF-8");
  }

  public static int  writeCompressedString(DataOutput out, String s) throws IOException {
    return writeCompressedByteArray(out, (s != null) ? s.getBytes("UTF-8") : null);
  }

  /*
   *
   * Write a String as a Network Int n, followed by n Bytes
   * Alternative to 16 bit read/writeUTF.
   * Encoding standard is... ?
   *
   */
  public static void writeString(DataOutput out, String s) throws IOException {
    if (s != null) {
      byte[] buffer = s.getBytes("UTF-8");
      int len = buffer.length;
      out.writeInt(len);
      out.write(buffer, 0, len);
    } else {
      out.writeInt(-1);
    }
  }

  /*
   * Read a String as a Network Int n, followed by n Bytes
   * Alternative to 16 bit read/writeUTF.
   * Encoding standard is... ?
   *
   */
  public static String readString(DataInput in) throws IOException{
    int length = in.readInt();
    if (length == -1) return null;
    byte[] buffer = new byte[length];
    in.readFully(buffer);      // could/should use readFully(buffer,0,length)?
    return new String(buffer,"UTF-8");
  }

  /*
   * Write a String array as a Nework Int N, followed by Int N Byte Array Strings.
   * Could be generalised using introspection.
   *
   */
  public static void writeStringArray(DataOutput out, String[] s) throws IOException{
    out.writeInt(s.length);
    for(int i = 0; i < s.length; i++) {
      writeString(out, s[i]);
    }
  }

  /*
   * Write a String array as a Nework Int N, followed by Int N Byte Array of
   * compressed Strings. Handles also null arrays and null values.
   * Could be generalised using introspection.
   *
   */
  public static void writeCompressedStringArray(DataOutput out, String[] s) throws IOException{
    if (s == null) {
      out.writeInt(-1);
      return;
    }
    out.writeInt(s.length);
    for(int i = 0; i < s.length; i++) {
      writeCompressedString(out, s[i]);
    }
  }

  /*
   * Write a String array as a Nework Int N, followed by Int N Byte Array Strings.
   * Could be generalised using introspection. Actually this bit couldn't...
   *
   */
  public static String[] readStringArray(DataInput in) throws IOException {
    int len = in.readInt();
    if (len == -1) return null;
    String[] s = new String[len];
    for(int i = 0; i < len; i++) {
      s[i] = readString(in);
    }
    return s;
  }

  /*
   * Write a String array as a Nework Int N, followed by Int N Byte Array Strings.
   * Could be generalised using introspection. Handles null arrays and null values.
   *
   */
  public static  String[] readCompressedStringArray(DataInput in) throws IOException {
    int len = in.readInt();
    if (len == -1) return null;
    String[] s = new String[len];
    for(int i = 0; i < len; i++) {
      s[i] = readCompressedString(in);
    }
    return s;
  }

  /*
   *
   * Test Utility Method Display Byte Array.
   *
   */
  public static void displayByteArray(byte[] record){
    int i;
    for(i=0;i < record.length -1; i++){
      if (i % 16 == 0) { System.out.println(); }
      System.out.print(Integer.toHexString(record[i]  >> 4 & 0x0F));
      System.out.print(Integer.toHexString(record[i] & 0x0F));
      System.out.print(",");
    }
    System.out.print(Integer.toHexString(record[i]  >> 4 & 0x0F));
    System.out.print(Integer.toHexString(record[i] & 0x0F));
    System.out.println();
  }

  /**
   * Make a copy of a writable object using serialization to a buffer.
   * @param orig The object to copy
   * @return The copied object
   */
  public static <T extends Writable> T clone(T orig, Configuration conf) {
    try {
      @SuppressWarnings("unchecked") // Unchecked cast from Class to Class<T>
      T newInst = ReflectionUtils.newInstance((Class<T>) orig.getClass(), conf);
      ReflectionUtils.copy(conf, orig, newInst);
      return newInst;
    } catch (IOException e) {
      throw new RuntimeException("Error writing/reading clone buffer", e);
    }
  }

  /**
   * Make a copy of the writable object using serialization to a buffer
   * @param dst the object to copy from
   * @param src the object to copy into, which is destroyed
   * @throws IOException
   * @deprecated use ReflectionUtils.cloneInto instead.
   */
  @Deprecated
  public static void cloneInto(Writable dst, Writable src) throws IOException {
    ReflectionUtils.cloneWritableInto(dst, src);
  }

  /**
   * Serializes an integer to a binary stream with zero-compressed encoding.
   * For -112 {@literal <=} i {@literal <=} 127, only one byte is used with the
   * actual value.
   * For other values of i, the first byte value indicates whether the
   * integer is positive or negative, and the number of bytes that follow.
   * If the first byte value v is between -113 and -116, the following integer
   * is positive, with number of bytes that follow are -(v+112).
   * If the first byte value v is between -121 and -124, the following integer
   * is negative, with number of bytes that follow are -(v+120). Bytes are
   * stored in the high-non-zero-byte-first order.
   *
   * @param stream Binary output stream
   * @param i Integer to be serialized
   * @throws java.io.IOException
   */
  public static void writeVInt(DataOutput stream, int i) throws IOException {
    writeVLong(stream, i);
  }

  /**
   * Serializes a long to a binary stream with zero-compressed encoding.
   * For -112 {@literal <=} i {@literal <=} 127, only one byte is used with the
   * actual value.
   * For other values of i, the first byte value indicates whether the
   * long is positive or negative, and the number of bytes that follow.
   * If the first byte value v is between -113 and -120, the following long
   * is positive, with number of bytes that follow are -(v+112).
   * If the first byte value v is between -121 and -128, the following long
   * is negative, with number of bytes that follow are -(v+120). Bytes are
   * stored in the high-non-zero-byte-first order.
   *
   * @param stream Binary output stream
   * @param i Long to be serialized
   * @throws java.io.IOException
   */
  public static void writeVLong(DataOutput stream, long i) throws IOException {
    if (i >= -112 && i <= 127) {
      stream.writeByte((byte)i);
      return;
    }

    int len = -112;
    if (i < 0) {
      i ^= -1L; // take one's complement'
      len = -120;
    }

    long tmp = i;
    while (tmp != 0) {
      tmp = tmp >> 8;
      len--;
    }

    stream.writeByte((byte)len);

    len = (len < -120) ? -(len + 120) : -(len + 112);

    for (int idx = len; idx != 0; idx--) {
      int shiftbits = (idx - 1) * 8;
      long mask = 0xFFL << shiftbits;
      stream.writeByte((byte)((i & mask) >> shiftbits));
    }
  }

  /**
   * Reads a zero-compressed encoded long from input stream and returns it.
   * @param stream Binary input stream
   * @throws java.io.IOException
   * @return deserialized long from stream.
   */
  public static long readVLong(DataInput stream) throws IOException {
    byte firstByte = stream.readByte();
    int len = decodeVIntSize(firstByte);
    if (len == 1) {
      return firstByte;
    }
    long i = 0;
    for (int idx = 0; idx < len-1; idx++) {
      byte b = stream.readByte();
      i = i << 8;
      i = i | (b & 0xFF);
    }
    return (isNegativeVInt(firstByte) ? (i ^ -1L) : i);
  }

  /**
   * Reads a zero-compressed encoded integer from input stream and returns it.
   * @param stream Binary input stream
   * @throws java.io.IOException
   * @return deserialized integer from stream.
   */
  public static int readVInt(DataInput stream) throws IOException {
    long n = readVLong(stream);
    if ((n > Integer.MAX_VALUE) || (n < Integer.MIN_VALUE)) {
      throw new IOException("value too long to fit in integer");
    }
    return (int)n;
  }

  /**
   * Reads an integer from the input stream and returns it.
   *
   * This function validates that the integer is between [lower, upper],
   * inclusive.
   *
   * @param stream Binary input stream
   * @throws java.io.IOException
   * @return deserialized integer from stream
   */
  public static int readVIntInRange(DataInput stream, int lower, int upper)
      throws IOException {
    long n = readVLong(stream);
    if (n < lower) {
      if (lower == 0) {
        throw new IOException("expected non-negative integer, got " + n);
      } else {
        throw new IOException("expected integer greater than or equal to " +
            lower + ", got " + n);
      }
    }
    if (n > upper) {
      throw new IOException("expected integer less or equal to " + upper +
          ", got " + n);
    }
    return (int)n;
  }

  /**
   * Given the first byte of a vint/vlong, determine the sign
   * @param value the first byte
   * @return is the value negative
   */
  public static boolean isNegativeVInt(byte value) {
    return value < -120 || (value >= -112 && value < 0);
  }

  /**
   * Parse the first byte of a vint/vlong to determine the number of bytes
   * @param value the first byte of the vint/vlong
   * @return the total number of bytes (1 to 9)
   */
  public static int decodeVIntSize(byte value) {
    if (value >= -112) {
      return 1;
    } else if (value < -120) {
      return -119 - value;
    }
    return -111 - value;
  }

  /**
   * Get the encoded length if an integer is stored in a variable-length format
   * @return the encoded length
   */
  public static int getVIntSize(long i) {
    if (i >= -112 && i <= 127) {
      return 1;
    }

    if (i < 0) {
      i ^= -1L; // take one's complement'
    }
    // find the number of bytes with non-leading zeros
    int dataBits = Long.SIZE - Long.numberOfLeadingZeros(i);
    // find the number of data bytes + length byte
    return (dataBits + 7) / 8 + 1;
  }
  /**
   * Read an Enum value from DataInput, Enums are read and written
   * using String values.
   * @param <T> Enum type
   * @param in DataInput to read from
   * @param enumType Class type of Enum
   * @return Enum represented by String read from DataInput
   * @throws IOException
   */
  public static <T extends Enum<T>> T readEnum(DataInput in, Class<T> enumType)
    throws IOException{
    return T.valueOf(enumType, Text.readString(in));
  }
  /**
   * writes String value of enum to DataOutput.
   * @param out Dataoutput stream
   * @param enumVal enum value
   * @throws IOException
   */
  public static void writeEnum(DataOutput out,  Enum<?> enumVal)
    throws IOException{
    Text.writeString(out, enumVal.name());
  }
  /**
   * Skip len number of bytes in input streamin
   * @param in input stream
   * @param len number of bytes to skip
   * @throws IOException when skipped less number of bytes
   */
  public static void skipFully(DataInput in, int len) throws IOException {
    int total = 0;
    int cur = 0;

    while ((total<len) && ((cur = in.skipBytes(len-total)) > 0)) {
        total += cur;
    }

    if (total<len) {
      throw new IOException("Not able to skip " + len + " bytes, possibly " +
                            "due to end of input.");
    }
  }

  /** Convert writables to a byte array */
  public static byte[] toByteArray(Writable... writables) {
    final DataOutputBuffer out = new DataOutputBuffer();
    try {
      for(Writable w : writables) {
        w.write(out);
      }
      out.close();
    } catch (IOException e) {
      throw new RuntimeException("Fail to convert writables to a byte array",e);
    }
    return out.getData();
  }

  /**
   * Read a string, but check it for sanity. The format consists of a vint
   * followed by the given number of bytes.
   * @param in the stream to read from
   * @param maxLength the largest acceptable length of the encoded string
   * @return the bytes as a string
   * @throws IOException if reading from the DataInput fails
   * @throws IllegalArgumentException if the encoded byte size for string
             is negative or larger than maxSize. Only the vint is read.
   */
  public static String readStringSafely(DataInput in,
                                        int maxLength
                                        ) throws IOException,
                                                 IllegalArgumentException {
    int length = readVInt(in);
    if (length < 0 || length > maxLength) {
      throw new IllegalArgumentException("Encoded byte size for String was " + length +
                                         ", which is outside of 0.." +
                                         maxLength + " range.");
    }
    byte [] bytes = new byte[length];
    in.readFully(bytes, 0, length);
    return Text.decode(bytes);
  }
}


text:
Q: How do I print debugging info from Sagemaker training? I have a jupyter notebook script that just launches a training script, presumably in a docker container.
I added some print statements in that training script but it's not showing up in the notebook or CloudWatch.
I'm using regular print() statement. How should I log debugging from the training script?

A: I've seen this when Python tries to buffer stdout, which doesn't always play nice with Docker -- adding ENV PYTHONUNBUFFERED=1 to your Dockerfile (and then rebuilding the image) would solve this problem, if this is the cause.

A: You can find logs on AWS CloudWatchLogs. Go to training jobs on Sagemaker dashboard, select the training job you are looking for. In that you will find an option 'view_logs'. It will direct you to Cloudwatch logs.
Hope this helps!

A: According to https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html, "Docker containers might send messages to the Stdout and Stderr files. Amazon SageMaker sends these messages to Amazon CloudWatch logs in your AWS account.". So print() should work in your case. Have you checked if the docker image is updated after you change the training scripts?

A: For plain python prints you can manually flush std out
print("My Message", flush=True)


text:
We love Varanger!
Vadsø is known as «kvenbyen» («the Kvennish town') and had a Finnish-spmking majority in the 1860s. The Kvens are a Norwegian ethnic minority, descended from Finnish farmers and fishermen who emigrated from northern areas of Finland to Sweden and Norway in the 18th and 19th centuries.
In 1833 Vadsø was awarded the status of market town, with its citizens having a monopoly on trade in the area, and the population of the town grew. In the autumn of 1944 large parts of central Vadsø were bombed and burnt and half of its buildings were destroyed. Today Vadsø is the administrative centre of Finnmark. The municipality has a total population of 6 000, with 5 000 people living in the town and around 1 000 in the surrounding communities.
Vadsøya culture park
Vadsøya Culture Park Here you can see traces of Vadsø's multi-faceted history, such as the remains of a medieval town, the airship masts from voyages made by Roald Amundsen and Umberto Nobile, war memorials and a rich bird life.
Admission free. Open wooden shelter and barbecue area.
Varanger is the world's easiest accessible arctic birding destination. In Varanger you have the northern taiga, tundra and arctic coastline in one destination.
Within a day's drive, you can experience the pine grosbeaks in the taiga, and see a wide variety of spcies on the tundra of the Varanger peninsula.
Varanger King Crab Safari
Kirkenes Airport is one of the regional hubs for air travel and offers daily flights to and from Oslo and Tromsø.
Kirkenes Airport has direct connections to several towns and communities in Varanger, such as Vardø, Vadsø, Berlevåg, and Båtsfjord.
From Oslo, the flight time to Kirkenes is just over 2 hours. From Tromsø, the flight time is 1 hour and 10 minutes
Hiking Vadsø
Varanger has good, easy hiking terrain suitable for both short and longer walks. There are signposted hiking trails for those who wantto experience the beautiful scenery and also a number of paths and bridleways which you can explore freely.
Varangerfestivalen The Varangerfestival is one of the biggest and oldest music festivals in the high north. The festival presents jazz, rock and world music and is the best place to experience the vibrant Arctic music scene live! The festival takes place in week 32 annually.
Ekkerøy
Ekkerøy is one of the oldest fishing villages in Finnmark. Previously a typical old Sami settlement along the Varangerfjord, Ekkerøy became one of the new «Norwegian» villages.
Vestre-Jakobselv
The village of Vestre Jakobselv, Ánnejohka, Annijoki, has around 800 inhabitants and is situated in the middle of Varanger. The village is a historic multicultural community, strongly influenced by Kvennish/Finnish settlers.
Other Indoor activities
Public sauna and swimmingpool
Tundra Bowling
Varanger Golf simulator
Vadsø Museum
Nobile cinema and culturehouse
Kooperativet culturehouse
The Varanger Peninsula National Park stretches across the Varanger Peninsula between Syltefjord and Varangerfjord. The park was established in 2006 to preserve the most Arctic area of the Norwegian mainland. Special and unique landscapes and topology formed in the Ice Age can be found here, along with flora and fauna with eastern and Arctic features. It is also a key area for Arctic foxes and unique Sami cultural artefacts.
National Scenic route
National scenic route Varanger is about the long lines in the landscape as well as the long lines of history. Varanger is perhaps the most exotic stretch. A trip along the route leading to the Arctic Ocean will reveal natural surroundings full of contrasts, and the lunar landscape out towards Hamningberg in many ways feels like this is a journey to the world's end.
Fishing and angeling
There are countless good fishing rivers and lakes in Varanger, together with rich fjord fishing. The Vesterelva and Bergebyelva riverscan be found in Nesseby.
There are also fishing locations at Gornitak and near Mortensnes on the fjord. Vadsø has the Jakobselva and Skallelva rivers, while Vardø has the Komagelv, Kibergselva and Sandfjordelva.
Hurtigruten, the Norwegian Coastal Voyage, calls at Berlevåg, Båtsfjord, Vardø, and Vadsø in Varanger. Hurtigruten turns around in Kirkenes and goes back to Bergen in Fjord Norway, calling at the same ports on the way back, except Vadsø.
It's possible to drive all the way to Varanger, regardless if you come by car, mobile home, or motorcycle. The European route E6 runs through the region and ends in Kirkenes, close to the Russian border.
All roads are open year-round, but some passes might close for short periods in winter.
GREATER ARCTIC MOMENT
Covid-19 travel updates
Greater Arctic Holding AS
Greater Arctic Moment AS


A new, high performance skin care collection launches with TWELVE: nine unique, innovative products that suit various concerns, especially stressed, sensitive and reactive (or allergy-prone) skin.
TWELVE is the brainchild of and has been personally developed by Pedro Catalá, an independent cosmetologist and pharmacist with specialist expertise in botany and the science and technology of cosmetics. His passion for natural, active ingredients in skin care and extensive research and knowledge of plant extracts has led him to create this no-nonsense, skin kind brand.
Harnessing this science and Pedro's philosophy to maintain your natural beauty, TWELVE formulas are designed to protect and restore skin as it ages, improving skin functionality and promoting healthier skin – both inside and out. Powerful moisturising, soothing and regenerating properties contained within help restructure damaged skin and rebalance its natural defenses.
The entire TWELVE collection contains ONLY ECO-APPROVED INGREDIENTS and is completely free from parabens, sulphates, silicones, petrochemicals and glycols. All formulas are plant based** and meet stringent requirements on green chemistry. They are also naturally scented with floral extracts and traces of essentials oils and use only natural emulsifiers.
Pedro says: Having worked as a pharmacist for over 18 years I formulate products with sensitive skin in mind. I do not follow marketing trends, I use only the cleanest and purest natural and organic ingredients. In my formulas you will not find any ingredients that can potentially irritate the skin. I even avoid natural ingredients that are commonly used such as "sodium phytate" and "potassium sorbate" which are well known for sensitising the skin.
We want to offer a clean botanical alternative to sensitive souls who are seeking formulas highly compatible with the delicate structure of their skin.
Over 60% of TWELVE beauty users suffer from sensitive skin.